From ee53b8cbc463af9d97b81e21a91a3e0974c20eaf Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Thu, 23 Jan 2025 10:09:45 +0700 Subject: [PATCH] feat: add doc template function address without area --- src/controllers/00-doc-template-controller.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/controllers/00-doc-template-controller.ts b/src/controllers/00-doc-template-controller.ts index 32822f4..1726bf0 100644 --- a/src/controllers/00-doc-template-controller.ts +++ b/src/controllers/00-doc-template-controller.ts @@ -146,6 +146,9 @@ export class DocTemplateController extends Controller { dateLongEN: (date: string) => dateFormat({ date, locale: "en-US" }), dateTimeLongEN: (date: string) => dateFormat({ date, withTime: true, locale: "en-US", monthStyle: "long" }), + address, + addressTH: (addr: FullAddress) => address(addr, "th"), + addressEN: (addr: FullAddress) => address(addr, "en"), addressFull, addressFullTH: (addr: FullAddress) => addressFull(addr, "th"), addressFullEN: (addr: FullAddress) => addressFull(addr, "en"), @@ -193,6 +196,26 @@ type FullAddress = { en?: boolean; }; +function address(addr: FullAddress, lang: "th" | "en" = "en") { + let fragments: string[]; + switch (lang) { + case "th": + fragments = [`${addr.address},`]; + if (addr.moo) fragments.push(`หมู่ ${addr.moo},`); + if (addr.soi) fragments.push(`ซอย ${addr.soi},`); + if (addr.street) fragments.push(`ถนน${addr.street},`); + break; + default: + fragments = [`${addr.addressEN},`]; + if (addr.mooEN) fragments.push(`Moo ${addr.mooEN},`); + if (addr.soiEN) fragments.push(`Soi ${addr.soiEN},`); + if (addr.streetEN) fragments.push(`${addr.streetEN} Rd.`); + break; + } + + return fragments.join(" "); +} + function addressFull(addr: FullAddress, lang: "th" | "en" = "en") { let fragments: string[]; switch (lang) {