{"version":3,"file":"functions.0xvygQmLlb.js","sources":["../../../../src/_helpers/functions.ts"],"sourcesContent":["import { BasedAtomicModel } from '../_types/types';\nimport { WebComponent } from '@helpers/WebComponent';\n\ndeclare namespace arjoJs {\n function isTablet(): boolean;\n}\n\nconst getModifiers = (model: BasedAtomicModel, baseClass: string) => {\n const classes = [baseClass];\n\n model.globalModifier?.forEach((m) => classes.push(m));\n model.styleModifier?.forEach((m) => classes.push(baseClass + '--' + m));\n\n if (model.theme) {\n classes.push('arjo-theme-' + model.theme);\n }\n\n if (model.headerTheme) {\n classes.push('arjo-theme-header-' + model.theme);\n }\n\n if (model.buttonTheme) {\n classes.push('arjo-theme-button-' + model.theme);\n }\n\n return classes.join(' ');\n};\n\nconst getCookie = (name: string) => {\n const cookies: { [name: string]: string } = {};\n\n document.cookie.split(';').forEach((cookie) => {\n const [name, value] = cookie.split('=');\n\n cookies[name.trim()] = value;\n });\n\n return cookies[name];\n};\n\nconst generatePagingData = (numberPages: number, currentPage: number, range = 5) => {\n const halfRange = Math.floor(range / 2);\n let start = 0,\n end = 0;\n\n if (currentPage - halfRange < 1) {\n start = 1;\n\n end = numberPages < range ? numberPages : range;\n } else if (numberPages - halfRange < currentPage) {\n start = numberPages - range < 1 ? 1 : numberPages - range + 1;\n\n end = numberPages;\n } else {\n start = currentPage - halfRange;\n\n end = currentPage + halfRange;\n }\n\n return Array.from({length: end - start + 1}, (_, i) => i + start);\n};\n\nconst roundNumber = (num: number | boolean | undefined | string | null, numberDecimalDigit: number = 2) => {\n if (typeof num !== 'number') {\n return '';\n }\n\n return Number(num).toFixed(numberDecimalDigit);\n};\n\nexport { getModifiers, getCookie, generatePagingData, roundNumber };\n\nexport function splitWords(s: string) {\n var re,\n match,\n output = [];\n re = /([A-Za-z]?)([a-z]+)/g;\n\n match = re.exec(s);\n while (match) {\n output.push([match[1].toUpperCase(), match[2]].join(''));\n match = re.exec(s);\n }\n\n return output;\n}\n\nexport const pascalToString = (s: string) => {\n const stringSplit = splitWords(s);\n\n return stringSplit.join(' ');\n};\n\nexport function setPositionSticky(element: HTMLElement | null, scrollY: number) {\n if (!arjoJs.isTablet() || !element) {\n return;\n }\n\n const minTop = window.innerHeight - 20 - (element.offsetHeight || 0);\n const maxTop =\n parseInt(document.body.style.getPropertyValue('--header-height') || document.documentElement.style.getPropertyValue('--header-height')) + 20;\n\n if (minTop > maxTop) {\n element?.style?.setProperty('--top', `${maxTop}px`);\n\n return;\n }\n\n const rect = element?.getBoundingClientRect();\n const scrollValue = window.scrollY - scrollY;\n const stickyPosition = rect.top - scrollValue;\n const top = stickyPosition < minTop ? minTop : stickyPosition > maxTop ? maxTop : stickyPosition;\n\n element?.style?.setProperty('--top', `${top}px`);\n\n return {\n scrollY: window.scrollY,\n };\n}\n\nexport const viteAbsoluteUrl = (path: string, addExtension = false): string => {\n if (/^https?:\\/\\//gi.test(path)) {\n return path;\n }\n const baseUrl = import.meta.env.BASE_URL;\n const normalizedRemain =\n (path?.startsWith('/') ? path : '/' + path) + (addExtension && !path.endsWith('/') ? import.meta.env.VITE_PATH_EXTENSION : '');\n if (!baseUrl) {\n return normalizedRemain;\n }\n\n if (!baseUrl.endsWith('/')) {\n return baseUrl + normalizedRemain;\n }\n\n const len = baseUrl.length;\n return baseUrl.substring(0, len - 1) + normalizedRemain;\n};\n\nexport const getMetaData = () => {\n return typeof metaData !== 'undefined' ? metaData : undefined;\n}\n\nexport const dispatchCustomEvent = ({ eventName, eventDict }: { eventName: string; eventDict?: CustomEventInit }) => {\n const event = new CustomEvent(eventName, eventDict);\n\n document.dispatchEvent(event);\n};\n\nconst getWebComponentRootNode = (tagName?: string) => {\n if (!tagName) return document;\n\n const element = document.querySelectorAll(tagName);\n\n if (!element?.length) return document;\n\n return element;\n};\n\nexport const createWebComponentInstances = (ComponentFactory: new (...args: any[]) => T, componentName: string) => {\n let instance: T | undefined = undefined;\n\n const rootNode = getWebComponentRootNode(componentName);\n if (rootNode instanceof Document) {\n instance = new ComponentFactory(rootNode);\n } else if (rootNode.length) {\n rootNode.forEach((webComponent) => {\n if (webComponent.shadowRoot) {\n instance = new ComponentFactory(webComponent.shadowRoot);\n }\n });\n }\n\n return instance;\n};\n\nexport const getOriginHref = () => {\n return `${location.origin}${location.pathname}`;\n};\n"],"names":["getModifiers","model","baseClass","_a","_b","classes","m","generatePagingData","numberPages","currentPage","range","halfRange","start","end","_","i","roundNumber","num","numberDecimalDigit","splitWords","s","re","match","output","pascalToString","setPositionSticky","element","scrollY","minTop","maxTop","rect","scrollValue","stickyPosition","top","viteAbsoluteUrl","path","addExtension","baseUrl","normalizedRemain","len","getMetaData","dispatchCustomEvent","eventName","eventDict","event","getWebComponentRootNode","tagName","createWebComponentInstances","ComponentFactory","componentName","instance","rootNode","webComponent","getOriginHref"],"mappings":"AAOM,MAAAA,EAAe,CAACC,EAAyBC,IAAsB,CAA/D,IAAAC,EAAAC,EACE,MAAAC,EAAU,CAACH,CAAS,EAE1B,OAAAC,EAAAF,EAAM,iBAAN,MAAAE,EAAsB,QAASG,GAAMD,EAAQ,KAAKC,CAAC,IAC7CF,EAAAH,EAAA,gBAAA,MAAAG,EAAe,QAASE,GAAMD,EAAQ,KAAKH,EAAY,KAAOI,CAAC,GAEjEL,EAAM,OACAI,EAAA,KAAK,cAAgBJ,EAAM,KAAK,EAGtCA,EAAM,aACAI,EAAA,KAAK,qBAAuBJ,EAAM,KAAK,EAG7CA,EAAM,aACAI,EAAA,KAAK,qBAAuBJ,EAAM,KAAK,EAG1CI,EAAQ,KAAK,GAAG,CACzB,EAcME,EAAqB,CAACC,EAAqBC,EAAqBC,EAAQ,IAAM,CAClF,MAAMC,EAAY,KAAK,MAAMD,EAAQ,CAAC,EAClC,IAAAE,EAAQ,EACVC,EAAM,EAEJ,OAAAJ,EAAcE,EAAY,GACpBC,EAAA,EAEFC,EAAAL,EAAcE,EAAQF,EAAcE,GACjCF,EAAcG,EAAYF,GACnCG,EAAQJ,EAAcE,EAAQ,EAAI,EAAIF,EAAcE,EAAQ,EAEtDG,EAAAL,IAENI,EAAQH,EAAcE,EAEtBE,EAAMJ,EAAcE,GAGf,MAAM,KAAK,CAAC,OAAQE,EAAMD,EAAQ,CAAC,EAAG,CAACE,EAAGC,IAAMA,EAAIH,CAAK,CAClE,EAEMI,EAAc,CAACC,EAAmDC,EAA6B,IAC/F,OAAOD,GAAQ,SACV,GAGF,OAAOA,CAAG,EAAE,QAAQC,CAAkB,EAKxC,SAASC,EAAWC,EAAW,CAChC,IAAAC,EACFC,EACAC,EAAS,GAIX,IAHKF,EAAA,uBAEGC,EAAAD,EAAG,KAAKD,CAAC,EACVE,GACLC,EAAO,KAAK,CAACD,EAAM,CAAC,EAAE,YAAA,EAAeA,EAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAC/CA,EAAAD,EAAG,KAAKD,CAAC,EAGZ,OAAAG,CACT,CAEa,MAAAC,EAAkBJ,GACTD,EAAWC,CAAC,EAEb,KAAK,GAAG,EAGb,SAAAK,EAAkBC,EAA6BC,EAAiB,CAtF1E,IAAAxB,EAAAC,EAuFJ,GAAI,CAAC,OAAO,SAAS,GAAK,CAACsB,EACzB,OAGF,MAAME,EAAS,OAAO,YAAc,IAAMF,EAAQ,cAAgB,GAC5DG,EACJ,SAAS,SAAS,KAAK,MAAM,iBAAiB,iBAAiB,GAAK,SAAS,gBAAgB,MAAM,iBAAiB,iBAAiB,CAAC,EAAI,GAE5I,GAAID,EAASC,EAAQ,EACnB1B,EAAAuB,GAAA,YAAAA,EAAS,QAAT,MAAAvB,EAAgB,YAAY,QAAS,GAAG0B,CAAM,MAE9C,MACF,CAEM,MAAAC,EAAOJ,GAAA,YAAAA,EAAS,wBAChBK,EAAc,OAAO,QAAUJ,EAC/BK,EAAiBF,EAAK,IAAMC,EAC5BE,EAAMD,EAAiBJ,EAASA,EAASI,EAAiBH,EAASA,EAASG,EAElF,OAAA5B,EAAAsB,GAAA,YAAAA,EAAS,QAAT,MAAAtB,EAAgB,YAAY,QAAS,GAAG6B,CAAG,MAEpC,CACL,QAAS,OAAO,OAAA,CAEpB,CAEO,MAAMC,EAAkB,CAACC,EAAcC,EAAe,KAAkB,CACzE,GAAA,iBAAiB,KAAKD,CAAI,EACrB,OAAAA,EAEH,MAAAE,EAAU,IACVC,GACHH,GAAA,MAAAA,EAAM,WAAW,KAAOA,EAAO,IAAMA,IAASC,GAAgB,CAACD,EAAK,SAAS,GAAG,EAAI,IAKvF,GAAI,CAACE,EAAQ,SAAS,GAAG,EACvB,OAAOA,EAAUC,EAGnB,MAAMC,EAAMF,EAAQ,OACpB,OAAOA,EAAQ,UAAU,EAAGE,EAAM,CAAC,EAAID,CACzC,EAEaE,EAAc,IAClB,OAAO,SAAa,IAAc,SAAW,OAGzCC,EAAsB,CAAC,CAAE,UAAAC,EAAW,UAAAC,KAAoE,CACnH,MAAMC,EAAQ,IAAI,YAAYF,EAAWC,CAAS,EAElD,SAAS,cAAcC,CAAK,CAC9B,EAEMC,EAA2BC,GAAqB,CACpD,GAAI,CAACA,EAAgB,OAAA,SAEf,MAAApB,EAAU,SAAS,iBAAiBoB,CAAO,EAEjD,OAAKpB,GAAA,MAAAA,EAAS,OAEPA,EAFsB,QAG/B,EAEaqB,EAA8B,CAAyBC,EAA6CC,IAA0B,CACzI,IAAIC,EAEE,MAAAC,EAAWN,EAAwBI,CAAa,EACtD,OAAIE,aAAoB,SACXD,EAAA,IAAIF,EAAiBG,CAAQ,EAC/BA,EAAS,QACTA,EAAA,QAASC,GAAiB,CAC7BA,EAAa,aACJF,EAAA,IAAIF,EAAiBI,EAAa,UAAU,EACzD,CACD,EAGIF,CACT,EAEaG,EAAgB,IACpB,GAAG,SAAS,MAAM,GAAG,SAAS,QAAQ"}