{"version":3,"sources":["../src/locate.ts","../src/env.ts","../src/delegateClick.ts","../src/array.ts","../src/clickOutside.ts","../src/positioning.ts","../src/common.ts","../src/hotkeys.ts","../src/dates.ts","../src/locale.ts","../src/salesforce.ts"],"names":["id","node","pos","hotkeys","locale"],"mappings":"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","file":"index.cjs","sourcesContent":["export function locate(el: Element | Event, attr = \"data-id\"): HTMLElement {\n\tlet node = el as HTMLElement;\n\tif (!node.tagName && (el as Event).target)\n\t\tnode = (el as Event).target as HTMLElement;\n\n\twhile (node) {\n\t\tif (node.getAttribute) {\n\t\t\tconst id = node.getAttribute(attr);\n\t\t\tif (id) return node;\n\t\t}\n\n\t\tnode = node.parentNode as HTMLElement;\n\t}\n\n\treturn null;\n}\nexport function locateAttr(el: Element | Event, attr = \"data-id\"): string {\n\tconst node = locate(el, attr);\n\tif (node) return node.getAttribute(attr);\n\n\treturn null;\n}\n\nexport function locateID(\n\tel: Element | Event,\n\tattr = \"data-id\"\n): string | number {\n\tconst node = locate(el, attr);\n\n\tif (node) {\n\t\treturn getID(node, attr);\n\t}\n\n\treturn null;\n}\n\nexport function getID(el: Element, attr = \"data-id\"): string | number {\n\tconst value = el.getAttribute(attr);\n\tif (!value) return null;\n\n\treturn id(value);\n}\n\nexport function locateNode(el: Element, node: Element): boolean {\n\tlet n = el;\n\twhile (n) {\n\t\tif (n === node) {\n\t\t\treturn true;\n\t\t}\n\t\tn = n?.parentNode as Element;\n\t}\n\n\treturn null;\n}\n\nexport function setID(id: string | number): string | number {\n\treturn typeof id === \"string\" ? \":\" + id : id;\n}\n\nfunction id(value: string): string | number {\n\tif (value.startsWith(\":\")) return value.substring(1);\n\tconst t = (value as undefined as number) * 1;\n\tif (!isNaN(t)) return t;\n\n\treturn value;\n}\n","export interface Env {\n\tdetect: () => boolean;\n\taddEvent: (\n\t\tnode: HTMLElement,\n\t\tevent: string,\n\t\thandler: EventListenerOrEventListenerObject\n\t) => RemoveEventListener;\n\taddGlobalEvent: (\n\t\tevent: string,\n\t\thandler: EventListenerOrEventListenerObject,\n\t\trel: HTMLElement\n\t) => RemoveEventListener;\n\tgetTopNode: (rel: HTMLElement) => HTMLElement;\n}\n\nexport type RemoveEventListener = () => void;\n\nfunction getEnv(): Env {\n\treturn {\n\t\tdetect: () => true,\n\t\taddEvent: function (\n\t\t\tnode: Node,\n\t\t\tevent: string,\n\t\t\thandler: EventListenerOrEventListenerObject\n\t\t): RemoveEventListener {\n\t\t\tnode.addEventListener(event, handler);\n\t\t\treturn () => node.removeEventListener(event, handler);\n\t\t},\n\t\taddGlobalEvent: function (\n\t\t\tevent: string,\n\t\t\thandler: EventListenerOrEventListenerObject\n\t\t): RemoveEventListener {\n\t\t\tdocument.addEventListener(event, handler);\n\t\t\treturn () => document.removeEventListener(event, handler);\n\t\t},\n\t\tgetTopNode: function (): HTMLElement {\n\t\t\treturn window.document.body as HTMLElement;\n\t\t},\n\t};\n}\n\nexport const env = getEnv();\n\nexport function setEnv(update: Partial<Env>): void {\n\tObject.assign(env, update);\n}\n","import type { ActionReturn } from \"./common\";\nimport { locate, getID } from \"./locate\";\n\nexport type IHandlersHash = { [key: string]: CallableFunction };\nimport { env } from \"./env\";\n\nexport function delegateEvent(\n\tnode: HTMLElement,\n\thandlers: IHandlersHash | CallableFunction,\n\tevent: string\n): ActionReturn {\n\tfunction handleEvent(ev: Event) {\n\t\tconst node = locate(ev);\n\t\tif (!node) return;\n\t\tconst id = getID(node);\n\n\t\tif (typeof handlers === \"function\") return handlers(id, ev);\n\n\t\tlet action;\n\t\tlet test = ev.target as HTMLElement;\n\t\twhile (test != node) {\n\t\t\taction = test.dataset ? test.dataset.action : null;\n\t\t\tif (action) {\n\t\t\t\tif (handlers[action]) {\n\t\t\t\t\thandlers[action](id, ev);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = test.parentNode as HTMLElement;\n\t\t}\n\t\tif (handlers[event]) handlers[event](id, ev);\n\t}\n\n\tenv.addEvent(node, event, handleEvent);\n}\n\nexport function delegateClick(\n\tnode: HTMLElement,\n\thandlers: IHandlersHash\n): ActionReturn {\n\tdelegateEvent(node, handlers, \"click\");\n\tif (handlers.dblclick) delegateEvent(node, handlers.dblclick, \"dblclick\");\n}\n","export function remove<T>(items: T[], node: T): void {\n\tfor (let i = items.length - 1; i >= 0; i--) {\n\t\tif (items[i] === node) {\n\t\t\titems.splice(i, 1);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n","import { remove } from \"./array\";\nimport { env, RemoveEventListener } from \"./env\";\nimport type { ActionReturn } from \"./common\";\n\ntype OutsideListener = {\n\tnode: HTMLElement;\n\tdate: Date;\n\tprops?: OutsideListenerProps;\n};\n\ntype OutsideListenerProps = {\n\tcallback: CallableFunction;\n\tmodal?: boolean;\n\tparent?: () => HTMLElement;\n};\n\n// true if another listener whose anchor lives inside node now contains the\n// click (a nested popup opened from here owns the click) — keep node open\nfunction isAncestorOfOther(\n\tnode: HTMLElement,\n\ttarget: HTMLElement,\n\tindex: number\n) {\n\tfor (let i = 0; i < outsideListeners.length; i++) {\n\t\tif (i === index) continue;\n\t\tconst other = outsideListeners[i];\n\t\tconst p = other.props.parent?.();\n\t\tif (p && node.contains(p) && other.node.contains(target)) return true;\n\t}\n\treturn false;\n}\n\nlet activationDate: Date = new Date();\nlet skipNext = false;\n\nlet outsideHandlers: RemoveEventListener[] = [];\nconst outsideListeners: OutsideListener[] = [];\nconst handleOutsideClick: EventListener = (event: Event) => {\n\t// Activation was inside the elements, ignoring.\n\t// target.isConnected is false when popup is closed,\n\t// and its obj in outsideListeners removed\n\tconst target = event.target as HTMLElement;\n\tif (skipNext || !target.isConnected) {\n\t\tskipNext = false;\n\t\treturn;\n\t}\n\n\t// for each area check if event was outside the element\n\tfor (let i = outsideListeners.length - 1; i >= 0; i--) {\n\t\t// if event was already handled, we can skip the rest\n\t\t// it is used by menu and alike, where we want to close only one\n\t\t//if (event.defaultPrevented) return;\n\n\t\tconst { node, date, props } = outsideListeners[i];\n\t\t// if element was opened after click event - ignore it\n\t\tif (date > activationDate) continue;\n\n\t\tif (!node.contains(target) && node !== target) {\n\t\t\t// a nested popup opened from here owns this click — keep node open\n\t\t\tif (isAncestorOfOther(node, target, i)) break;\n\n\t\t\tif (props.callback) props.callback(event);\n\t\t\t// in case of modal we want to close only one\n\t\t\t// also we want to close only one if event was already handled\n\t\t\tif (props.modal || event.defaultPrevented) break;\n\t\t}\n\t}\n};\n\n// we are tracking mousedown for two reasons:\n// 1. to be sure that mouse action was started inside the element\n// 2. to ignore click event that was issued before new listener was added\n// this is important for popups, because they are usually added after click event,\n// and we don't want to close them immediately\nconst handleMouseDown: EventListener = (event: Event) => {\n\tactivationDate = new Date();\n\tskipNext = true;\n\n\tfor (let i = outsideListeners.length - 1; i >= 0; i--) {\n\t\tconst { node } = outsideListeners[i];\n\t\tif (!node.contains(event.target as Node) && node !== event.target) {\n\t\t\t// activation outside the elements\n\t\t\tskipNext = false;\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\nexport function clickOutside(\n\tnode: HTMLElement,\n\tprops: CallableFunction | OutsideListenerProps\n): ActionReturn {\n\t// set handler only once\n\tif (!outsideHandlers.length) {\n\t\toutsideHandlers = [\n\t\t\tenv.addGlobalEvent(\"click\", handleOutsideClick, node),\n\t\t\tenv.addGlobalEvent(\"contextmenu\", handleOutsideClick, node),\n\t\t\tenv.addGlobalEvent(\"mousedown\", handleMouseDown, node),\n\t\t];\n\t}\n\n\tif (typeof props !== \"object\") {\n\t\tprops = { callback: props };\n\t}\n\tconst pack = { node, date: new Date(), props };\n\toutsideListeners.push(pack);\n\n\treturn {\n\t\tdestroy() {\n\t\t\tremove(outsideListeners, pack);\n\t\t\tif (!outsideListeners.length) {\n\t\t\t\toutsideHandlers.forEach(e => e());\n\t\t\t\toutsideHandlers = [];\n\t\t\t}\n\t\t},\n\t};\n}\n","import { env } from \"./env\";\n\ntype positionResult = {\n\tat: TPosition;\n\tx: number;\n\ty: number;\n\tz: number;\n\twidth: string;\n};\n\nexport type TPosition =\n\t| \"point\"\n\t| \"bottom\"\n\t| \"top\"\n\t| \"left\"\n\t| \"right\"\n\t| \"center\"\n\t| \"bottom-fit\"\n\t| \"top-fit\"\n\t| \"center-fit\"\n\t| \"bottom-right\"\n\t| \"bottom-left\"\n\t| \"bottom-start\"\n\t| \"bottom-center\"\n\t| \"bottom-end\"\n\t| \"top-right\"\n\t| \"top-left\"\n\t| \"top-start\"\n\t| \"top-center\"\n\t| \"top-end\"\n\t| \"left-start\"\n\t| \"left-center\"\n\t| \"left-end\"\n\t| \"right-start\"\n\t| \"right-center\"\n\t| \"right-end\";\n\nconst isBottom = (mode: string) => mode.indexOf(\"bottom\") !== -1;\nconst isLeft = (mode: string) => mode.indexOf(\"left\") !== -1;\nconst isRight = (mode: string) => mode.indexOf(\"right\") !== -1;\nconst isTop = (mode: string) => mode.indexOf(\"top\") !== -1;\nconst isFit = (mode: string) => mode.indexOf(\"fit\") !== -1;\nconst isOverlap = (mode: string) => mode.indexOf(\"overlap\") !== -1;\nconst isCenter = (mode: string) => {\n\treturn mode.split(\"-\").every(v => [\"center\", \"fit\"].indexOf(v) > -1);\n};\nconst getAlign = (mode: string) => {\n\tconst match = mode.match(/(start|center|end)/);\n\treturn match ? match[0] : null;\n};\n\nfunction getMaxIndex(p: HTMLElement, ap: HTMLElement): number {\n\tlet zi = 0;\n\tconst top = env.getTopNode(p);\n\n\twhile (p) {\n\t\tif (p === top) break;\n\t\tconst pos = getComputedStyle(p)[\"position\"];\n\t\tif (pos === \"absolute\" || pos === \"relative\" || pos === \"fixed\") {\n\t\t\tzi = parseInt(getComputedStyle(p)[\"zIndex\"]) || 0;\n\t\t}\n\t\tp = p.parentNode as HTMLElement;\n\t\tif (p === ap) break;\n\t}\n\n\treturn zi;\n}\n\nlet x: number,\n\ty: number,\n\twidth: string,\n\tpos: {\n\t\tleft: number;\n\t\tright: number;\n\t\ttop: number;\n\t\tbottom: number;\n\t\twidth?: number;\n\t\theight?: number;\n\t};\n\nexport function calculatePosition(\n\tself: HTMLElement,\n\tparent: HTMLElement,\n\tat: TPosition = \"bottom\",\n\tleft: number = 0,\n\ttop: number = 0\n): positionResult {\n\tif (!self) return null;\n\n\tx = left;\n\ty = top;\n\twidth = \"auto\";\n\tlet z = 0;\n\tlet fixLeft = 0;\n\tlet resultAt = at as string;\n\n\tconst body = getAbsParent(self);\n\tconst cont = isOverlap(at) ? env.getTopNode(self) : body;\n\n\tif (!body) return null;\n\n\tconst bodyRect = body.getBoundingClientRect();\n\tconst selfRect = self.getBoundingClientRect();\n\tconst contRect = cont.getBoundingClientRect();\n\n\tconst contStyle = window.getComputedStyle(cont);\n\tconst border: { [key: string]: number } = {\n\t\tleft: 0,\n\t\ttop: 0,\n\t\tbottom: 0,\n\t\tright: 0,\n\t};\n\tfor (const key in border) {\n\t\tconst style = `border-${key}-width`;\n\t\tborder[key] = parseFloat(contStyle.getPropertyValue(style));\n\t}\n\n\t// correct z-index\n\tif (parent) {\n\t\tconst zi = getMaxIndex(parent, body);\n\t\tz = Math.max(zi + 1, 20);\n\t}\n\n\t// set position\n\tif (parent) {\n\t\tpos = parent.getBoundingClientRect();\n\t\tif (isFit(at)) width = pos.width + \"px\";\n\t\tif (at !== \"point\") {\n\t\t\tif (isCenter(at)) {\n\t\t\t\tif (isFit(at)) {\n\t\t\t\t\tx = 0;\n\t\t\t\t} else {\n\t\t\t\t\tx = contRect.width / 2;\n\t\t\t\t\tfixLeft = 1;\n\t\t\t\t}\n\t\t\t\ty = (contRect.height - selfRect.height) / 2;\n\t\t\t} else {\n\t\t\t\tconst fix = isOverlap(at) ? 0 : 1;\n\t\t\t\tx = isRight(at) ? pos.right + fix : pos.left - fix;\n\t\t\t\ty = isBottom(at) ? pos.bottom + 1 : pos.top;\n\t\t\t\t// correct x|y depending on align\n\t\t\t\tconst align = getAlign(at);\n\t\t\t\tif (align) {\n\t\t\t\t\tif (isRight(at) || isLeft(at)) {\n\t\t\t\t\t\tif (align === \"center\") y -= (selfRect.height - pos.height) / 2;\n\t\t\t\t\t\telse if (align === \"end\") y -= selfRect.height - pos.height;\n\t\t\t\t\t} else if (isBottom(at) || isTop(at)) {\n\t\t\t\t\t\tif (align === \"center\") x -= (selfRect.width - pos.width) / 2;\n\t\t\t\t\t\telse if (align === \"end\") x -= selfRect.width - pos.width;\n\t\t\t\t\t\tif (!isOverlap(at)) x += 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else pos = { left: left, right: left, top: top, bottom: top };\n\n\tconst isCorner = (isLeft(at) || isRight(at)) && (isBottom(at) || isTop(at));\n\n\t/* horizontal positioning */\n\n\tif (isLeft(at)) {\n\t\tfixLeft = 2;\n\t}\n\n\tconst dxL = x - selfRect.width - contRect.left;\n\n\tif (parent && isLeft(at) && !isCorner && dxL < 0) {\n\t\t// swap to right if \"left\" / \"left-[align]\" does not fit\n\t\tx = pos.right;\n\t\tfixLeft = 0;\n\t\tresultAt = resultAt.replace(\"left\", \"right\");\n\t}\n\n\tconst dxR = x + selfRect.width * (1 - fixLeft / 2) - contRect.right;\n\tif (dxR > 0) {\n\t\tif (!isRight(at)) {\n\t\t\tx = contRect.right - border.right - selfRect.width;\n\t\t} else {\n\t\t\tconst dx = pos.left - contRect.x - selfRect.width;\n\t\t\tif (parent && !isCorner && dx >= 0) {\n\t\t\t\t// change position to \"left\"\n\t\t\t\tx = pos.left - selfRect.width;\n\t\t\t\tresultAt = resultAt.replace(\"right\", \"left\");\n\t\t\t} else {\n\t\t\t\tx -= dxR + border.right;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (fixLeft) {\n\t\t// apply \"left\" / \"center\" position\n\t\tx = Math.round(x - (selfRect.width * fixLeft) / 2);\n\t}\n\n\t/* vertical positioning*/\n\n\tconst needSwap = dxL < 0 || dxR > 0 || !isCorner;\n\n\tif (isTop(at)) {\n\t\ty = pos.top - selfRect.height;\n\t\tif (parent && y < contRect.y && needSwap) {\n\t\t\t// change position to \"bottom\"\n\t\t\ty = pos.bottom;\n\t\t\tresultAt = resultAt.replace(\"top\", \"bottom\");\n\t\t}\n\t}\n\n\tconst dy = y + selfRect.height - contRect.bottom;\n\n\tif (dy > 0) {\n\t\tif (parent && isBottom(at) && needSwap) {\n\t\t\t// change position to \"top\"\n\t\t\ty -= selfRect.height + pos.height + 1;\n\t\t\tresultAt = resultAt.replace(\"bottom\", \"top\");\n\t\t} else {\n\t\t\ty -= dy + border.bottom;\n\t\t}\n\t}\n\n\tx -= bodyRect.left + border.left;\n\ty -= bodyRect.top + border.top;\n\tx = (isOverlap(at) ? x : Math.max(x, 0)) + cont.scrollLeft;\n\ty = (isOverlap(at) ? y : Math.max(y, 0)) + cont.scrollTop;\n\twidth = width || \"auto\";\n\n\treturn { at: resultAt as TPosition, x, y, z, width };\n}\n\nexport function getAbsParent(el: HTMLElement): HTMLElement | null {\n\tconst top = env.getTopNode(el);\n\tif (el) el = el.parentElement;\n\twhile (el) {\n\t\tconst pos = getComputedStyle(el)[\"position\"];\n\t\tif (\n\t\t\tel === top ||\n\t\t\tpos === \"relative\" ||\n\t\t\tpos === \"absolute\" ||\n\t\t\tpos === \"fixed\"\n\t\t)\n\t\t\treturn el;\n\n\t\tel = el.parentNode as HTMLElement;\n\t}\n\treturn null;\n}\n\nexport function getPopupParents(node: HTMLElement): HTMLElement[] {\n\tconst popupNodes = [];\n\tlet el = node;\n\tconst top = env.getTopNode(node);\n\twhile (el && el !== top && !el.getAttribute(\"data-wx-portal-root\")) {\n\t\tif (getComputedStyle(el)[\"position\"] === \"absolute\") popupNodes.push(el);\n\t\tel = el.parentNode as HTMLElement;\n\t}\n\treturn popupNodes;\n}\n","export type ActionReturn = void | {\n\tdestroy: () => void;\n};\n\nlet id = new Date().valueOf();\n\nexport function uid(): number {\n\tid += 1;\n\treturn id;\n}\n","type Handler = (\n\tev?: KeyboardEvent,\n\tkeys?: { key: string; evKey: string }\n) => void;\n\nclass ScreenKeys {\n\tstore: Map<string, Handler>;\n\tnode: Node;\n\tconstructor() {\n\t\tthis.store = new Map();\n\t}\n\n\tconfigure(hotkeys: { [key: string]: Handler | false }, node: Node) {\n\t\tthis.node = node;\n\t\tfor (const hotkey in hotkeys) {\n\t\t\tif (hotkeys[hotkey]) {\n\t\t\t\tconst hotkeyFormatted = hotkey.toLowerCase().replace(/[ ]/g, \"\");\n\t\t\t\tconst handler = hotkeys[hotkey];\n\t\t\t\tthis.store.set(hotkeyFormatted, handler);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst chain: ScreenKeys[] = [];\nexport const hotkeys = {\n\tsubscribe: (v: (t: ScreenKeys) => void) => {\n\t\tinit_once();\n\n\t\tconst t = new ScreenKeys();\n\t\tchain.push(t);\n\t\tv(t);\n\n\t\treturn () => {\n\t\t\tconst ind = chain.findIndex(a => a === t);\n\t\t\tif (ind >= 0) chain.splice(ind, 1);\n\t\t};\n\t},\n};\n\nlet ready = false;\nfunction init_once() {\n\tif (ready) return;\n\tready = true;\n\n\tdocument.addEventListener(\"keydown\", ev => {\n\t\tif (\n\t\t\tchain.length &&\n\t\t\t(ev.ctrlKey ||\n\t\t\t\tev.altKey ||\n\t\t\t\tev.metaKey ||\n\t\t\t\tev.shiftKey ||\n\t\t\t\tev.key.length > 1 ||\n\t\t\t\tev.key === \" \")\n\t\t) {\n\t\t\tconst code = [];\n\t\t\tif (ev.ctrlKey) code.push(\"ctrl\");\n\t\t\tif (ev.altKey) code.push(\"alt\");\n\t\t\tif (ev.metaKey) code.push(\"meta\");\n\t\t\tif (ev.shiftKey) code.push(\"shift\");\n\t\t\tlet evKey = ev.code.replace(\"Key\", \"\").toLocaleLowerCase();\n\t\t\tif (ev.key === \" \") {\n\t\t\t\tevKey = \"space\";\n\t\t\t}\n\t\t\tcode.push(evKey);\n\n\t\t\tconst key = code.join(\"+\");\n\n\t\t\tfor (let i = chain.length - 1; i >= 0; i--) {\n\t\t\t\tconst target = chain[i];\n\t\t\t\tconst handler = target.store.get(key) || target.store.get(evKey);\n\t\t\t\tif (handler && target.node.contains(ev.target as Node)) {\n\t\t\t\t\thandler(ev, { key, evKey });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n","export interface ILocale {\n\tdayShort: string[];\n\tdayFull: string[];\n\tmonthShort: string[];\n\tmonthFull: string[];\n\n\tweekStart?: number;\n\n\tam?: string[];\n\tpm?: string[];\n}\n\nfunction toFixed(num: number): string {\n\tif (num < 10) return \"0\" + num;\n\treturn num.toString();\n}\nfunction toFixedMs(num: number): string {\n\tconst temp = toFixed(num);\n\treturn temp.length == 2 ? \"0\" + temp : temp;\n}\n\nexport function getDuodecade(year: number): { start: number; end: number } {\n\tconst start = Math.floor(year / 11) * 11;\n\treturn {\n\t\tstart,\n\t\tend: start + 11,\n\t};\n}\n\n// returns ISO week number (week starts on Monday)\nfunction getWeekNumber(ndate: Date): number {\n\tconst nday = (ndate.getDay() + 6) % 7;\n\n\tconst pivot = new Date(ndate.valueOf());\n\tpivot.setDate(ndate.getDate() + (3 - nday));\n\tpivot.setHours(0, 0, 0, 0);\n\n\tconst jan1 = new Date(pivot.getFullYear(), 0, 1);\n\tconst ordinal = Math.round((pivot.getTime() - jan1.getTime()) / 86400000);\n\n\treturn 1 + Math.floor(ordinal / 7);\n}\n\nconst emptyAmPm = [\"\", \"\"];\nfunction date2str(mask: string, date: Date, locale: ILocale): number | string {\n\tswitch (mask) {\n\t\tcase \"%d\":\n\t\t\treturn toFixed(date.getDate());\n\t\tcase \"%m\":\n\t\t\treturn toFixed(date.getMonth() + 1);\n\t\tcase \"%j\":\n\t\t\treturn date.getDate();\n\t\tcase \"%n\":\n\t\t\treturn date.getMonth() + 1;\n\t\tcase \"%y\":\n\t\t\treturn toFixed(date.getFullYear() % 100);\n\t\tcase \"%Y\":\n\t\t\treturn date.getFullYear();\n\t\tcase \"%D\":\n\t\t\treturn locale.dayShort[date.getDay()];\n\t\tcase \"%l\":\n\t\t\treturn locale.dayFull[date.getDay()];\n\t\tcase \"%M\":\n\t\t\treturn locale.monthShort[date.getMonth()];\n\t\tcase \"%F\":\n\t\t\treturn locale.monthFull[date.getMonth()];\n\t\tcase \"%h\":\n\t\t\treturn toFixed(((date.getHours() + 11) % 12) + 1);\n\t\tcase \"%g\":\n\t\t\treturn ((date.getHours() + 11) % 12) + 1;\n\t\tcase \"%G\":\n\t\t\treturn date.getHours();\n\t\tcase \"%H\":\n\t\t\treturn toFixed(date.getHours());\n\t\tcase \"%i\":\n\t\t\treturn toFixed(date.getMinutes());\n\t\tcase \"%a\":\n\t\t\treturn ((date.getHours() > 11 ? locale.pm : locale.am) || emptyAmPm)[0];\n\t\tcase \"%A\":\n\t\t\treturn ((date.getHours() > 11 ? locale.pm : locale.am) || emptyAmPm)[1];\n\t\tcase \"%s\":\n\t\t\treturn toFixed(date.getSeconds());\n\t\tcase \"%S\":\n\t\t\treturn toFixedMs(date.getMilliseconds());\n\t\tcase \"%W\":\n\t\t\treturn toFixed(getWeekNumber(date));\n\t\tcase \"%w\": {\n\t\t\tconst ws = locale.weekStart ?? 1;\n\t\t\tif (ws === 1) return toFixed(getWeekNumber(date));\n\t\t\t// find the Monday of the current locale-week, use its ISO week number\n\t\t\tconst dayInWeek = (date.getDay() - ws + 7) % 7;\n\t\t\tconst monInWeek = (1 - ws + 7) % 7;\n\t\t\tconst monday = new Date(date.valueOf());\n\t\t\tmonday.setDate(date.getDate() + (monInWeek - dayInWeek));\n\t\t\treturn toFixed(getWeekNumber(monday));\n\t\t}\n\t\tcase \"%c\": {\n\t\t\tlet str = date.getFullYear() + \"\";\n\t\t\tstr += \"-\" + toFixed(date.getMonth() + 1);\n\t\t\tstr += \"-\" + toFixed(date.getDate());\n\t\t\tstr += \"T\";\n\t\t\tstr += toFixed(date.getHours());\n\t\t\tstr += \":\" + toFixed(date.getMinutes());\n\t\t\tstr += \":\" + toFixed(date.getSeconds());\n\t\t\treturn str;\n\t\t}\n\t\tcase \"%Q\":\n\t\t\treturn Math.floor(date.getMonth() / 3) + 1;\n\t\tdefault:\n\t\t\treturn mask;\n\t}\n}\n\nconst formatFlags = /%[a-zA-Z]/g;\ntype DateFormatter = (date: Date) => string;\n\nexport function dateToString(format: string, locale: ILocale): DateFormatter {\n\tif (typeof format == \"function\") return format;\n\n\treturn function (date: Date): string {\n\t\tif (!date) return \"\";\n\t\tif (!date.getMonth) date = new Date(date);\n\n\t\treturn format.replace(\n\t\t\tformatFlags,\n\t\t\ts => date2str(s, date, locale) as string\n\t\t);\n\t};\n}\n","type Dictionary = (key: string) => string;\ntype IHash<T> = { [key: string]: T };\ntype Group<T> = IHash<IHash<T> | T>;\nexport type Terms = Group<string>;\n\nexport interface ILocale {\n\tgetGroup(group: string): Dictionary;\n\tgetRaw(): Terms;\n\textend(values: Terms, optional: boolean): ILocale;\n}\n\nfunction isObject(a: string | IHash<string>) {\n\treturn a && typeof a === \"object\" && !Array.isArray(a);\n}\n\nfunction extend(a: Terms, b: Terms): Terms {\n\tfor (const key in b) {\n\t\tconst from = b[key];\n\t\tif (isObject(a[key]) && isObject(from)) {\n\t\t\ta[key] = extend(\n\t\t\t\t{ ...(a[key] as IHash<string>) },\n\t\t\t\tb[key] as IHash<string>\n\t\t\t) as IHash<string>;\n\t\t} else {\n\t\t\ta[key] = b[key];\n\t\t}\n\t}\n\n\treturn a;\n}\n\nexport function locale(words: Terms): ILocale {\n\treturn {\n\t\tgetGroup(group: string): Dictionary {\n\t\t\tconst block = words[group] as IHash<string>;\n\t\t\treturn (key: string) => {\n\t\t\t\treturn block ? block[key] || key : key;\n\t\t\t};\n\t\t},\n\t\tgetRaw(): Terms {\n\t\t\treturn words;\n\t\t},\n\t\textend(values: Terms, optional: boolean): ILocale {\n\t\t\tif (!values) return this;\n\n\t\t\tlet data: Terms;\n\t\t\tif (optional) {\n\t\t\t\tdata = extend({ ...values }, words);\n\t\t\t} else {\n\t\t\t\tdata = extend({ ...words }, values);\n\t\t\t}\n\n\t\t\treturn locale(data);\n\t\t},\n\t};\n}\n","import type { Env, RemoveEventListener } from \"./env\";\n\nexport const salesForceEnv: Partial<Env> = {\n\tdetect() {\n\t\tif (typeof window === \"undefined\") return false;\n\t\treturn (\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t!!(window as any)[\"Sfdc\"] ||\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t!!(window as any)[\"$A\"] ||\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t!!(window as any)[\"Aura\"] ||\n\t\t\t\"$shadowResolver$\" in document.body\n\t\t);\n\t},\n\taddGlobalEvent: function (\n\t\tevent: string,\n\t\thandler: EventListenerOrEventListenerObject,\n\t\trel: HTMLElement\n\t): RemoveEventListener {\n\t\tconst d = salesForceEnv.getTopNode(rel);\n\t\td.addEventListener(event, handler);\n\t\treturn () => d.removeEventListener(event, handler);\n\t},\n\tgetTopNode: function (rel: HTMLElement): HTMLElement {\n\t\treturn rel.closest('[data-wx-root=\"true\"]') as HTMLElement;\n\t},\n};\n"]}