@tnlmedia/inkmagine-gui 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"inkmagine-gui.es.js","sources":["../src/helper/useAttrs.ts","../src/components/InkSpinner.vue","../src/components/InkButton.vue","../src/components/InkBadge.vue","../src/components/ink-menu/InkMenu.vue","../src/components/ink-menu/InkMenuButton.vue","../src/components/ink-menu/InkMenuItems.vue","../src/components/ink-menu/InkMenuItem.vue","../src/components/ink-menu/InkMenuItemsWrapper.vue","../src/components/ink-disclosure/InkDisclosure.vue","../src/components/ink-disclosure/InkDisclosureButton.vue","../src/components/ink-disclosure/InkDisclosurePanel.vue","../src/images/logo-light-sm.svg","../src/helper/handle-sidebar-toggler-click.ts","../node_modules/dayjs/plugin/utc.js","../node_modules/dayjs/plugin/timezone.js","../src/helper/dayjs.ts","../src/helper/i18n.ts","../src/components/InkNavbar.vue","../src/images/logo-light-lg.svg","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/floating-vue/dist/floating-vue.mjs","../src/components/ink-tooltip/InkVTooltip.vue","../src/components/ink-sidebar/InkSidebar.vue","../src/components/input/InkFieldMessage.vue","../src/components/input/field-data-interface.ts","../src/components/input/input-default-value.ts","../src/components/input/InkField.vue","../src/components/input/InputWrapper.vue","../src/components/input/InputInner.vue","../src/components/input/InkErrorMessage.vue","../src/components/input/InputFrame.vue","../src/components/input/InkText.vue","../src/components/input/InkUrl.vue","../src/components/input/InkTextarea.vue","../src/components/input/InkSelect.vue","../src/components/input/InkHashtag.vue","../src/components/input/InkCheckbox.vue","../src/components/input/InkRadio.vue","../src/components/input/InkSwitch.vue","../src/components/input/InkElConfigProvider.vue","../src/components/input/InkDatetime.vue","../src/components/input/InkDatetimerng.vue","../src/helper/set-font.ts","../src/helper/useDefineRule.ts","../src/index.ts"],"sourcesContent":["import { useAttrs, computed } from \"vue\"\nexport const useRestAttrs = () => {\n const attrs = useAttrs()\n return computed(() => {\n const { class: className, ...restAttrs } = attrs\n return restAttrs \n }\n )\n}","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-spinner.scss'\nimport { computed } from 'vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\n\ninterface InkSpinnerProps {\n size?: 'md'\n theme?: 'gray'\n}\nconst props = withDefaults(defineProps<InkSpinnerProps>(), {\n theme: 'gray'\n})\nconst restAttrs = useRestAttrs()\nconst classList = computed(() => {\n const list = []\n if(props.size) list.push(`tw-spinner-${props.size}`)\n if(props.theme) list.push(`tw-spinner-grow-${props.theme}`)\n return list\n})\n</script>\n<template>\n <div \n v-bind=\"restAttrs\"\n :class=\"['tw-spinner-grow',classList]\"\n ></div>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-button.scss'\nimport { computed } from 'vue'\nimport InkSpinner from '@/components/InkSpinner.vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\n\ninterface ButtonProps { \n as?: 'a' | 'button' | 'router-link',\n type?: 'button' | 'submit' | 'reset',\n size?: 'md'| 'xs',\n variant?: 'base' | 'txt' | 'icon',\n theme?: 'primary' | 'info' | 'gray' | 'outline-gray' | 'link' | 'transparent',\n disabled?: boolean,\n loading?: boolean\n}\nconst props = withDefaults(defineProps<ButtonProps>(), {\n as: 'button',\n type: 'button',\n variant: 'base',\n theme: 'transparent',\n disabled: false,\n loading: false\n})\nconst restAttrs = useRestAttrs()\nconst classList = computed(() => {\n const list = []\n switch (props.variant) { \n case 'icon':\n props.size ? list.push(`tw-btn-icon-${props.size}`) : list.push(`tw-btn-icon`);\n break;\n default:\n if(props.variant) list.push(`tw-btn-${props.variant}`)\n if (props.size) list.push(`tw-btn-${props.size}`);\n break;\n }\n if (props.loading) {\n props.variant === 'base' ? '' : list.push(`tw-btn-outline-gray`)\n } else {\n props.theme ? list.push(`tw-btn-${props.theme}`) : list.push(`tw-btn-transparent`) \n }\n if (props.as !== 'button' && props.disabled) list.push('tw-disabled')\n\n return list\n})\n</script>\n<template>\n <component \n v-bind=\"restAttrs\"\n :is=\"as\"\n :type=\"as === 'button' ? type : undefined\"\n :disabled=\"disabled\"\n :class=\"classList\"\n >\n <InkSpinner size=\"md\" v-if=\"loading\" />\n <slot v-else>Button</slot>\n </component>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-badge.scss'\nimport { computed } from 'vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\n\ninterface ButtonProps { \n as?: 'span' | 'button',\n type?: 'button',\n theme?: 'info',\n disabled?: boolean,\n}\nconst props = withDefaults(defineProps<ButtonProps>(), {\n as: 'span',\n theme: 'info',\n disabled: false,\n})\nconst restAttrs = useRestAttrs()\nconst classList = computed(() => {\n const list = []\n list.push(`tw-badge tw-badge-${props.theme}`)\n if (props.as !== 'button' && props.disabled) list.push('tw-disabled')\n\n return list\n})\n</script>\n<template>\n <component \n v-bind=\"restAttrs\"\n :is=\"as\"\n :type=\"as === 'button' ? type : undefined\"\n :disabled=\"disabled\"\n :class=\"classList\"\n >\n <slot>badge</slot>\n </component>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-menu.scss'\nimport { type Component } from 'vue'\nimport { Menu } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\n\ninterface MenuProps { \n as?: string | Component,\n}\nconst props = withDefaults(defineProps<MenuProps>(), {\n as: 'div'\n})\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <Menu \n v-bind=\"restAttrs\"\n :as=\"as\"\n v-slot=\"slotProps\"\n class=\"tw-menu\"\n >\n <slot v-bind=\"slotProps\" />\n </Menu>\n</template>\n\n","<script setup lang=\"ts\">\nimport { type Component } from 'vue'\nimport { MenuButton } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\ninterface MenuButtonProps { \n as?: string | Component,\n}\nconst props = withDefaults(defineProps<MenuButtonProps>(), {\n as: 'template'\n})\n</script>\n<template>\n <MenuButton\n v-bind=\"restAttrs\"\n :as=\"as\"\n v-slot=\"slotProps\"\n >\n <slot v-bind=\"slotProps\" />\n </MenuButton>\n</template>","<script setup lang=\"ts\">\nimport { MenuItems } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <MenuItems \n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n class=\"tw-menu-items\"\n >\n <slot v-bind=\"slotProps\" />\n </MenuItems>\n</template>\n\n","<script setup lang=\"ts\">\nimport { useRestAttrs } from '@/helper/useAttrs'\nimport { MenuItem } from '@headlessui/vue'\ninterface MenuItemProps {\n as?: string,\n}\nconst props = withDefaults(defineProps<MenuItemProps>(), {\n as: 'template',\n})\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <MenuItem\n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n class=\"menu-item-link\"\n :as=\"as\"\n >\n <slot v-bind=\"slotProps\" />\n </MenuItem>\n</template>","<script setup lang=\"ts\">\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <div\n v-bind=\"restAttrs\"\n class=\"menu-items-wrapper\"\n >\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { Disclosure } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <Disclosure\n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n >\n <slot v-bind=\"slotProps\" />\n </Disclosure>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-disclosure.scss'\nimport { DisclosureButton } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\ninterface DisclosureButtonProps {\n as?: string,\n type?: string,\n}\nconst props = withDefaults(defineProps<DisclosureButtonProps>(), {\n as: 'button',\n type: 'button',\n})\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <DisclosureButton\n :type=\" as === 'button' ? type : undefined\"\n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n class=\"tw-disclosure-button tw-disclosure-button-gray tw-text-xlmix\"\n :as=\"as\"\n >\n <slot v-bind=\"slotProps\" />\n <i\n :class=\"[\n 'far fa-angle-down tw-text-base tw-text-gray-700',\n { 'tw-rotate-180': slotProps.open },\n ]\"\n ></i>\n </DisclosureButton>\n</template>","<script setup lang=\"ts\">\nimport { DisclosurePanel } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <DisclosurePanel\n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n class=\"tw-disclosure-panel\"\n >\n <slot v-bind=\"slotProps\" />\n </DisclosurePanel>\n</template>","export default \"data:image/svg+xml,%3csvg%20width='59'%20height='58'%20viewBox='0%200%2059%2058'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18.5541%2017.8118C20.722%2017.8118%2022.4793%2016.051%2022.4793%2013.879C22.4793%2011.707%2020.722%209.94629%2018.5541%209.94629C16.3863%209.94629%2014.6289%2011.707%2014.6289%2013.879C14.6289%2016.051%2016.3863%2017.8118%2018.5541%2017.8118Z'%20fill='%234C3FFF'/%3e%3cpath%20d='M43.695%2038.4847C43.3312%2037.9951%2043.1751%2037.3813%2043.2607%2036.777V27.0641C43.2607%2025.1867%2042.7417%2023.8183%2041.7037%2022.959C40.708%2022.1023%2039.435%2021.6383%2038.1226%2021.6536C36.8837%2021.6504%2035.6757%2022.0414%2034.6727%2022.7701C33.8841%2023.3407%2033.1805%2024.0208%2032.5831%2024.7899H32.3209C32.0155%2024.0203%2031.5521%2023.3238%2030.9605%2022.7455C29.9303%2021.9623%2028.654%2021.5749%2027.3631%2021.6536C25.8331%2021.6433%2024.345%2022.1545%2023.1433%2023.1034C21.9416%2024.0523%2021.0976%2025.3824%2020.75%2026.8753L20.3239%2026.6454C20.4936%2025.3121%2021.0362%2024.054%2021.8891%2023.0164V22.0887H14.5139V23.0164C15.0866%2023.0671%2015.6314%2023.2872%2016.0791%2023.6487C16.3992%2024.1325%2016.5386%2024.714%2016.4724%2025.2907V36.6538C16.5085%2036.9815%2016.4768%2037.3132%2016.3796%2037.6281C16.2823%2037.9431%2016.1215%2038.2347%2015.907%2038.4847C15.4947%2038.7728%2015.0145%2038.9483%2014.5139%2038.9938V39.9133H23.7083V38.9938C23.1948%2038.9309%2022.7063%2038.7358%2022.2906%2038.4273C21.9708%2037.9436%2021.8369%2037.3602%2021.9137%2036.7852V26.7686C21.9137%2026.0789%2023.2904%2024.1905%2025.1915%2024.133C25.5413%2024.1022%2025.8921%2024.1783%2026.1979%2024.3512C26.5036%2024.5242%2026.7499%2024.7859%2026.9042%2025.1019C27.2148%2025.8325%2027.3576%2026.6238%2027.3221%2027.4172V36.777C27.405%2037.376%2027.249%2037.9837%2026.8878%2038.4683C26.4594%2038.7656%2025.9576%2038.9389%2025.4373%2038.9691V39.8887H34.4514V38.9691C33.9403%2038.9068%2033.4544%2038.7114%2033.042%2038.4026C32.7179%2037.9208%2032.5836%2037.3358%2032.665%2036.7605V26.4401C32.665%2026.202%2033.0256%2025.7751%2033.7631%2025.1676C34.3219%2024.6319%2035.0488%2024.3069%2035.82%2024.248C36.1502%2024.2096%2036.4844%2024.2665%2036.7835%2024.4119C37.0825%2024.5574%2037.3339%2024.7853%2037.508%2025.069C37.839%2025.8027%2037.9907%2026.6048%2037.9506%2027.409V36.7688C38.0234%2037.3494%2037.874%2037.936%2037.5326%2038.4108C37.0983%2038.7109%2036.5919%2038.8894%2036.0658%2038.9281V39.8476H45.2192V38.9281C44.6794%2038.9287%2044.1506%2038.7749%2043.695%2038.4847Z'%20fill='black'/%3e%3cpath%20d='M47.5385%2043.7148H12.1213V46.1451H47.5385V43.7148Z'%20fill='%234C3FFF'/%3e%3c/svg%3e\"","import Cookies from 'js-cookie';\n\nexport const handleSidebarTogglerClick = (): void => {\n const isDesktop:boolean = window.innerWidth > 1024;\n\n document.body.classList.toggle(isDesktop ? 'sidebar-folded' : 'sidebar-open');\n\n if (isDesktop) {\n const isFolded = document.body.classList.contains('sidebar-folded') ? '1' : '0';\n Cookies.set('sidebar-folded', isFolded);\n }\n};\n","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","import dayjs, { OpUnitType } from 'dayjs'\n\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nexport default dayjs;\n\n// Format\nexport const formatUnixTime = (tz: string, time: number, format = 'YYYY-MM-DD HH:mm') => {\n return dayjs.unix(time).tz( tz ).format(format);\n}\nexport const formatValueOfTime = (tz: string, time: number | string | Date, format = 'YYYY-MM-DD HH:mm') => {\n return dayjs(time).tz( tz ).format(format);\n}\n// Timestamp\nexport const formatTimeToUnix = (time?: Date | string) => {\n // seconds\n return dayjs(time).unix();\n}\nexport const formatTimeToValueOf = (time?: Date) => {\n // milliseconds\n return dayjs(time).valueOf();\n}\n\n// UTC\nexport const utcTimezone = (timezone: string) => { \n return dayjs().tz(timezone).format('[UTC]Z');\n}\n\n// EndOf\nexport const convertUnixToEndOf = (time: number, unit:OpUnitType = 'day') => { \n return dayjs.unix(time).endOf(unit).unix();\n}\n\n// StartOf\nexport const convertUnixToStartOf = (time: number, unit:OpUnitType = 'day') => { \n return dayjs.unix(time).startOf(unit).unix();\n}\nexport const convertValueOfToStartOf = (time: number, unit:OpUnitType = 'day') => { \n return dayjs(time).startOf(unit).valueOf();\n}","import { createI18n } from 'vue-i18n'\nimport zh from '@/lang/zh-tw.json'\nimport en from '@/lang/en-us.json'\nimport jp from '@/lang/ja-jp.json'\nexport const inkI18n = createI18n({\n locale: 'en-us',\n fallbackLocale: 'en-us',\n legacy: false,\n messages: {\n 'zh-tw': zh,\n 'en-us': en,\n 'ja-jp': jp,\n }\n})\n\nexport const { t } = inkI18n.global","<script setup lang=\"ts\">\n import '@/scss/component/_ink-navbar.scss'\n import '@/scss/component/_user-default-img.scss'\n import { handleSidebarTogglerClick } from '@/helper/handle-sidebar-toggler-click'\n import { utcTimezone } from '@/helper/dayjs'\n import InkButton from '@/components/InkButton.vue'\n import InkMenu from '@/components/ink-menu/InkMenu.vue'\n import InkMenuButton from '@/components/ink-menu/InkMenuButton.vue'\n import InkMenuItems from '@/components/ink-menu/InkMenuItems.vue'\n import InkMenuItemsWrapper from '@/components/ink-menu/InkMenuItemsWrapper.vue'\n import InkMenuItem from '@/components/ink-menu/InkMenuItem.vue'\n import { t } from '@/helper/i18n'\n interface NavbarProps {\n timezone?: string\n user:{\n nickname: string;\n avatar: string;\n mail: string;\n }\n logoutUrl: string;\n }\n const props = defineProps <NavbarProps>();\n\n const apps = ['member', 'team', 'cabinet']\n const getHostname = (app: string) => {\n const hostname = window.location.hostname;\n let prefix = '';\n if(hostname.includes('sandbox') || hostname.includes('greenroom')){\n prefix = 'sandbox-';\n }\n if(hostname.includes('stage')){\n prefix = 'stage-';\n }\n\n return `//${prefix + app}.inkmaginecms.com`;\n};\n</script>\n<template>\n <nav id=\"top-navbar\" class=\"navbar top-navbar tw-z-[1011]\">\n <button type=\"button\" class=\"sidebar-toggler\" @click.prevent.stop=\"handleSidebarTogglerClick\">\n <i class=\"fas fa-bars\"></i>\n </button>\n <div class=\"navbar-content pl-0\">\n <img src=\"/src/images/logo-light-sm.svg\" class=\"navbar-content__logo\" alt=\"inkmagine logo\" />\n <ul class=\"navbar-nav tw-items-center\">\n <li v-if=\"timezone\" class=\"nav-item tw-text-xs tw-text-gray-700\">\n {{ utcTimezone(timezone) }}\n </li>\n <li class=\"nav-item\">\n <InkMenu>\n <InkMenuButton>\n <InkButton variant=\"txt\" theme=\"gray\">\n <i class=\"far fa-grip-horizontal tw-text-base tw-text-gray-700\"></i>{{ t('navbar.apps.service') }}\n </InkButton>\n </InkMenuButton>\n <InkMenuItems>\n <InkMenuItemsWrapper>\n <InkMenuItem>\n <a :href=\"`${getHostname('www')}/dashboard`\" target=\"_blank\">\n <div class=\"content\">\n <p class=\"tw-font-semibold tw-text-sm\">{{ t('navbar.apps.dashboard.label') }}</p>\n <p class=\"sub-text tw-text-mute tw-text-xs\">{{ t(`navbar.apps.dashboard.description`) }}</p>\n </div>\n </a>\n </InkMenuItem>\n <InkMenuItem v-for=\"app in apps\" :key=\"app\">\n <a :href=\"getHostname(app)\" target=\"_blank\">\n <div class=\"content\">\n <p class=\"tw-font-semibold tw-text-sm\">{{ t(`navbar.apps.${app}.label`) }}</p>\n <p class=\"sub-text tw-text-mute tw-text-xs\">{{ t(`navbar.apps.${app}.description`) }}</p>\n </div>\n </a>\n </InkMenuItem>\n </InkMenuItemsWrapper>\n </InkMenuItems>\n </InkMenu>\n </li>\n <li v-if=\"user.mail\" class=\"nav-item\">\n <InkMenu>\n <InkMenuButton>\n <button type=\"button\" class=\"user-default-img x30\">\n <img v-if=\"user.avatar\" :src=\"user.avatar\" />\n <p v-else>{{ user . mail . slice(0, 1) . toLocaleUpperCase() }}</p>\n </button>\n </InkMenuButton>\n <InkMenuItems>\n <div class=\"tw-border-b tw-p-5 tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-y-3\">\n <div class=\"user-default-img x30\">\n <img v-if=\"user.avatar\" :src=\"user.avatar\" />\n <p v-else>{{ user . mail . slice(0, 1) . toLocaleUpperCase() }}</p>\n </div>\n <div class=\"info text-center\">\n <p class=\"name tw-font-semibold mb-0\">{{ user . nickname }}</p>\n <p class=\"email tw-text-mute tw-break-all tw-text-xs\">{{ user . mail }}</p>\n </div>\n </div>\n <InkMenuItemsWrapper class=\"tw-pt-3\">\n <InkMenuItem>\n <a :href=\"`${getHostname('member')}/profile`\">\n <i class=\"fal fa-user fa-fw mr-1\"></i>\n {{ t('navbar.profile') }}\n </a>\n </InkMenuItem>\n <InkMenuItem>\n <a :href=\"logoutUrl\">\n <i class=\"fal fa-sign-out fa-fw icon\"></i>\n <span>{{ t('logout') }}</span>\n </a>\n </InkMenuItem>\n </InkMenuItemsWrapper>\n </InkMenuItems>\n </InkMenu>\n </li>\n </ul>\n </div>\n </nav>\n</template>\n","export default \"data:image/svg+xml,%3csvg%20width='178'%20height='60'%20viewBox='0%200%20178%2060'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M24.1451%2037.8555V38.3153V38.7832V39.243V40.179H50.6301V39.243V38.7832V38.3153V37.8555H24.1451Z'%20fill='%234C3FFF'/%3e%3cpath%20d='M31.2663%2023.1507C30.5229%2023.1182%2029.7834%2023.2752%2029.117%2023.6069C28.4506%2023.9386%2027.8791%2024.4341%2027.4558%2025.0472V23.4052H24.055V35.4333H27.4558V29.3823C27.4225%2028.9858%2027.4767%2028.5868%2027.6148%2028.2136C27.7528%2027.8405%2027.9712%2027.5024%2028.2543%2027.2234C28.5375%2026.9443%2028.8786%2026.7312%2029.2533%2026.5992C29.6279%2026.4671%2030.0271%2026.4195%2030.4222%2026.4594C32.2578%2026.755%2032.5856%2028.6023%2032.5856%2030.1623V35.4333H35.9864V29.3823C35.9864%2024.5218%2033.6673%2023.1507%2031.2663%2023.1507Z'%20fill='black'/%3e%3cpath%20d='M49.86%2023.3809H45.312L41.3949%2027.4286V23.3809H38.0106V35.409H41.3949V31.8293L42.3455%2030.8769L45.8692%2035.409H50.2943L44.722%2028.5123L49.86%2023.3809Z'%20fill='black'/%3e%3cpath%20d='M12.6317%2023.1514V24.0299C12.9489%2024.0794%2013.2596%2024.1648%2013.5576%2024.2844L13.7789%2024.3911C13.8362%2024.4255%2013.8909%2024.464%2013.9428%2024.5061C14.1477%2024.7449%2014.3014%2025.0234%2014.3945%2025.3242C14.4875%2025.625%2014.5179%2025.9418%2014.4836%2026.2549V37.0104C14.5187%2037.3222%2014.4887%2037.6379%2014.3956%2037.9376C14.3025%2038.2372%2014.1483%2038.5142%2013.9428%2038.751C13.8912%2038.7959%2013.8364%2038.8371%2013.7789%2038.8742L13.5576%2038.9809C13.2583%2039.0967%2012.9481%2039.182%2012.6317%2039.2354V40.1139H21.3999V39.2354C20.9121%2039.1767%2020.4484%2038.9897%2020.056%2038.6935C19.7537%2038.2364%2019.6257%2037.6856%2019.6954%2037.1417V26.1235C19.6257%2025.5796%2019.7537%2025.0288%2020.056%2024.5717C20.4484%2024.2755%2020.9121%2024.0886%2021.3999%2024.0299V23.1514H12.6317Z'%20fill='black'/%3e%3cpath%20d='M99.8473%2038.2743C99.7244%2038.3321%2099.5896%2038.3603%2099.4539%2038.3565C99.3616%2038.3511%2099.272%2038.3227%2099.1933%2038.274C99.1147%2038.2252%2099.0493%2038.1576%2099.0032%2038.0773C98.8592%2037.883%2098.7842%2037.646%2098.7902%2037.404V28.4712C98.7902%2026.2818%2098.0964%2024.782%2096.7087%2023.9719C95.1015%2023.118%2093.2987%2022.7019%2091.4806%2022.765C89.7576%2022.704%2088.0527%2023.1338%2086.5638%2024.0048C85.9564%2024.3284%2085.449%2024.8124%2085.0965%2025.4043C84.7441%2025.9963%2084.56%2026.6736%2084.5643%2027.3628C84.5443%2027.702%2084.601%2028.0413%2084.7301%2028.3555C84.8592%2028.6696%2085.0575%2028.9506%2085.31%2029.1773C85.8182%2029.5983%2086.4618%2029.82%2087.121%2029.8013C87.7179%2029.8181%2088.3004%2029.6168%2088.7599%2029.2348C88.9958%2029.0349%2089.1811%2028.7819%2089.3008%2028.4965C89.4204%2028.2111%2089.471%2027.9014%2089.4483%2027.5927C89.4555%2027.3118%2089.4053%2027.0324%2089.3008%2026.7717C89.1978%2026.5277%2089.0627%2026.2985%2088.8993%2026.0902L88.678%2025.8439C88.5942%2025.7493%2088.5226%2025.6444%2088.4649%2025.5319C88.4113%2025.4194%2088.3859%2025.2953%2088.3912%2025.1707C88.4016%2024.9719%2088.4669%2024.7799%2088.5797%2024.6161C88.6926%2024.4523%2088.8486%2024.3231%2089.0304%2024.2429C89.5343%2023.9763%2090.0999%2023.8487%2090.6693%2023.8734C91.1137%2023.8281%2091.5627%2023.8779%2091.9865%2024.0194C92.4103%2024.1609%2092.7993%2024.391%2093.1277%2024.6945C93.6514%2025.4029%2093.8964%2026.2797%2093.816%2027.1576V29.8423C91.2071%2030.506%2088.691%2031.4934%2086.3261%2032.7816C85.6047%2033.1574%2085.0001%2033.7243%2084.5781%2034.4207C84.1562%2035.1171%2083.9332%2035.9161%2083.9333%2036.7308C83.8872%2037.3012%2083.9827%2037.8742%2084.2115%2038.3985C84.4403%2038.9229%2084.7952%2039.3823%2085.2444%2039.7358C86.0555%2040.3534%2087.0447%2040.6905%2088.0634%2040.6964C88.8478%2040.6895%2089.6257%2040.5536%2090.3661%2040.2941C91.6739%2039.8612%2092.8576%2039.1175%2093.816%2038.1265C93.8891%2038.7174%2094.1057%2039.2812%2094.447%2039.7686C94.7434%2040.1042%2095.1144%2040.3654%2095.53%2040.5308C95.9457%2040.6963%2096.3944%2040.7614%2096.8398%2040.721C97.4364%2040.7229%2098.0281%2040.6143%2098.5853%2040.4008C99.5149%2040.0213%20100.335%2039.4144%20100.97%2038.6356L100.413%2037.8638C100.247%2038.03%20100.056%2038.1686%2099.8473%2038.2743ZM93.7259%2036.5173C93.4191%2036.8876%2093.076%2037.2259%2092.7016%2037.5272C92.224%2037.8726%2091.6516%2038.0618%2091.0626%2038.0691C90.8234%2038.0619%2090.5887%2038.0023%2090.3749%2037.8945C90.1611%2037.7867%2089.9735%2037.6333%2089.8252%2037.4451C89.4292%2036.9208%2089.237%2036.27%2089.2844%2035.6142C89.2855%2034.9396%2089.4593%2034.2766%2089.7893%2033.6887C90.1193%2033.1007%2090.5944%2032.6075%2091.1692%2032.2562C91.9547%2031.7208%2092.8328%2031.3365%2093.7587%2031.1232L93.7259%2036.5173Z'%20fill='black'/%3e%3cpath%20d='M116.318%2038.3071C115.225%2037.9003%20114.067%2037.6971%20112.901%2037.7077H110.508H109.148C108.558%2037.7077%20108.173%2037.7078%20107.993%2037.6421C107.686%2037.6072%20107.399%2037.4748%20107.173%2037.2644C106.969%2037.0406%20106.861%2036.7461%20106.87%2036.4434C106.872%2036.2083%20106.929%2035.9769%20107.036%2035.7675C107.142%2035.558%20107.296%2035.3763%20107.485%2035.2365C107.804%2034.9462%20108.194%2034.7451%20108.615%2034.6535C108.785%2034.6423%20108.954%2034.6423%20109.123%2034.6535C109.238%2034.6535%20109.484%2034.6535%20109.853%2034.6535C111.315%2034.696%20112.771%2034.462%20114.147%2033.9638C115.14%2033.6518%20116%2033.0178%20116.594%2032.1616C117.187%2031.3054%20117.48%2030.2757%20117.425%2029.2347C117.431%2028.5373%20117.3%2027.8454%20117.04%2027.1985C116.784%2026.5827%20116.408%2026.0244%20115.933%2025.5565H118.916V23.5942H114.065C113.535%2023.3721%20112.986%2023.1964%20112.426%2023.0688C111.645%2022.8984%20110.848%2022.8157%20110.049%2022.8224C108.098%2022.7185%20106.171%2023.2991%20104.6%2024.4645C103.965%2024.9535%20103.452%2025.5845%20103.104%2026.3073C102.755%2027.0301%20102.58%2027.8245%20102.592%2028.6271C102.561%2029.863%20102.967%2031.0702%20103.74%2032.0344C104.551%2032.9971%20105.591%2033.7397%20106.763%2034.1938V34.4483C105.794%2034.7929%20104.894%2035.3102%20104.108%2035.9754C103.69%2036.2777%20103.349%2036.6747%20103.112%2037.1341C102.876%2037.5935%20102.751%2038.1023%20102.748%2038.6191C102.732%2039.0079%20102.802%2039.3955%20102.952%2039.7544C103.102%2040.1133%20103.329%2040.4348%20103.617%2040.6963C104.088%2041.0566%20104.618%2041.3342%20105.182%2041.5173V41.7636C104.312%2041.8269%20103.499%2042.2169%20102.904%2042.8556C102.506%2043.3128%20102.275%2043.8917%20102.248%2044.4977C102.248%2045.8551%20103.278%2046.8158%20105.338%2047.3795C106.796%2047.7393%20108.294%2047.9077%20109.795%2047.8804C111.573%2047.9305%20113.347%2047.692%20115.048%2047.1743C117.687%2046.2794%20118.998%2044.6291%20118.998%2042.2481C119.054%2041.3859%20118.82%2040.5298%20118.335%2039.8158C117.849%2039.1017%20117.14%2038.5707%20116.318%2038.3071ZM108.066%2025.1706C108.213%2024.7826%20108.482%2024.4532%20108.833%2024.2324C109.183%2024.0116%20109.596%2023.9115%20110.009%2023.9473C110.4%2023.9233%20110.79%2024.0198%20111.125%2024.2237C111.46%2024.4277%20111.726%2024.7294%20111.885%2025.0885C112.321%2026.2432%20112.508%2027.4771%20112.434%2028.7093C112.49%2029.9164%20112.315%2031.1231%20111.918%2032.2643C111.773%2032.6408%20111.512%2032.9613%20111.173%2033.1797C110.834%2033.3981%20110.435%2033.5031%20110.033%2033.4795C109.552%2033.4898%20109.082%2033.3314%20108.705%2033.0316C108.328%2032.7317%20108.067%2032.3093%20107.968%2031.8374C107.686%2030.8143%20107.564%2029.7534%20107.607%2028.6928C107.55%2027.5007%20107.705%2026.308%20108.066%2025.1706ZM113.549%2046.3204C112.439%2046.5569%20111.306%2046.6643%20110.172%2046.6406C108.966%2046.707%20107.761%2046.4847%20106.657%2045.992C106.304%2045.8429%20106.001%2045.5946%20105.786%2045.2769C105.571%2044.9593%20105.452%2044.586%20105.444%2044.2021C105.447%2043.7417%20105.606%2043.296%20105.895%2042.9377C106.135%2042.6326%20106.41%2042.357%20106.714%2042.1167H112.754C113.639%2042.0396%20114.528%2042.2042%20115.327%2042.5929C115.558%2042.7513%20115.746%2042.9666%20115.87%2043.2181C115.995%2043.4697%20116.054%2043.7491%20116.04%2044.0297C116.048%2045.1545%20115.212%2045.9099%20113.549%2046.3204Z'%20fill='black'/%3e%3cpath%20d='M127.43%2037.2074V23.1924H120.367V24.0791C120.913%2024.1277%20121.433%2024.3394%20121.858%2024.6867C122.158%2025.1388%20122.292%2025.6819%20122.235%2026.222V37.0596C122.271%2037.3728%20122.241%2037.6899%20122.148%2037.991C122.055%2038.292%20121.9%2038.5704%20121.694%2038.8084C121.301%2039.0828%20120.844%2039.2498%20120.367%2039.2929V40.1796H129.135V39.2929C128.646%2039.2321%20128.181%2039.0485%20127.783%2038.7592C127.484%2038.3007%20127.359%2037.7502%20127.43%2037.2074Z'%20fill='black'/%3e%3cpath%20d='M147.794%2037.2068V28.2904C147.794%2026.2378%20147.36%2024.8038%20146.491%2023.9882C145.47%2023.1162%20144.15%2022.6774%20142.812%2022.7649C141.746%2022.7535%20140.7%2023.0562%20139.804%2023.6352C138.91%2024.2039%20138.148%2024.9568%20137.567%2025.8437V23.1918H130.593V24.0785C131.17%2024.0998%20131.722%2024.3169%20132.159%2024.6943C132.463%2025.1541%20132.599%2025.7053%20132.544%2026.2543V37.0919C132.581%2037.39%20132.558%2037.6925%20132.476%2037.9816C132.394%2038.2707%20132.256%2038.5405%20132.068%2038.775C131.64%2039.1028%20131.123%2039.2944%20130.585%2039.3251V40.2118H139.452V39.3251C138.966%2039.2647%20138.503%2039.081%20138.108%2038.7914C137.801%2038.3362%20137.673%2037.7838%20137.747%2037.2397V27.3873C138.083%2026.8616%20138.498%2026.3908%20138.977%2025.9915C139.455%2025.5496%20140.08%2025.3009%20140.73%2025.2936C141.101%2025.2613%20141.473%2025.3568%20141.782%2025.5643C142.092%2025.7717%20142.322%2026.0788%20142.435%2026.4349C142.633%2027.0435%20142.72%2027.6835%20142.689%2028.3232V37.2561C142.758%2037.7999%20142.63%2038.3508%20142.328%2038.8078C141.93%2039.0987%20141.465%2039.2825%20140.976%2039.3415V40.2282H149.63V39.3415C149.122%2039.3136%20148.631%2039.146%20148.212%2038.8571C148.034%2038.625%20147.905%2038.3589%20147.833%2038.0751C147.761%2037.7914%20147.748%2037.4959%20147.794%2037.2068Z'%20fill='black'/%3e%3cpath%20d='M165.208%2035.5651C164.685%2036.1727%20164.1%2036.7231%20163.462%2037.2071C162.75%2037.7349%20161.889%2038.0224%20161.004%2038.0282C159.195%2038.0282%20157.928%2037.0129%20157.201%2034.9822C156.779%2033.7452%20156.536%2032.454%20156.48%2031.1479H165.888C165.872%2030.6587%20165.828%2030.1707%20165.757%2029.6865C165.646%2028.5483%20165.341%2027.4375%20164.855%2026.4024C164.307%2025.3022%20163.453%2024.3841%20162.397%2023.7586C161.364%2023.1311%20160.179%2022.8016%20158.971%2022.8062C157.951%2022.7934%20156.939%2022.9958%20156.002%2023.4004C155.064%2023.8049%20154.222%2024.4025%20153.53%2025.1544C152.022%2026.7253%20151.269%2028.9147%20151.269%2031.7226C151.269%2034.859%20152.088%2037.1333%20153.645%2038.5619C155.01%2039.8998%20156.833%2040.666%20158.742%2040.7048C159.895%2040.7285%20161.038%2040.4899%20162.085%2040.0069C163.752%2039.1125%20165.127%2037.7556%20166.043%2036.0988L165.208%2035.5651ZM157.013%2025.4089C157.124%2024.9724%20157.38%2024.5868%20157.739%2024.3153C158.098%2024.0437%20158.538%2023.9024%20158.988%2023.9146C159.401%2023.8857%20159.812%2023.9984%20160.153%2024.2341C160.494%2024.4698%20160.745%2024.8145%20160.864%2025.2119C161.257%2026.6974%20161.428%2028.2329%20161.373%2029.7686H156.407C156.39%2028.2937%20156.592%2026.8246%20157.005%2025.4089H157.013Z'%20fill='black'/%3e%3cpath%20d='M80.7783%2038.8325C80.5079%2038.6026%2080.3686%2038.0607%2080.3686%2037.1904V27.9127C80.3686%2026.1229%2079.8742%2024.8147%2078.8853%2023.9882C77.931%2023.1731%2076.7139%2022.7326%2075.46%2022.7485C74.2835%2022.7481%2073.1367%2023.1186%2072.1821%2023.8076C71.4279%2024.3528%2070.7547%2025.0024%2070.1826%2025.737H69.9368C69.6429%2025.0064%2069.2022%2024.3441%2068.6421%2023.7912C67.6601%2023.0409%2066.441%2022.6706%2065.2085%2022.7485C63.7484%2022.7375%2062.328%2023.2239%2061.18%2024.1279C60.0321%2025.032%2059.2248%2026.2999%2058.8904%2027.7239L58.4807%2027.5105C58.6428%2026.246%2059.1536%2025.0518%2059.9557%2024.0621V23.1754H52.892V24.0621C53.439%2024.1087%2053.9591%2024.3206%2054.3834%2024.6697C54.6876%2025.1201%2054.8213%2025.6646%2054.7603%2026.205V37.0426C54.7961%2037.3558%2054.7664%2037.673%2054.6733%2037.974C54.5802%2038.2751%2054.4257%2038.5534%2054.2195%2038.7914C53.8273%2039.0672%2053.3693%2039.2343%2052.892%2039.2759V40.1626H61.6848V39.2759C61.1959%2039.2169%2060.7304%2039.0331%2060.3327%2038.7422C60.0304%2038.2851%2059.9024%2037.7343%2059.9721%2037.1904V27.6582C59.9721%2026.9932%2061.2833%2025.1951%2063.1025%2025.1377C63.4368%2025.1041%2063.7733%2025.1744%2064.0665%2025.3389C64.3596%2025.5033%2064.5952%2025.7541%2064.7414%2026.0572C65.041%2026.7562%2065.1783%2027.5141%2065.1429%2028.274V37.2069C65.1429%2038.0279%2065.0036%2038.5862%2064.725%2038.8489C64.3175%2039.1354%2063.8373%2039.3005%2063.3401%2039.3251V40.2119H71.9527V39.3251C71.4667%2039.2648%2071.0041%2039.0811%2070.6088%2038.7914C70.3022%2038.3362%2070.1739%2037.7838%2070.2482%2037.2397V27.3873C70.2482%2027.1574%2070.5924%2026.7551%2071.2971%2026.1722C71.8433%2025.6533%2072.5537%2025.3424%2073.3048%2025.2937C73.6285%2025.2514%2073.9575%2025.307%2074.2495%2025.4533C74.5415%2025.5995%2074.7832%2025.8298%2074.9437%2026.1147C75.2578%2026.8154%2075.401%2027.5808%2075.3617%2028.3479V37.2808C75.4396%2037.8426%2075.2987%2038.4129%2074.9683%2038.8736C74.5575%2039.168%2074.0714%2039.3389%2073.567%2039.3662V40.2529H82.3025V39.3662C81.7517%2039.3501%2081.2193%2039.1636%2080.7783%2038.8325Z'%20fill='black'/%3e%3cpath%20d='M121.71%2012.6996C122.325%2012.0777%20123.135%2011.6887%20124.004%2011.599C124.872%2011.5093%20125.745%2011.7245%20126.473%2012.2078C127.2%2012.6912%20127.738%2013.4126%20127.994%2014.2491C128.25%2015.0855%20128.208%2015.9849%20127.876%2016.7939C127.543%2017.6028%20126.941%2018.271%20126.171%2018.6844C125.402%2019.0977%20124.513%2019.2307%20123.656%2019.0604C122.8%2018.8901%20122.029%2018.4273%20121.475%2017.7508C120.922%2017.0744%20120.62%2016.2263%20120.621%2015.3515C120.613%2014.8585%20120.706%2014.3693%20120.894%2013.9134C121.081%2013.4575%20121.359%2013.0445%20121.71%2012.6996Z'%20fill='%234C3FFF'/%3e%3c/svg%3e\"","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}const i=Math.min,r=Math.max,l=Math.round;function c(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=t.offsetWidth,c=t.offsetHeight,s=l(n)!==r||l(i)!==c;return s&&(n=r,i=c),{width:n,height:i,fallback:s}}function s(t){return h(t)?(t.nodeName||\"\").toLowerCase():\"\"}let f;function u(){if(f)return f;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(f=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),f):navigator.userAgent}function a(t){return t instanceof n(t).HTMLElement}function d(t){return t instanceof n(t).Element}function h(t){return t instanceof n(t).Node}function p(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function g(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function m(t){return[\"table\",\"td\",\"th\"].includes(s(t))}function y(t){const e=/firefox/i.test(u()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function x(){return!/^((?!chrome|android).)*safari/i.test(u())}function w(t){return[\"html\",\"body\",\"#document\"].includes(s(t))}function v(t){return d(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!a(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=c(e);let s=(r?l(n.width):n.width)/o,f=(r?l(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),f&&Number.isFinite(f)||(f=1),{x:s,y:f}}function E(t,e,o,i){var r,l;void 0===e&&(e=!1),void 0===o&&(o=!1);const c=t.getBoundingClientRect(),s=v(t);let f=b;e&&(i?d(i)&&(f=L(i)):f=L(t));const u=s?n(s):window,a=!x()&&o;let h=(c.left+(a&&(null==(r=u.visualViewport)?void 0:r.offsetLeft)||0))/f.x,p=(c.top+(a&&(null==(l=u.visualViewport)?void 0:l.offsetTop)||0))/f.y,g=c.width/f.x,m=c.height/f.y;if(s){const t=n(s),e=i&&d(i)?n(i):i;let o=t.frameElement;for(;o&&i&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,h*=t.x,p*=t.y,g*=t.x,m*=t.y,h+=e.x,p+=e.y,o=n(o).frameElement}}return{width:g,height:m,top:p,right:h+g,bottom:p+m,left:h,x:h,y:p}}function R(t){return((h(t)?t.ownerDocument:t.document)||window.document).documentElement}function T(t){return d(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(R(t)).left+T(t).scrollLeft}function F(t){if(\"html\"===s(t))return t;const e=t.assignedSlot||t.parentNode||p(t)&&t.host||R(t);return p(e)?e.host:e}function W(t){const e=F(t);return w(e)?e.ownerDocument.body:a(e)&&g(e)?e:W(e)}function D(t,e){var o;void 0===e&&(e=[]);const i=W(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],g(i)?i:[]):e.concat(i,D(i))}function S(e,i,l){return\"viewport\"===i?t(function(t,e){const o=n(t),i=R(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=x();(t||!t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,l)):d(i)?t(function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=a(t)?L(t):{x:1,y:1};return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,l)):t(function(t){const e=R(t),n=T(t),i=t.ownerDocument.body,l=r(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),c=r(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let s=-n.scrollLeft+C(t);const f=-n.scrollTop;return\"rtl\"===o(i).direction&&(s+=r(e.clientWidth,i.clientWidth)-l),{width:l,height:c,x:s,y:f}}(R(e)))}function A(t){return a(t)&&\"fixed\"!==o(t).position?t.offsetParent:null}function H(t){const e=n(t);let i=A(t);for(;i&&m(i)&&\"static\"===o(i).position;)i=A(i);return i&&(\"html\"===s(i)||\"body\"===s(i)&&\"static\"===o(i).position&&!y(i))?e:i||function(t){let e=F(t);for(;a(e)&&!w(e);){if(y(e))return e;e=F(e)}return null}(t)||e}function O(t,e,n){const o=a(e),i=R(e),r=E(t,!0,\"fixed\"===n,e);let l={scrollLeft:0,scrollTop:0};const c={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==s(e)||g(i))&&(l=T(e)),a(e)){const t=E(e,!0);c.x=t.x+e.clientLeft,c.y=t.y+e.clientTop}else i&&(c.x=C(i));return{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:l,strategy:c}=t;const f=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=D(t).filter((t=>d(t)&&\"body\"!==s(t))),r=null;const l=\"fixed\"===o(t).position;let c=l?F(t):t;for(;d(c)&&!w(c);){const t=o(c),e=y(c);(l?e||r:e||\"static\"!==t.position||!r||![\"absolute\",\"fixed\"].includes(r.position))?r=t:i=i.filter((t=>t!==c)),c=F(c)}return e.set(t,i),i}(e,this._c):[].concat(n),u=[...f,l],a=u[0],h=u.reduce(((t,n)=>{const o=S(e,n,c);return t.top=r(o.top,t.top),t.right=i(o.right,t.right),t.bottom=i(o.bottom,t.bottom),t.left=r(o.left,t.left),t}),S(e,a,c));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=a(n),r=R(n);if(n===r)return e;let l={scrollLeft:0,scrollTop:0},c={x:1,y:1};const f={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==s(n)||g(r))&&(l=T(n)),a(n))){const t=E(n);c=L(n),f.x=t.x+n.clientLeft,f.y=t.y+n.clientTop}return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-l.scrollLeft*c.x+f.x,y:e.y*c.y-l.scrollTop*c.y+f.y}},isElement:d,getDimensions:function(t){return a(t)?c(t):t.getBoundingClientRect()},getOffsetParent:H,getDocumentElement:R,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||H,r=this.getDimensions;return{reference:O(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i&&!c,f=s||r?[...d(t)?D(t):t.contextElement?D(t.contextElement):[],...D(e)]:[];f.forEach((t=>{s&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let u,a=null;if(l){let o=!0;a=new ResizeObserver((()=>{o||n(),o=!1})),d(t)&&!c&&a.observe(t),d(t)||!t.contextElement||c||a.observe(t.contextElement),a.observe(e)}let h=c?E(t):null;return c&&function e(){const o=E(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,u=requestAnimationFrame(e)}(),n(),()=>{var t;f.forEach((t=>{s&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(u)}}const B=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,B as computePosition,D as getOverflowAncestors,P as platform};\n","import { defineComponent as O, openBlock as f, createElementBlock as T, normalizeClass as J, renderSlot as A, normalizeProps as ke, guardReactiveProps as Le, pushScopeId as De, popScopeId as Ie, nextTick as Fe, createBlock as M, withScopeId as Re, resolveComponent as P, normalizeStyle as W, withKeys as je, createElementVNode as w, Fragment as Ve, createCommentVNode as se, mergeProps as $e, withCtx as N, createVNode as ve, toDisplayString as We, ref as U, createApp as Ge, h as qe } from \"vue\";\nimport { offset as xe, autoPlacement as Ue, shift as Ye, flip as Xe, arrow as Ke, size as Je, computePosition as Qe, getOverflowAncestors as ne } from \"@floating-ui/dom\";\nfunction ye(e, t) {\n for (const o in t)\n Object.prototype.hasOwnProperty.call(t, o) && (typeof t[o] == \"object\" && e[o] ? ye(e[o], t[o]) : e[o] = t[o]);\n}\nconst h = {\n // Disable popper components\n disabled: !1,\n // Default position offset along main axis (px)\n distance: 5,\n // Default position offset along cross axis (px)\n skidding: 0,\n // Default container where the tooltip will be appended\n container: \"body\",\n // Element used to compute position and size boundaries\n boundary: void 0,\n // Skip delay & CSS transitions when another popper is shown, so that the popper appear to instanly move to the new position.\n instantMove: !1,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 150,\n // Triggers on the popper itself\n popperTriggers: [],\n // Positioning strategy\n strategy: \"absolute\",\n // Prevent overflow\n preventOverflow: !0,\n // Flip to the opposite placement if needed\n flip: !0,\n // Shift on the cross axis to prevent the popper from overflowing\n shift: !0,\n // Overflow padding (px)\n overflowPadding: 0,\n // Arrow padding (px)\n arrowPadding: 0,\n // Compute arrow overflow (useful to hide it)\n arrowOverflow: !0,\n /**\n * By default, compute autohide on 'click'.\n */\n autoHideOnMousedown: !1,\n // Themes\n themes: {\n tooltip: {\n // Default tooltip placement relative to target element\n placement: \"top\",\n // Default events that trigger the tooltip\n triggers: [\"hover\", \"focus\", \"touch\"],\n // Close tooltip on click on tooltip target\n hideTriggers: (e) => [...e, \"click\"],\n // Delay (ms)\n delay: {\n show: 200,\n hide: 0\n },\n // Update popper on content resize\n handleResize: !1,\n // Enable HTML content in directive\n html: !1,\n // Displayed when tooltip content is loading\n loadingContent: \"...\"\n },\n dropdown: {\n // Default dropdown placement relative to target element\n placement: \"bottom\",\n // Default events that trigger the dropdown\n triggers: [\"click\"],\n // Delay (ms)\n delay: 0,\n // Update popper on content resize\n handleResize: !0,\n // Hide on clock outside\n autoHide: !0\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction S(e, t) {\n let o = h.themes[e] || {}, i;\n do\n i = o[t], typeof i > \"u\" ? o.$extend ? o = h.themes[o.$extend] || {} : (o = null, i = h[t]) : o = null;\n while (o);\n return i;\n}\nfunction Ze(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend && !o.$resetCss ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t.map((i) => `v-popper--theme-${i}`);\n}\nfunction re(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t;\n}\nlet $ = !1;\nif (typeof window < \"u\") {\n $ = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get() {\n $ = !0;\n }\n });\n window.addEventListener(\"test\", null, e);\n } catch {\n }\n}\nlet _e = !1;\ntypeof window < \"u\" && typeof navigator < \"u\" && (_e = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream);\nconst Te = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((e, t) => e.concat([\n t,\n `${t}-start`,\n `${t}-end`\n]), []), pe = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\",\n pointer: \"pointerdown\"\n}, ae = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\",\n pointer: \"pointerup\"\n};\nfunction de(e, t) {\n const o = e.indexOf(t);\n o !== -1 && e.splice(o, 1);\n}\nfunction G() {\n return new Promise((e) => requestAnimationFrame(() => {\n requestAnimationFrame(e);\n }));\n}\nconst d = [];\nlet g = null;\nconst le = {};\nfunction he(e) {\n let t = le[e];\n return t || (t = le[e] = []), t;\n}\nlet Y = function() {\n};\ntypeof window < \"u\" && (Y = window.Element);\nfunction n(e) {\n return function(t) {\n return S(t.theme, e);\n };\n}\nconst q = \"__floating-vue__popper\", Q = () => O({\n name: \"VPopper\",\n provide() {\n return {\n [q]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [q]: { default: null }\n },\n props: {\n theme: {\n type: String,\n required: !0\n },\n targetNodes: {\n type: Function,\n required: !0\n },\n referenceNode: {\n type: Function,\n default: null\n },\n popperNode: {\n type: Function,\n required: !0\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: n(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: n(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: n(\"placement\"),\n validator: (e) => Te.includes(e)\n },\n delay: {\n type: [String, Number, Object],\n default: n(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: n(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: n(\"skidding\")\n },\n triggers: {\n type: Array,\n default: n(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: n(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: n(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: n(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: n(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: n(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Y, Boolean],\n default: n(\"container\")\n },\n boundary: {\n type: [String, Y],\n default: n(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (e) => [\"absolute\", \"fixed\"].includes(e),\n default: n(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: n(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: n(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: n(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: n(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: n(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: n(\"computeTransformOrigin\")\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: n(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: n(\"autoSize\")\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: n(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: n(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: n(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: n(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: n(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: n(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: n(\"flip\")\n },\n shift: {\n type: Boolean,\n default: n(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: n(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: n(\"noAutoFocus\")\n },\n disposeTimeout: {\n type: Number,\n default: n(\"disposeTimeout\")\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n data() {\n return {\n isShown: !1,\n isMounted: !1,\n skipTransition: !1,\n classes: {\n showFrom: !1,\n showTo: !1,\n hideFrom: !1,\n hideTo: !0\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n randomId: `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join(\"_\")}`,\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: !0,\n pendingHide: !1,\n containsGlobalTarget: !1,\n isDisposed: !0,\n mouseDownContains: !1\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide == \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: {\n ...this.classes,\n popperClass: this.popperClass\n },\n result: this.positioningDisabled ? null : this.result,\n attrs: this.$attrs\n };\n },\n parentPopper() {\n var e;\n return (e = this[q]) == null ? void 0 : e.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var e, t;\n return ((e = this.popperTriggers) == null ? void 0 : e.includes(\"hover\")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes(\"hover\"));\n }\n },\n watch: {\n shown: \"$_autoShowHide\",\n disabled(e) {\n e ? this.dispose() : this.init();\n },\n async container() {\n this.isShown && (this.$_ensureTeleport(), await this.$_computePosition());\n },\n triggers: {\n handler: \"$_refreshListeners\",\n deep: !0\n },\n positioningDisabled: \"$_refreshListeners\",\n ...[\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((e, t) => (e[t] = \"$_computePosition\", e), {})\n },\n created() {\n this.autoMinSize && console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.'), this.autoMaxSize && console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n },\n mounted() {\n this.init(), this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeUnmount() {\n this.dispose();\n },\n methods: {\n show({ event: e = null, skipDelay: t = !1, force: o = !1 } = {}) {\n var i, s;\n (i = this.parentPopper) != null && i.lockedChild && this.parentPopper.lockedChild !== this || (this.pendingHide = !1, (o || !this.disabled) && (((s = this.parentPopper) == null ? void 0 : s.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit(\"show\"), this.$_showFrameLocked = !0, requestAnimationFrame(() => {\n this.$_showFrameLocked = !1;\n })), this.$emit(\"update:shown\", !0));\n },\n hide({ event: e = null, skipDelay: t = !1 } = {}) {\n var o;\n if (!this.$_hideInProgress) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => {\n this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null);\n }, 1e3));\n return;\n }\n ((o = this.parentPopper) == null ? void 0 : o.lockedChild) === this && (this.parentPopper.lockedChild = null), this.pendingHide = !1, this.$_scheduleHide(e, t), this.$emit(\"hide\"), this.$emit(\"update:shown\", !1);\n }\n },\n init() {\n var e;\n this.isDisposed && (this.isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = ((e = this.referenceNode) == null ? void 0 : e.call(this)) ?? this.$el, this.$_targetNodes = this.targetNodes().filter((t) => t.nodeType === t.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\"), this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\"), this.$_swapTargetAttrs(\"title\", \"data-original-title\"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show());\n },\n dispose() {\n this.isDisposed || (this.isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs(\"data-original-title\", \"title\"));\n },\n async onResize() {\n this.isShown && (await this.$_computePosition(), this.$emit(\"resize\"));\n },\n async $_computePosition() {\n if (this.isDisposed || this.positioningDisabled)\n return;\n const e = {\n strategy: this.strategy,\n middleware: []\n };\n (this.distance || this.skidding) && e.middleware.push(xe({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n const t = this.placement.startsWith(\"auto\");\n if (t ? e.middleware.push(Ue({\n alignment: this.placement.split(\"-\")[1] ?? \"\"\n })) : e.placement = this.placement, this.preventOverflow && (this.shift && e.middleware.push(Ye({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n })), !t && this.flip && e.middleware.push(Xe({\n padding: this.overflowPadding,\n boundary: this.boundary\n }))), e.middleware.push(Ke({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n })), this.arrowOverflow && e.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement: i, rects: s, middlewareData: r }) => {\n let p;\n const { centerOffset: a } = r.arrow;\n return i.startsWith(\"top\") || i.startsWith(\"bottom\") ? p = Math.abs(a) > s.reference.width / 2 : p = Math.abs(a) > s.reference.height / 2, {\n data: {\n overflow: p\n }\n };\n }\n }), this.autoMinSize || this.autoSize) {\n const i = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n e.middleware.push({\n name: \"autoSize\",\n fn: ({ rects: s, placement: r, middlewareData: p }) => {\n var u;\n if ((u = p.autoSize) != null && u.skip)\n return {};\n let a, l;\n return r.startsWith(\"top\") || r.startsWith(\"bottom\") ? a = s.reference.width : l = s.reference.height, this.$_innerNode.style[i === \"min\" ? \"minWidth\" : i === \"max\" ? \"maxWidth\" : \"width\"] = a != null ? `${a}px` : null, this.$_innerNode.style[i === \"min\" ? \"minHeight\" : i === \"max\" ? \"maxHeight\" : \"height\"] = l != null ? `${l}px` : null, {\n data: {\n skip: !0\n },\n reset: {\n rects: !0\n }\n };\n }\n });\n }\n (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, e.middleware.push(Je({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ availableWidth: i, availableHeight: s }) => {\n this.$_innerNode.style.maxWidth = i != null ? `${i}px` : null, this.$_innerNode.style.maxHeight = s != null ? `${s}px` : null;\n }\n })));\n const o = await Qe(this.$_referenceNode, this.$_popperNode, e);\n Object.assign(this.result, {\n x: o.x,\n y: o.y,\n placement: o.placement,\n strategy: o.strategy,\n arrow: {\n ...o.middlewareData.arrow,\n ...o.middlewareData.arrowOverflow\n }\n });\n },\n $_scheduleShow(e, t = !1) {\n if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), g && this.instantMove && g.instantMove && g !== this.parentPopper) {\n g.$_applyHide(!0), this.$_applyShow(!0);\n return;\n }\n t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n },\n $_scheduleHide(e, t = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (g = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n },\n $_computeDelay(e) {\n const t = this.delay;\n return parseInt(t && t[e] || t || 0);\n },\n async $_applyShow(e = !1) {\n clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await G(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([\n ...ne(this.$_referenceNode),\n ...ne(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n }));\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const t = this.$_referenceNode.getBoundingClientRect(), o = this.$_popperNode.querySelector(\".v-popper__wrapper\"), i = o.parentNode.getBoundingClientRect(), s = t.x + t.width / 2 - (i.left + o.offsetLeft), r = t.y + t.height / 2 - (i.top + o.offsetTop);\n this.result.transformOrigin = `${s}px ${r}px`;\n }\n this.isShown = !0, this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const e = this.showGroup;\n if (e) {\n let t;\n for (let o = 0; o < d.length; o++)\n t = d[o], t.showGroup !== e && (t.hide(), t.$emit(\"close-group\"));\n }\n d.push(this), document.body.classList.add(\"v-popper--some-open\");\n for (const t of re(this.theme))\n he(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`);\n this.$emit(\"apply-show\"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await G(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus();\n },\n async $_applyHide(e = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0, this.$_hideInProgress = !1;\n return;\n }\n if (clearTimeout(this.$_scheduleTimer), !this.isShown)\n return;\n this.skipTransition = e, de(d, this), d.length === 0 && document.body.classList.remove(\"v-popper--some-open\");\n for (const o of re(this.theme)) {\n const i = he(o);\n de(i, this), i.length === 0 && document.body.classList.remove(`v-popper--some-open--${o}`);\n }\n g === this && (g = null), this.isShown = !1, this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n }), clearTimeout(this.$_disposeTimer);\n const t = this.disposeTimeout;\n t !== null && (this.$_disposeTimer = setTimeout(() => {\n this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1);\n }, t)), this.$_removeEventListeners(\"scroll\"), this.$emit(\"apply-hide\"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await G(), this.classes.hideFrom = !1, this.classes.hideTo = !0;\n },\n $_autoShowHide() {\n this.shown ? this.show() : this.hide();\n },\n $_ensureTeleport() {\n if (this.isDisposed)\n return;\n let e = this.container;\n if (typeof e == \"string\" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e)\n throw new Error(\"No container for popover: \" + this.container);\n e.appendChild(this.$_popperNode), this.isMounted = !0;\n },\n $_addEventListeners() {\n const e = (o) => {\n this.isShown && !this.$_hideInProgress || (o.usedByTooltip = !0, !this.$_preventShow && this.show({ event: o }));\n };\n this.$_registerTriggerListeners(this.$_targetNodes, pe, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], pe, this.popperTriggers, this.popperShowTriggers, e);\n const t = (o) => {\n o.usedByTooltip || this.hide({ event: o });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, ae, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], ae, this.popperTriggers, this.popperHideTriggers, t);\n },\n $_registerEventListeners(e, t, o) {\n this.$_events.push({ targetNodes: e, eventType: t, handler: o }), e.forEach((i) => i.addEventListener(t, o, $ ? {\n passive: !0\n } : void 0));\n },\n $_registerTriggerListeners(e, t, o, i, s) {\n let r = o;\n i != null && (r = typeof i == \"function\" ? i(r) : i), r.forEach((p) => {\n const a = t[p];\n a && this.$_registerEventListeners(e, a, s);\n });\n },\n $_removeEventListeners(e) {\n const t = [];\n this.$_events.forEach((o) => {\n const { targetNodes: i, eventType: s, handler: r } = o;\n !e || e === s ? i.forEach((p) => p.removeEventListener(s, r)) : t.push(o);\n }), this.$_events = t;\n },\n $_refreshListeners() {\n this.isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners());\n },\n $_handleGlobalClose(e, t = !1) {\n this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit(\"close-directive\") : this.$emit(\"auto-hide\"), t && (this.$_preventShow = !0, setTimeout(() => {\n this.$_preventShow = !1;\n }, 300)));\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(e, t) {\n for (const o of this.$_targetNodes) {\n const i = o.getAttribute(e);\n i && (o.removeAttribute(e), o.setAttribute(t, i));\n }\n },\n $_applyAttrsToTarget(e) {\n for (const t of this.$_targetNodes)\n for (const o in e) {\n const i = e[o];\n i == null ? t.removeAttribute(o) : t.setAttribute(o, i);\n }\n },\n $_updateParentShownChildren(e) {\n let t = this.parentPopper;\n for (; t; )\n e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.pendingHide && t.hide()), t = t.parentPopper;\n },\n $_isAimingPopper() {\n const e = this.$_referenceNode.getBoundingClientRect();\n if (y >= e.left && y <= e.right && _ >= e.top && _ <= e.bottom) {\n const t = this.$_popperNode.getBoundingClientRect(), o = y - c, i = _ - m, r = t.left + t.width / 2 - c + (t.top + t.height / 2) - m + t.width + t.height, p = c + o * r, a = m + i * r;\n return C(c, m, p, a, t.left, t.top, t.left, t.bottom) || // Left edge\n C(c, m, p, a, t.left, t.top, t.right, t.top) || // Top edge\n C(c, m, p, a, t.right, t.top, t.right, t.bottom) || // Right edge\n C(c, m, p, a, t.left, t.bottom, t.right, t.bottom);\n }\n return !1;\n }\n },\n render() {\n return this.$slots.default(this.slotData);\n }\n});\nif (typeof document < \"u\" && typeof window < \"u\") {\n if (_e) {\n const e = $ ? {\n passive: !0,\n capture: !0\n } : !0;\n document.addEventListener(\"touchstart\", (t) => ue(t, !0), e), document.addEventListener(\"touchend\", (t) => fe(t, !0), e);\n } else\n window.addEventListener(\"mousedown\", (e) => ue(e, !1), !0), window.addEventListener(\"click\", (e) => fe(e, !1), !0);\n window.addEventListener(\"resize\", tt);\n}\nfunction ue(e, t) {\n if (h.autoHideOnMousedown)\n Pe(e, t);\n else\n for (let o = 0; o < d.length; o++) {\n const i = d[o];\n try {\n i.mouseDownContains = i.popperNode().contains(e.target);\n } catch {\n }\n }\n}\nfunction fe(e, t) {\n h.autoHideOnMousedown || Pe(e, t);\n}\nfunction Pe(e, t) {\n const o = {};\n for (let i = d.length - 1; i >= 0; i--) {\n const s = d[i];\n try {\n const r = s.containsGlobalTarget = s.mouseDownContains || s.popperNode().contains(e.target);\n s.pendingHide = !1, requestAnimationFrame(() => {\n if (s.pendingHide = !1, !o[s.randomId] && ce(s, r, e)) {\n if (s.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && r) {\n let a = s.parentPopper;\n for (; a; )\n o[a.randomId] = !0, a = a.parentPopper;\n return;\n }\n let p = s.parentPopper;\n for (; p && ce(p, p.containsGlobalTarget, e); ) {\n p.$_handleGlobalClose(e, t);\n p = p.parentPopper;\n }\n }\n });\n } catch {\n }\n }\n}\nfunction ce(e, t, o) {\n return o.closeAllPopover || o.closePopover && t || et(e, o) && !t;\n}\nfunction et(e, t) {\n if (typeof e.autoHide == \"function\") {\n const o = e.autoHide(t);\n return e.lastAutoHide = o, o;\n }\n return e.autoHide;\n}\nfunction tt() {\n for (let e = 0; e < d.length; e++)\n d[e].$_computePosition();\n}\nfunction Nt() {\n for (let e = 0; e < d.length; e++)\n d[e].hide();\n}\nlet c = 0, m = 0, y = 0, _ = 0;\ntypeof window < \"u\" && window.addEventListener(\"mousemove\", (e) => {\n c = y, m = _, y = e.clientX, _ = e.clientY;\n}, $ ? {\n passive: !0\n} : void 0);\nfunction C(e, t, o, i, s, r, p, a) {\n const l = ((p - s) * (t - r) - (a - r) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t)), u = ((o - e) * (t - r) - (i - t) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t));\n return l >= 0 && l <= 1 && u >= 0 && u <= 1;\n}\nconst ot = {\n extends: Q()\n}, B = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [i, s] of t)\n o[i] = s;\n return o;\n};\nfunction it(e, t, o, i, s, r) {\n return f(), T(\"div\", {\n ref: \"reference\",\n class: J([\"v-popper\", {\n \"v-popper--shown\": e.slotData.isShown\n }])\n }, [\n A(e.$slots, \"default\", ke(Le(e.slotData)))\n ], 2);\n}\nconst st = /* @__PURE__ */ B(ot, [[\"render\", it]]);\nfunction nt() {\n var e = window.navigator.userAgent, t = e.indexOf(\"MSIE \");\n if (t > 0)\n return parseInt(e.substring(t + 5, e.indexOf(\".\", t)), 10);\n var o = e.indexOf(\"Trident/\");\n if (o > 0) {\n var i = e.indexOf(\"rv:\");\n return parseInt(e.substring(i + 3, e.indexOf(\".\", i)), 10);\n }\n var s = e.indexOf(\"Edge/\");\n return s > 0 ? parseInt(e.substring(s + 5, e.indexOf(\".\", s)), 10) : -1;\n}\nlet z;\nfunction X() {\n X.init || (X.init = !0, z = nt() !== -1);\n}\nvar E = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: !1\n },\n ignoreWidth: {\n type: Boolean,\n default: !1\n },\n ignoreHeight: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"notify\"\n ],\n mounted() {\n X(), Fe(() => {\n this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize();\n });\n const e = document.createElement(\"object\");\n this._resizeObject = e, e.setAttribute(\"aria-hidden\", \"true\"), e.setAttribute(\"tabindex\", -1), e.onload = this.addResizeHandlers, e.type = \"text/html\", z && this.$el.appendChild(e), e.data = \"about:blank\", z || this.$el.appendChild(e);\n },\n beforeUnmount() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify() {\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize());\n },\n emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify), this.compareAndNotify();\n },\n removeResizeHandlers() {\n this._resizeObject && this._resizeObject.onload && (!z && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null);\n }\n }\n};\nconst rt = /* @__PURE__ */ Re(\"data-v-b329ee4c\");\nDe(\"data-v-b329ee4c\");\nconst pt = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\nIe();\nconst at = /* @__PURE__ */ rt((e, t, o, i, s, r) => (f(), M(\"div\", pt)));\nE.render = at;\nE.__scopeId = \"data-v-b329ee4c\";\nE.__file = \"src/components/ResizeObserver.vue\";\nconst Z = (e = \"theme\") => ({\n computed: {\n themeClass() {\n return Ze(this[e]);\n }\n }\n}), dt = O({\n name: \"VPopperContent\",\n components: {\n ResizeObserver: E\n },\n mixins: [\n Z()\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n emits: [\n \"hide\",\n \"resize\"\n ],\n methods: {\n toPx(e) {\n return e != null && !isNaN(e) ? `${e}px` : null;\n }\n }\n}), lt = [\"id\", \"aria-hidden\", \"tabindex\", \"data-popper-placement\"], ht = {\n ref: \"inner\",\n class: \"v-popper__inner\"\n}, ut = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-outer\" }, null, -1), ft = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-inner\" }, null, -1), ct = [\n ut,\n ft\n];\nfunction mt(e, t, o, i, s, r) {\n const p = P(\"ResizeObserver\");\n return f(), T(\"div\", {\n id: e.popperId,\n ref: \"popover\",\n class: J([\"v-popper__popper\", [\n e.themeClass,\n e.classes.popperClass,\n {\n \"v-popper__popper--shown\": e.shown,\n \"v-popper__popper--hidden\": !e.shown,\n \"v-popper__popper--show-from\": e.classes.showFrom,\n \"v-popper__popper--show-to\": e.classes.showTo,\n \"v-popper__popper--hide-from\": e.classes.hideFrom,\n \"v-popper__popper--hide-to\": e.classes.hideTo,\n \"v-popper__popper--skip-transition\": e.skipTransition,\n \"v-popper__popper--arrow-overflow\": e.result && e.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !e.result\n }\n ]]),\n style: W(e.result ? {\n position: e.result.strategy,\n transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`\n } : void 0),\n \"aria-hidden\": e.shown ? \"false\" : \"true\",\n tabindex: e.autoHide ? 0 : void 0,\n \"data-popper-placement\": e.result ? e.result.placement : void 0,\n onKeyup: t[2] || (t[2] = je((a) => e.autoHide && e.$emit(\"hide\"), [\"esc\"]))\n }, [\n w(\"div\", {\n class: \"v-popper__backdrop\",\n onClick: t[0] || (t[0] = (a) => e.autoHide && e.$emit(\"hide\"))\n }),\n w(\"div\", {\n class: \"v-popper__wrapper\",\n style: W(e.result ? {\n transformOrigin: e.result.transformOrigin\n } : void 0)\n }, [\n w(\"div\", ht, [\n e.mounted ? (f(), T(Ve, { key: 0 }, [\n w(\"div\", null, [\n A(e.$slots, \"default\")\n ]),\n e.handleResize ? (f(), M(p, {\n key: 0,\n onNotify: t[1] || (t[1] = (a) => e.$emit(\"resize\", a))\n })) : se(\"\", !0)\n ], 64)) : se(\"\", !0)\n ], 512),\n w(\"div\", {\n ref: \"arrow\",\n class: \"v-popper__arrow-container\",\n style: W(e.result ? {\n left: e.toPx(e.result.arrow.x),\n top: e.toPx(e.result.arrow.y)\n } : void 0)\n }, ct, 4)\n ], 4)\n ], 46, lt);\n}\nconst ee = /* @__PURE__ */ B(dt, [[\"render\", mt]]), te = {\n methods: {\n show(...e) {\n return this.$refs.popper.show(...e);\n },\n hide(...e) {\n return this.$refs.popper.hide(...e);\n },\n dispose(...e) {\n return this.$refs.popper.dispose(...e);\n },\n onResize(...e) {\n return this.$refs.popper.onResize(...e);\n }\n }\n};\nlet K = function() {\n};\ntypeof window < \"u\" && (K = window.Element);\nconst gt = O({\n name: \"VPopperWrapper\",\n components: {\n Popper: st,\n PopperContent: ee\n },\n mixins: [\n te,\n Z(\"finalTheme\")\n ],\n props: {\n theme: {\n type: String,\n default: null\n },\n referenceNode: {\n type: Function,\n default: null\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: void 0\n },\n positioningDisabled: {\n type: Boolean,\n default: void 0\n },\n placement: {\n type: String,\n default: void 0\n },\n delay: {\n type: [String, Number, Object],\n default: void 0\n },\n distance: {\n type: [Number, String],\n default: void 0\n },\n skidding: {\n type: [Number, String],\n default: void 0\n },\n triggers: {\n type: Array,\n default: void 0\n },\n showTriggers: {\n type: [Array, Function],\n default: void 0\n },\n hideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperTriggers: {\n type: Array,\n default: void 0\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n container: {\n type: [String, Object, K, Boolean],\n default: void 0\n },\n boundary: {\n type: [String, K],\n default: void 0\n },\n strategy: {\n type: String,\n default: void 0\n },\n autoHide: {\n type: [Boolean, Function],\n default: void 0\n },\n handleResize: {\n type: Boolean,\n default: void 0\n },\n instantMove: {\n type: Boolean,\n default: void 0\n },\n eagerMount: {\n type: Boolean,\n default: void 0\n },\n popperClass: {\n type: [String, Array, Object],\n default: void 0\n },\n computeTransformOrigin: {\n type: Boolean,\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: void 0\n },\n autoSize: {\n type: [Boolean, String],\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: void 0\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: void 0\n },\n preventOverflow: {\n type: Boolean,\n default: void 0\n },\n overflowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowOverflow: {\n type: Boolean,\n default: void 0\n },\n flip: {\n type: Boolean,\n default: void 0\n },\n shift: {\n type: Boolean,\n default: void 0\n },\n shiftCrossAxis: {\n type: Boolean,\n default: void 0\n },\n noAutoFocus: {\n type: Boolean,\n default: void 0\n },\n disposeTimeout: {\n type: Number,\n default: void 0\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n computed: {\n finalTheme() {\n return this.theme ?? this.$options.vPopperTheme;\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el);\n }\n }\n});\nfunction wt(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$props, {\n theme: e.finalTheme,\n \"target-nodes\": e.getTargetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n class: [\n e.themeClass\n ],\n onShow: t[0] || (t[0] = () => e.$emit(\"show\")),\n onHide: t[1] || (t[1] = () => e.$emit(\"hide\")),\n \"onUpdate:shown\": t[2] || (t[2] = (l) => e.$emit(\"update:shown\", l)),\n onApplyShow: t[3] || (t[3] = () => e.$emit(\"apply-show\")),\n onApplyHide: t[4] || (t[4] = () => e.$emit(\"apply-hide\")),\n onCloseGroup: t[5] || (t[5] = () => e.$emit(\"close-group\")),\n onCloseDirective: t[6] || (t[6] = () => e.$emit(\"close-directive\")),\n onAutoHide: t[7] || (t[7] = () => e.$emit(\"auto-hide\")),\n onResize: t[8] || (t[8] = () => e.$emit(\"resize\"))\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n show: F,\n hide: v,\n handleResize: R,\n onResize: j,\n classes: V,\n result: Ee\n }) => [\n A(e.$slots, \"default\", {\n shown: u,\n show: F,\n hide: v\n }),\n ve(p, {\n ref: \"popperContent\",\n \"popper-id\": l,\n theme: e.finalTheme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": R,\n classes: V,\n result: Ee,\n onHide: v,\n onResize: j\n }, {\n default: N(() => [\n A(e.$slots, \"popper\", {\n shown: u,\n hide: v\n })\n ]),\n _: 2\n }, 1032, [\"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 3\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"class\"]);\n}\nconst k = /* @__PURE__ */ B(gt, [[\"render\", wt]]), Se = {\n ...k,\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n}, be = {\n ...k,\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n}, Ce = {\n ...k,\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n}, $t = O({\n name: \"VTooltipDirective\",\n components: {\n Popper: Q(),\n PopperContent: ee\n },\n mixins: [\n te\n ],\n inheritAttrs: !1,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default: (e) => S(e.theme, \"html\")\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default: (e) => S(e.theme, \"loadingContent\")\n },\n targetNodes: {\n type: Function,\n required: !0\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content == \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(!0);\n },\n immediate: !0\n },\n async finalContent() {\n await this.$nextTick(), this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(e) {\n if (typeof this.content == \"function\" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null, this.$_loading = !0;\n const t = ++this.$_fetchId, o = this.content(this);\n o.then ? o.then((i) => this.onResult(t, i)) : this.onResult(t, o);\n }\n },\n onResult(e, t) {\n e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t);\n },\n onShow() {\n this.$_isShown = !0, this.fetchContent();\n },\n onHide() {\n this.$_isShown = !1;\n }\n }\n}), vt = [\"innerHTML\"], yt = [\"textContent\"];\nfunction _t(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$attrs, {\n theme: e.theme,\n \"target-nodes\": e.targetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n onApplyShow: e.onShow,\n onApplyHide: e.onHide\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n hide: F,\n handleResize: v,\n onResize: R,\n classes: j,\n result: V\n }) => [\n ve(p, {\n ref: \"popperContent\",\n class: J({\n \"v-popper--tooltip-loading\": e.loading\n }),\n \"popper-id\": l,\n theme: e.theme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": v,\n classes: j,\n result: V,\n onHide: F,\n onResize: R\n }, {\n default: N(() => [\n e.html ? (f(), T(\"div\", {\n key: 0,\n innerHTML: e.finalContent\n }, null, 8, vt)) : (f(), T(\"div\", {\n key: 1,\n textContent: We(e.finalContent)\n }, null, 8, yt))\n ]),\n _: 2\n }, 1032, [\"class\", \"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 1\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst ze = /* @__PURE__ */ B($t, [[\"render\", _t]]), Ae = \"v-popper--has-tooltip\";\nfunction Tt(e, t) {\n let o = e.placement;\n if (!o && t)\n for (const i of Te)\n t[i] && (o = i);\n return o || (o = S(e.theme || \"tooltip\", \"placement\")), o;\n}\nfunction Ne(e, t, o) {\n let i;\n const s = typeof t;\n return s === \"string\" ? i = { content: t } : t && s === \"object\" ? i = t : i = { content: !1 }, i.placement = Tt(i, o), i.targetNodes = () => [e], i.referenceNode = () => e, i;\n}\nlet x, b, Pt = 0;\nfunction St() {\n if (x)\n return;\n b = U([]), x = Ge({\n name: \"VTooltipDirectiveApp\",\n setup() {\n return {\n directives: b\n };\n },\n render() {\n return this.directives.map((t) => qe(ze, {\n ...t.options,\n shown: t.shown || t.options.shown,\n key: t.id\n }));\n },\n devtools: {\n hide: !0\n }\n });\n const e = document.createElement(\"div\");\n document.body.appendChild(e), x.mount(e);\n}\nfunction bt(e, t, o) {\n St();\n const i = U(Ne(e, t, o)), s = U(!1), r = {\n id: Pt++,\n options: i,\n shown: s\n };\n return b.value.push(r), e.classList && e.classList.add(Ae), e.$_popper = {\n options: i,\n item: r,\n show() {\n s.value = !0;\n },\n hide() {\n s.value = !1;\n }\n };\n}\nfunction He(e) {\n if (e.$_popper) {\n const t = b.value.indexOf(e.$_popper.item);\n t !== -1 && b.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget;\n }\n e.classList && e.classList.remove(Ae);\n}\nfunction me(e, { value: t, modifiers: o }) {\n const i = Ne(e, t, o);\n if (!i.content || S(i.theme || \"tooltip\", \"disabled\"))\n He(e);\n else {\n let s;\n e.$_popper ? (s = e.$_popper, s.options.value = i) : s = bt(e, t, o), typeof t.shown < \"u\" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? s.show() : s.hide());\n }\n}\nconst oe = {\n beforeMount: me,\n updated: me,\n beforeUnmount(e) {\n He(e);\n }\n};\nfunction ge(e) {\n e.addEventListener(\"mousedown\", H), e.addEventListener(\"click\", H), e.addEventListener(\"touchstart\", Oe, $ ? {\n passive: !0\n } : !1);\n}\nfunction we(e) {\n e.removeEventListener(\"mousedown\", H), e.removeEventListener(\"click\", H), e.removeEventListener(\"touchstart\", Oe), e.removeEventListener(\"touchend\", Me), e.removeEventListener(\"touchcancel\", Be);\n}\nfunction H(e) {\n const t = e.currentTarget;\n e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n}\nfunction Oe(e) {\n if (e.changedTouches.length === 1) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !0;\n const o = e.changedTouches[0];\n t.$_vclosepopover_touchPoint = o, t.addEventListener(\"touchend\", Me), t.addEventListener(\"touchcancel\", Be);\n }\n}\nfunction Me(e) {\n const t = e.currentTarget;\n if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) {\n const o = e.changedTouches[0], i = t.$_vclosepopover_touchPoint;\n e.closePopover = Math.abs(o.screenY - i.screenY) < 20 && Math.abs(o.screenX - i.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n }\n}\nfunction Be(e) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !1;\n}\nconst ie = {\n beforeMount(e, { value: t, modifiers: o }) {\n e.$_closePopoverModifiers = o, (typeof t > \"u\" || t) && ge(e);\n },\n updated(e, { value: t, oldValue: o, modifiers: i }) {\n e.$_closePopoverModifiers = i, t !== o && (typeof t > \"u\" || t ? ge(e) : we(e));\n },\n beforeUnmount(e) {\n we(e);\n }\n}, Ht = h, Ot = oe, Mt = oe, Bt = ie, Et = ie, kt = Se, Lt = be, Dt = Q, It = ee, Ft = te, Rt = k, jt = Z, Vt = Ce, Wt = ze;\nfunction Ct(e, t = {}) {\n e.$_vTooltipInstalled || (e.$_vTooltipInstalled = !0, ye(h, t), e.directive(\"tooltip\", oe), e.directive(\"close-popper\", ie), e.component(\"VTooltip\", Ce), e.component(\"VDropdown\", Se), e.component(\"VMenu\", be));\n}\nconst Gt = {\n // eslint-disable-next-line no-undef\n version: \"5.2.2\",\n install: Ct,\n options: h\n};\nexport {\n kt as Dropdown,\n ae as HIDE_EVENT_MAP,\n Lt as Menu,\n Dt as Popper,\n It as PopperContent,\n Ft as PopperMethods,\n Rt as PopperWrapper,\n pe as SHOW_EVENT_MAP,\n jt as ThemeClass,\n Vt as Tooltip,\n Wt as TooltipDirective,\n Bt as VClosePopper,\n Ot as VTooltip,\n bt as createTooltip,\n Gt as default,\n He as destroyTooltip,\n Nt as hideAllPoppers,\n Ct as install,\n Ht as options,\n Te as placements,\n tt as recomputeAllPoppers,\n Et as vClosePopper,\n Mt as vTooltip\n};\n","<script setup lang=\"ts\">\nimport { Tooltip } from 'floating-vue'\nimport { options } from 'floating-vue'\n\noptions.themes.tooltip.placement = 'top'\noptions.themes.tooltip.triggers = ['hover', 'focus', 'click']\n\n</script>\n\n<template>\n <Tooltip>\n <slot />\n <template #popper>\n <slot name=\"popper\" />\n </template>\n </Tooltip>\n</template>","<script setup lang=\"ts\">\n import \"@/scss/component/_ink-sidebar.scss\"\n import \"@/scss/component/_ink-sidebar-simple.scss\"\n import { handleSidebarTogglerClick } from '@/helper/handle-sidebar-toggler-click'\n import { Disclosure, DisclosureButton, DisclosurePanel } from '@headlessui/vue'\n import InkSidebarMenu from '@/components/ink-sidebar/InkSidebarMenu.vue'\n import { vInkTooltip } from '@/components/ink-tooltip/Ink-tooltip'\n import { onMounted } from 'vue'\n\n interface SwitchItem {\n id: string | number, // TODO 套用時跟後端確認:value 123 改用字串,後端改給 \"123\"; 之後後端 id to uuid \"a456\" 時前端不需要再修改\n name: string,\n logo: string,\n }\n interface MenuItemSchema {\n id: string,\n name: string,\n icon: string,\n route?: {\n name: string,\n [key: string]: string | number,\n },\n children?: MenuChildrenItemSchema[],\n isAllow?: boolean,\n }\ninterface MenuChildrenItemSchema { \n id: string | number,\n name: string,\n route: {\n name: string,\n [key: string]: string | number,\n },\n isAllow: boolean,\n }\n\n interface SidebarProps {\n currentAppName:string,\n currentMainSwitchItem:SwitchItem,\n mainSwitchItems:SwitchItem[],\n currentTabSwitchItemId?:string | number,\n tabSwitchItems?:SwitchItem[],\n menu: MenuItemSchema[],\n currentMenuItemId: string | number,\n }\n const props = defineProps<SidebarProps>()\n\n const emit = defineEmits(['mainItemCheckSwitch', 'tabItemCheckSwitch'])\n const onMainItemCheckSwitch = (item:SwitchItem, close:()=>void) => {\n emit('mainItemCheckSwitch', item, close)\n }\n const onTabItemCheckSwitch = (item:SwitchItem) => {\n emit('tabItemCheckSwitch', item)\n }\n const toggleSidebar = (e:Event) => {\n const isFolded = document.body.classList.contains('sidebar-folded');\n if (e.type === 'click') {\n handleSidebarTogglerClick();\n } else if (e.type === 'mouseenter' && isFolded) {\n document.body.classList.add('open-sidebar-folded');\n } else if (e.type === 'mouseleave' && isFolded) {\n document.body.classList.remove('open-sidebar-folded');\n }\n };\n // close sidebar when click outside on mobile/table\n const closeSidebar = (e:MouseEvent) => {\n if (!(e.target as HTMLElement).closest('#sidebar')) {\n document.body.classList.remove('sidebar-open');\n }\n };\n onMounted(() => {\n document.addEventListener('click', closeSidebar);\n });\n</script>\n<template>\n <nav id=\"sidebar\" class=\"sidebar tw-z-[1020] tw-overflow-hidden\">\n <div class=\"sidebar-header justify-content-start\">\n <button class=\"sidebar-toggler tw-flex-shrink-0\" @click.prevent.stop=\"toggleSidebar\">\n <i class=\"fas fa-bars\"></i>\n </button>\n <picture class=\"sidebar-brand\">\n <source media=\"(min-width:992px)\" srcset=\"/src/images/logo-light-lg.svg\"/>\n <img src=\"/src/images/logo-light-sm.svg\" alt=\"inkmagine logo\"/>\n </picture>\n </div>\n <div class=\"sidebar-body\" @mouseenter=\"toggleSidebar\" @mouseleave=\"toggleSidebar\">\n <!-- 集團列表 -->\n <ul v-if=\"tabSwitchItems\" id=\"console-list\" class=\"nav bloc_nav tw-flex-shrink-0 hover:!tw-w-[75px]\">\n <li\n v-for=\"item in tabSwitchItems\"\n :key=\"item.id\"\n :class=\"['nav-item', { active: item.id === currentTabSwitchItemId }]\"\n v-inkTooltip.right=\"item.name\"\n >\n <button\n type=\"button\"\n :class=\"['nav-link', { 'tw-cursor-default': item.id === currentTabSwitchItemId }]\"\n @click.prevent=\"onTabItemCheckSwitch(item)\"\n >\n <figure class=\"tw-border tw-border-solid tw-border-gray-300\">\n <img v-if=\"item.logo\" class=\"p-1\" :src=\"item.logo\" :alt=\"item.name\"/>\n </figure>\n </button>\n </li>\n </ul>\n\n <div class=\"nav\" v-scrollBar>\n <div class=\"nav__header\">\n <h3 class=\"nav__title nav-simple-hide\">{{ currentAppName }}</h3>\n <!-- 品牌列表 -->\n <Disclosure as=\"div\" class=\"brand-nav-item\">\n <DisclosureButton\n class=\"nav-link tw-font-semibold tw-border-0 tw-bg-transparent tw-text-left\"\n >\n <figure class=\"tw-border tw-border-solid tw-border-gray-300\">\n <img v-if=\"currentMainSwitchItem?.logo\" :src=\"currentMainSwitchItem.logo\" :alt=\"currentMainSwitchItem.name\"/>\n </figure>\n <span class=\"brand-nav-item__title link-title tw-break-words\">\n {{ currentMainSwitchItem.name }}\n </span>\n <i v-if=\"mainSwitchItems.length > 1\" class=\"fal fa-chevron-down fa-fw link-arrow\"></i>\n </DisclosureButton>\n <DisclosurePanel \n v-if=\"mainSwitchItems.length > 1\"\n v-slot=\"{ close }\"\n >\n <ul class=\"nav sub-menu\">\n <template v-for=\"item in mainSwitchItems\" :key=\"item.id\">\n <li \n v-if=\"item.id !== currentMainSwitchItem.id\" \n class=\"nav-item\"\n >\n <button type=\"button\" class=\"nav-link\" @click.prevent=\"onMainItemCheckSwitch( item, close)\">\n <figure class=\"tw-border tw-border-solid tw-border-gray-300\">\n <img v-if=\"item.logo\" :src=\"item.logo\" :alt=\"item.name\"/>\n </figure>\n <span class=\"link-title tw-text-left\">{{ item.name }}</span>\n </button>\n </li>\n </template>\n </ul>\n </DisclosurePanel>\n </Disclosure>\n <slot></slot>\n </div>\n <InkSidebarMenu :menu=\"menu\" :currentMenuItemId=\"currentMenuItemId\"/>\n </div>\n </div>\n </nav>\n</template>","<script setup lang=\"ts\">\nconst props = defineProps({\n descriptionText: {\n type: String,\n default: ''\n }\n})\n</script>\n<template>\n <em :class=\"'tw-field-message tw-block tw-w-full tw-break-all'\" v-html=\"props.descriptionText\"></em>\n</template>","// resources/docs/internal/articles/structure.md\ntype Base = {\n id: string;\n type: string;\n name?: string;\n require?: boolean | number[]; // resources/docs/internal/authors/structure.md\n slug?: string;\n description?: string;\n position?: 'left' | 'center' | 'right';\n tip?: string;\n} & Min & Max & Default & Ai;\n\ntype Default = {\n default?: string[] | number[] | boolean[] | object[] | [];\n}\ntype Min = {\n min?: number; // 0 is unlimited quantity\n}\ntype Max = {\n max?: number; // 0 is unlimited quantity\n}\ntype Ai = {\n ai?: string[];\n}\n\n\n// (Optional) see Cabinet /resources/docs/internal/fields/type.md\ntype Placeholder = {\n placeholder?: string;\n}\n\n// type Tip = {\n// tip?: string;\n// }\n// type Description = {\n// description?: string;\n// }\nexport type NumberLimit = [number | false, number | false];\nexport type FileLimit = [number, string[]];\nexport type TextLimit = [number, number];\nexport type DatetimerngLimit = [number, number];\ntype Limit = {\n /* false is no range\n Text: chars range\n Number: number range\n textarea: chars range\n hashtag: ??\n file: size, mime type\n image: width and height range\n */\n limit?: false | NumberLimit | TextLimit | FileLimit | DatetimerngLimit;\n}\n// type Type = {\n// type?: string;\n// }\n\ntype Step = {\n step?: number;\n}\n\ntype Prefix = {\n prefix?: string;\n}\ntype Suffix = {\n suffix?: string;\n}\n\n// image data\ntype Ratio = {\n ratio?: boolean | number[]; // false is no ratio\n}\ntype Viewport = {\n viewport?: boolean | number[]; // for display, false is no specific\n}\ntype Fluid = {\n fluid?: 'rectangle' | 'circle';\n}\n// END\n\n// type Position = {\n// position?: 'left' | 'center' | 'right';\n// }\n// type Slug = {\n// slug?: string;\n// }\n\n\n// option data for select, checkbox, radio\ntype Hierarchy = {\n hierarchy?: boolean;\n}\ntype Choosable = {\n choosable?: number[];\n}\ntype Total = {\n total?: number;\n};\ntype Options = {\n key?: string;\n name?: string;\n own?: boolean;\n status?: boolean;\n children?: Options[];\n total?: number;\n}\n\ntype OptionsObject = {\n options?: UnKnownOptions[];\n}\nexport type UnKnownOptions = {\n [key: string | number]: unknown;\n}\n\n// select\nexport type SelectReduceReturn = string | number | undefined | null;\nexport type SelectInputBind = {\n options?: SelectOptions[];\n label?: string;\n hasNextPage?: boolean;\n activeStyle?: boolean;\n optionDivider?: number[];\n openFn?: () => void;\n closeFn?: () => void;\n infiniteFn?: () => void;\n reduce?: (option: UnKnownOptions) => SelectReduceReturn;\n};\nexport type SelectOptions = {\n disabled?: boolean;\n depth?: number;\n} & UnKnownOptions;\n\n// hashtag\nexport type HashtagInputBind = {\n noDrop: boolean;\n loading: boolean;\n options?: HashtagOptions[];\n activeStyle?: boolean;\n} \ntype HashtagOptions = UnKnownOptions\n\n// checkbox \nexport type CheckBoxInputBind = {\n options?: CheckBoxOptions[];\n label?: string;\n valueKey?: string;\n hasNextPage?: boolean;\n infiniteFn?: () => void;\n}\n\nexport type CheckBoxOptions = {\n disabled?: boolean;\n depth?: number;\n} & UnKnownOptions;\n\n// radio\nexport type RadioInputBind = {\n options?: RadioOptions[];\n label?: string;\n valueKey?: string;\n hasNextPage?: boolean;\n infiniteFn?: () => void;\n}\n\nexport type RadioOptions = {\n disabled?: boolean;\n} & UnKnownOptions;\n\n// datetime picker\ntype DatePickerType = 'year' | 'month' | 'date' | 'datetime' | 'week';\n\nexport const RestrictTypeMode = {\n PAST: 'past',\n FUTURE: 'future',\n UNLIMITED: 'unlimited',\n} as const;\nexport type DatetimePickerInputBind = {\n timezone: string; // for display date and display UTC timezone. if need validate restrict, must be set timezone.\n isClearable?: boolean;\n format?: string;\n type?: DatePickerType;\n restrict: {\n restrictType?: (typeof RestrictTypeMode)[keyof typeof RestrictTypeMode]; \n shiftSecond?: number;\n }\n} & UnKnownOptions\n// END\n\n// datetimerange\nexport type DatetimerngInputBind = {\n timezone: string; // for display date and display UTC timezone. if need validate restrict, must be set timezone.\n isClearable?: boolean;\n activeStyle?: boolean;\n format?: string;\n type?: DatePickerType;\n} & UnKnownOptions\n// END\n\n// resources/docs/internal/fields/type.md\n\nexport type ModelValueSharp = Default;\n\nexport type TextSharp = Base & Placeholder & Prefix & Suffix & Limit;\nexport type TextareaSharp = Base & Placeholder & Limit;\nexport type UrlSharp = Base & Placeholder;\nexport type SelectSharp = Base & OptionsObject & Total & Choosable & Hierarchy & Placeholder;\nexport type HashtagSharp = Base & Placeholder & Limit;\nexport type CheckBoxSharp = Base & OptionsObject & Total & Choosable & Hierarchy;\nexport type RadioSharp = Base & OptionsObject & Total;\nexport type SwitchSharp = Base;\nexport type DatetimeSharp = Base & Placeholder;\nexport type DatetimerngSharp = Base & Limit;\n\nexport type FieldDataSharp = Base & TextSharp & Step & Ratio & Viewport & Fluid & Hierarchy & Choosable & OptionsObject & Total;","import { computed, Ref } from \"vue\";\nimport type { CheckBoxInputBind, SelectInputBind, SelectReduceReturn, UnKnownOptions, DatetimePickerInputBind, DatetimerngInputBind, HashtagInputBind } from \"@/components/input/field-data-interface\";\nimport { RestrictTypeMode } from \"@/components/input/field-data-interface\";\nimport { utcTimezone } from \"@/helper/dayjs\";\n\nexport const singleFieldTypes = ['select', 'checkbox', 'radio', 'switch', 'datetime', 'date', 'datetimerng', 'daterng', 'hashtag'];\n\nexport const defaultInputProps = {\n valueIndex: {\n type: Number,\n default: 0\n },\n required: {\n type: Boolean,\n default:false\n },\n disabled: {\n type: Boolean,\n default:false\n },\n inputTotal: {\n type: Number,\n default: 0\n },\n inputOn: {\n type: Object,\n },\n}\n\nexport const fieldDefaultValue = (type: string) => {\n return{\n id: '',\n type: type,\n max: 1,\n limit: false,\n }\n}\n\nexport const useMergeFieldProps = <T extends Record<string, unknown>>(type: string, field: Ref<T>) => { \n const defaultField = fieldDefaultValue(type);\n const mergeField = computed(() => {\n return {\n ...defaultField,\n ...field.value,\n }\n });\n // console.log('field',field);\n // console.log('mergeField',mergeField.value);\n const minLength = computed(() => {\n return Array.isArray(mergeField.value.limit) && typeof mergeField.value.limit[0] === 'number' && mergeField.value.limit[0] ? mergeField.value.limit[0] : undefined;\n });\n const maxLength = computed(() => {\n return Array.isArray(mergeField.value.limit) && typeof mergeField.value.limit[1] === 'number' && mergeField.value.limit[1] ? mergeField.value.limit[1] : undefined;\n });\n const checkFieldMax = computed(() => { \n if (mergeField.value.max) {\n return mergeField.value.max;\n } else if (mergeField.value.max === 0) {\n return Infinity;\n }\n return 1;\n }\n )\n return { mergeField, minLength, maxLength, checkFieldMax };\n}\n\n// vue select series\nconst defaultAllSelectInputBind = () => {\n return {\n activeStyle: false,\n optionDivider: [],\n options: [],\n label: 'name',\n filterable: false,\n clearable: true,\n autoscroll: false,\n }\n}\n// select series (single select)\nconst defaultSelectInputBind = () => {\n return {\n ...defaultAllSelectInputBind(),\n hasNextPage: false,\n searchable: false,\n reduce: (option: UnKnownOptions) => option.key as SelectReduceReturn,\n selectable: (option: UnKnownOptions) => !option.disabled,\n infiniteFn: undefined as (() => void) | undefined,\n openFn: undefined as (() => void) | undefined,\n closeFn: undefined as (() => void) | undefined,\n }\n}\nexport const useMergeSelectInputBind = (inputBind: Ref<Record<string, unknown>>) => {\n const mergeInputBind = computed<SelectInputBind>(() => {\n return {\n ...defaultSelectInputBind(),\n ...inputBind.value,\n }\n })\n const clearInputBind = computed<SelectInputBind>(() => {\n const clearInputBind:Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'infiniteFn' && key !== 'openFn' && key !== 'closeFn' && key !== 'hasNextPage' && key !== 'activeStyle' && key !== 'optionDivider'){\n clearInputBind[key] = mergeInputBind.value[key as keyof SelectInputBind];\n }\n })\n return clearInputBind;\n });\n return { mergeInputBind, clearInputBind };\n}\n\n// hashtag series (multiple select)\n// noDrop, , loading,\nconst defaultHashtagInputBind = () => {\n return {\n ...defaultAllSelectInputBind(),\n searchable: true,\n }\n}\nexport const useMergeHashtagInputBind = (inputBind: Ref<Record<string, unknown>>) => {\n const mergeInputBind = computed(() => {\n return {\n ...defaultHashtagInputBind(),\n ...inputBind.value,\n noDrop: inputBind.value.noDrop,\n loading: inputBind.value.loading,\n }\n })\n const clearInputBind = computed(() => {\n const clearInputBind: Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'activeStyle'){\n clearInputBind[key] = mergeInputBind.value[key as keyof HashtagInputBind];\n }\n })\n return clearInputBind;\n });\n return { mergeInputBind, clearInputBind };\n}\n// checkbox\nconst defaultCheckBoxInputBind = (): CheckBoxInputBind => {\n return {\n hasNextPage: false,\n options: [],\n }\n}\nexport const useMergeCheckBoxInputBind = (inputBind: Ref<Record<string, unknown>>) => { \n const mergeInputBind = computed<CheckBoxInputBind>(() => {\n return {\n ...defaultCheckBoxInputBind() as CheckBoxInputBind,\n ...inputBind.value,\n }\n })\n const clearInputBind = computed(() => {\n const clearInputBind: Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'hasNextPage' && key !== 'infiniteFn' && key !== 'options' && key !== 'label' && key !== 'valueKey'){\n clearInputBind[key] = mergeInputBind.value[key as keyof CheckBoxInputBind];\n }\n })\n return clearInputBind;\n });\n\n // console.log('mergeInputBind',mergeInputBind.value);\n return { mergeInputBind, clearInputBind };\n}\n\n// all datetime\nconst defaultAllDatetimeInputBind = () => { \n return {\n isClearable: true,\n clearable: false,\n teleported: false, // for click now (is-text)\n }\n}\nconst defaultAllDatetimeMethod = () => {\n\n const mainInputModeNone = () => {\n\n }\n const panelInputModeNone = () => {\n const popperEls = document.querySelectorAll(`.js-datetime-popper`);\n popperEls.forEach((popperEl) => {\n const inputEls = popperEl.querySelectorAll('input');\n if (inputEls) {\n inputEls.forEach(inputEl => {\n inputEl.setAttribute(\"inputmode\", \"none\");\n })\n }\n })\n }\n const panelTimezone = (timezone:DatetimePickerInputBind['timezone']) => {\n if(!timezone) return;\n let els = document.querySelectorAll<HTMLElement>('.el-picker-panel__footer');\n els.forEach(el => {\n let remarkTimezone = el.querySelector<HTMLElement>('.js-remarkTimezone');\n if (remarkTimezone) return;\n let utcEl = document.createElement('span');\n utcEl.className = 'js-remarkTimezone remark-timezone tw-text-gray tw-text-sm mr-auto';\n utcEl.textContent = `(${utcTimezone(timezone)})`;\n el.prepend(utcEl);\n })\n }\n\n return {\n panelInputModeNone,\n panelTimezone,\n }\n}\n\n// datetime series\nconst defaultDatetimePickerInputBind = () => { \n return {\n ...defaultAllDatetimeInputBind(),\n restrict: {\n restrictType: RestrictTypeMode.UNLIMITED,\n shiftSecond: 0,\n },\n }\n}\nexport const useMergeDatetimePickerInputBind = (inputBind: Ref<Record<string, unknown>>) => {\n const mergeInputBind = computed<DatetimePickerInputBind>(() => {\n return {\n ...defaultDatetimePickerInputBind(),\n ...inputBind.value,\n timezone: inputBind.value.timezone as DatetimePickerInputBind['timezone'],\n popperClass: `${inputBind.value.popperClass} js-datetime-popper`,\n }\n })\n\n const clearInputBind = computed(() => {\n const clearInputBind: Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'isClearable' && key !== 'restrict' && key !== 'timezone'){\n clearInputBind[key] = mergeInputBind.value[key as keyof DatetimePickerInputBind];\n }\n })\n return clearInputBind;\n })\n \n return { mergeInputBind, clearInputBind, ...defaultAllDatetimeMethod() };\n}\n\n// datetimerange series\nconst defaultDatetimerngInputBind = () => { \n return {\n ...defaultAllDatetimeInputBind(),\n activeStyle: false,\n }\n}\nexport const useMergeDatetimerngInputBind = (inputBind: Ref<Record<string, unknown>>) => { \n const mergeInputBind = computed<DatetimerngInputBind>(() => {\n return {\n ...defaultDatetimerngInputBind(),\n ...inputBind.value,\n timezone: inputBind.value.timezone as DatetimePickerInputBind['timezone'],\n popperClass: `${inputBind.value.popperClass} js-datetime-popper`,\n }\n })\n const clearInputBind = computed(() => {\n const clearInputBind: Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'isClearable' && key !== 'activeStyle' && key !== 'timezone'){\n clearInputBind[key] = mergeInputBind.value[key as keyof DatetimerngInputBind];\n }\n })\n return clearInputBind;\n })\n return { mergeInputBind, clearInputBind, ...defaultAllDatetimeMethod() };\n}","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-form.scss';\nimport { InkVTooltip } from '@/components/ink-tooltip/Ink-tooltip';\nimport InkButton from '@/components/InkButton.vue';\nimport { t } from '@/helper/i18n';\nimport { defineAsyncComponent, computed, watch, toRef, onMounted, nextTick } from 'vue';\nimport type { FieldDataSharp, UnKnownOptions} from '@/components/input/field-data-interface';\nimport { useFieldArray } from 'vee-validate';\nimport InkFieldMessage from '@/components/input/InkFieldMessage.vue';\nimport { fieldDefaultValue, useMergeFieldProps } from '@/components/input/input-default-value';\nimport { singleFieldTypes } from '@/components/input/input-default-value';\ninterface DraggableItemOrder {\n inputId: string;\n value: string | number | boolean | object;\n }\ninterface FieldProps {\n field: FieldDataSharp; // field require for attribute required calculate data\n disabled?: boolean; // for attribute disabled\n required?: boolean; // for attribute required\n inputBind?: Record<string, any>;\n inputOn?: Record<string, any>;\n}\n\nconst props = withDefaults(defineProps<FieldProps>(), {\n});\n\nconst emit = defineEmits(['inkChanged']);\n\nconst componentMap = {\n text: defineAsyncComponent(() => import('@/components/input/InkText.vue')),\n url: defineAsyncComponent(() => import('@/components/input/InkUrl.vue')),\n textarea: defineAsyncComponent(() => import('@/components/input/InkTextarea.vue')),\n select: defineAsyncComponent(() => import('@/components/input/InkSelect.vue')),\n hashtag: defineAsyncComponent(() => import('@/components/input/InkHashtag.vue')),\n checkbox: defineAsyncComponent(() => import('@/components/input/InkCheckbox.vue')),\n radio: defineAsyncComponent(() => import('@/components/input/InkRadio.vue')),\n switch: defineAsyncComponent(() => import('@/components/input/InkSwitch.vue')),\n datetime: defineAsyncComponent(() => import('@/components/input/InkDatetime.vue')),\n date: defineAsyncComponent(() => import('@/components/input/InkDatetime.vue')),\n datetimerng: defineAsyncComponent(() => import('@/components/input/InkDatetimerng.vue')),\n daterng: defineAsyncComponent(() => import('@/components/input/InkDatetimerng.vue')),\n} as const;\n\ntype FieldType = keyof typeof componentMap;\n\n// 使用 computed 來獲取當前的欄位類型\nconst fieldType = computed(() => props.field.type as FieldType);\n\nconst { checkFieldMax, mergeField } = useMergeFieldProps<FieldDataSharp>(fieldType.value, toRef(props, 'field'));\n\n// watch(() => props.field, (newField) => {\n// console.log('watch field d1',newField);\n// }, { deep: true });\n\nconst dynamicComponent = computed(() => {\n return componentMap[mergeField.value.type as FieldType];\n});\n\n\n// 根據欄位類型返回對應的值類型 (邊做 input 的 .vue 邊測試這裡的 type 是否可行,會因應使用的套件而不同)\ntype GetFieldValueType<T extends FieldType> = \n T extends 'text' | 'slug' | 'email' | 'url' | 'password' | 'time' | 'textarea' | 'html'\n ? string \n : T extends 'number' | 'datetime' | 'date' | 'datetimerng' | 'daterng'\n ? number | undefined\n : T extends 'switch' \n ? boolean \n : T extends 'json' | 'hashtag'\n ? object \n : T extends 'select' | 'checkbox' | 'radio'\n ? UnKnownOptions[] | string[] | number[] | null | undefined\n : T extends 'file' | 'image'\n ? number | object\n : never;\n\n\n// 使用 fieldType.value 來決定 useFieldArray 的類型\nconst { remove, push, fields, update, replace } = useFieldArray<GetFieldValueType<typeof fieldType.value>>(mergeField.value.id);\n\nconst inputTotal = computed(() => fields.value.length);\n\nconst onRemoveItemHandler = (index: number) => {\n remove(index);\n};\n\nconst onUpdateItem = (index: number, value: GetFieldValueType<typeof fieldType.value>) => {\n update(index, value);\n};\n\nconst onPushItem = () => {\n switch (fieldType.value) {\n case 'text':\n // case 'slug':\n // case 'email':\n case 'url':\n // case 'password':\n // case 'time':\n case 'textarea':\n // case 'html':\n push('');\n break;\n case 'checkbox':\n case 'radio':\n case 'hashtag':\n break;\n case 'daterng':\n case 'datetimerng':\n push([undefined, undefined]);\n break;\n default:\n push(undefined);\n break;\n }\n}\n\nconst onInkChanged = (value: GetFieldValueType<typeof fieldType.value>) => {\n emit('inkChanged', value);\n}\n\nonMounted(async () => {\n await nextTick()\n if (fields.value.length === 0) {\n onPushItem()\n }\n})\n\n</script>\n\n<template>\n <fieldset \n class=\"js-dynamic-component tw-flex tw-flex-wrap tw-gap-2\"\n :data-field-type=\"mergeField.type\"\n :class=\"{\n 'tw-flex-row tw-items-center': mergeField.type === 'switch',\n 'tw-flex-col': mergeField.type !== 'switch',\n }\"\n >\n <div v-if=\"mergeField.name\" :class=\"['tw-text-base tw-font-semibold tw-flex tw-items-center tw-gap-1']\">\n {{ mergeField.name }}\n <InkVTooltip v-if=\"mergeField.tip\">\n <button type=\"button\" class=\"tw-btn-transparent tw-btn-icon-xs\"><i class=\"fa-regular fa-circle-info\"></i></button>\n <template #popper>\n {{ mergeField.tip }}\n </template>\n </InkVTooltip>\n <span v-if=\"required && mergeField.type !== 'switch'\" class=\"tw-text-primary-500\">\n {{ t('requiredHint') }}\n </span>\n </div>\n <!-- <slot/> -->\n <template v-if=\"!singleFieldTypes.includes(mergeField.type)\">\n <component \n v-for=\"(item, valueIndex) in fields\"\n :key=\"`${item.key}-${valueIndex}`\"\n :is=\"dynamicComponent\"\n :valueIndex=\"valueIndex\"\n :inputTotal=\"inputTotal\"\n :field=\"mergeField\"\n :required=\"required\"\n :disabled=\"disabled\"\n @removeInputItemFn=\"onRemoveItemHandler\"\n :inputBind=\"inputBind\"\n :inputOn=\"inputOn\"\n @inkChanged=\"onInkChanged\"\n >\n </component>\n </template>\n <template v-else>\n <component \n :is=\"dynamicComponent\"\n :inputTotal=\"inputTotal\"\n :field=\"mergeField\"\n :required=\"required\"\n :disabled=\"disabled\"\n @removeInputItemFn=\"onRemoveItemHandler\"\n :inputBind=\"inputBind\"\n :inputOn=\"inputOn\"\n @inkChanged=\"onInkChanged\"\n >\n </component>\n </template>\n <InkFieldMessage v-if=\"mergeField.description\" :descriptionText=\"mergeField.description\"/>\n <template v-if=\"!singleFieldTypes.includes(mergeField.type)\">\n <InkButton\n v-if=\"inputTotal < checkFieldMax\"\n as=\"button\"\n type=\"button\"\n variant=\"txt\"\n theme=\"outline-gray\"\n size=\"md\"\n class=\"tw-self-start\"\n @click=\"onPushItem\"\n :disabled=\"disabled\"\n >\n <i class=\"far fa-plus tw-text-base\"></i>\n {{ t('add') }}\n </InkButton>\n </template>\n </fieldset>\n</template>","<script setup lang=\"ts\">\n\n</script>\n<template>\n <div class=\"input-wrapper tw-flex tw-flex-col tw-flex-grow tw-gap-1\">\n <slot/>\n </div>\n</template>\n\n","<script setup lang=\"ts\">\n\n</script>\n<template>\n <div class=\"input-inner tw-flex tw-gap-2 tw-items-center\">\n <slot/>\n </div>\n</template>\n\n","<script setup lang=\"ts\">\nconst props = defineProps({\n errorText: {\n type: String,\n default: ''\n }\n});\n</script>\n<template>\n <em :class=\"'tw-error-message tw-block tw-w-full tw-break-all'\">{{ props.errorText }}</em>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { singleFieldTypes } from '@/components/input/input-default-value';\n\ninterface InputFrameProps {\n max: number;\n inputTotal?: number;\n disabled?: boolean;\n inputType?: string;\n}\n\nconst props = withDefaults(defineProps<InputFrameProps>(), {\n inputTotal: 0\n});\n\nconst classList = computed(() => {\n const list = []\n if (props.inputType === 'textarea' || props.inputType === 'json') {\n list.push('tw-border-b', 'tw-self-start', 'tw-rounded-bl-lg', 'tw-rounded-tr-lg')\n } else {\n list.push('tw-rounded-r')\n }\n return list\n})\n\nconst emit = defineEmits(['removeComponent']);\n</script>\n<template>\n <div class=\"input-frame tw-flex tw-flex-grow tw-relative\">\n <slot/>\n <template v-if=\"inputType && !singleFieldTypes.includes(inputType)\">\n <button\n type=\"button\"\n v-if=\"(disabled && max === Infinity) || max > 1\"\n :class=\"['tw-btn-remove', 'tw-absolute', 'tw-inset-y-[1px]', 'tw-right-[1px]', 'tw-border-l', classList]\"\n @click.prevent=\"emit('removeComponent')\"\n :disabled=\"inputTotal <= 1\"\n >\n <i class=\"far fa-trash\"></i>\n </button>\n </template>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useField } from 'vee-validate';\nimport { computed, type PropType, toRef } from \"vue\";\nimport type { TextSharp } from '@/components/input/field-data-interface';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps } from '@/components/input/input-default-value';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<TextSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<Record<string, unknown>>,\n default: () => ({}),\n },\n});\n\nconst {mergeField, minLength, maxLength, checkFieldMax} = useMergeFieldProps<TextSharp>('text', toRef(props, 'field'));\n\nconst rules = computed(() => ({\n required: props.required,\n wordLimit: mergeField.value.limit,\n}));\n\nconst { value, errorMessage } = useField<string>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\nconst emit = defineEmits(['removeInputItemFn']);\n\n</script>\n<template>\n <InputWrapper>\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n {{ mergeField.prefix }}\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <input\n type=\"text\"\n :minlength=\"minLength\"\n :maxlength=\"maxLength\"\n :class=\"['form-control tw-input-txt tw-w-full', { 'tw-border-danger-400': errorMessage }]\"\n v-model.trim=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder\"\n v-bind=\"inputBind\"\n v-on=\"inputOn\"\n @keydown.enter.prevent\n />\n </InputFrame>\n {{ mergeField.suffix }}\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { useField } from 'vee-validate';\nimport { computed, type PropType, toRef } from \"vue\";\nimport type { UrlSharp } from '@/components/input/field-data-interface';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps } from '@/components/input/input-default-value';\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<UrlSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<Record<string, unknown>>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<UrlSharp>('url', toRef(props, 'field'));\n\n\nconst rules = computed(() => ({\n required: props.required,\n url: true,\n}));\n\nconst { value, errorMessage } = useField<string>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\n</script>\n<template>\n <InputWrapper>\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <input\n type=\"url\"\n :class=\"['form-control tw-input-txt tw-w-full', { 'tw-border-danger-400': errorMessage }]\"\n v-model.trim=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder\"\n v-bind=\"inputBind\"\n v-on=\"inputOn\"\n @keydown.enter.prevent\n />\n </InputFrame>\n <!-- InputInner for other input type suffix in here -->\n </InputInner>\n <!-- error message -->\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { useField } from 'vee-validate';\nimport { computed, type PropType, toRef } from \"vue\";\nimport type { TextareaSharp } from '@/components/input/field-data-interface';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport InkWordCount from '@/components/input/InkWordCount.vue';\nimport { defaultInputProps, useMergeFieldProps } from '@/components/input/input-default-value';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<TextareaSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<Record<string, unknown>>,\n default: () => ({}),\n },\n});\n\nconst {mergeField, minLength, maxLength, checkFieldMax} = useMergeFieldProps<TextareaSharp>('textarea', toRef(props, 'field'));\n\nconst rules = computed(() => ({\n required: props.required,\n wordLimit: mergeField.value.limit,\n}));\n\nconst { value, errorMessage } = useField<string>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\nconst emit = defineEmits(['removeInputItemFn']);\n\n</script>\n<template>\n <InputWrapper>\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :inputType=\"mergeField.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div :class=\"['tw-textarea tw-w-full', { 'tw-border-danger-400': errorMessage }]\">\n <textarea\n rows=\"5\"\n :minlength=\"minLength\"\n :maxlength=\"maxLength\"\n :class=\"['form-control tw-w-full']\"\n v-model.trim=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder\"\n v-bind=\"inputBind\"\n v-on=\"inputOn\"\n @keydown.enter.prevent\n />\n </div>\n </InputFrame>\n </InputInner>\n <InkWordCount v-if=\"maxLength\" :maxLength=\"maxLength\" :wordCount=\"value.length\" />\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport '@/scss/component/vue-select/_ink-vue-select.scss';\nimport { computed, useTemplateRef, defineEmits, nextTick, type PropType, watch, toRef, ref } from 'vue';\nimport vSelect from 'vue-select'\nimport { useField } from 'vee-validate';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeSelectInputBind } from '@/components/input/input-default-value';\nimport { SelectSharp } from '@/components/input/field-data-interface';\nimport { t } from '@/helper/i18n';\nimport type { SelectInputBind, UnKnownOptions, SelectReduceReturn } from '@/components/input/field-data-interface';\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<SelectSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<SelectInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<SelectSharp>('select', toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind } = useMergeSelectInputBind(toRef(props, 'inputBind'));\n\nconst isObserver = ref(false);\nconst load = useTemplateRef('load');\nconst infiniteScrollHandler = async ([{ isIntersecting, target }]: IntersectionObserverEntry[]) => {\n if (isIntersecting) {\n const ul = (target as HTMLElement).offsetParent as HTMLElement;\n const scrollTop = ul.scrollTop;\n if(mergeInputBind.value.infiniteFn){\n mergeInputBind.value.infiniteFn();\n }\n const watchOptions = watch(() => mergeInputBind.value.options, () => {\n ul.scrollTop = scrollTop;\n watchOptions();\n })\n }\n}\nconst observer = new IntersectionObserver(infiniteScrollHandler)\nconst checkAndObserver = () => { \n if (mergeInputBind.value.hasNextPage && load.value && !isObserver.value) {\n observer.observe(load.value);\n isObserver.value = true;\n }\n}\nconst disconnectObserver = () => {\n observer.disconnect();\n isObserver.value = false;\n}\nconst onOpen = async () => {\n await nextTick()\n checkAndObserver();\n // emit('openFn');\n if(mergeInputBind.value.openFn){\n mergeInputBind.value.openFn();\n }\n}\nconst onClose = () => {\n disconnectObserver();\n // emit('closeFn');\n if(mergeInputBind.value.closeFn){\n mergeInputBind.value.closeFn();\n }\n}\nwatch(() => load.value, async () => {\n if (!isObserver.value && load.value) {\n // for first time search\n await nextTick()\n checkAndObserver();\n } else {\n // for open dropdown and do search\n disconnectObserver();\n }\n})\n// get infinite data end\n\nconst rules = computed(() => ({\n required: props.required,\n}));\n\nconst { value, errorMessage, setValue } = useField<SelectReduceReturn | UnKnownOptions>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\nwatch(()=>value.value, (newVal) => {\n if(newVal && typeof newVal === 'object' && newVal !== null){\n if(mergeInputBind.value.reduce){\n const reduceValue = mergeInputBind.value.reduce(newVal);\n if(!reduceValue){\n setValue(mergeInputBind.value.reduce(newVal));\n }\n }else{\n console.warn('InkSelect - inputBind.reduce is not defined. Please check it.');\n }\n }\n}, { immediate: true });\n\n// style\nconst elStyle = computed(() => {\n return {\n 'active': mergeInputBind.value.activeStyle && value.value,\n 'is-error': errorMessage.value,\n 'option-0-divider': mergeInputBind.value.optionDivider?.some((item: number) => item === 0),\n 'option-1-divider': mergeInputBind.value.optionDivider?.some((item: number) => item === 1),\n 'option-2-divider': mergeInputBind.value.optionDivider?.some((item: number) => item === 2),\n };\n});\n\n</script>\n<template>\n <InputWrapper>\n <InputInner>\n <InputFrame\n :inputType=\"field.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\"\n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <!-- :dropdownShouldOpen=\"() => true\" -->\n <!-- @option:selected=\"onSelected\" -->\n <v-select\n v-model=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder || t('select')\"\n @open=\"onOpen\"\n @close=\"onClose\"\n class=\"tw-w-full\"\n :class=\"elStyle\"\n :inputId=\"`${mergeField.id}[${props.valueIndex}]`\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n >\n <!-- 選項內容 -->\n <template #option=\"options\">\n <div :class=\"['option']\">\n <span \n class=\"tw-mr-2.5 tw-rounded-sm tw-py-1\"\n :style=\"{ 'padding-left': `calc(${options.depth > 0 ? options.depth - 1 : 0}em + 0.5rem)` }\"\n >\n <i v-if=\"options.depth > 0\" class=\"fal fa-angle-left -tw-rotate-45\"></i>\n {{ options[clearInputBind?.label || 'name'] }}\n </span>\n </div>\n </template>\n <template v-if=\"disabled\" #open-indicator=\"{ attributes }\">\n <!-- 自定義圖示或完全空白 -->\n {{ null }}\n </template>\n <template #list-footer>\n <li v-show=\"mergeInputBind.hasNextPage\" ref=\"load\" class=\"loader tw-text-sm tw-text-gray-600 tw-italic\">\n {{ t('loading') }}\n </li>\n </template>\n </v-select>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n<!-- <style lang=\"postcss\" scoped>\n.v-select.vs--single {\n :deep(.vs__dropdown-menu) {\n --vs-dropdown-min-width: auto;\n }\n}\n</style> -->","<script setup lang=\"ts\">\nimport '@/scss/component/vue-select/_ink-vue-select.scss';\nimport { computed, defineEmits, onMounted, type PropType, toRef, watch, useTemplateRef } from 'vue';\nimport vSelect from 'vue-select'\nimport { useField } from 'vee-validate';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeHashtagInputBind } from '@/components/input/input-default-value';\nimport { t } from '@/helper/i18n';\nimport type { HashtagInputBind, UnKnownOptions, HashtagSharp } from '@/components/input/field-data-interface';\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<HashtagSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<HashtagInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<HashtagSharp>('hashtag', toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind } = useMergeHashtagInputBind(toRef(props, 'inputBind'));\n\n\nconst rules = computed(() => ({\n required: props.required,\n itemLimit: [mergeField.value.min, mergeField.value.max],\n}));\n\nconst { value, errorMessage, setValue } = useField<UnKnownOptions[]>(`${mergeField.value.id}`, rules);\n\n// style\nconst elStyle = computed(() => {\n return {\n 'active': mergeInputBind.value.activeStyle && value.value,\n 'is-error': errorMessage.value,\n };\n});\n\n// const deleteSelectItemIsEmpty = ()=>{\n// if(value.value.length === 0)return;\n// value.value = value.value.filter((item: UnKnownOptions) => item);\n// }\nonMounted(() => {\n // deleteSelectItemIsEmpty();\n});\nconst vSelectRef = useTemplateRef<InstanceType<typeof vSelect>>('vSelectRef');\nwatch(value, () => {\n vSelectRef.value?.searchEl.focus();\n})\n\n</script>\n<template>\n <InputWrapper>\n <InputInner>\n <InputFrame\n :inputType=\"field.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\"\n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <!-- :dropdownShouldOpen=\"() => true\" -->\n <!-- @option:selected=\"onSelected\" -->\n <v-select\n ref=\"vSelectRef\"\n v-model=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder\"\n class=\"tw-w-full\"\n :class=\"elStyle\"\n :inputId=\"`${mergeField.id}`\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n :taggable=\"!mergeField.limit\"\n :filterable=\"mergeField.limit\"\n multiple\n >\n <!-- 選項內容 -->\n <template #option=\"{ name }\">\n <div :class=\"['option']\">\n <span \n class=\"tw-mr-2.5 tw-rounded-sm tw-py-1\"\n >\n {{ name }}\n </span>\n </div>\n </template>\n <!-- 鎖定時不顯示刪除按鈕 -->\n <template v-if=\"disabled\" #selected-option-container=\"{ option }\">\n <div class=\"vs__selected\">{{ option.name }}</div>\n </template>\n\n <!-- 無選項內容 -->\n <template #no-options>\n {{ t('noResultsFound') }}\n </template>\n <template #open-indicator=\"{ attributes }\">\n <!-- 自定義圖示或完全空白 -->\n {{ null }}\n </template>\n <template #list-footer>\n </template>\n </v-select>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>","<script setup lang=\"ts\">\nimport { ref, computed, type PropType, watch, toRef, useId } from \"vue\";\nimport { useField } from 'vee-validate';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeCheckBoxInputBind } from '@/components/input/input-default-value';\nimport { useIntersectionObserver } from '@vueuse/core';\nimport type { CheckBoxSharp, CheckBoxInputBind, UnKnownOptions} from '@/components/input/field-data-interface';\n// import InkCheckBoxInput from '@/components/input/InkCheckBoxInput.vue';\nimport { t } from '@/helper/i18n';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<CheckBoxSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<CheckBoxInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<CheckBoxSharp>('checkbox', toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind } = useMergeCheckBoxInputBind(toRef(props, 'inputBind'));\n\nconst checkedValueKey = computed(() => {\n const key = mergeInputBind.value.valueKey || 'key'\n if(!mergeInputBind.value.options?.[0]?.hasOwnProperty(key)){\n console.warn(`InkCheckbox - the key \"${key}\" is not in the options, please check the options and the inputBind.valueKey. inputBind.valueKey default is \"key\"`);\n }\n return key;\n});\nconst onChange = (id: number | string, event: Event) => {\n const isChecked = (event.target as HTMLInputElement).checked;\n // let newValue = isChecked ? [...value.value, id] : value.value.filter(item => item !== id);\n let newValue;\n if(isChecked){\n // newValue = [...value.value, id];\n newValue = value.value.filter(item => item !== undefined).concat(id);\n }else{\n newValue = value.value.filter(item => {\n if(typeof item === 'object' && item !== null){\n return item[checkedValueKey.value] !== id && item !== undefined;\n }else{\n return item !== id && item !== undefined;\n }\n });\n }\n if(newValue.length === 0){\n newValue = [undefined];\n }\n // emit('update:modelValue', newValue);\n handleChange(newValue);\n};\nconst isChecked = (id: number | string) => {\n return value.value.some(item => {\n if(typeof item === 'object' && item !== null){\n return item[checkedValueKey.value] === id;\n }else{\n return item === id;\n }\n });\n}\n\n// get infinite data start\nconst root = ref(null)\nconst load = ref(null)\n\nconst IntersectionObserver = useIntersectionObserver(\n load,\n ([entry]) => {\n if (!entry.isIntersecting) return;\n // emit('infiniteHandler');\n if(mergeInputBind.value.infiniteFn){\n mergeInputBind.value.infiniteFn();\n }\n },\n { root },\n)\nwatch(() => mergeInputBind.value.hasNextPage, (newValue) => {\n // console.log('IntersectionObserver',IntersectionObserver)\n if (newValue) {\n IntersectionObserver.resume();\n } else {\n IntersectionObserver.pause();\n }\n}, { immediate: true })\n// get infinite data end\nconst rules = computed(() => ({\n required: props.required,\n}));\nconst { value, errorMessage, handleChange } = useField<number[] | string[] | UnKnownOptions[]>(mergeField.value.id, rules);\n\n</script>\n\n<template>\n <InputWrapper>\n <InputInner>\n <InputFrame\n :inputType=\"mergeField.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\"\n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div \n v-for=\"option in mergeInputBind.options\" \n :key=\"useId()\" \n class=\"form-check tw-mt-0 [&+div]:tw-mt-3\"\n :style=\"{ 'margin-left': option.depth + 'em' }\"\n >\n <label\n :class=\"[\n 'form-check-label',\n {\n 'form-check-label-disabled': disabled || option.disabled,\n 'tw-text-danger-400': errorMessage,\n },\n ]\">\n <!-- <InkCheckBoxInput\n :name=\"mergeField.id\"\n :value=\"option[checkedValueKey] as string | number | undefined\"\n :required=\"required\"\n :disabled=\"disabled || option.disabled\"\n v-on=\"inputOn\"\n >{{ option[mergeInputBind.label || 'name'] }}</InkCheckBoxInput> -->\n <input \n v-model=\"value\"\n type=\"checkbox\" \n class=\"form-check-input tw-peer\"\n :value=\"option[checkedValueKey] as string | number\" \n :disabled=\"disabled || option.disabled\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n />\n {{ option[mergeInputBind.label || 'name'] }}\n <i :class=\"['tw-check', { 'tw-border-danger-400': errorMessage }]\"></i>\n </label>\n </div>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n <div v-show=\"mergeInputBind.hasNextPage\" ref=\"load\" class=\"tw-text-sm tw-text-gray-600 tw-italic\">{{ t('loading') }}</div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, computed, type PropType, watch, toRef, useId } from \"vue\";\nimport { useField } from 'vee-validate';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeCheckBoxInputBind } from '@/components/input/input-default-value';\nimport { useIntersectionObserver } from '@vueuse/core';\nimport type { RadioSharp, RadioInputBind, UnKnownOptions} from '@/components/input/field-data-interface';\n\nimport { t } from '@/helper/i18n';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<RadioSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<RadioInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<RadioSharp>('radio', toRef(props, 'field'));\n // because radio current is similar to checkbox, so use the same function to merge inputBind,\n // but if radio is not similar to checkbox, please use the different function to merge inputBind\nconst { mergeInputBind, clearInputBind } = useMergeCheckBoxInputBind(toRef(props, 'inputBind'));\n\nconst checkedValueKey = computed(() => {\n const key = mergeInputBind.value.valueKey || 'key'\n if(!mergeInputBind.value.options?.[0]?.hasOwnProperty(key)){\n console.warn(`InkRadio - the key \"${key}\" is not in the options, please check the options and the inputBind.valueKey. inputBind.valueKey default is \"key\"`);\n }\n return key;\n});\nconst onChange = (id: number | string, event: Event) => {\n const isChecked = (event.target as HTMLInputElement).checked;\n // let newValue = isChecked ? [...value.value, id] : value.value.filter(item => item !== id);\n let newValue = undefined;\n if(isChecked){\n newValue = id;\n }\n\n handleChange(newValue);\n};\nconst isChecked = (id: number | string) => {\n if(typeof value.value === 'object' && value.value !== null){\n return value.value[checkedValueKey.value] === id;\n }else{\n return value.value === id;\n }\n}\n\n// get infinite data start\nconst root = ref(null)\nconst load = ref(null)\n\nconst IntersectionObserver = useIntersectionObserver(\n load,\n ([entry]) => {\n if (!entry.isIntersecting) return;\n // emit('infiniteHandler');\n if(mergeInputBind.value.infiniteFn){\n mergeInputBind.value.infiniteFn();\n }\n },\n { root },\n)\nwatch(() => mergeInputBind.value.hasNextPage, (newValue) => {\n // console.log('IntersectionObserver',IntersectionObserver)\n if (newValue) {\n IntersectionObserver.resume();\n } else {\n IntersectionObserver.pause();\n }\n}, { immediate: true })\n// get infinite data end\nconst rules = computed(() => ({\n required: props.required,\n}));\nconst { value, errorMessage, handleChange } = useField<number | string | UnKnownOptions>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\n</script>\n\n<template>\n <InputWrapper>\n <InputInner>\n <InputFrame\n :inputType=\"mergeField.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\"\n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div \n class=\"form-radio tw-mt-0 tw-flex tw-flex-col tw-gap-2\"\n >\n <label\n v-for=\"option in mergeInputBind.options\" \n :key=\"useId()\" \n :class=\"[\n 'form-radio-label',\n {\n 'form-check-label-disabled': disabled || option.disabled,\n 'tw-text-danger-400': errorMessage,\n },\n ]\">\n <input \n v-model=\"value\"\n type=\"radio\" \n class=\"form-check-input tw-peer\"\n :value=\"option[checkedValueKey] as string | number\" \n :disabled=\"disabled || option.disabled\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n />\n {{ option[mergeInputBind.label || 'name'] }}\n <i :class=\"['tw-radio', { 'tw-border-danger-400': errorMessage }]\"></i>\n </label>\n </div>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n <div v-show=\"mergeInputBind.hasNextPage\" ref=\"load\" class=\"tw-text-sm tw-text-gray-600 tw-italic\">{{ t('loading') }}</div>\n</template>\n","<script setup lang=\"ts\">\nimport { useField } from 'vee-validate';\nimport { computed, type PropType, toRef } from 'vue';\nimport { defaultInputProps, useMergeFieldProps } from '@/components/input/input-default-value';\nimport type { SwitchSharp } from '@/components/input/field-data-interface';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<SwitchSharp>,\n required: true,\n },\n});\n\nconst emit = defineEmits(['removeInputItemFn', 'inkChanged']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<SwitchSharp>('switch', toRef(props, 'field'));\n\nconst onChange = () => {\n handleChange(!value.value);\n emit('inkChanged', value.value);\n};\nconst rules = computed(() => ({\n required: props.required,\n}));\n\nconst { value, errorMessage, handleChange } = useField<boolean>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\n</script>\n<template>\n <InputWrapper>\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <button\n type=\"button\"\n :class=\"[\n 'tw-switch',\n value ? 'tw-bg-secondary-800' : 'tw-bg-gray-400',\n ]\"\n :disabled=\"disabled\"\n @click=\"onChange()\"\n >\n <input\n type=\"checkbox\"\n :checked=\"value\"\n :disabled=\"disabled\"\n readonly\n hidden\n />\n <span class=\"tw-sr-only\">Enable notifications</span>\n <span\n :class=\"value ? 'tw-translate-x-4' : 'tw-translate-x-0'\"\n class=\"tw-inline-block tw-h-3 tw-w-3 tw-transform tw-rounded-full tw-bg-white tw-transition\"\n />\n </button>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { ElConfigProvider } from 'element-plus';\nimport type { Language } from 'element-plus/es/locale'\nimport { ref, watchEffect } from 'vue';\nimport { inkI18n } from '@/helper/i18n';\nimport { useRestAttrs } from '@/helper/useAttrs'\n\nconst restAttrs = useRestAttrs()\n\nconst locale = ref<Language>();\n\nwatchEffect(async () => {\n switch (inkI18n.global.locale.value) {\n case 'zh-tw':\n locale.value = (await import('element-plus/es/locale/lang/zh-tw')).default\n break\n case 'en-us':\n locale.value = (await import('element-plus/es/locale/lang/en')).default\n break\n case 'ja-jp':\n locale.value = (await import('element-plus/es/locale/lang/ja')).default\n break\n default:\n locale.value = (await import('element-plus/es/locale/lang/en')).default\n }\n})\n</script>\n\n<template>\n <ElConfigProvider \n :locale=\"locale\"\n v-bind=\"restAttrs\"\n >\n <slot />\n </ElConfigProvider>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-element-plus-datetime.scss';\nimport { ElDatePicker } from 'element-plus';\nimport 'element-plus/es/components/date-picker/style/css';\nimport { computed, onMounted, PropType, useTemplateRef, toRef, watch, ref } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeDatetimePickerInputBind } from '@/components/input/input-default-value';\nimport type { DatetimeSharp, DatetimePickerInputBind } from '@/components/input/field-data-interface';\nimport dayjs, { formatTimeToUnix, formatUnixTime } from '@/helper/dayjs';\nimport { RestrictTypeMode } from '@/components/input/field-data-interface';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<DatetimeSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<DatetimePickerInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn', 'inkChanged']);\nconst { mergeField, checkFieldMax } = useMergeFieldProps<DatetimeSharp>(props.field.type, toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind, panelInputModeNone, panelTimezone } = useMergeDatetimePickerInputBind(toRef(props, 'inputBind'));\n\nconst datetimeType = computed(() => {\n if(mergeInputBind.value.type) return mergeInputBind.value.type;\n switch(mergeField.value.type){\n case 'date':\n return 'date'\n default:\n return 'datetime'\n }\n});\nconst datetimeFormat = computed(() => {\n if(mergeInputBind.value.format) return mergeInputBind.value.format;\n switch(mergeField.value.type){\n case 'date':\n return 'YYYY/MM/DD'\n default:\n return 'YYYY/MM/DD HH:mm'\n }\n});\nconst clearTime = () => {\n handleChange(undefined);\n displayValue.value = undefined;\n};\nconst disabledDate = (date: Date) => {\n if(mergeInputBind.value.restrict.restrictType === RestrictTypeMode.PAST) {\n return dayjs.tz(date, mergeInputBind.value.timezone).unix() > dayjs.tz(dayjs(), mergeInputBind.value.timezone).endOf('day').unix()\n };\n if(mergeInputBind.value.restrict.restrictType === RestrictTypeMode.FUTURE) {\n return dayjs.tz(date, mergeInputBind.value.timezone).unix() < dayjs.tz(dayjs(), mergeInputBind.value.timezone).startOf('day').unix()\n };\n return false;\n}\n\nconst startDatePickerRef = useTemplateRef('startDatePicker');\n\nconst elStyle = computed(() => {\n return {\n 'tw-border-danger-400': startErrorMessage.value,\n 'tw-disabled': props.disabled,\n };\n});\n\nconst datetimeWrapperClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n if (target.classList.contains('is-text') || target.closest('.is-text')) {\n displayValue.value = dayjs.tz(dayjs(), mergeInputBind.value.timezone).format(datetimeFormat.value)\n }\n}\n\nonMounted(() => {\n const datePickerRefs = [startDatePickerRef.value];\n datePickerRefs.forEach((datePickerRef) => {\n const inputEls = datePickerRef?.$el.nextSibling.querySelectorAll('input');\n if (inputEls) {\n inputEls.forEach((inputEl: HTMLInputElement) => {\n inputEl.setAttribute(\"inputmode\", \"none\");\n })\n }\n })\n panelInputModeNone();\n panelTimezone(mergeInputBind.value.timezone);\n})\n\nconst rules = computed(() => ({\n required: props.required,\n datetimeRestrict: [mergeInputBind.value.restrict, mergeInputBind.value.timezone, datetimeFormat.value]\n}));\nconst { value: startValue, errorMessage: startErrorMessage, handleChange } = useField<number | undefined>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\nconst displayValue = ref<string | undefined>();\nwatch(startValue, () => {\n if(startValue.value) {\n displayValue.value = formatUnixTime(mergeInputBind.value.timezone, startValue.value, datetimeFormat.value);\n }else{\n displayValue.value = undefined;\n }\n emit('inkChanged', startValue.value);\n})\nwatch(displayValue, (newVal, oldVal) => {\n if (newVal) {\n if(newVal === oldVal) return;\n const targetTime = dayjs.tz(newVal, mergeInputBind.value.timezone).format();\n const utcTimestamp = formatTimeToUnix(targetTime);\n handleChange(utcTimestamp);\n }else{\n handleChange(undefined);\n }\n})\n</script>\n\n<template>\n <InputWrapper\n :data-field-id=\"mergeField.id\"\n >\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div\n :class=\"[\n 'data-time-picker',\n elStyle\n ]\"\n @click=\"datetimeWrapperClick\"\n >\n <el-date-picker\n ref=\"startDatePicker\"\n v-model=\"displayValue\"\n class=\"datetime-picker-input\"\n :placeholder=\"mergeField.placeholder\"\n :disabled=\"disabled\"\n :disabled-date=\"disabledDate\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n :type=\"datetimeType\"\n :format=\"datetimeFormat\"\n :value-format=\"datetimeFormat\"\n />\n <button\n v-if=\"mergeInputBind.isClearable && !disabled && startValue\"\n type=\"button\"\n class=\"tw-relative tw-px-1 before:tw-absolute before:-tw-inset-2.5 before:tw-content-['']\"\n @click.prevent=\"clearTime\"\n >\n <i class=\"far fa-times-circle tw-text-xs tw-text-gray-700\"></i>\n </button>\n </div>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"startErrorMessage\" :errorText=\"startErrorMessage\"/>\n </InputWrapper>\n</template>\n\n<style lang=\"postcss\" scoped>\n</style>\n","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-element-plus-datetime.scss';\nimport { ElDatePicker } from 'element-plus';\nimport 'element-plus/es/components/date-picker/style/css';\nimport { computed, onMounted, PropType, useTemplateRef, toRef, ref, watch } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeDatetimerngInputBind } from '@/components/input/input-default-value';\nimport type { DatetimerngSharp, DatetimerngInputBind } from '@/components/input/field-data-interface';\nimport dayjs, { formatTimeToUnix, convertUnixToStartOf, formatUnixTime } from '@/helper/dayjs';\nimport { t } from '@/helper/i18n';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<DatetimerngSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<DatetimerngInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn', 'inkChanged']);\nconst { mergeField, checkFieldMax,minLength, maxLength } = useMergeFieldProps<DatetimerngSharp>(props.field.type, toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind, panelInputModeNone, panelTimezone } = useMergeDatetimerngInputBind(toRef(props, 'inputBind'));\n\nconst rngElType = computed(() => {\n if(mergeInputBind.value.type) return mergeInputBind.value.type;\n switch(mergeField.value.type){\n case 'daterng':\n return 'date'\n default:\n return 'datetime'\n }\n});\nconst rngElFormat = computed(() => {\n if(mergeInputBind.value.format) return mergeInputBind.value.format;\n switch(mergeField.value.type){\n case 'daterng':\n return 'YYYY/MM/DD'\n default:\n return 'YYYY/MM/DD HH:mm'\n }\n});\nconst clearTime = () => {\n handleChangeStart(undefined);\n handleChangeEnd(undefined);\n displayStartValue.value = undefined;\n displayEndValue.value = undefined;\n startValueUnix.value = undefined;\n endValueUnix.value = undefined;\n};\nconst startDisabledDate = (date: Date) => {\n if(minLength.value && formatTimeToUnix(date) < minLength.value){\n return true;\n }\n if(maxLength.value && formatTimeToUnix(date) > maxLength.value){\n return true;\n }\n if(endValue.value && formatTimeToUnix(date) > endValue.value ){\n return true\n }\n return false;\n}\nconst endDisabledDate = (date: Date) => {\n if(minLength.value && formatTimeToUnix(date) < minLength.value){\n return true;\n }\n if(maxLength.value && formatTimeToUnix(date) > maxLength.value){\n return true;\n }\n if(startValue.value && formatTimeToUnix(date) < convertUnixToStartOf(startValue.value)){\n return true;\n }\n return false;\n}\nconst startDatePickerRef = useTemplateRef('startDatePicker');\nconst endDatePickerRef = useTemplateRef('endDatePicker');\n\nconst elStyle = computed(() => {\n return {\n 'tw-border-danger-400': startErrorMessage.value || endErrorMessage.value,\n 'tw-border-secondary-700': mergeInputBind.value.activeStyle && (startValue.value || endValue.value),\n 'tw-disabled': props.disabled,\n };\n});\n\nonMounted(() => {\n const datePickerRefs = [startDatePickerRef.value, endDatePickerRef.value];\n datePickerRefs.forEach((datePickerRef) => {\n const inputEls = datePickerRef?.$el.nextSibling.querySelectorAll('input');\n if (inputEls) {\n inputEls.forEach((inputEl: HTMLInputElement) => {\n inputEl.setAttribute(\"inputmode\", \"none\");\n })\n }\n })\n panelInputModeNone();\n panelTimezone(mergeInputBind.value.timezone);\n})\n\n// type ValidationRules = {\n// required: boolean;\n// datetimerngStartLimit?: [number | undefined, false | NumberLimit | TextLimit | FileLimit | DatetimerngLimit, string, unknown];\n// datetimerngEndLimit?: [number | undefined, false | NumberLimit | TextLimit | FileLimit | DatetimerngLimit, string, unknown];\n// };\n\nconst startValueUnix = ref<number | undefined>();\nconst endValueUnix = ref<number | undefined>();\nconst displayStartValue = ref<string | undefined>();\nconst displayEndValue = ref<string | undefined>();\n\nconst startRules = computed(() => ({\n required: props.required,\n datetimerngStartLimit: [endValueUnix.value, minLength.value, maxLength.value, mergeInputBind.value.timezone, mergeInputBind.value.format]\n}));\n\nconst endRules = computed(() => ({\n required: props.required,\n datetimerngEndLimit: [startValueUnix.value, minLength.value, maxLength.value, mergeInputBind.value.timezone, mergeInputBind.value.format]\n}));\n\nconst { value: startValue, errorMessage: startErrorMessage, handleChange: handleChangeStart } = useField<number | undefined>(`${mergeField.value.id}[${props.valueIndex}][0]`, startRules);\nconst { value: endValue, errorMessage: endErrorMessage, handleChange: handleChangeEnd } = useField<number | undefined>(`${mergeField.value.id}[${props.valueIndex}][1]`, endRules);\n\n// 同步 ref 值\nwatch(startValue, () => {\n if(startValue.value) {\n displayStartValue.value = formatUnixTime(mergeInputBind.value.timezone, startValue.value, rngElFormat.value);\n startValueUnix.value = startValue.value;\n } else {\n displayStartValue.value = undefined;\n startValueUnix.value = undefined;\n }\n emit('inkChanged', [startValue.value, endValue.value]);\n});\nwatch(endValue, () => {\n if(endValue.value) {\n displayEndValue.value = formatUnixTime(mergeInputBind.value.timezone, endValue.value, rngElFormat.value);\n endValueUnix.value = endValue.value;\n } else {\n displayEndValue.value = undefined;\n endValueUnix.value = undefined;\n }\n emit('inkChanged', [startValue.value, endValue.value]);\n});\n\nwatch(displayStartValue, (newVal, oldVal) => {\n if (newVal) {\n if(newVal === oldVal) return;\n const targetTime = dayjs.tz(newVal, mergeInputBind.value.timezone).format();\n const utcTimestamp = formatTimeToUnix(targetTime);\n handleChangeStart(utcTimestamp);\n startValueUnix.value = utcTimestamp;\n }else{\n handleChangeStart(undefined);\n startValueUnix.value = undefined;\n }\n})\nwatch(displayEndValue, (newVal, oldVal) => {\n if(newVal) {\n const targetTime = dayjs.tz(newVal, mergeInputBind.value.timezone).format();\n const utcTimestamp = formatTimeToUnix(targetTime);\n handleChangeEnd(utcTimestamp);\n endValueUnix.value = utcTimestamp;\n }else{\n handleChangeEnd(undefined);\n endValueUnix.value = undefined;\n }\n})\nconst datetimeWrapperClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n if ((target.classList.contains('is-text') || target.closest('.is-text'))) {\n if (target.closest('.js-start-datetime-popper')) {\n displayStartValue.value = dayjs.tz(dayjs(), mergeInputBind.value.timezone).format(rngElFormat.value)\n } else if(target.closest('.js-end-datetime-popper')){\n displayEndValue.value = dayjs.tz(dayjs(), mergeInputBind.value.timezone).format(rngElFormat.value)\n }\n }\n}\n</script>\n\n<template>\n <InputWrapper\n :data-field-id=\"mergeField.id\"\n >\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div\n :class=\"[\n 'data-time-picker',\n elStyle\n ]\"\n @click=\"datetimeWrapperClick\"\n >\n <el-date-picker\n ref=\"startDatePicker\"\n v-model=\"displayStartValue\"\n class=\"datetime-picker-input datetimerng-input\"\n :placeholder=\"t('startDate')\"\n :disabled=\"disabled\"\n :disabled-date=\"startDisabledDate\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n :type=\"rngElType\"\n :format=\"rngElFormat\"\n :value-format=\"rngElFormat\"\n :popper-class=\"`${mergeInputBind.popperClass} js-start-datetime-popper`\"\n />\n <i class=\"far fa-arrow-right tw-text-xs tw-text-gray-700\"></i>\n <el-date-picker\n ref=\"endDatePicker\"\n v-model=\"displayEndValue\"\n class=\"datetime-picker-input datetimerng-input\"\n :placeholder=\"t('endDate')\"\n :disabled=\"disabled\"\n :disabled-date=\"endDisabledDate\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n :type=\"rngElType\"\n :format=\"rngElFormat\"\n :value-format=\"rngElFormat\"\n :popper-class=\"`${mergeInputBind.popperClass} js-end-datetime-popper`\"\n />\n <button\n v-if=\"mergeInputBind.isClearable && !disabled\"\n type=\"button\"\n class=\"tw-relative tw-px-1 before:tw-absolute before:-tw-inset-2.5 before:tw-content-['']\"\n @click.prevent=\"clearTime\"\n >\n <i class=\"far fa-times-circle tw-text-xs tw-text-gray-700\"></i>\n </button>\n </div>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"startErrorMessage || endErrorMessage\" :errorText=\"startErrorMessage || endErrorMessage\"/>\n </InputWrapper>\n</template>\n\n<style lang=\"postcss\" scoped>\n</style>\n","export const InkSetFont = (userLanguage = 'en-us') => {\n document.documentElement.lang = userLanguage;\n // add google font\n let fontStyleLink = document.createElement('link');\n fontStyleLink.rel = 'stylesheet';\n if (userLanguage === 'zh-tw') {\n fontStyleLink.href = 'https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400..700&display=swap'\n } else if (userLanguage === 'ja-jp') {\n fontStyleLink.href = 'https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400..700&display=swap';\n } else {\n }\n document.head.appendChild(fontStyleLink);\n}","import { defineRule } from 'vee-validate';\nimport { t } from '@/helper/i18n';\nimport type { NumberLimit, FileLimit, DatetimerngLimit, DatetimePickerInputBind } from '@/components/input/field-data-interface';\nimport { formatUnixTime, formatValueOfTime, formatTimeToUnix } from '@/helper/dayjs';\nimport { RestrictTypeMode } from '@/components/input/field-data-interface';\nexport default () => {\n // from sandwich\n defineRule('required', (value: any) => {\n if (typeof value === 'number') return true;\n if (typeof value === 'boolean') return true;\n if (typeof value === 'string' && value.trim() !== '') return true; // string is not empty\n if (Array.isArray(value) && value[0]) return true; // array is not empty\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) return true; // object is not empty, if object is for empty object, change value to undefined || null\n return t('required');\n });\n\n // defineRule('matchRatio', (value: any, [valueWidth, valueHeight, reqWidth, reqHeight]: [number, number, number, number]) => {\n // if(!value) return true; // 如果沒有值,則不進行檢查,交由required檢查\n // if (typeof reqWidth === 'undefined') return true;\n // // 計算實際比例和要求比例\n // const actualRatio = valueWidth / valueHeight;\n // const requiredRatio = reqWidth / reqHeight;\n \n // // 計算基於3px誤差的可接受比例範圍\n // const tolerance = 3 / valueHeight; // 將3px轉換為比例誤差\n \n // // 檢查實際比例是否在可接受範圍內\n // if (Math.abs(actualRatio - requiredRatio) > tolerance) {\n // return t('notMatchRatio');\n // }\n // return true;\n // });\n\n // defineRule('slug', (value: string) => { \n // if (!value) return true;\n // const pattern = /^[a-z0-9\\.\\-\\_]+$/;\n // if (!pattern.test(value)) return t('isSlug');\n // return true;\n // })\n\n // form cabinet\n defineRule('wordLimit', (value: string, [min, max]: [number, number]) => {\n if (typeof value === 'undefined') return true; // for removed item data\n\n min = min === 0 ? -Infinity : min;\n max = max === 0 ? Infinity : max;\n\n const length = value ? value.trim().length : 0;\n if (length < min) {\n return t('isLessThenTextLimit', {length: min});\n }\n if (length > max) {\n return t('isMoreThenTextLimit', {length: max});\n }\n return true;\n });\n defineRule('itemLimit', (value: string, [min, max]: [number, number]) => {\n if ( !value || typeof value === 'undefined') return true; // for removed item data\n\n min = min === 0 ? -Infinity : min;\n max = max === 0 ? Infinity : max;\n\n const length = value.length;\n if (length < min) {\n return t('isLessThenMin', {length: min});\n }\n if (length > max) {\n return t('isMoreThenMax', {length: max});\n }\n return true;\n });\n // defineRule('numberLimit', (value: number, [min, max]: NumberLimit) => {\n // if (typeof value === 'undefined') return true; // for removed item data\n\n // min = min === false ? -Infinity : min;\n // max = max === false ? Infinity : max;\n\n // if (value < min) {\n // return t('isLessThenNumberLimit', {length: min});\n // }\n // if (value > max) {\n // return t('isMoreThenNumberLimit', {length: max});\n // }\n // return true;\n // });\n\n defineRule('datetimeRestrict', (value: number, [restrict, timezone, format]: [DatetimePickerInputBind['restrict'], string, string]) => {\n if (restrict.restrictType === RestrictTypeMode.UNLIMITED) return true;\n \n const restrictTimestamp = formatTimeToUnix() + (restrict.shiftSecond || 0);\n if(restrict.restrictType === RestrictTypeMode.PAST && value > restrictTimestamp ) {\n return t('isLessThenDatetimeRestrict', {datetime: formatUnixTime(timezone, restrictTimestamp, format)});\n }\n if(restrict.restrictType === RestrictTypeMode.FUTURE && value < restrictTimestamp ) {\n return t('isMoreThenDatetimeRestrict', {datetime: formatUnixTime(timezone, restrictTimestamp, format)});\n }\n return true\n });\n defineRule('datetimerngStartLimit', (value: number, [endValue, minLength, maxLength, timezone, format]: [number, number, number, string, string]) => {\n if (typeof value === 'undefined') return true;\n if (minLength && value < minLength) {\n return t('startTimeMustEarlierThanEndTime');\n }\n if (maxLength && value > maxLength) {\n return t('startTimeMustEarlierThanEndTime');\n }\n if (endValue && value > endValue) {\n return t('startTimeMustEarlierThanEndTime');\n }\n return true\n });\n defineRule('datetimerngEndLimit', (value: number, [startValue, minLength, maxLength, timezone, format]: [number, number, number, string, string]) => {\n if (typeof value === 'undefined') return true;\n if (minLength && value < minLength) {\n return t('startTimeMustEarlierThanEndTime');\n }\n if (maxLength && value > maxLength) {\n return t('startTimeMustEarlierThanEndTime');\n }\n if (startValue && value < startValue) {\n return t('startTimeMustEarlierThanEndTime');\n }\n return true\n });\n defineRule('url', (value: string) => {\n if (typeof value === 'undefined') return true; // for removed item data\n const pattern = /^https?:\\/\\//;\n return !value || pattern.test(value) ? true : t('isUrl');\n });\n // defineRule('email', (value: string) => {\n // if (typeof value === 'undefined') return true; // for removed item data\n // const pattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n // return !value || pattern.test(value) ? true : t('isEmail');\n // });\n // defineRule('json', (value: string) => {\n // if (typeof value === 'undefined') return true; // for removed item data\n // try {\n // JSON.parse(value || '{}');\n // return true;\n // } catch (error) {\n // return t('isJson');\n // }\n // });\n // defineRule('maxItem', (value: any[], [max]: [number]) => {\n // if (typeof value === 'undefined') return true; // for removed item data\n // if (value?.length > max) {\n // return t('isMoreThenMax', {length: max});\n // }\n // return true;\n // });\n}\n","import { App } from 'vue'\nimport '@/scss/component/_ink-text-color.scss'\nimport InkButton from '@/components/InkButton.vue'\nimport InkBadge from '@/components/InkBadge.vue'\nimport InkSpinner from '@/components/InkSpinner.vue'\nimport InkMenu from '@/components/ink-menu/InkMenu.vue'\nimport InkMenuButton from '@/components/ink-menu/InkMenuButton.vue'\nimport InkMenuItems from '@/components/ink-menu/InkMenuItems.vue'\nimport InkMenuItem from '@/components/ink-menu/InkMenuItem.vue'\nimport InkMenuItemsWrapper from '@/components/ink-menu/InkMenuItemsWrapper.vue'\nimport InkDisclosure from './components/ink-disclosure/InkDisclosure.vue'\nimport InkDisclosureButton from '@/components/ink-disclosure/InkDisclosureButton.vue'\nimport InkDisclosurePanel from '@/components/ink-disclosure/InkDisclosurePanel.vue'\nimport InkNavbar from '@/components/InkNavbar.vue'\nimport InkSidebar from '@/components/ink-sidebar/InkSidebar.vue'\nimport InkSidebarSimpleHide from '@/components/ink-sidebar/InkSidebarSimpleHide.vue'\nimport { InkVTooltip, vInkTooltip } from '@/components/ink-tooltip/Ink-tooltip'\nimport InkField from '@/components/input/InkField.vue'\nimport InkText from '@/components/input/InkText.vue'\nimport InkUrl from '@/components/input/InkUrl.vue'\nimport InkTextarea from '@/components/input/InkTextarea.vue'\nimport InkSelect from '@/components/input/InkSelect.vue'\nimport InkHashtag from '@/components/input/InkHashtag.vue'\nimport InkCheckbox from '@/components/input/InkCheckbox.vue'\nimport InkRadio from '@/components/input/InkRadio.vue'\nimport InkSwitch from '@/components/input/InkSwitch.vue'\nimport InkElConfigProvider from '@/components/input/InkElConfigProvider.vue'\nimport InkDatetime from '@/components/input/InkDatetime.vue'\nimport InkDate from '@/components/input/InkDatetime.vue'\nimport InkDatetimerng from '@/components/input/InkDatetimerng.vue'\nimport InkDaterng from '@/components/input/InkDatetimerng.vue'\nimport { inkI18n } from '@/helper/i18n'\nimport { InkSetFont } from '@/helper/set-font'\nimport useInkDefineRule from '@/helper/useDefineRule'\n\nexport {\n InkSetFont,\n InkButton,\n InkBadge,\n InkSpinner,\n InkMenu,\n InkMenuButton,\n InkMenuItems,\n InkMenuItem,\n InkMenuItemsWrapper,\n InkDisclosure,\n InkDisclosureButton,\n InkDisclosurePanel,\n InkNavbar,\n InkSidebar,\n InkSidebarSimpleHide,\n InkVTooltip,\n vInkTooltip,\n InkField,\n InkText,\n InkUrl,\n InkTextarea,\n InkSelect,\n InkHashtag,\n InkCheckbox,\n InkRadio,\n InkSwitch,\n InkElConfigProvider,\n InkDatetime,\n InkDate,\n InkDatetimerng,\n InkDaterng\n}\n\nexport default {\n install: (app: App, options: { lang?: 'zh-tw' | 'en-us' | 'ja-jp' }) => {\n InkSetFont(options.lang)\n inkI18n.global.locale.value = options.lang || 'en-us'\n useInkDefineRule()\n }\n} "],"names":["useRestAttrs","attrs","useAttrs","computed","className","restAttrs","props","__props","classList","list","_imports_1","handleSidebarTogglerClick","isDesktop","isFolded","Cookies","t","i","module","this","e","s","f","n","o","r","a","u","l","c","m","d","h","v","dayjs","utc","timezone","formatUnixTime","tz","time","format","formatTimeToUnix","utcTimezone","convertUnixToStartOf","unit","inkI18n","createI18n","zh","en","jp","apps","getHostname","app","hostname","prefix","_imports_0","sides","alignments","placements","acc","side","min","max","oppositeSideMap","oppositeAlignmentMap","clamp","start","value","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","width","height","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","name","fn","nextX","nextY","data","reset","detectOverflow","state","options","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","overflow","currentIndex","currentPlacement","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","b","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","_overflowsData$filter2","currentSideAxis","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","p","g","w","L","E","R","T","C","F","W","D","S","A","H","O","P","B","Ze","re","$","_e","Te","pe","ae","de","G","le","he","Y","q","Q","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","_","ue","fe","tt","Pe","ce","et","ot","it","J","ke","Le","st","nt","z","X","Fe","rt","Re","De","pt","Ie","at","M","Z","dt","lt","ht","ut","ft","ct","mt","je","Ve","se","ee","te","K","gt","wt","$e","N","I","j","V","Ee","ve","k","Ce","$t","vt","yt","_t","We","ze","Ae","Tt","Ne","Pt","St","U","Ge","qe","He","me","oe","Ht","Mt","Vt","emit","__emit","onMainItemCheckSwitch","item","close","onTabItemCheckSwitch","toggleSidebar","closeSidebar","onMounted","RestrictTypeMode","singleFieldTypes","defaultInputProps","fieldDefaultValue","type","useMergeFieldProps","field","defaultField","mergeField","minLength","maxLength","checkFieldMax","defaultAllSelectInputBind","defaultSelectInputBind","option","useMergeSelectInputBind","inputBind","mergeInputBind","clearInputBind","key","defaultHashtagInputBind","useMergeHashtagInputBind","defaultCheckBoxInputBind","useMergeCheckBoxInputBind","defaultAllDatetimeInputBind","defaultAllDatetimeMethod","popperEl","inputEls","inputEl","el","utcEl","defaultDatetimePickerInputBind","useMergeDatetimePickerInputBind","defaultDatetimerngInputBind","useMergeDatetimerngInputBind","componentMap","defineAsyncComponent","fieldType","toRef","dynamicComponent","remove","push","fields","update","replace","useFieldArray","inputTotal","onRemoveItemHandler","index","onPushItem","onInkChanged","nextTick","_sfc_render","_ctx","_cache","_openBlock","_createElementBlock","_hoisted_1","rules","errorMessage","useField","isObserver","ref","load","useTemplateRef","infiniteScrollHandler","isIntersecting","target","ul","scrollTop","watchOptions","watch","observer","checkAndObserver","disconnectObserver","onOpen","onClose","setValue","newVal","elStyle","_a","_b","_c","vSelectRef","checkedValueKey","root","IntersectionObserver","useIntersectionObserver","entry","newValue","handleChange","onChange","locale","watchEffect","panelInputModeNone","panelTimezone","datetimeType","datetimeFormat","clearTime","displayValue","disabledDate","date","startDatePickerRef","startErrorMessage","datetimeWrapperClick","datePickerRef","startValue","oldVal","targetTime","utcTimestamp","rngElType","rngElFormat","handleChangeStart","handleChangeEnd","displayStartValue","displayEndValue","startValueUnix","endValueUnix","startDisabledDate","endValue","endDisabledDate","endDatePickerRef","endErrorMessage","startRules","endRules","InkSetFont","userLanguage","fontStyleLink","useInkDefineRule","defineRule","restrict","restrictTimestamp"],"mappings":"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","x_google_ignoreList":[14,15,20,21,22,23]}
|
1
|
+
{"version":3,"file":"inkmagine-gui.es.js","sources":["../src/helper/useAttrs.ts","../src/components/InkSpinner.vue","../src/components/InkButton.vue","../src/components/InkBadge.vue","../src/components/ink-menu/InkMenu.vue","../src/components/ink-menu/InkMenuButton.vue","../src/components/ink-menu/InkMenuItems.vue","../src/components/ink-menu/InkMenuItem.vue","../src/components/ink-menu/InkMenuItemsWrapper.vue","../src/components/ink-disclosure/InkDisclosure.vue","../src/components/ink-disclosure/InkDisclosureButton.vue","../src/components/ink-disclosure/InkDisclosurePanel.vue","../src/images/logo-light-sm.svg","../src/helper/handle-sidebar-toggler-click.ts","../node_modules/dayjs/plugin/utc.js","../node_modules/dayjs/plugin/timezone.js","../src/helper/dayjs.ts","../src/helper/i18n.ts","../src/components/InkNavbar.vue","../src/images/logo-light-lg.svg","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/floating-vue/dist/floating-vue.mjs","../src/components/ink-tooltip/InkVTooltip.vue","../src/components/ink-sidebar/InkSidebar.vue","../src/components/input/InkFieldMessage.vue","../src/components/input/field-data-interface.ts","../src/components/input/input-default-value.ts","../src/components/input/InkField.vue","../src/components/input/InputWrapper.vue","../src/components/input/InputInner.vue","../src/components/input/InkErrorMessage.vue","../src/components/input/InputFrame.vue","../src/components/input/InkText.vue","../src/components/input/InkUrl.vue","../src/components/input/InkTextarea.vue","../src/components/input/InkSelect.vue","../src/components/input/InkHashtag.vue","../src/components/input/InkCheckbox.vue","../src/components/input/InkRadio.vue","../src/components/input/InkSwitch.vue","../src/components/input/InkElConfigProvider.vue","../src/components/input/InkDatetime.vue","../src/components/input/InkDatetimerng.vue","../src/helper/set-font.ts","../src/helper/useDefineRule.ts","../src/index.ts"],"sourcesContent":["import { useAttrs, computed } from \"vue\"\nexport const useRestAttrs = () => {\n const attrs = useAttrs()\n return computed(() => {\n const { class: className, ...restAttrs } = attrs\n return restAttrs \n }\n )\n}","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-spinner.scss'\nimport { computed } from 'vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\n\ninterface InkSpinnerProps {\n size?: 'md'\n theme?: 'gray'\n}\nconst props = withDefaults(defineProps<InkSpinnerProps>(), {\n theme: 'gray'\n})\nconst restAttrs = useRestAttrs()\nconst classList = computed(() => {\n const list = []\n if(props.size) list.push(`tw-spinner-${props.size}`)\n if(props.theme) list.push(`tw-spinner-grow-${props.theme}`)\n return list\n})\n</script>\n<template>\n <div \n v-bind=\"restAttrs\"\n :class=\"['tw-spinner-grow',classList]\"\n ></div>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-button.scss'\nimport { computed } from 'vue'\nimport InkSpinner from '@/components/InkSpinner.vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\n\ninterface ButtonProps { \n as?: 'a' | 'button' | 'router-link',\n type?: 'button' | 'submit' | 'reset',\n size?: 'md'| 'xs',\n variant?: 'base' | 'txt' | 'icon',\n theme?: 'primary' | 'info' | 'gray' | 'outline-gray' | 'link' | 'transparent',\n disabled?: boolean,\n loading?: boolean\n}\nconst props = withDefaults(defineProps<ButtonProps>(), {\n as: 'button',\n type: 'button',\n variant: 'base',\n theme: 'transparent',\n disabled: false,\n loading: false\n})\nconst restAttrs = useRestAttrs()\nconst classList = computed(() => {\n const list = []\n switch (props.variant) { \n case 'icon':\n props.size ? list.push(`tw-btn-icon-${props.size}`) : list.push(`tw-btn-icon`);\n break;\n default:\n if(props.variant) list.push(`tw-btn-${props.variant}`)\n if (props.size) list.push(`tw-btn-${props.size}`);\n break;\n }\n if (props.loading) {\n props.variant === 'base' ? '' : list.push(`tw-btn-outline-gray`)\n } else {\n props.theme ? list.push(`tw-btn-${props.theme}`) : list.push(`tw-btn-transparent`) \n }\n if (props.as !== 'button' && props.disabled) list.push('tw-disabled')\n\n return list\n})\n</script>\n<template>\n <component \n v-bind=\"restAttrs\"\n :is=\"as\"\n :type=\"as === 'button' ? type : undefined\"\n :disabled=\"disabled\"\n :class=\"classList\"\n >\n <InkSpinner size=\"md\" v-if=\"loading\" />\n <slot v-else>Button</slot>\n </component>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-badge.scss'\nimport { computed } from 'vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\n\ninterface ButtonProps { \n as?: 'span' | 'button',\n type?: 'button',\n theme?: 'info',\n disabled?: boolean,\n}\nconst props = withDefaults(defineProps<ButtonProps>(), {\n as: 'span',\n theme: 'info',\n disabled: false,\n})\nconst restAttrs = useRestAttrs()\nconst classList = computed(() => {\n const list = []\n list.push(`tw-badge tw-badge-${props.theme}`)\n if (props.as !== 'button' && props.disabled) list.push('tw-disabled')\n\n return list\n})\n</script>\n<template>\n <component \n v-bind=\"restAttrs\"\n :is=\"as\"\n :type=\"as === 'button' ? type : undefined\"\n :disabled=\"disabled\"\n :class=\"classList\"\n >\n <slot>badge</slot>\n </component>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-menu.scss'\nimport { type Component } from 'vue'\nimport { Menu } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\n\ninterface MenuProps { \n as?: string | Component,\n}\nconst props = withDefaults(defineProps<MenuProps>(), {\n as: 'div'\n})\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <Menu \n v-bind=\"restAttrs\"\n :as=\"as\"\n v-slot=\"slotProps\"\n class=\"tw-menu\"\n >\n <slot v-bind=\"slotProps\" />\n </Menu>\n</template>\n\n","<script setup lang=\"ts\">\nimport { type Component } from 'vue'\nimport { MenuButton } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\ninterface MenuButtonProps { \n as?: string | Component,\n}\nconst props = withDefaults(defineProps<MenuButtonProps>(), {\n as: 'template'\n})\n</script>\n<template>\n <MenuButton\n v-bind=\"restAttrs\"\n :as=\"as\"\n v-slot=\"slotProps\"\n >\n <slot v-bind=\"slotProps\" />\n </MenuButton>\n</template>","<script setup lang=\"ts\">\nimport { MenuItems } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <MenuItems \n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n class=\"tw-menu-items\"\n >\n <slot v-bind=\"slotProps\" />\n </MenuItems>\n</template>\n\n","<script setup lang=\"ts\">\nimport { useRestAttrs } from '@/helper/useAttrs'\nimport { MenuItem } from '@headlessui/vue'\ninterface MenuItemProps {\n as?: string,\n}\nconst props = withDefaults(defineProps<MenuItemProps>(), {\n as: 'template',\n})\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <MenuItem\n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n class=\"menu-item-link\"\n :as=\"as\"\n >\n <slot v-bind=\"slotProps\" />\n </MenuItem>\n</template>","<script setup lang=\"ts\">\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <div\n v-bind=\"restAttrs\"\n class=\"menu-items-wrapper\"\n >\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { Disclosure } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <Disclosure\n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n >\n <slot v-bind=\"slotProps\" />\n </Disclosure>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-disclosure.scss'\nimport { DisclosureButton } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\ninterface DisclosureButtonProps {\n as?: string,\n type?: string,\n}\nconst props = withDefaults(defineProps<DisclosureButtonProps>(), {\n as: 'button',\n type: 'button',\n})\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <DisclosureButton\n :type=\" as === 'button' ? type : undefined\"\n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n class=\"tw-disclosure-button tw-disclosure-button-gray tw-text-xlmix\"\n :as=\"as\"\n >\n <slot v-bind=\"slotProps\" />\n <i\n :class=\"[\n 'far fa-angle-down tw-text-base tw-text-gray-700',\n { 'tw-rotate-180': slotProps.open },\n ]\"\n ></i>\n </DisclosureButton>\n</template>","<script setup lang=\"ts\">\nimport { DisclosurePanel } from '@headlessui/vue'\nimport { useRestAttrs } from '@/helper/useAttrs'\nconst restAttrs = useRestAttrs()\n</script>\n<template>\n <DisclosurePanel\n v-bind=\"restAttrs\"\n v-slot=\"slotProps\"\n class=\"tw-disclosure-panel\"\n >\n <slot v-bind=\"slotProps\" />\n </DisclosurePanel>\n</template>","export default \"data:image/svg+xml,%3csvg%20width='59'%20height='58'%20viewBox='0%200%2059%2058'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18.5541%2017.8118C20.722%2017.8118%2022.4793%2016.051%2022.4793%2013.879C22.4793%2011.707%2020.722%209.94629%2018.5541%209.94629C16.3863%209.94629%2014.6289%2011.707%2014.6289%2013.879C14.6289%2016.051%2016.3863%2017.8118%2018.5541%2017.8118Z'%20fill='%234C3FFF'/%3e%3cpath%20d='M43.695%2038.4847C43.3312%2037.9951%2043.1751%2037.3813%2043.2607%2036.777V27.0641C43.2607%2025.1867%2042.7417%2023.8183%2041.7037%2022.959C40.708%2022.1023%2039.435%2021.6383%2038.1226%2021.6536C36.8837%2021.6504%2035.6757%2022.0414%2034.6727%2022.7701C33.8841%2023.3407%2033.1805%2024.0208%2032.5831%2024.7899H32.3209C32.0155%2024.0203%2031.5521%2023.3238%2030.9605%2022.7455C29.9303%2021.9623%2028.654%2021.5749%2027.3631%2021.6536C25.8331%2021.6433%2024.345%2022.1545%2023.1433%2023.1034C21.9416%2024.0523%2021.0976%2025.3824%2020.75%2026.8753L20.3239%2026.6454C20.4936%2025.3121%2021.0362%2024.054%2021.8891%2023.0164V22.0887H14.5139V23.0164C15.0866%2023.0671%2015.6314%2023.2872%2016.0791%2023.6487C16.3992%2024.1325%2016.5386%2024.714%2016.4724%2025.2907V36.6538C16.5085%2036.9815%2016.4768%2037.3132%2016.3796%2037.6281C16.2823%2037.9431%2016.1215%2038.2347%2015.907%2038.4847C15.4947%2038.7728%2015.0145%2038.9483%2014.5139%2038.9938V39.9133H23.7083V38.9938C23.1948%2038.9309%2022.7063%2038.7358%2022.2906%2038.4273C21.9708%2037.9436%2021.8369%2037.3602%2021.9137%2036.7852V26.7686C21.9137%2026.0789%2023.2904%2024.1905%2025.1915%2024.133C25.5413%2024.1022%2025.8921%2024.1783%2026.1979%2024.3512C26.5036%2024.5242%2026.7499%2024.7859%2026.9042%2025.1019C27.2148%2025.8325%2027.3576%2026.6238%2027.3221%2027.4172V36.777C27.405%2037.376%2027.249%2037.9837%2026.8878%2038.4683C26.4594%2038.7656%2025.9576%2038.9389%2025.4373%2038.9691V39.8887H34.4514V38.9691C33.9403%2038.9068%2033.4544%2038.7114%2033.042%2038.4026C32.7179%2037.9208%2032.5836%2037.3358%2032.665%2036.7605V26.4401C32.665%2026.202%2033.0256%2025.7751%2033.7631%2025.1676C34.3219%2024.6319%2035.0488%2024.3069%2035.82%2024.248C36.1502%2024.2096%2036.4844%2024.2665%2036.7835%2024.4119C37.0825%2024.5574%2037.3339%2024.7853%2037.508%2025.069C37.839%2025.8027%2037.9907%2026.6048%2037.9506%2027.409V36.7688C38.0234%2037.3494%2037.874%2037.936%2037.5326%2038.4108C37.0983%2038.7109%2036.5919%2038.8894%2036.0658%2038.9281V39.8476H45.2192V38.9281C44.6794%2038.9287%2044.1506%2038.7749%2043.695%2038.4847Z'%20fill='black'/%3e%3cpath%20d='M47.5385%2043.7148H12.1213V46.1451H47.5385V43.7148Z'%20fill='%234C3FFF'/%3e%3c/svg%3e\"","import Cookies from 'js-cookie';\n\nexport const handleSidebarTogglerClick = (): void => {\n const isDesktop:boolean = window.innerWidth > 1024;\n\n document.body.classList.toggle(isDesktop ? 'sidebar-folded' : 'sidebar-open');\n\n if (isDesktop) {\n const isFolded = document.body.classList.contains('sidebar-folded') ? '1' : '0';\n Cookies.set('sidebar-folded', isFolded);\n }\n};\n","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","import dayjs, { OpUnitType } from 'dayjs'\n\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nexport default dayjs;\n\n// Format\nexport const formatUnixTime = (tz: string, time: number, format = 'YYYY-MM-DD HH:mm') => {\n return dayjs.unix(time).tz( tz ).format(format);\n}\nexport const formatValueOfTime = (tz: string, time: number | string | Date, format = 'YYYY-MM-DD HH:mm') => {\n return dayjs(time).tz( tz ).format(format);\n}\n// Timestamp\nexport const formatTimeToUnix = (time?: Date | string) => {\n // seconds\n return dayjs(time).unix();\n}\nexport const formatTimeToValueOf = (time?: Date) => {\n // milliseconds\n return dayjs(time).valueOf();\n}\n\n// UTC\nexport const utcTimezone = (timezone: string) => { \n return dayjs().tz(timezone).format('[UTC]Z');\n}\n\n// EndOf\nexport const convertUnixToEndOf = (time: number, unit:OpUnitType = 'day') => { \n return dayjs.unix(time).endOf(unit).unix();\n}\n\n// StartOf\nexport const convertUnixToStartOf = (time: number, unit:OpUnitType = 'day') => { \n return dayjs.unix(time).startOf(unit).unix();\n}\nexport const convertValueOfToStartOf = (time: number, unit:OpUnitType = 'day') => { \n return dayjs(time).startOf(unit).valueOf();\n}","import { createI18n } from 'vue-i18n'\nimport zh from '@/lang/zh-tw.json'\nimport en from '@/lang/en-us.json'\nimport jp from '@/lang/ja-jp.json'\nexport const inkI18n = createI18n({\n locale: 'en-us',\n fallbackLocale: 'en-us',\n legacy: false,\n messages: {\n 'zh-tw': zh,\n 'en-us': en,\n 'ja-jp': jp,\n }\n})\n\nexport const { t } = inkI18n.global","<script setup lang=\"ts\">\n import '@/scss/component/_ink-navbar.scss'\n import '@/scss/component/_user-default-img.scss'\n import { handleSidebarTogglerClick } from '@/helper/handle-sidebar-toggler-click'\n import { utcTimezone } from '@/helper/dayjs'\n import InkButton from '@/components/InkButton.vue'\n import InkMenu from '@/components/ink-menu/InkMenu.vue'\n import InkMenuButton from '@/components/ink-menu/InkMenuButton.vue'\n import InkMenuItems from '@/components/ink-menu/InkMenuItems.vue'\n import InkMenuItemsWrapper from '@/components/ink-menu/InkMenuItemsWrapper.vue'\n import InkMenuItem from '@/components/ink-menu/InkMenuItem.vue'\n import { t } from '@/helper/i18n'\n interface NavbarProps {\n timezone?: string\n user:{\n nickname: string;\n avatar: string;\n mail: string;\n }\n logoutUrl: string;\n }\n const props = defineProps <NavbarProps>();\n\n const apps = ['member', 'team', 'cabinet']\n const getHostname = (app: string) => {\n const hostname = window.location.hostname;\n let prefix = '';\n if(hostname.includes('sandbox') || hostname.includes('greenroom')){\n prefix = 'sandbox-';\n }\n if(hostname.includes('stage')){\n prefix = 'stage-';\n }\n\n return `//${prefix + app}.inkmaginecms.com`;\n};\n</script>\n<template>\n <nav id=\"top-navbar\" class=\"navbar top-navbar tw-z-[1011]\">\n <button type=\"button\" class=\"sidebar-toggler\" @click.prevent.stop=\"handleSidebarTogglerClick\">\n <i class=\"fas fa-bars\"></i>\n </button>\n <div class=\"navbar-content pl-0\">\n <img src=\"/src/images/logo-light-sm.svg\" class=\"navbar-content__logo\" alt=\"inkmagine logo\" />\n <ul class=\"navbar-nav tw-items-center\">\n <li v-if=\"timezone\" class=\"nav-item tw-text-xs tw-text-gray-700\">\n {{ utcTimezone(timezone) }}\n </li>\n <li class=\"nav-item\">\n <InkMenu>\n <InkMenuButton>\n <InkButton variant=\"txt\" theme=\"gray\">\n <i class=\"far fa-grip-horizontal tw-text-base tw-text-gray-700\"></i>{{ t('navbar.apps.service') }}\n </InkButton>\n </InkMenuButton>\n <InkMenuItems>\n <InkMenuItemsWrapper>\n <InkMenuItem>\n <a :href=\"`${getHostname('www')}/dashboard`\" target=\"_blank\">\n <div class=\"content\">\n <p class=\"tw-font-semibold tw-text-sm\">{{ t('navbar.apps.dashboard.label') }}</p>\n <p class=\"sub-text tw-text-mute tw-text-xs\">{{ t(`navbar.apps.dashboard.description`) }}</p>\n </div>\n </a>\n </InkMenuItem>\n <InkMenuItem v-for=\"app in apps\" :key=\"app\">\n <a :href=\"getHostname(app)\" target=\"_blank\">\n <div class=\"content\">\n <p class=\"tw-font-semibold tw-text-sm\">{{ t(`navbar.apps.${app}.label`) }}</p>\n <p class=\"sub-text tw-text-mute tw-text-xs\">{{ t(`navbar.apps.${app}.description`) }}</p>\n </div>\n </a>\n </InkMenuItem>\n </InkMenuItemsWrapper>\n </InkMenuItems>\n </InkMenu>\n </li>\n <li v-if=\"user.mail\" class=\"nav-item\">\n <InkMenu>\n <InkMenuButton>\n <button type=\"button\" class=\"user-default-img x30\">\n <img v-if=\"user.avatar\" :src=\"user.avatar\" />\n <p v-else>{{ user . mail . slice(0, 1) . toLocaleUpperCase() }}</p>\n </button>\n </InkMenuButton>\n <InkMenuItems>\n <div class=\"tw-border-b tw-p-5 tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-y-3\">\n <div class=\"user-default-img x30\">\n <img v-if=\"user.avatar\" :src=\"user.avatar\" />\n <p v-else>{{ user . mail . slice(0, 1) . toLocaleUpperCase() }}</p>\n </div>\n <div class=\"info text-center\">\n <p class=\"name tw-font-semibold mb-0\">{{ user . nickname }}</p>\n <p class=\"email tw-text-mute tw-break-all tw-text-xs\">{{ user . mail }}</p>\n </div>\n </div>\n <InkMenuItemsWrapper class=\"tw-pt-3\">\n <InkMenuItem>\n <a :href=\"`${getHostname('member')}/profile`\">\n <i class=\"fal fa-user fa-fw mr-1\"></i>\n {{ t('navbar.profile') }}\n </a>\n </InkMenuItem>\n <InkMenuItem>\n <a :href=\"logoutUrl\">\n <i class=\"fal fa-sign-out fa-fw icon\"></i>\n <span>{{ t('logout') }}</span>\n </a>\n </InkMenuItem>\n </InkMenuItemsWrapper>\n </InkMenuItems>\n </InkMenu>\n </li>\n </ul>\n </div>\n </nav>\n</template>\n","export default \"data:image/svg+xml,%3csvg%20width='178'%20height='60'%20viewBox='0%200%20178%2060'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M24.1451%2037.8555V38.3153V38.7832V39.243V40.179H50.6301V39.243V38.7832V38.3153V37.8555H24.1451Z'%20fill='%234C3FFF'/%3e%3cpath%20d='M31.2663%2023.1507C30.5229%2023.1182%2029.7834%2023.2752%2029.117%2023.6069C28.4506%2023.9386%2027.8791%2024.4341%2027.4558%2025.0472V23.4052H24.055V35.4333H27.4558V29.3823C27.4225%2028.9858%2027.4767%2028.5868%2027.6148%2028.2136C27.7528%2027.8405%2027.9712%2027.5024%2028.2543%2027.2234C28.5375%2026.9443%2028.8786%2026.7312%2029.2533%2026.5992C29.6279%2026.4671%2030.0271%2026.4195%2030.4222%2026.4594C32.2578%2026.755%2032.5856%2028.6023%2032.5856%2030.1623V35.4333H35.9864V29.3823C35.9864%2024.5218%2033.6673%2023.1507%2031.2663%2023.1507Z'%20fill='black'/%3e%3cpath%20d='M49.86%2023.3809H45.312L41.3949%2027.4286V23.3809H38.0106V35.409H41.3949V31.8293L42.3455%2030.8769L45.8692%2035.409H50.2943L44.722%2028.5123L49.86%2023.3809Z'%20fill='black'/%3e%3cpath%20d='M12.6317%2023.1514V24.0299C12.9489%2024.0794%2013.2596%2024.1648%2013.5576%2024.2844L13.7789%2024.3911C13.8362%2024.4255%2013.8909%2024.464%2013.9428%2024.5061C14.1477%2024.7449%2014.3014%2025.0234%2014.3945%2025.3242C14.4875%2025.625%2014.5179%2025.9418%2014.4836%2026.2549V37.0104C14.5187%2037.3222%2014.4887%2037.6379%2014.3956%2037.9376C14.3025%2038.2372%2014.1483%2038.5142%2013.9428%2038.751C13.8912%2038.7959%2013.8364%2038.8371%2013.7789%2038.8742L13.5576%2038.9809C13.2583%2039.0967%2012.9481%2039.182%2012.6317%2039.2354V40.1139H21.3999V39.2354C20.9121%2039.1767%2020.4484%2038.9897%2020.056%2038.6935C19.7537%2038.2364%2019.6257%2037.6856%2019.6954%2037.1417V26.1235C19.6257%2025.5796%2019.7537%2025.0288%2020.056%2024.5717C20.4484%2024.2755%2020.9121%2024.0886%2021.3999%2024.0299V23.1514H12.6317Z'%20fill='black'/%3e%3cpath%20d='M99.8473%2038.2743C99.7244%2038.3321%2099.5896%2038.3603%2099.4539%2038.3565C99.3616%2038.3511%2099.272%2038.3227%2099.1933%2038.274C99.1147%2038.2252%2099.0493%2038.1576%2099.0032%2038.0773C98.8592%2037.883%2098.7842%2037.646%2098.7902%2037.404V28.4712C98.7902%2026.2818%2098.0964%2024.782%2096.7087%2023.9719C95.1015%2023.118%2093.2987%2022.7019%2091.4806%2022.765C89.7576%2022.704%2088.0527%2023.1338%2086.5638%2024.0048C85.9564%2024.3284%2085.449%2024.8124%2085.0965%2025.4043C84.7441%2025.9963%2084.56%2026.6736%2084.5643%2027.3628C84.5443%2027.702%2084.601%2028.0413%2084.7301%2028.3555C84.8592%2028.6696%2085.0575%2028.9506%2085.31%2029.1773C85.8182%2029.5983%2086.4618%2029.82%2087.121%2029.8013C87.7179%2029.8181%2088.3004%2029.6168%2088.7599%2029.2348C88.9958%2029.0349%2089.1811%2028.7819%2089.3008%2028.4965C89.4204%2028.2111%2089.471%2027.9014%2089.4483%2027.5927C89.4555%2027.3118%2089.4053%2027.0324%2089.3008%2026.7717C89.1978%2026.5277%2089.0627%2026.2985%2088.8993%2026.0902L88.678%2025.8439C88.5942%2025.7493%2088.5226%2025.6444%2088.4649%2025.5319C88.4113%2025.4194%2088.3859%2025.2953%2088.3912%2025.1707C88.4016%2024.9719%2088.4669%2024.7799%2088.5797%2024.6161C88.6926%2024.4523%2088.8486%2024.3231%2089.0304%2024.2429C89.5343%2023.9763%2090.0999%2023.8487%2090.6693%2023.8734C91.1137%2023.8281%2091.5627%2023.8779%2091.9865%2024.0194C92.4103%2024.1609%2092.7993%2024.391%2093.1277%2024.6945C93.6514%2025.4029%2093.8964%2026.2797%2093.816%2027.1576V29.8423C91.2071%2030.506%2088.691%2031.4934%2086.3261%2032.7816C85.6047%2033.1574%2085.0001%2033.7243%2084.5781%2034.4207C84.1562%2035.1171%2083.9332%2035.9161%2083.9333%2036.7308C83.8872%2037.3012%2083.9827%2037.8742%2084.2115%2038.3985C84.4403%2038.9229%2084.7952%2039.3823%2085.2444%2039.7358C86.0555%2040.3534%2087.0447%2040.6905%2088.0634%2040.6964C88.8478%2040.6895%2089.6257%2040.5536%2090.3661%2040.2941C91.6739%2039.8612%2092.8576%2039.1175%2093.816%2038.1265C93.8891%2038.7174%2094.1057%2039.2812%2094.447%2039.7686C94.7434%2040.1042%2095.1144%2040.3654%2095.53%2040.5308C95.9457%2040.6963%2096.3944%2040.7614%2096.8398%2040.721C97.4364%2040.7229%2098.0281%2040.6143%2098.5853%2040.4008C99.5149%2040.0213%20100.335%2039.4144%20100.97%2038.6356L100.413%2037.8638C100.247%2038.03%20100.056%2038.1686%2099.8473%2038.2743ZM93.7259%2036.5173C93.4191%2036.8876%2093.076%2037.2259%2092.7016%2037.5272C92.224%2037.8726%2091.6516%2038.0618%2091.0626%2038.0691C90.8234%2038.0619%2090.5887%2038.0023%2090.3749%2037.8945C90.1611%2037.7867%2089.9735%2037.6333%2089.8252%2037.4451C89.4292%2036.9208%2089.237%2036.27%2089.2844%2035.6142C89.2855%2034.9396%2089.4593%2034.2766%2089.7893%2033.6887C90.1193%2033.1007%2090.5944%2032.6075%2091.1692%2032.2562C91.9547%2031.7208%2092.8328%2031.3365%2093.7587%2031.1232L93.7259%2036.5173Z'%20fill='black'/%3e%3cpath%20d='M116.318%2038.3071C115.225%2037.9003%20114.067%2037.6971%20112.901%2037.7077H110.508H109.148C108.558%2037.7077%20108.173%2037.7078%20107.993%2037.6421C107.686%2037.6072%20107.399%2037.4748%20107.173%2037.2644C106.969%2037.0406%20106.861%2036.7461%20106.87%2036.4434C106.872%2036.2083%20106.929%2035.9769%20107.036%2035.7675C107.142%2035.558%20107.296%2035.3763%20107.485%2035.2365C107.804%2034.9462%20108.194%2034.7451%20108.615%2034.6535C108.785%2034.6423%20108.954%2034.6423%20109.123%2034.6535C109.238%2034.6535%20109.484%2034.6535%20109.853%2034.6535C111.315%2034.696%20112.771%2034.462%20114.147%2033.9638C115.14%2033.6518%20116%2033.0178%20116.594%2032.1616C117.187%2031.3054%20117.48%2030.2757%20117.425%2029.2347C117.431%2028.5373%20117.3%2027.8454%20117.04%2027.1985C116.784%2026.5827%20116.408%2026.0244%20115.933%2025.5565H118.916V23.5942H114.065C113.535%2023.3721%20112.986%2023.1964%20112.426%2023.0688C111.645%2022.8984%20110.848%2022.8157%20110.049%2022.8224C108.098%2022.7185%20106.171%2023.2991%20104.6%2024.4645C103.965%2024.9535%20103.452%2025.5845%20103.104%2026.3073C102.755%2027.0301%20102.58%2027.8245%20102.592%2028.6271C102.561%2029.863%20102.967%2031.0702%20103.74%2032.0344C104.551%2032.9971%20105.591%2033.7397%20106.763%2034.1938V34.4483C105.794%2034.7929%20104.894%2035.3102%20104.108%2035.9754C103.69%2036.2777%20103.349%2036.6747%20103.112%2037.1341C102.876%2037.5935%20102.751%2038.1023%20102.748%2038.6191C102.732%2039.0079%20102.802%2039.3955%20102.952%2039.7544C103.102%2040.1133%20103.329%2040.4348%20103.617%2040.6963C104.088%2041.0566%20104.618%2041.3342%20105.182%2041.5173V41.7636C104.312%2041.8269%20103.499%2042.2169%20102.904%2042.8556C102.506%2043.3128%20102.275%2043.8917%20102.248%2044.4977C102.248%2045.8551%20103.278%2046.8158%20105.338%2047.3795C106.796%2047.7393%20108.294%2047.9077%20109.795%2047.8804C111.573%2047.9305%20113.347%2047.692%20115.048%2047.1743C117.687%2046.2794%20118.998%2044.6291%20118.998%2042.2481C119.054%2041.3859%20118.82%2040.5298%20118.335%2039.8158C117.849%2039.1017%20117.14%2038.5707%20116.318%2038.3071ZM108.066%2025.1706C108.213%2024.7826%20108.482%2024.4532%20108.833%2024.2324C109.183%2024.0116%20109.596%2023.9115%20110.009%2023.9473C110.4%2023.9233%20110.79%2024.0198%20111.125%2024.2237C111.46%2024.4277%20111.726%2024.7294%20111.885%2025.0885C112.321%2026.2432%20112.508%2027.4771%20112.434%2028.7093C112.49%2029.9164%20112.315%2031.1231%20111.918%2032.2643C111.773%2032.6408%20111.512%2032.9613%20111.173%2033.1797C110.834%2033.3981%20110.435%2033.5031%20110.033%2033.4795C109.552%2033.4898%20109.082%2033.3314%20108.705%2033.0316C108.328%2032.7317%20108.067%2032.3093%20107.968%2031.8374C107.686%2030.8143%20107.564%2029.7534%20107.607%2028.6928C107.55%2027.5007%20107.705%2026.308%20108.066%2025.1706ZM113.549%2046.3204C112.439%2046.5569%20111.306%2046.6643%20110.172%2046.6406C108.966%2046.707%20107.761%2046.4847%20106.657%2045.992C106.304%2045.8429%20106.001%2045.5946%20105.786%2045.2769C105.571%2044.9593%20105.452%2044.586%20105.444%2044.2021C105.447%2043.7417%20105.606%2043.296%20105.895%2042.9377C106.135%2042.6326%20106.41%2042.357%20106.714%2042.1167H112.754C113.639%2042.0396%20114.528%2042.2042%20115.327%2042.5929C115.558%2042.7513%20115.746%2042.9666%20115.87%2043.2181C115.995%2043.4697%20116.054%2043.7491%20116.04%2044.0297C116.048%2045.1545%20115.212%2045.9099%20113.549%2046.3204Z'%20fill='black'/%3e%3cpath%20d='M127.43%2037.2074V23.1924H120.367V24.0791C120.913%2024.1277%20121.433%2024.3394%20121.858%2024.6867C122.158%2025.1388%20122.292%2025.6819%20122.235%2026.222V37.0596C122.271%2037.3728%20122.241%2037.6899%20122.148%2037.991C122.055%2038.292%20121.9%2038.5704%20121.694%2038.8084C121.301%2039.0828%20120.844%2039.2498%20120.367%2039.2929V40.1796H129.135V39.2929C128.646%2039.2321%20128.181%2039.0485%20127.783%2038.7592C127.484%2038.3007%20127.359%2037.7502%20127.43%2037.2074Z'%20fill='black'/%3e%3cpath%20d='M147.794%2037.2068V28.2904C147.794%2026.2378%20147.36%2024.8038%20146.491%2023.9882C145.47%2023.1162%20144.15%2022.6774%20142.812%2022.7649C141.746%2022.7535%20140.7%2023.0562%20139.804%2023.6352C138.91%2024.2039%20138.148%2024.9568%20137.567%2025.8437V23.1918H130.593V24.0785C131.17%2024.0998%20131.722%2024.3169%20132.159%2024.6943C132.463%2025.1541%20132.599%2025.7053%20132.544%2026.2543V37.0919C132.581%2037.39%20132.558%2037.6925%20132.476%2037.9816C132.394%2038.2707%20132.256%2038.5405%20132.068%2038.775C131.64%2039.1028%20131.123%2039.2944%20130.585%2039.3251V40.2118H139.452V39.3251C138.966%2039.2647%20138.503%2039.081%20138.108%2038.7914C137.801%2038.3362%20137.673%2037.7838%20137.747%2037.2397V27.3873C138.083%2026.8616%20138.498%2026.3908%20138.977%2025.9915C139.455%2025.5496%20140.08%2025.3009%20140.73%2025.2936C141.101%2025.2613%20141.473%2025.3568%20141.782%2025.5643C142.092%2025.7717%20142.322%2026.0788%20142.435%2026.4349C142.633%2027.0435%20142.72%2027.6835%20142.689%2028.3232V37.2561C142.758%2037.7999%20142.63%2038.3508%20142.328%2038.8078C141.93%2039.0987%20141.465%2039.2825%20140.976%2039.3415V40.2282H149.63V39.3415C149.122%2039.3136%20148.631%2039.146%20148.212%2038.8571C148.034%2038.625%20147.905%2038.3589%20147.833%2038.0751C147.761%2037.7914%20147.748%2037.4959%20147.794%2037.2068Z'%20fill='black'/%3e%3cpath%20d='M165.208%2035.5651C164.685%2036.1727%20164.1%2036.7231%20163.462%2037.2071C162.75%2037.7349%20161.889%2038.0224%20161.004%2038.0282C159.195%2038.0282%20157.928%2037.0129%20157.201%2034.9822C156.779%2033.7452%20156.536%2032.454%20156.48%2031.1479H165.888C165.872%2030.6587%20165.828%2030.1707%20165.757%2029.6865C165.646%2028.5483%20165.341%2027.4375%20164.855%2026.4024C164.307%2025.3022%20163.453%2024.3841%20162.397%2023.7586C161.364%2023.1311%20160.179%2022.8016%20158.971%2022.8062C157.951%2022.7934%20156.939%2022.9958%20156.002%2023.4004C155.064%2023.8049%20154.222%2024.4025%20153.53%2025.1544C152.022%2026.7253%20151.269%2028.9147%20151.269%2031.7226C151.269%2034.859%20152.088%2037.1333%20153.645%2038.5619C155.01%2039.8998%20156.833%2040.666%20158.742%2040.7048C159.895%2040.7285%20161.038%2040.4899%20162.085%2040.0069C163.752%2039.1125%20165.127%2037.7556%20166.043%2036.0988L165.208%2035.5651ZM157.013%2025.4089C157.124%2024.9724%20157.38%2024.5868%20157.739%2024.3153C158.098%2024.0437%20158.538%2023.9024%20158.988%2023.9146C159.401%2023.8857%20159.812%2023.9984%20160.153%2024.2341C160.494%2024.4698%20160.745%2024.8145%20160.864%2025.2119C161.257%2026.6974%20161.428%2028.2329%20161.373%2029.7686H156.407C156.39%2028.2937%20156.592%2026.8246%20157.005%2025.4089H157.013Z'%20fill='black'/%3e%3cpath%20d='M80.7783%2038.8325C80.5079%2038.6026%2080.3686%2038.0607%2080.3686%2037.1904V27.9127C80.3686%2026.1229%2079.8742%2024.8147%2078.8853%2023.9882C77.931%2023.1731%2076.7139%2022.7326%2075.46%2022.7485C74.2835%2022.7481%2073.1367%2023.1186%2072.1821%2023.8076C71.4279%2024.3528%2070.7547%2025.0024%2070.1826%2025.737H69.9368C69.6429%2025.0064%2069.2022%2024.3441%2068.6421%2023.7912C67.6601%2023.0409%2066.441%2022.6706%2065.2085%2022.7485C63.7484%2022.7375%2062.328%2023.2239%2061.18%2024.1279C60.0321%2025.032%2059.2248%2026.2999%2058.8904%2027.7239L58.4807%2027.5105C58.6428%2026.246%2059.1536%2025.0518%2059.9557%2024.0621V23.1754H52.892V24.0621C53.439%2024.1087%2053.9591%2024.3206%2054.3834%2024.6697C54.6876%2025.1201%2054.8213%2025.6646%2054.7603%2026.205V37.0426C54.7961%2037.3558%2054.7664%2037.673%2054.6733%2037.974C54.5802%2038.2751%2054.4257%2038.5534%2054.2195%2038.7914C53.8273%2039.0672%2053.3693%2039.2343%2052.892%2039.2759V40.1626H61.6848V39.2759C61.1959%2039.2169%2060.7304%2039.0331%2060.3327%2038.7422C60.0304%2038.2851%2059.9024%2037.7343%2059.9721%2037.1904V27.6582C59.9721%2026.9932%2061.2833%2025.1951%2063.1025%2025.1377C63.4368%2025.1041%2063.7733%2025.1744%2064.0665%2025.3389C64.3596%2025.5033%2064.5952%2025.7541%2064.7414%2026.0572C65.041%2026.7562%2065.1783%2027.5141%2065.1429%2028.274V37.2069C65.1429%2038.0279%2065.0036%2038.5862%2064.725%2038.8489C64.3175%2039.1354%2063.8373%2039.3005%2063.3401%2039.3251V40.2119H71.9527V39.3251C71.4667%2039.2648%2071.0041%2039.0811%2070.6088%2038.7914C70.3022%2038.3362%2070.1739%2037.7838%2070.2482%2037.2397V27.3873C70.2482%2027.1574%2070.5924%2026.7551%2071.2971%2026.1722C71.8433%2025.6533%2072.5537%2025.3424%2073.3048%2025.2937C73.6285%2025.2514%2073.9575%2025.307%2074.2495%2025.4533C74.5415%2025.5995%2074.7832%2025.8298%2074.9437%2026.1147C75.2578%2026.8154%2075.401%2027.5808%2075.3617%2028.3479V37.2808C75.4396%2037.8426%2075.2987%2038.4129%2074.9683%2038.8736C74.5575%2039.168%2074.0714%2039.3389%2073.567%2039.3662V40.2529H82.3025V39.3662C81.7517%2039.3501%2081.2193%2039.1636%2080.7783%2038.8325Z'%20fill='black'/%3e%3cpath%20d='M121.71%2012.6996C122.325%2012.0777%20123.135%2011.6887%20124.004%2011.599C124.872%2011.5093%20125.745%2011.7245%20126.473%2012.2078C127.2%2012.6912%20127.738%2013.4126%20127.994%2014.2491C128.25%2015.0855%20128.208%2015.9849%20127.876%2016.7939C127.543%2017.6028%20126.941%2018.271%20126.171%2018.6844C125.402%2019.0977%20124.513%2019.2307%20123.656%2019.0604C122.8%2018.8901%20122.029%2018.4273%20121.475%2017.7508C120.922%2017.0744%20120.62%2016.2263%20120.621%2015.3515C120.613%2014.8585%20120.706%2014.3693%20120.894%2013.9134C121.081%2013.4575%20121.359%2013.0445%20121.71%2012.6996Z'%20fill='%234C3FFF'/%3e%3c/svg%3e\"","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}const i=Math.min,r=Math.max,l=Math.round;function c(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=t.offsetWidth,c=t.offsetHeight,s=l(n)!==r||l(i)!==c;return s&&(n=r,i=c),{width:n,height:i,fallback:s}}function s(t){return h(t)?(t.nodeName||\"\").toLowerCase():\"\"}let f;function u(){if(f)return f;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(f=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),f):navigator.userAgent}function a(t){return t instanceof n(t).HTMLElement}function d(t){return t instanceof n(t).Element}function h(t){return t instanceof n(t).Node}function p(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function g(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function m(t){return[\"table\",\"td\",\"th\"].includes(s(t))}function y(t){const e=/firefox/i.test(u()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function x(){return!/^((?!chrome|android).)*safari/i.test(u())}function w(t){return[\"html\",\"body\",\"#document\"].includes(s(t))}function v(t){return d(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!a(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=c(e);let s=(r?l(n.width):n.width)/o,f=(r?l(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),f&&Number.isFinite(f)||(f=1),{x:s,y:f}}function E(t,e,o,i){var r,l;void 0===e&&(e=!1),void 0===o&&(o=!1);const c=t.getBoundingClientRect(),s=v(t);let f=b;e&&(i?d(i)&&(f=L(i)):f=L(t));const u=s?n(s):window,a=!x()&&o;let h=(c.left+(a&&(null==(r=u.visualViewport)?void 0:r.offsetLeft)||0))/f.x,p=(c.top+(a&&(null==(l=u.visualViewport)?void 0:l.offsetTop)||0))/f.y,g=c.width/f.x,m=c.height/f.y;if(s){const t=n(s),e=i&&d(i)?n(i):i;let o=t.frameElement;for(;o&&i&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,h*=t.x,p*=t.y,g*=t.x,m*=t.y,h+=e.x,p+=e.y,o=n(o).frameElement}}return{width:g,height:m,top:p,right:h+g,bottom:p+m,left:h,x:h,y:p}}function R(t){return((h(t)?t.ownerDocument:t.document)||window.document).documentElement}function T(t){return d(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(R(t)).left+T(t).scrollLeft}function F(t){if(\"html\"===s(t))return t;const e=t.assignedSlot||t.parentNode||p(t)&&t.host||R(t);return p(e)?e.host:e}function W(t){const e=F(t);return w(e)?e.ownerDocument.body:a(e)&&g(e)?e:W(e)}function D(t,e){var o;void 0===e&&(e=[]);const i=W(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],g(i)?i:[]):e.concat(i,D(i))}function S(e,i,l){return\"viewport\"===i?t(function(t,e){const o=n(t),i=R(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=x();(t||!t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,l)):d(i)?t(function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=a(t)?L(t):{x:1,y:1};return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,l)):t(function(t){const e=R(t),n=T(t),i=t.ownerDocument.body,l=r(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),c=r(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let s=-n.scrollLeft+C(t);const f=-n.scrollTop;return\"rtl\"===o(i).direction&&(s+=r(e.clientWidth,i.clientWidth)-l),{width:l,height:c,x:s,y:f}}(R(e)))}function A(t){return a(t)&&\"fixed\"!==o(t).position?t.offsetParent:null}function H(t){const e=n(t);let i=A(t);for(;i&&m(i)&&\"static\"===o(i).position;)i=A(i);return i&&(\"html\"===s(i)||\"body\"===s(i)&&\"static\"===o(i).position&&!y(i))?e:i||function(t){let e=F(t);for(;a(e)&&!w(e);){if(y(e))return e;e=F(e)}return null}(t)||e}function O(t,e,n){const o=a(e),i=R(e),r=E(t,!0,\"fixed\"===n,e);let l={scrollLeft:0,scrollTop:0};const c={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==s(e)||g(i))&&(l=T(e)),a(e)){const t=E(e,!0);c.x=t.x+e.clientLeft,c.y=t.y+e.clientTop}else i&&(c.x=C(i));return{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:l,strategy:c}=t;const f=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=D(t).filter((t=>d(t)&&\"body\"!==s(t))),r=null;const l=\"fixed\"===o(t).position;let c=l?F(t):t;for(;d(c)&&!w(c);){const t=o(c),e=y(c);(l?e||r:e||\"static\"!==t.position||!r||![\"absolute\",\"fixed\"].includes(r.position))?r=t:i=i.filter((t=>t!==c)),c=F(c)}return e.set(t,i),i}(e,this._c):[].concat(n),u=[...f,l],a=u[0],h=u.reduce(((t,n)=>{const o=S(e,n,c);return t.top=r(o.top,t.top),t.right=i(o.right,t.right),t.bottom=i(o.bottom,t.bottom),t.left=r(o.left,t.left),t}),S(e,a,c));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=a(n),r=R(n);if(n===r)return e;let l={scrollLeft:0,scrollTop:0},c={x:1,y:1};const f={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==s(n)||g(r))&&(l=T(n)),a(n))){const t=E(n);c=L(n),f.x=t.x+n.clientLeft,f.y=t.y+n.clientTop}return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-l.scrollLeft*c.x+f.x,y:e.y*c.y-l.scrollTop*c.y+f.y}},isElement:d,getDimensions:function(t){return a(t)?c(t):t.getBoundingClientRect()},getOffsetParent:H,getDocumentElement:R,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||H,r=this.getDimensions;return{reference:O(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i&&!c,f=s||r?[...d(t)?D(t):t.contextElement?D(t.contextElement):[],...D(e)]:[];f.forEach((t=>{s&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let u,a=null;if(l){let o=!0;a=new ResizeObserver((()=>{o||n(),o=!1})),d(t)&&!c&&a.observe(t),d(t)||!t.contextElement||c||a.observe(t.contextElement),a.observe(e)}let h=c?E(t):null;return c&&function e(){const o=E(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,u=requestAnimationFrame(e)}(),n(),()=>{var t;f.forEach((t=>{s&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(u)}}const B=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,B as computePosition,D as getOverflowAncestors,P as platform};\n","import { defineComponent as O, openBlock as f, createElementBlock as T, normalizeClass as J, renderSlot as A, normalizeProps as ke, guardReactiveProps as Le, pushScopeId as De, popScopeId as Ie, nextTick as Fe, createBlock as M, withScopeId as Re, resolveComponent as P, normalizeStyle as W, withKeys as je, createElementVNode as w, Fragment as Ve, createCommentVNode as se, mergeProps as $e, withCtx as N, createVNode as ve, toDisplayString as We, ref as U, createApp as Ge, h as qe } from \"vue\";\nimport { offset as xe, autoPlacement as Ue, shift as Ye, flip as Xe, arrow as Ke, size as Je, computePosition as Qe, getOverflowAncestors as ne } from \"@floating-ui/dom\";\nfunction ye(e, t) {\n for (const o in t)\n Object.prototype.hasOwnProperty.call(t, o) && (typeof t[o] == \"object\" && e[o] ? ye(e[o], t[o]) : e[o] = t[o]);\n}\nconst h = {\n // Disable popper components\n disabled: !1,\n // Default position offset along main axis (px)\n distance: 5,\n // Default position offset along cross axis (px)\n skidding: 0,\n // Default container where the tooltip will be appended\n container: \"body\",\n // Element used to compute position and size boundaries\n boundary: void 0,\n // Skip delay & CSS transitions when another popper is shown, so that the popper appear to instanly move to the new position.\n instantMove: !1,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 150,\n // Triggers on the popper itself\n popperTriggers: [],\n // Positioning strategy\n strategy: \"absolute\",\n // Prevent overflow\n preventOverflow: !0,\n // Flip to the opposite placement if needed\n flip: !0,\n // Shift on the cross axis to prevent the popper from overflowing\n shift: !0,\n // Overflow padding (px)\n overflowPadding: 0,\n // Arrow padding (px)\n arrowPadding: 0,\n // Compute arrow overflow (useful to hide it)\n arrowOverflow: !0,\n /**\n * By default, compute autohide on 'click'.\n */\n autoHideOnMousedown: !1,\n // Themes\n themes: {\n tooltip: {\n // Default tooltip placement relative to target element\n placement: \"top\",\n // Default events that trigger the tooltip\n triggers: [\"hover\", \"focus\", \"touch\"],\n // Close tooltip on click on tooltip target\n hideTriggers: (e) => [...e, \"click\"],\n // Delay (ms)\n delay: {\n show: 200,\n hide: 0\n },\n // Update popper on content resize\n handleResize: !1,\n // Enable HTML content in directive\n html: !1,\n // Displayed when tooltip content is loading\n loadingContent: \"...\"\n },\n dropdown: {\n // Default dropdown placement relative to target element\n placement: \"bottom\",\n // Default events that trigger the dropdown\n triggers: [\"click\"],\n // Delay (ms)\n delay: 0,\n // Update popper on content resize\n handleResize: !0,\n // Hide on clock outside\n autoHide: !0\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction S(e, t) {\n let o = h.themes[e] || {}, i;\n do\n i = o[t], typeof i > \"u\" ? o.$extend ? o = h.themes[o.$extend] || {} : (o = null, i = h[t]) : o = null;\n while (o);\n return i;\n}\nfunction Ze(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend && !o.$resetCss ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t.map((i) => `v-popper--theme-${i}`);\n}\nfunction re(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t;\n}\nlet $ = !1;\nif (typeof window < \"u\") {\n $ = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get() {\n $ = !0;\n }\n });\n window.addEventListener(\"test\", null, e);\n } catch {\n }\n}\nlet _e = !1;\ntypeof window < \"u\" && typeof navigator < \"u\" && (_e = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream);\nconst Te = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((e, t) => e.concat([\n t,\n `${t}-start`,\n `${t}-end`\n]), []), pe = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\",\n pointer: \"pointerdown\"\n}, ae = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\",\n pointer: \"pointerup\"\n};\nfunction de(e, t) {\n const o = e.indexOf(t);\n o !== -1 && e.splice(o, 1);\n}\nfunction G() {\n return new Promise((e) => requestAnimationFrame(() => {\n requestAnimationFrame(e);\n }));\n}\nconst d = [];\nlet g = null;\nconst le = {};\nfunction he(e) {\n let t = le[e];\n return t || (t = le[e] = []), t;\n}\nlet Y = function() {\n};\ntypeof window < \"u\" && (Y = window.Element);\nfunction n(e) {\n return function(t) {\n return S(t.theme, e);\n };\n}\nconst q = \"__floating-vue__popper\", Q = () => O({\n name: \"VPopper\",\n provide() {\n return {\n [q]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [q]: { default: null }\n },\n props: {\n theme: {\n type: String,\n required: !0\n },\n targetNodes: {\n type: Function,\n required: !0\n },\n referenceNode: {\n type: Function,\n default: null\n },\n popperNode: {\n type: Function,\n required: !0\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: n(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: n(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: n(\"placement\"),\n validator: (e) => Te.includes(e)\n },\n delay: {\n type: [String, Number, Object],\n default: n(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: n(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: n(\"skidding\")\n },\n triggers: {\n type: Array,\n default: n(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: n(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: n(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: n(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: n(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: n(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Y, Boolean],\n default: n(\"container\")\n },\n boundary: {\n type: [String, Y],\n default: n(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (e) => [\"absolute\", \"fixed\"].includes(e),\n default: n(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: n(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: n(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: n(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: n(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: n(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: n(\"computeTransformOrigin\")\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: n(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: n(\"autoSize\")\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: n(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: n(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: n(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: n(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: n(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: n(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: n(\"flip\")\n },\n shift: {\n type: Boolean,\n default: n(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: n(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: n(\"noAutoFocus\")\n },\n disposeTimeout: {\n type: Number,\n default: n(\"disposeTimeout\")\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n data() {\n return {\n isShown: !1,\n isMounted: !1,\n skipTransition: !1,\n classes: {\n showFrom: !1,\n showTo: !1,\n hideFrom: !1,\n hideTo: !0\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n randomId: `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join(\"_\")}`,\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: !0,\n pendingHide: !1,\n containsGlobalTarget: !1,\n isDisposed: !0,\n mouseDownContains: !1\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide == \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: {\n ...this.classes,\n popperClass: this.popperClass\n },\n result: this.positioningDisabled ? null : this.result,\n attrs: this.$attrs\n };\n },\n parentPopper() {\n var e;\n return (e = this[q]) == null ? void 0 : e.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var e, t;\n return ((e = this.popperTriggers) == null ? void 0 : e.includes(\"hover\")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes(\"hover\"));\n }\n },\n watch: {\n shown: \"$_autoShowHide\",\n disabled(e) {\n e ? this.dispose() : this.init();\n },\n async container() {\n this.isShown && (this.$_ensureTeleport(), await this.$_computePosition());\n },\n triggers: {\n handler: \"$_refreshListeners\",\n deep: !0\n },\n positioningDisabled: \"$_refreshListeners\",\n ...[\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((e, t) => (e[t] = \"$_computePosition\", e), {})\n },\n created() {\n this.autoMinSize && console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.'), this.autoMaxSize && console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n },\n mounted() {\n this.init(), this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeUnmount() {\n this.dispose();\n },\n methods: {\n show({ event: e = null, skipDelay: t = !1, force: o = !1 } = {}) {\n var i, s;\n (i = this.parentPopper) != null && i.lockedChild && this.parentPopper.lockedChild !== this || (this.pendingHide = !1, (o || !this.disabled) && (((s = this.parentPopper) == null ? void 0 : s.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit(\"show\"), this.$_showFrameLocked = !0, requestAnimationFrame(() => {\n this.$_showFrameLocked = !1;\n })), this.$emit(\"update:shown\", !0));\n },\n hide({ event: e = null, skipDelay: t = !1 } = {}) {\n var o;\n if (!this.$_hideInProgress) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => {\n this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null);\n }, 1e3));\n return;\n }\n ((o = this.parentPopper) == null ? void 0 : o.lockedChild) === this && (this.parentPopper.lockedChild = null), this.pendingHide = !1, this.$_scheduleHide(e, t), this.$emit(\"hide\"), this.$emit(\"update:shown\", !1);\n }\n },\n init() {\n var e;\n this.isDisposed && (this.isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = ((e = this.referenceNode) == null ? void 0 : e.call(this)) ?? this.$el, this.$_targetNodes = this.targetNodes().filter((t) => t.nodeType === t.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\"), this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\"), this.$_swapTargetAttrs(\"title\", \"data-original-title\"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show());\n },\n dispose() {\n this.isDisposed || (this.isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs(\"data-original-title\", \"title\"));\n },\n async onResize() {\n this.isShown && (await this.$_computePosition(), this.$emit(\"resize\"));\n },\n async $_computePosition() {\n if (this.isDisposed || this.positioningDisabled)\n return;\n const e = {\n strategy: this.strategy,\n middleware: []\n };\n (this.distance || this.skidding) && e.middleware.push(xe({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n const t = this.placement.startsWith(\"auto\");\n if (t ? e.middleware.push(Ue({\n alignment: this.placement.split(\"-\")[1] ?? \"\"\n })) : e.placement = this.placement, this.preventOverflow && (this.shift && e.middleware.push(Ye({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n })), !t && this.flip && e.middleware.push(Xe({\n padding: this.overflowPadding,\n boundary: this.boundary\n }))), e.middleware.push(Ke({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n })), this.arrowOverflow && e.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement: i, rects: s, middlewareData: r }) => {\n let p;\n const { centerOffset: a } = r.arrow;\n return i.startsWith(\"top\") || i.startsWith(\"bottom\") ? p = Math.abs(a) > s.reference.width / 2 : p = Math.abs(a) > s.reference.height / 2, {\n data: {\n overflow: p\n }\n };\n }\n }), this.autoMinSize || this.autoSize) {\n const i = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n e.middleware.push({\n name: \"autoSize\",\n fn: ({ rects: s, placement: r, middlewareData: p }) => {\n var u;\n if ((u = p.autoSize) != null && u.skip)\n return {};\n let a, l;\n return r.startsWith(\"top\") || r.startsWith(\"bottom\") ? a = s.reference.width : l = s.reference.height, this.$_innerNode.style[i === \"min\" ? \"minWidth\" : i === \"max\" ? \"maxWidth\" : \"width\"] = a != null ? `${a}px` : null, this.$_innerNode.style[i === \"min\" ? \"minHeight\" : i === \"max\" ? \"maxHeight\" : \"height\"] = l != null ? `${l}px` : null, {\n data: {\n skip: !0\n },\n reset: {\n rects: !0\n }\n };\n }\n });\n }\n (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, e.middleware.push(Je({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ availableWidth: i, availableHeight: s }) => {\n this.$_innerNode.style.maxWidth = i != null ? `${i}px` : null, this.$_innerNode.style.maxHeight = s != null ? `${s}px` : null;\n }\n })));\n const o = await Qe(this.$_referenceNode, this.$_popperNode, e);\n Object.assign(this.result, {\n x: o.x,\n y: o.y,\n placement: o.placement,\n strategy: o.strategy,\n arrow: {\n ...o.middlewareData.arrow,\n ...o.middlewareData.arrowOverflow\n }\n });\n },\n $_scheduleShow(e, t = !1) {\n if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), g && this.instantMove && g.instantMove && g !== this.parentPopper) {\n g.$_applyHide(!0), this.$_applyShow(!0);\n return;\n }\n t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n },\n $_scheduleHide(e, t = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (g = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n },\n $_computeDelay(e) {\n const t = this.delay;\n return parseInt(t && t[e] || t || 0);\n },\n async $_applyShow(e = !1) {\n clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await G(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([\n ...ne(this.$_referenceNode),\n ...ne(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n }));\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const t = this.$_referenceNode.getBoundingClientRect(), o = this.$_popperNode.querySelector(\".v-popper__wrapper\"), i = o.parentNode.getBoundingClientRect(), s = t.x + t.width / 2 - (i.left + o.offsetLeft), r = t.y + t.height / 2 - (i.top + o.offsetTop);\n this.result.transformOrigin = `${s}px ${r}px`;\n }\n this.isShown = !0, this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const e = this.showGroup;\n if (e) {\n let t;\n for (let o = 0; o < d.length; o++)\n t = d[o], t.showGroup !== e && (t.hide(), t.$emit(\"close-group\"));\n }\n d.push(this), document.body.classList.add(\"v-popper--some-open\");\n for (const t of re(this.theme))\n he(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`);\n this.$emit(\"apply-show\"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await G(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus();\n },\n async $_applyHide(e = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0, this.$_hideInProgress = !1;\n return;\n }\n if (clearTimeout(this.$_scheduleTimer), !this.isShown)\n return;\n this.skipTransition = e, de(d, this), d.length === 0 && document.body.classList.remove(\"v-popper--some-open\");\n for (const o of re(this.theme)) {\n const i = he(o);\n de(i, this), i.length === 0 && document.body.classList.remove(`v-popper--some-open--${o}`);\n }\n g === this && (g = null), this.isShown = !1, this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n }), clearTimeout(this.$_disposeTimer);\n const t = this.disposeTimeout;\n t !== null && (this.$_disposeTimer = setTimeout(() => {\n this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1);\n }, t)), this.$_removeEventListeners(\"scroll\"), this.$emit(\"apply-hide\"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await G(), this.classes.hideFrom = !1, this.classes.hideTo = !0;\n },\n $_autoShowHide() {\n this.shown ? this.show() : this.hide();\n },\n $_ensureTeleport() {\n if (this.isDisposed)\n return;\n let e = this.container;\n if (typeof e == \"string\" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e)\n throw new Error(\"No container for popover: \" + this.container);\n e.appendChild(this.$_popperNode), this.isMounted = !0;\n },\n $_addEventListeners() {\n const e = (o) => {\n this.isShown && !this.$_hideInProgress || (o.usedByTooltip = !0, !this.$_preventShow && this.show({ event: o }));\n };\n this.$_registerTriggerListeners(this.$_targetNodes, pe, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], pe, this.popperTriggers, this.popperShowTriggers, e);\n const t = (o) => {\n o.usedByTooltip || this.hide({ event: o });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, ae, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], ae, this.popperTriggers, this.popperHideTriggers, t);\n },\n $_registerEventListeners(e, t, o) {\n this.$_events.push({ targetNodes: e, eventType: t, handler: o }), e.forEach((i) => i.addEventListener(t, o, $ ? {\n passive: !0\n } : void 0));\n },\n $_registerTriggerListeners(e, t, o, i, s) {\n let r = o;\n i != null && (r = typeof i == \"function\" ? i(r) : i), r.forEach((p) => {\n const a = t[p];\n a && this.$_registerEventListeners(e, a, s);\n });\n },\n $_removeEventListeners(e) {\n const t = [];\n this.$_events.forEach((o) => {\n const { targetNodes: i, eventType: s, handler: r } = o;\n !e || e === s ? i.forEach((p) => p.removeEventListener(s, r)) : t.push(o);\n }), this.$_events = t;\n },\n $_refreshListeners() {\n this.isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners());\n },\n $_handleGlobalClose(e, t = !1) {\n this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit(\"close-directive\") : this.$emit(\"auto-hide\"), t && (this.$_preventShow = !0, setTimeout(() => {\n this.$_preventShow = !1;\n }, 300)));\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(e, t) {\n for (const o of this.$_targetNodes) {\n const i = o.getAttribute(e);\n i && (o.removeAttribute(e), o.setAttribute(t, i));\n }\n },\n $_applyAttrsToTarget(e) {\n for (const t of this.$_targetNodes)\n for (const o in e) {\n const i = e[o];\n i == null ? t.removeAttribute(o) : t.setAttribute(o, i);\n }\n },\n $_updateParentShownChildren(e) {\n let t = this.parentPopper;\n for (; t; )\n e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.pendingHide && t.hide()), t = t.parentPopper;\n },\n $_isAimingPopper() {\n const e = this.$_referenceNode.getBoundingClientRect();\n if (y >= e.left && y <= e.right && _ >= e.top && _ <= e.bottom) {\n const t = this.$_popperNode.getBoundingClientRect(), o = y - c, i = _ - m, r = t.left + t.width / 2 - c + (t.top + t.height / 2) - m + t.width + t.height, p = c + o * r, a = m + i * r;\n return C(c, m, p, a, t.left, t.top, t.left, t.bottom) || // Left edge\n C(c, m, p, a, t.left, t.top, t.right, t.top) || // Top edge\n C(c, m, p, a, t.right, t.top, t.right, t.bottom) || // Right edge\n C(c, m, p, a, t.left, t.bottom, t.right, t.bottom);\n }\n return !1;\n }\n },\n render() {\n return this.$slots.default(this.slotData);\n }\n});\nif (typeof document < \"u\" && typeof window < \"u\") {\n if (_e) {\n const e = $ ? {\n passive: !0,\n capture: !0\n } : !0;\n document.addEventListener(\"touchstart\", (t) => ue(t, !0), e), document.addEventListener(\"touchend\", (t) => fe(t, !0), e);\n } else\n window.addEventListener(\"mousedown\", (e) => ue(e, !1), !0), window.addEventListener(\"click\", (e) => fe(e, !1), !0);\n window.addEventListener(\"resize\", tt);\n}\nfunction ue(e, t) {\n if (h.autoHideOnMousedown)\n Pe(e, t);\n else\n for (let o = 0; o < d.length; o++) {\n const i = d[o];\n try {\n i.mouseDownContains = i.popperNode().contains(e.target);\n } catch {\n }\n }\n}\nfunction fe(e, t) {\n h.autoHideOnMousedown || Pe(e, t);\n}\nfunction Pe(e, t) {\n const o = {};\n for (let i = d.length - 1; i >= 0; i--) {\n const s = d[i];\n try {\n const r = s.containsGlobalTarget = s.mouseDownContains || s.popperNode().contains(e.target);\n s.pendingHide = !1, requestAnimationFrame(() => {\n if (s.pendingHide = !1, !o[s.randomId] && ce(s, r, e)) {\n if (s.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && r) {\n let a = s.parentPopper;\n for (; a; )\n o[a.randomId] = !0, a = a.parentPopper;\n return;\n }\n let p = s.parentPopper;\n for (; p && ce(p, p.containsGlobalTarget, e); ) {\n p.$_handleGlobalClose(e, t);\n p = p.parentPopper;\n }\n }\n });\n } catch {\n }\n }\n}\nfunction ce(e, t, o) {\n return o.closeAllPopover || o.closePopover && t || et(e, o) && !t;\n}\nfunction et(e, t) {\n if (typeof e.autoHide == \"function\") {\n const o = e.autoHide(t);\n return e.lastAutoHide = o, o;\n }\n return e.autoHide;\n}\nfunction tt() {\n for (let e = 0; e < d.length; e++)\n d[e].$_computePosition();\n}\nfunction Nt() {\n for (let e = 0; e < d.length; e++)\n d[e].hide();\n}\nlet c = 0, m = 0, y = 0, _ = 0;\ntypeof window < \"u\" && window.addEventListener(\"mousemove\", (e) => {\n c = y, m = _, y = e.clientX, _ = e.clientY;\n}, $ ? {\n passive: !0\n} : void 0);\nfunction C(e, t, o, i, s, r, p, a) {\n const l = ((p - s) * (t - r) - (a - r) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t)), u = ((o - e) * (t - r) - (i - t) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t));\n return l >= 0 && l <= 1 && u >= 0 && u <= 1;\n}\nconst ot = {\n extends: Q()\n}, B = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [i, s] of t)\n o[i] = s;\n return o;\n};\nfunction it(e, t, o, i, s, r) {\n return f(), T(\"div\", {\n ref: \"reference\",\n class: J([\"v-popper\", {\n \"v-popper--shown\": e.slotData.isShown\n }])\n }, [\n A(e.$slots, \"default\", ke(Le(e.slotData)))\n ], 2);\n}\nconst st = /* @__PURE__ */ B(ot, [[\"render\", it]]);\nfunction nt() {\n var e = window.navigator.userAgent, t = e.indexOf(\"MSIE \");\n if (t > 0)\n return parseInt(e.substring(t + 5, e.indexOf(\".\", t)), 10);\n var o = e.indexOf(\"Trident/\");\n if (o > 0) {\n var i = e.indexOf(\"rv:\");\n return parseInt(e.substring(i + 3, e.indexOf(\".\", i)), 10);\n }\n var s = e.indexOf(\"Edge/\");\n return s > 0 ? parseInt(e.substring(s + 5, e.indexOf(\".\", s)), 10) : -1;\n}\nlet z;\nfunction X() {\n X.init || (X.init = !0, z = nt() !== -1);\n}\nvar E = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: !1\n },\n ignoreWidth: {\n type: Boolean,\n default: !1\n },\n ignoreHeight: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"notify\"\n ],\n mounted() {\n X(), Fe(() => {\n this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize();\n });\n const e = document.createElement(\"object\");\n this._resizeObject = e, e.setAttribute(\"aria-hidden\", \"true\"), e.setAttribute(\"tabindex\", -1), e.onload = this.addResizeHandlers, e.type = \"text/html\", z && this.$el.appendChild(e), e.data = \"about:blank\", z || this.$el.appendChild(e);\n },\n beforeUnmount() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify() {\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize());\n },\n emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify), this.compareAndNotify();\n },\n removeResizeHandlers() {\n this._resizeObject && this._resizeObject.onload && (!z && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null);\n }\n }\n};\nconst rt = /* @__PURE__ */ Re(\"data-v-b329ee4c\");\nDe(\"data-v-b329ee4c\");\nconst pt = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\nIe();\nconst at = /* @__PURE__ */ rt((e, t, o, i, s, r) => (f(), M(\"div\", pt)));\nE.render = at;\nE.__scopeId = \"data-v-b329ee4c\";\nE.__file = \"src/components/ResizeObserver.vue\";\nconst Z = (e = \"theme\") => ({\n computed: {\n themeClass() {\n return Ze(this[e]);\n }\n }\n}), dt = O({\n name: \"VPopperContent\",\n components: {\n ResizeObserver: E\n },\n mixins: [\n Z()\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n emits: [\n \"hide\",\n \"resize\"\n ],\n methods: {\n toPx(e) {\n return e != null && !isNaN(e) ? `${e}px` : null;\n }\n }\n}), lt = [\"id\", \"aria-hidden\", \"tabindex\", \"data-popper-placement\"], ht = {\n ref: \"inner\",\n class: \"v-popper__inner\"\n}, ut = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-outer\" }, null, -1), ft = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-inner\" }, null, -1), ct = [\n ut,\n ft\n];\nfunction mt(e, t, o, i, s, r) {\n const p = P(\"ResizeObserver\");\n return f(), T(\"div\", {\n id: e.popperId,\n ref: \"popover\",\n class: J([\"v-popper__popper\", [\n e.themeClass,\n e.classes.popperClass,\n {\n \"v-popper__popper--shown\": e.shown,\n \"v-popper__popper--hidden\": !e.shown,\n \"v-popper__popper--show-from\": e.classes.showFrom,\n \"v-popper__popper--show-to\": e.classes.showTo,\n \"v-popper__popper--hide-from\": e.classes.hideFrom,\n \"v-popper__popper--hide-to\": e.classes.hideTo,\n \"v-popper__popper--skip-transition\": e.skipTransition,\n \"v-popper__popper--arrow-overflow\": e.result && e.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !e.result\n }\n ]]),\n style: W(e.result ? {\n position: e.result.strategy,\n transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`\n } : void 0),\n \"aria-hidden\": e.shown ? \"false\" : \"true\",\n tabindex: e.autoHide ? 0 : void 0,\n \"data-popper-placement\": e.result ? e.result.placement : void 0,\n onKeyup: t[2] || (t[2] = je((a) => e.autoHide && e.$emit(\"hide\"), [\"esc\"]))\n }, [\n w(\"div\", {\n class: \"v-popper__backdrop\",\n onClick: t[0] || (t[0] = (a) => e.autoHide && e.$emit(\"hide\"))\n }),\n w(\"div\", {\n class: \"v-popper__wrapper\",\n style: W(e.result ? {\n transformOrigin: e.result.transformOrigin\n } : void 0)\n }, [\n w(\"div\", ht, [\n e.mounted ? (f(), T(Ve, { key: 0 }, [\n w(\"div\", null, [\n A(e.$slots, \"default\")\n ]),\n e.handleResize ? (f(), M(p, {\n key: 0,\n onNotify: t[1] || (t[1] = (a) => e.$emit(\"resize\", a))\n })) : se(\"\", !0)\n ], 64)) : se(\"\", !0)\n ], 512),\n w(\"div\", {\n ref: \"arrow\",\n class: \"v-popper__arrow-container\",\n style: W(e.result ? {\n left: e.toPx(e.result.arrow.x),\n top: e.toPx(e.result.arrow.y)\n } : void 0)\n }, ct, 4)\n ], 4)\n ], 46, lt);\n}\nconst ee = /* @__PURE__ */ B(dt, [[\"render\", mt]]), te = {\n methods: {\n show(...e) {\n return this.$refs.popper.show(...e);\n },\n hide(...e) {\n return this.$refs.popper.hide(...e);\n },\n dispose(...e) {\n return this.$refs.popper.dispose(...e);\n },\n onResize(...e) {\n return this.$refs.popper.onResize(...e);\n }\n }\n};\nlet K = function() {\n};\ntypeof window < \"u\" && (K = window.Element);\nconst gt = O({\n name: \"VPopperWrapper\",\n components: {\n Popper: st,\n PopperContent: ee\n },\n mixins: [\n te,\n Z(\"finalTheme\")\n ],\n props: {\n theme: {\n type: String,\n default: null\n },\n referenceNode: {\n type: Function,\n default: null\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: void 0\n },\n positioningDisabled: {\n type: Boolean,\n default: void 0\n },\n placement: {\n type: String,\n default: void 0\n },\n delay: {\n type: [String, Number, Object],\n default: void 0\n },\n distance: {\n type: [Number, String],\n default: void 0\n },\n skidding: {\n type: [Number, String],\n default: void 0\n },\n triggers: {\n type: Array,\n default: void 0\n },\n showTriggers: {\n type: [Array, Function],\n default: void 0\n },\n hideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperTriggers: {\n type: Array,\n default: void 0\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n container: {\n type: [String, Object, K, Boolean],\n default: void 0\n },\n boundary: {\n type: [String, K],\n default: void 0\n },\n strategy: {\n type: String,\n default: void 0\n },\n autoHide: {\n type: [Boolean, Function],\n default: void 0\n },\n handleResize: {\n type: Boolean,\n default: void 0\n },\n instantMove: {\n type: Boolean,\n default: void 0\n },\n eagerMount: {\n type: Boolean,\n default: void 0\n },\n popperClass: {\n type: [String, Array, Object],\n default: void 0\n },\n computeTransformOrigin: {\n type: Boolean,\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: void 0\n },\n autoSize: {\n type: [Boolean, String],\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: void 0\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: void 0\n },\n preventOverflow: {\n type: Boolean,\n default: void 0\n },\n overflowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowOverflow: {\n type: Boolean,\n default: void 0\n },\n flip: {\n type: Boolean,\n default: void 0\n },\n shift: {\n type: Boolean,\n default: void 0\n },\n shiftCrossAxis: {\n type: Boolean,\n default: void 0\n },\n noAutoFocus: {\n type: Boolean,\n default: void 0\n },\n disposeTimeout: {\n type: Number,\n default: void 0\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n computed: {\n finalTheme() {\n return this.theme ?? this.$options.vPopperTheme;\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el);\n }\n }\n});\nfunction wt(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$props, {\n theme: e.finalTheme,\n \"target-nodes\": e.getTargetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n class: [\n e.themeClass\n ],\n onShow: t[0] || (t[0] = () => e.$emit(\"show\")),\n onHide: t[1] || (t[1] = () => e.$emit(\"hide\")),\n \"onUpdate:shown\": t[2] || (t[2] = (l) => e.$emit(\"update:shown\", l)),\n onApplyShow: t[3] || (t[3] = () => e.$emit(\"apply-show\")),\n onApplyHide: t[4] || (t[4] = () => e.$emit(\"apply-hide\")),\n onCloseGroup: t[5] || (t[5] = () => e.$emit(\"close-group\")),\n onCloseDirective: t[6] || (t[6] = () => e.$emit(\"close-directive\")),\n onAutoHide: t[7] || (t[7] = () => e.$emit(\"auto-hide\")),\n onResize: t[8] || (t[8] = () => e.$emit(\"resize\"))\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n show: F,\n hide: v,\n handleResize: R,\n onResize: j,\n classes: V,\n result: Ee\n }) => [\n A(e.$slots, \"default\", {\n shown: u,\n show: F,\n hide: v\n }),\n ve(p, {\n ref: \"popperContent\",\n \"popper-id\": l,\n theme: e.finalTheme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": R,\n classes: V,\n result: Ee,\n onHide: v,\n onResize: j\n }, {\n default: N(() => [\n A(e.$slots, \"popper\", {\n shown: u,\n hide: v\n })\n ]),\n _: 2\n }, 1032, [\"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 3\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"class\"]);\n}\nconst k = /* @__PURE__ */ B(gt, [[\"render\", wt]]), Se = {\n ...k,\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n}, be = {\n ...k,\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n}, Ce = {\n ...k,\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n}, $t = O({\n name: \"VTooltipDirective\",\n components: {\n Popper: Q(),\n PopperContent: ee\n },\n mixins: [\n te\n ],\n inheritAttrs: !1,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default: (e) => S(e.theme, \"html\")\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default: (e) => S(e.theme, \"loadingContent\")\n },\n targetNodes: {\n type: Function,\n required: !0\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content == \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(!0);\n },\n immediate: !0\n },\n async finalContent() {\n await this.$nextTick(), this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(e) {\n if (typeof this.content == \"function\" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null, this.$_loading = !0;\n const t = ++this.$_fetchId, o = this.content(this);\n o.then ? o.then((i) => this.onResult(t, i)) : this.onResult(t, o);\n }\n },\n onResult(e, t) {\n e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t);\n },\n onShow() {\n this.$_isShown = !0, this.fetchContent();\n },\n onHide() {\n this.$_isShown = !1;\n }\n }\n}), vt = [\"innerHTML\"], yt = [\"textContent\"];\nfunction _t(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$attrs, {\n theme: e.theme,\n \"target-nodes\": e.targetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n onApplyShow: e.onShow,\n onApplyHide: e.onHide\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n hide: F,\n handleResize: v,\n onResize: R,\n classes: j,\n result: V\n }) => [\n ve(p, {\n ref: \"popperContent\",\n class: J({\n \"v-popper--tooltip-loading\": e.loading\n }),\n \"popper-id\": l,\n theme: e.theme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": v,\n classes: j,\n result: V,\n onHide: F,\n onResize: R\n }, {\n default: N(() => [\n e.html ? (f(), T(\"div\", {\n key: 0,\n innerHTML: e.finalContent\n }, null, 8, vt)) : (f(), T(\"div\", {\n key: 1,\n textContent: We(e.finalContent)\n }, null, 8, yt))\n ]),\n _: 2\n }, 1032, [\"class\", \"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 1\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst ze = /* @__PURE__ */ B($t, [[\"render\", _t]]), Ae = \"v-popper--has-tooltip\";\nfunction Tt(e, t) {\n let o = e.placement;\n if (!o && t)\n for (const i of Te)\n t[i] && (o = i);\n return o || (o = S(e.theme || \"tooltip\", \"placement\")), o;\n}\nfunction Ne(e, t, o) {\n let i;\n const s = typeof t;\n return s === \"string\" ? i = { content: t } : t && s === \"object\" ? i = t : i = { content: !1 }, i.placement = Tt(i, o), i.targetNodes = () => [e], i.referenceNode = () => e, i;\n}\nlet x, b, Pt = 0;\nfunction St() {\n if (x)\n return;\n b = U([]), x = Ge({\n name: \"VTooltipDirectiveApp\",\n setup() {\n return {\n directives: b\n };\n },\n render() {\n return this.directives.map((t) => qe(ze, {\n ...t.options,\n shown: t.shown || t.options.shown,\n key: t.id\n }));\n },\n devtools: {\n hide: !0\n }\n });\n const e = document.createElement(\"div\");\n document.body.appendChild(e), x.mount(e);\n}\nfunction bt(e, t, o) {\n St();\n const i = U(Ne(e, t, o)), s = U(!1), r = {\n id: Pt++,\n options: i,\n shown: s\n };\n return b.value.push(r), e.classList && e.classList.add(Ae), e.$_popper = {\n options: i,\n item: r,\n show() {\n s.value = !0;\n },\n hide() {\n s.value = !1;\n }\n };\n}\nfunction He(e) {\n if (e.$_popper) {\n const t = b.value.indexOf(e.$_popper.item);\n t !== -1 && b.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget;\n }\n e.classList && e.classList.remove(Ae);\n}\nfunction me(e, { value: t, modifiers: o }) {\n const i = Ne(e, t, o);\n if (!i.content || S(i.theme || \"tooltip\", \"disabled\"))\n He(e);\n else {\n let s;\n e.$_popper ? (s = e.$_popper, s.options.value = i) : s = bt(e, t, o), typeof t.shown < \"u\" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? s.show() : s.hide());\n }\n}\nconst oe = {\n beforeMount: me,\n updated: me,\n beforeUnmount(e) {\n He(e);\n }\n};\nfunction ge(e) {\n e.addEventListener(\"mousedown\", H), e.addEventListener(\"click\", H), e.addEventListener(\"touchstart\", Oe, $ ? {\n passive: !0\n } : !1);\n}\nfunction we(e) {\n e.removeEventListener(\"mousedown\", H), e.removeEventListener(\"click\", H), e.removeEventListener(\"touchstart\", Oe), e.removeEventListener(\"touchend\", Me), e.removeEventListener(\"touchcancel\", Be);\n}\nfunction H(e) {\n const t = e.currentTarget;\n e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n}\nfunction Oe(e) {\n if (e.changedTouches.length === 1) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !0;\n const o = e.changedTouches[0];\n t.$_vclosepopover_touchPoint = o, t.addEventListener(\"touchend\", Me), t.addEventListener(\"touchcancel\", Be);\n }\n}\nfunction Me(e) {\n const t = e.currentTarget;\n if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) {\n const o = e.changedTouches[0], i = t.$_vclosepopover_touchPoint;\n e.closePopover = Math.abs(o.screenY - i.screenY) < 20 && Math.abs(o.screenX - i.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n }\n}\nfunction Be(e) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !1;\n}\nconst ie = {\n beforeMount(e, { value: t, modifiers: o }) {\n e.$_closePopoverModifiers = o, (typeof t > \"u\" || t) && ge(e);\n },\n updated(e, { value: t, oldValue: o, modifiers: i }) {\n e.$_closePopoverModifiers = i, t !== o && (typeof t > \"u\" || t ? ge(e) : we(e));\n },\n beforeUnmount(e) {\n we(e);\n }\n}, Ht = h, Ot = oe, Mt = oe, Bt = ie, Et = ie, kt = Se, Lt = be, Dt = Q, It = ee, Ft = te, Rt = k, jt = Z, Vt = Ce, Wt = ze;\nfunction Ct(e, t = {}) {\n e.$_vTooltipInstalled || (e.$_vTooltipInstalled = !0, ye(h, t), e.directive(\"tooltip\", oe), e.directive(\"close-popper\", ie), e.component(\"VTooltip\", Ce), e.component(\"VDropdown\", Se), e.component(\"VMenu\", be));\n}\nconst Gt = {\n // eslint-disable-next-line no-undef\n version: \"5.2.2\",\n install: Ct,\n options: h\n};\nexport {\n kt as Dropdown,\n ae as HIDE_EVENT_MAP,\n Lt as Menu,\n Dt as Popper,\n It as PopperContent,\n Ft as PopperMethods,\n Rt as PopperWrapper,\n pe as SHOW_EVENT_MAP,\n jt as ThemeClass,\n Vt as Tooltip,\n Wt as TooltipDirective,\n Bt as VClosePopper,\n Ot as VTooltip,\n bt as createTooltip,\n Gt as default,\n He as destroyTooltip,\n Nt as hideAllPoppers,\n Ct as install,\n Ht as options,\n Te as placements,\n tt as recomputeAllPoppers,\n Et as vClosePopper,\n Mt as vTooltip\n};\n","<script setup lang=\"ts\">\nimport { Tooltip } from 'floating-vue'\nimport { options } from 'floating-vue'\n\noptions.themes.tooltip.placement = 'top'\noptions.themes.tooltip.triggers = ['hover', 'focus', 'click']\n\n</script>\n\n<template>\n <Tooltip>\n <slot />\n <template #popper>\n <slot name=\"popper\" />\n </template>\n </Tooltip>\n</template>","<script setup lang=\"ts\">\n import \"@/scss/component/_ink-sidebar.scss\"\n import \"@/scss/component/_ink-sidebar-simple.scss\"\n import { handleSidebarTogglerClick } from '@/helper/handle-sidebar-toggler-click'\n import { Disclosure, DisclosureButton, DisclosurePanel } from '@headlessui/vue'\n import InkSidebarMenu from '@/components/ink-sidebar/InkSidebarMenu.vue'\n import { vInkTooltip } from '@/components/ink-tooltip/Ink-tooltip'\n import { onMounted } from 'vue'\n\n interface SwitchItem {\n id: string | number, // TODO 套用時跟後端確認:value 123 改用字串,後端改給 \"123\"; 之後後端 id to uuid \"a456\" 時前端不需要再修改\n name: string,\n logo: string,\n }\n interface MenuItemSchema {\n id: string,\n name: string,\n icon: string,\n route?: {\n name: string,\n [key: string]: string | number,\n },\n children?: MenuChildrenItemSchema[],\n isAllow?: boolean,\n }\ninterface MenuChildrenItemSchema { \n id: string | number,\n name: string,\n route: {\n name: string,\n [key: string]: string | number,\n },\n isAllow: boolean,\n }\n\n interface SidebarProps {\n currentAppName:string,\n currentMainSwitchItem:SwitchItem,\n mainSwitchItems:SwitchItem[],\n currentTabSwitchItemId?:string | number,\n tabSwitchItems?:SwitchItem[],\n menu: MenuItemSchema[],\n currentMenuItemId: string | number,\n }\n const props = defineProps<SidebarProps>()\n\n const emit = defineEmits(['mainItemCheckSwitch', 'tabItemCheckSwitch'])\n const onMainItemCheckSwitch = (item:SwitchItem, close:()=>void) => {\n emit('mainItemCheckSwitch', item, close)\n }\n const onTabItemCheckSwitch = (item:SwitchItem) => {\n emit('tabItemCheckSwitch', item)\n }\n const toggleSidebar = (e:Event) => {\n const isFolded = document.body.classList.contains('sidebar-folded');\n if (e.type === 'click') {\n handleSidebarTogglerClick();\n } else if (e.type === 'mouseenter' && isFolded) {\n document.body.classList.add('open-sidebar-folded');\n } else if (e.type === 'mouseleave' && isFolded) {\n document.body.classList.remove('open-sidebar-folded');\n }\n };\n // close sidebar when click outside on mobile/table\n const closeSidebar = (e:MouseEvent) => {\n if (!(e.target as HTMLElement).closest('#sidebar')) {\n document.body.classList.remove('sidebar-open');\n }\n };\n onMounted(() => {\n document.addEventListener('click', closeSidebar);\n });\n</script>\n<template>\n <nav id=\"sidebar\" class=\"sidebar tw-z-[1020] tw-overflow-hidden\">\n <div class=\"sidebar-header justify-content-start\">\n <button class=\"sidebar-toggler tw-flex-shrink-0\" @click.prevent.stop=\"toggleSidebar\">\n <i class=\"fas fa-bars\"></i>\n </button>\n <picture class=\"sidebar-brand\">\n <source media=\"(min-width:992px)\" srcset=\"/src/images/logo-light-lg.svg\"/>\n <img src=\"/src/images/logo-light-sm.svg\" alt=\"inkmagine logo\"/>\n </picture>\n </div>\n <div class=\"sidebar-body\" @mouseenter=\"toggleSidebar\" @mouseleave=\"toggleSidebar\">\n <!-- 集團列表 -->\n <ul v-if=\"tabSwitchItems\" id=\"console-list\" class=\"nav bloc_nav tw-flex-shrink-0 hover:!tw-w-[75px]\">\n <li\n v-for=\"item in tabSwitchItems\"\n :key=\"item.id\"\n :class=\"['nav-item', { active: item.id === currentTabSwitchItemId }]\"\n v-inkTooltip.right=\"item.name\"\n >\n <button\n type=\"button\"\n :class=\"['nav-link', { 'tw-cursor-default': item.id === currentTabSwitchItemId }]\"\n @click.prevent=\"onTabItemCheckSwitch(item)\"\n >\n <figure class=\"tw-border tw-border-solid tw-border-gray-300\">\n <img v-if=\"item.logo\" class=\"p-1\" :src=\"item.logo\" :alt=\"item.name\"/>\n </figure>\n </button>\n </li>\n </ul>\n\n <div class=\"nav\" v-scrollBar>\n <div class=\"nav__header\">\n <h3 class=\"nav__title nav-simple-hide\">{{ currentAppName }}</h3>\n <!-- 品牌列表 -->\n <Disclosure as=\"div\" class=\"brand-nav-item\">\n <DisclosureButton\n class=\"nav-link tw-font-semibold tw-border-0 tw-bg-transparent tw-text-left\"\n >\n <figure class=\"tw-border tw-border-solid tw-border-gray-300\">\n <img v-if=\"currentMainSwitchItem?.logo\" :src=\"currentMainSwitchItem.logo\" :alt=\"currentMainSwitchItem.name\"/>\n </figure>\n <span class=\"brand-nav-item__title link-title tw-break-words\">\n {{ currentMainSwitchItem.name }}\n </span>\n <i v-if=\"mainSwitchItems.length > 1\" class=\"fal fa-chevron-down fa-fw link-arrow\"></i>\n </DisclosureButton>\n <DisclosurePanel \n v-if=\"mainSwitchItems.length > 1\"\n v-slot=\"{ close }\"\n >\n <ul class=\"nav sub-menu\">\n <template v-for=\"item in mainSwitchItems\" :key=\"item.id\">\n <li \n v-if=\"item.id !== currentMainSwitchItem.id\" \n class=\"nav-item\"\n >\n <button type=\"button\" class=\"nav-link\" @click.prevent=\"onMainItemCheckSwitch( item, close)\">\n <figure class=\"tw-border tw-border-solid tw-border-gray-300\">\n <img v-if=\"item.logo\" :src=\"item.logo\" :alt=\"item.name\"/>\n </figure>\n <span class=\"link-title tw-text-left\">{{ item.name }}</span>\n </button>\n </li>\n </template>\n </ul>\n </DisclosurePanel>\n </Disclosure>\n <slot></slot>\n </div>\n <InkSidebarMenu :menu=\"menu\" :currentMenuItemId=\"currentMenuItemId\"/>\n </div>\n </div>\n </nav>\n</template>","<script setup lang=\"ts\">\nconst props = defineProps({\n descriptionText: {\n type: String,\n default: ''\n }\n})\n</script>\n<template>\n <em :class=\"'tw-field-message tw-block tw-w-full tw-break-all'\" v-html=\"props.descriptionText\"></em>\n</template>","// resources/docs/internal/articles/structure.md\ntype Base = {\n id: string;\n type: string;\n name?: string;\n require?: boolean | number[]; // resources/docs/internal/authors/structure.md\n slug?: string;\n description?: string;\n position?: 'left' | 'center' | 'right';\n tip?: string;\n} & Min & Max & Default & Ai;\n\ntype Default = {\n default?: string[] | number[] | boolean[] | object[] | [];\n}\ntype Min = {\n min?: number; // 0 is unlimited quantity\n}\ntype Max = {\n max?: number; // 0 is unlimited quantity\n}\ntype Ai = {\n ai?: string[];\n}\n\n\n// (Optional) see Cabinet /resources/docs/internal/fields/type.md\ntype Placeholder = {\n placeholder?: string;\n}\n\n// type Tip = {\n// tip?: string;\n// }\n// type Description = {\n// description?: string;\n// }\nexport type NumberLimit = [number | false, number | false];\nexport type FileLimit = [number, string[]];\nexport type TextLimit = [number, number];\nexport type DatetimerngLimit = [number, number];\ntype Limit = {\n /* false is no range\n Text: chars range\n Number: number range\n textarea: chars range\n hashtag: ??\n file: size, mime type\n image: width and height range\n */\n limit?: false | NumberLimit | TextLimit | FileLimit | DatetimerngLimit;\n}\n// type Type = {\n// type?: string;\n// }\n\ntype Step = {\n step?: number;\n}\n\ntype Prefix = {\n prefix?: string;\n}\ntype Suffix = {\n suffix?: string;\n}\n\n// image data\ntype Ratio = {\n ratio?: boolean | number[]; // false is no ratio\n}\ntype Viewport = {\n viewport?: boolean | number[]; // for display, false is no specific\n}\ntype Fluid = {\n fluid?: 'rectangle' | 'circle';\n}\n// END\n\n// type Position = {\n// position?: 'left' | 'center' | 'right';\n// }\n// type Slug = {\n// slug?: string;\n// }\n\n\n// option data for select, checkbox, radio\ntype Hierarchy = {\n hierarchy?: boolean;\n}\ntype Choosable = {\n choosable?: number[];\n}\ntype Total = {\n total?: number;\n};\ntype Options = {\n key?: string;\n name?: string;\n own?: boolean;\n status?: boolean;\n children?: Options[];\n total?: number;\n}\n\ntype OptionsObject = {\n options?: UnKnownOptions[];\n}\nexport type UnKnownOptions = {\n [key: string | number]: unknown;\n}\n\n// select\nexport type SelectReduceReturn = string | number | undefined | null;\nexport type SelectInputBind = {\n options?: SelectOptions[];\n label?: string;\n hasNextPage?: boolean;\n activeStyle?: boolean;\n optionDivider?: number[];\n openFn?: () => void;\n closeFn?: () => void;\n infiniteFn?: () => void;\n reduce?: (option: UnKnownOptions) => SelectReduceReturn;\n};\nexport type SelectOptions = {\n disabled?: boolean;\n depth?: number;\n} & UnKnownOptions;\n\n// hashtag\nexport type HashtagInputBind = {\n noDrop: boolean;\n loading: boolean;\n options?: HashtagOptions[];\n activeStyle?: boolean;\n} \ntype HashtagOptions = UnKnownOptions\n\n// checkbox \nexport type CheckBoxInputBind = {\n options?: CheckBoxOptions[];\n label?: string;\n valueKey?: string;\n hasNextPage?: boolean;\n infiniteFn?: () => void;\n}\n\nexport type CheckBoxOptions = {\n disabled?: boolean;\n depth?: number;\n} & UnKnownOptions;\n\n// radio\nexport type RadioInputBind = {\n options?: RadioOptions[];\n label?: string;\n valueKey?: string;\n hasNextPage?: boolean;\n infiniteFn?: () => void;\n}\n\nexport type RadioOptions = {\n disabled?: boolean;\n} & UnKnownOptions;\n\n// datetime picker\ntype DatePickerType = 'year' | 'month' | 'date' | 'datetime' | 'week';\n\nexport const RestrictTypeMode = {\n PAST: 'past',\n FUTURE: 'future',\n UNLIMITED: 'unlimited',\n} as const;\nexport type DatetimePickerInputBind = {\n timezone: string; // for display date and display UTC timezone. if need validate restrict, must be set timezone.\n isClearable?: boolean;\n format?: string;\n type?: DatePickerType;\n restrict: {\n restrictType?: (typeof RestrictTypeMode)[keyof typeof RestrictTypeMode]; \n shiftSecond?: number;\n }\n} & UnKnownOptions\n// END\n\n// datetimerange\nexport type DatetimerngInputBind = {\n timezone: string; // for display date and display UTC timezone. if need validate restrict, must be set timezone.\n isClearable?: boolean;\n activeStyle?: boolean;\n format?: string;\n type?: DatePickerType;\n} & UnKnownOptions\n// END\n\n// resources/docs/internal/fields/type.md\n\nexport type ModelValueSharp = Default;\n\nexport type TextSharp = Base & Placeholder & Prefix & Suffix & Limit;\nexport type TextareaSharp = Base & Placeholder & Limit;\nexport type UrlSharp = Base & Placeholder;\nexport type SelectSharp = Base & OptionsObject & Total & Choosable & Hierarchy & Placeholder;\nexport type HashtagSharp = Base & Placeholder & Limit;\nexport type CheckBoxSharp = Base & OptionsObject & Total & Choosable & Hierarchy;\nexport type RadioSharp = Base & OptionsObject & Total;\nexport type SwitchSharp = Base;\nexport type DatetimeSharp = Base & Placeholder;\nexport type DatetimerngSharp = Base & Limit;\n\nexport type FieldDataSharp = Base & TextSharp & Step & Ratio & Viewport & Fluid & Hierarchy & Choosable & OptionsObject & Total;","import { computed, Ref } from \"vue\";\nimport type { CheckBoxInputBind, SelectInputBind, SelectReduceReturn, UnKnownOptions, DatetimePickerInputBind, DatetimerngInputBind, HashtagInputBind } from \"@/components/input/field-data-interface\";\nimport { RestrictTypeMode } from \"@/components/input/field-data-interface\";\nimport { utcTimezone } from \"@/helper/dayjs\";\n\nexport const singleFieldTypes = ['select', 'checkbox', 'radio', 'switch', 'datetime', 'date', 'datetimerng', 'daterng', 'hashtag'];\n\nexport const defaultInputProps = {\n valueIndex: {\n type: Number,\n default: 0\n },\n required: {\n type: Boolean,\n default:false\n },\n disabled: {\n type: Boolean,\n default:false\n },\n inputTotal: {\n type: Number,\n default: 0\n },\n inputOn: {\n type: Object,\n },\n}\n\nexport const fieldDefaultValue = (type: string) => {\n return{\n id: '',\n type: type,\n max: 1,\n limit: false,\n }\n}\n\nexport const useMergeFieldProps = <T extends Record<string, unknown>>(type: string, field: Ref<T>) => { \n const defaultField = fieldDefaultValue(type);\n const mergeField = computed(() => {\n return {\n ...defaultField,\n ...field.value,\n }\n });\n // console.log('field',field);\n // console.log('mergeField',mergeField.value);\n const minLength = computed(() => {\n return Array.isArray(mergeField.value.limit) && typeof mergeField.value.limit[0] === 'number' && mergeField.value.limit[0] ? mergeField.value.limit[0] : undefined;\n });\n const maxLength = computed(() => {\n return Array.isArray(mergeField.value.limit) && typeof mergeField.value.limit[1] === 'number' && mergeField.value.limit[1] ? mergeField.value.limit[1] : undefined;\n });\n const checkFieldMax = computed(() => { \n if (mergeField.value.max) {\n return mergeField.value.max;\n } else if (mergeField.value.max === 0) {\n return Infinity;\n }\n return 1;\n }\n )\n return { mergeField, minLength, maxLength, checkFieldMax };\n}\n\n// vue select series\nconst defaultAllSelectInputBind = () => {\n return {\n activeStyle: false,\n optionDivider: [],\n options: [],\n label: 'name',\n filterable: false,\n clearable: true,\n autoscroll: false,\n }\n}\n// select series (single select)\nconst defaultSelectInputBind = () => {\n return {\n ...defaultAllSelectInputBind(),\n hasNextPage: false,\n searchable: false,\n reduce: (option: UnKnownOptions) => option.key as SelectReduceReturn,\n selectable: (option: UnKnownOptions) => !option.disabled,\n infiniteFn: undefined as (() => void) | undefined,\n openFn: undefined as (() => void) | undefined,\n closeFn: undefined as (() => void) | undefined,\n }\n}\nexport const useMergeSelectInputBind = (inputBind: Ref<Record<string, unknown>>) => {\n const mergeInputBind = computed<SelectInputBind>(() => {\n return {\n ...defaultSelectInputBind(),\n ...inputBind.value,\n }\n })\n const clearInputBind = computed<SelectInputBind>(() => {\n const clearInputBind:Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'infiniteFn' && key !== 'openFn' && key !== 'closeFn' && key !== 'hasNextPage' && key !== 'activeStyle' && key !== 'optionDivider'){\n clearInputBind[key] = mergeInputBind.value[key as keyof SelectInputBind];\n }\n })\n return clearInputBind;\n });\n return { mergeInputBind, clearInputBind };\n}\n\n// hashtag series (multiple select)\n// noDrop, , loading,\nconst defaultHashtagInputBind = () => {\n return {\n ...defaultAllSelectInputBind(),\n searchable: true,\n }\n}\nexport const useMergeHashtagInputBind = (inputBind: Ref<Record<string, unknown>>) => {\n const mergeInputBind = computed(() => {\n return {\n ...defaultHashtagInputBind(),\n ...inputBind.value,\n noDrop: inputBind.value.noDrop,\n loading: inputBind.value.loading,\n }\n })\n const clearInputBind = computed(() => {\n const clearInputBind: Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'activeStyle'){\n clearInputBind[key] = mergeInputBind.value[key as keyof HashtagInputBind];\n }\n })\n return clearInputBind;\n });\n return { mergeInputBind, clearInputBind };\n}\n// checkbox\nconst defaultCheckBoxInputBind = (): CheckBoxInputBind => {\n return {\n hasNextPage: false,\n options: [],\n }\n}\nexport const useMergeCheckBoxInputBind = (inputBind: Ref<Record<string, unknown>>) => { \n const mergeInputBind = computed<CheckBoxInputBind>(() => {\n return {\n ...defaultCheckBoxInputBind() as CheckBoxInputBind,\n ...inputBind.value,\n }\n })\n const clearInputBind = computed(() => {\n const clearInputBind: Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'hasNextPage' && key !== 'infiniteFn' && key !== 'options' && key !== 'label' && key !== 'valueKey'){\n clearInputBind[key] = mergeInputBind.value[key as keyof CheckBoxInputBind];\n }\n })\n return clearInputBind;\n });\n\n // console.log('mergeInputBind',mergeInputBind.value);\n return { mergeInputBind, clearInputBind };\n}\n\n// all datetime\nconst defaultAllDatetimeInputBind = () => { \n return {\n isClearable: true,\n clearable: false,\n teleported: true,\n }\n}\nconst defaultAllDatetimeMethod = () => {\n\n const mainInputModeNone = () => {\n\n }\n const panelInputModeNone = () => {\n const popperEls = document.querySelectorAll(`.js-datetime-popper`);\n popperEls.forEach((popperEl) => {\n const inputEls = popperEl.querySelectorAll('input');\n if (inputEls) {\n inputEls.forEach(inputEl => {\n inputEl.setAttribute(\"inputmode\", \"none\");\n })\n }\n })\n }\n const panelTimezone = (timezone:DatetimePickerInputBind['timezone']) => {\n if(!timezone) return;\n let els = document.querySelectorAll<HTMLElement>('.el-picker-panel__footer');\n els.forEach(el => {\n let remarkTimezone = el.querySelector<HTMLElement>('.js-remarkTimezone');\n if (remarkTimezone) return;\n let utcEl = document.createElement('span');\n utcEl.className = 'js-remarkTimezone remark-timezone tw-text-gray tw-text-sm mr-auto';\n utcEl.textContent = `(${utcTimezone(timezone)})`;\n el.prepend(utcEl);\n })\n }\n\n return {\n panelInputModeNone,\n panelTimezone,\n }\n}\n\n// datetime series\nconst defaultDatetimePickerInputBind = () => { \n return {\n ...defaultAllDatetimeInputBind(),\n restrict: {\n restrictType: RestrictTypeMode.UNLIMITED,\n shiftSecond: 0,\n },\n }\n}\nexport const useMergeDatetimePickerInputBind = (inputBind: Ref<Record<string, unknown>>) => {\n const mergeInputBind = computed<DatetimePickerInputBind>(() => {\n return {\n ...defaultDatetimePickerInputBind(),\n ...inputBind.value,\n timezone: inputBind.value.timezone as DatetimePickerInputBind['timezone'],\n popperClass: `${inputBind.value.popperClass} js-datetime-popper`,\n }\n })\n\n const clearInputBind = computed(() => {\n const clearInputBind: Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'isClearable' && key !== 'restrict' && key !== 'timezone'){\n clearInputBind[key] = mergeInputBind.value[key as keyof DatetimePickerInputBind];\n }\n })\n return clearInputBind;\n })\n \n return { mergeInputBind, clearInputBind, ...defaultAllDatetimeMethod() };\n}\n\n// datetimerange series\nconst defaultDatetimerngInputBind = () => { \n return {\n ...defaultAllDatetimeInputBind(),\n activeStyle: false,\n }\n}\nexport const useMergeDatetimerngInputBind = (inputBind: Ref<Record<string, unknown>>) => { \n const mergeInputBind = computed<DatetimerngInputBind>(() => {\n return {\n ...defaultDatetimerngInputBind(),\n ...inputBind.value,\n timezone: inputBind.value.timezone as DatetimePickerInputBind['timezone'],\n popperClass: `${inputBind.value.popperClass} js-datetime-popper`,\n }\n })\n const clearInputBind = computed(() => {\n const clearInputBind: Record<string, unknown> = {}\n Object.keys(mergeInputBind.value).forEach(key => {\n if(key !== 'isClearable' && key !== 'activeStyle' && key !== 'timezone'){\n clearInputBind[key] = mergeInputBind.value[key as keyof DatetimerngInputBind];\n }\n })\n return clearInputBind;\n })\n return { mergeInputBind, clearInputBind, ...defaultAllDatetimeMethod() };\n}","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-form.scss';\nimport { InkVTooltip } from '@/components/ink-tooltip/Ink-tooltip';\nimport InkButton from '@/components/InkButton.vue';\nimport { t } from '@/helper/i18n';\nimport { defineAsyncComponent, computed, watch, toRef, onMounted, nextTick } from 'vue';\nimport type { FieldDataSharp, UnKnownOptions} from '@/components/input/field-data-interface';\nimport { useFieldArray } from 'vee-validate';\nimport InkFieldMessage from '@/components/input/InkFieldMessage.vue';\nimport { fieldDefaultValue, useMergeFieldProps } from '@/components/input/input-default-value';\nimport { singleFieldTypes } from '@/components/input/input-default-value';\ninterface DraggableItemOrder {\n inputId: string;\n value: string | number | boolean | object;\n }\ninterface FieldProps {\n field: FieldDataSharp; // field require for attribute required calculate data\n disabled?: boolean; // for attribute disabled\n required?: boolean; // for attribute required\n inputBind?: Record<string, any>;\n inputOn?: Record<string, any>;\n}\n\nconst props = withDefaults(defineProps<FieldProps>(), {\n});\n\nconst emit = defineEmits(['inkChanged']);\n\nconst componentMap = {\n text: defineAsyncComponent(() => import('@/components/input/InkText.vue')),\n url: defineAsyncComponent(() => import('@/components/input/InkUrl.vue')),\n textarea: defineAsyncComponent(() => import('@/components/input/InkTextarea.vue')),\n select: defineAsyncComponent(() => import('@/components/input/InkSelect.vue')),\n hashtag: defineAsyncComponent(() => import('@/components/input/InkHashtag.vue')),\n checkbox: defineAsyncComponent(() => import('@/components/input/InkCheckbox.vue')),\n radio: defineAsyncComponent(() => import('@/components/input/InkRadio.vue')),\n switch: defineAsyncComponent(() => import('@/components/input/InkSwitch.vue')),\n datetime: defineAsyncComponent(() => import('@/components/input/InkDatetime.vue')),\n date: defineAsyncComponent(() => import('@/components/input/InkDatetime.vue')),\n datetimerng: defineAsyncComponent(() => import('@/components/input/InkDatetimerng.vue')),\n daterng: defineAsyncComponent(() => import('@/components/input/InkDatetimerng.vue')),\n} as const;\n\ntype FieldType = keyof typeof componentMap;\n\n// 使用 computed 來獲取當前的欄位類型\nconst fieldType = computed(() => props.field.type as FieldType);\n\nconst { checkFieldMax, mergeField } = useMergeFieldProps<FieldDataSharp>(fieldType.value, toRef(props, 'field'));\n\n// watch(() => props.field, (newField) => {\n// console.log('watch field d1',newField);\n// }, { deep: true });\n\nconst dynamicComponent = computed(() => {\n return componentMap[mergeField.value.type as FieldType];\n});\n\n\n// 根據欄位類型返回對應的值類型 (邊做 input 的 .vue 邊測試這裡的 type 是否可行,會因應使用的套件而不同)\ntype GetFieldValueType<T extends FieldType> = \n T extends 'text' | 'slug' | 'email' | 'url' | 'password' | 'time' | 'textarea' | 'html'\n ? string \n : T extends 'number' | 'datetime' | 'date' | 'datetimerng' | 'daterng'\n ? number | undefined\n : T extends 'switch' \n ? boolean \n : T extends 'json' | 'hashtag'\n ? object \n : T extends 'select' | 'checkbox' | 'radio'\n ? UnKnownOptions[] | string[] | number[] | null | undefined\n : T extends 'file' | 'image'\n ? number | object\n : never;\n\n\n// 使用 fieldType.value 來決定 useFieldArray 的類型\nconst { remove, push, fields, update, replace } = useFieldArray<GetFieldValueType<typeof fieldType.value>>(mergeField.value.id);\n\nconst inputTotal = computed(() => fields.value.length);\n\nconst onRemoveItemHandler = (index: number) => {\n remove(index);\n};\n\nconst onUpdateItem = (index: number, value: GetFieldValueType<typeof fieldType.value>) => {\n update(index, value);\n};\n\nconst onPushItem = () => {\n switch (fieldType.value) {\n case 'text':\n // case 'slug':\n // case 'email':\n case 'url':\n // case 'password':\n // case 'time':\n case 'textarea':\n // case 'html':\n push('');\n break;\n case 'checkbox':\n case 'radio':\n case 'hashtag':\n break;\n case 'daterng':\n case 'datetimerng':\n push([undefined, undefined]);\n break;\n default:\n push(undefined);\n break;\n }\n}\n\nconst onInkChanged = (value: GetFieldValueType<typeof fieldType.value>) => {\n emit('inkChanged', value);\n}\n\nonMounted(async () => {\n await nextTick()\n if (fields.value.length === 0) {\n onPushItem()\n }\n})\n\n</script>\n\n<template>\n <fieldset \n class=\"js-dynamic-component tw-flex tw-flex-wrap tw-gap-2\"\n :data-field-type=\"mergeField.type\"\n :class=\"{\n 'tw-flex-row tw-items-center': mergeField.type === 'switch',\n 'tw-flex-col': mergeField.type !== 'switch',\n }\"\n >\n <div v-if=\"mergeField.name\" :class=\"['tw-text-base tw-font-semibold tw-flex tw-items-center tw-gap-1']\">\n {{ mergeField.name }}\n <InkVTooltip v-if=\"mergeField.tip\">\n <button type=\"button\" class=\"tw-btn-transparent tw-btn-icon-xs\"><i class=\"fa-regular fa-circle-info\"></i></button>\n <template #popper>\n {{ mergeField.tip }}\n </template>\n </InkVTooltip>\n <span v-if=\"required && mergeField.type !== 'switch'\" class=\"tw-text-primary-500\">\n {{ t('requiredHint') }}\n </span>\n </div>\n <!-- <slot/> -->\n <template v-if=\"!singleFieldTypes.includes(mergeField.type)\">\n <component \n v-for=\"(item, valueIndex) in fields\"\n :key=\"`${item.key}-${valueIndex}`\"\n :is=\"dynamicComponent\"\n :valueIndex=\"valueIndex\"\n :inputTotal=\"inputTotal\"\n :field=\"mergeField\"\n :required=\"required\"\n :disabled=\"disabled\"\n @removeInputItemFn=\"onRemoveItemHandler\"\n :inputBind=\"inputBind\"\n :inputOn=\"inputOn\"\n @inkChanged=\"onInkChanged\"\n >\n </component>\n </template>\n <template v-else>\n <component \n :is=\"dynamicComponent\"\n :inputTotal=\"inputTotal\"\n :field=\"mergeField\"\n :required=\"required\"\n :disabled=\"disabled\"\n @removeInputItemFn=\"onRemoveItemHandler\"\n :inputBind=\"inputBind\"\n :inputOn=\"inputOn\"\n @inkChanged=\"onInkChanged\"\n >\n </component>\n </template>\n <InkFieldMessage v-if=\"mergeField.description\" :descriptionText=\"mergeField.description\"/>\n <template v-if=\"!singleFieldTypes.includes(mergeField.type)\">\n <InkButton\n v-if=\"inputTotal < checkFieldMax\"\n as=\"button\"\n type=\"button\"\n variant=\"txt\"\n theme=\"outline-gray\"\n size=\"md\"\n class=\"tw-self-start\"\n @click=\"onPushItem\"\n :disabled=\"disabled\"\n >\n <i class=\"far fa-plus tw-text-base\"></i>\n {{ t('add') }}\n </InkButton>\n </template>\n </fieldset>\n</template>","<script setup lang=\"ts\">\n\n</script>\n<template>\n <div class=\"input-wrapper tw-flex tw-flex-col tw-flex-grow tw-gap-1\">\n <slot/>\n </div>\n</template>\n\n","<script setup lang=\"ts\">\n\n</script>\n<template>\n <div class=\"input-inner tw-flex tw-gap-2 tw-items-center\">\n <slot/>\n </div>\n</template>\n\n","<script setup lang=\"ts\">\nconst props = defineProps({\n errorText: {\n type: String,\n default: ''\n }\n});\n</script>\n<template>\n <em :class=\"'tw-error-message tw-block tw-w-full tw-break-all'\">{{ props.errorText }}</em>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { singleFieldTypes } from '@/components/input/input-default-value';\n\ninterface InputFrameProps {\n max: number;\n inputTotal?: number;\n disabled?: boolean;\n inputType: string;\n}\n\nconst props = withDefaults(defineProps<InputFrameProps>(), {\n inputTotal: 0\n});\n\nconst classList = computed(() => {\n const list = []\n if (props.inputType === 'textarea' || props.inputType === 'json') {\n list.push('tw-border-b', 'tw-self-start', 'tw-rounded-bl-lg', 'tw-rounded-tr-lg')\n } else {\n list.push('tw-rounded-r')\n }\n return list\n})\n\nconst emit = defineEmits(['removeComponent']);\n</script>\n<template>\n <div class=\"input-frame tw-flex tw-flex-grow tw-relative\">\n <slot/>\n <button\n type=\"button\"\n v-if=\"!singleFieldTypes.includes(inputType) && !disabled && (max === Infinity || max > 1)\"\n :class=\"['tw-btn-remove', 'tw-absolute', 'tw-inset-y-[1px]', 'tw-right-[1px]', 'tw-border-l', classList]\"\n @click.prevent=\"emit('removeComponent')\"\n :disabled=\"inputTotal <= 1\"\n >\n <i class=\"far fa-trash\"></i>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useField } from 'vee-validate';\nimport { computed, type PropType, toRef } from \"vue\";\nimport type { TextSharp } from '@/components/input/field-data-interface';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps } from '@/components/input/input-default-value';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<TextSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<Record<string, unknown>>,\n default: () => ({}),\n },\n});\n\nconst {mergeField, minLength, maxLength, checkFieldMax} = useMergeFieldProps<TextSharp>('text', toRef(props, 'field'));\n\nconst rules = computed(() => ({\n required: props.required,\n wordLimit: mergeField.value.limit,\n}));\n\nconst { value, errorMessage } = useField<string>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\nconst emit = defineEmits(['removeInputItemFn']);\n\n</script>\n<template>\n <InputWrapper>\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n {{ mergeField.prefix }}\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n :inputType=\"mergeField.type\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <input\n type=\"text\"\n :minlength=\"minLength\"\n :maxlength=\"maxLength\"\n :class=\"['form-control tw-input-txt tw-w-full', { 'tw-border-danger-400': errorMessage }]\"\n v-model.trim=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder\"\n v-bind=\"inputBind\"\n v-on=\"inputOn\"\n @keydown.enter.prevent\n />\n </InputFrame>\n {{ mergeField.suffix }}\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { useField } from 'vee-validate';\nimport { computed, type PropType, toRef } from \"vue\";\nimport type { UrlSharp } from '@/components/input/field-data-interface';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps } from '@/components/input/input-default-value';\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<UrlSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<Record<string, unknown>>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<UrlSharp>('url', toRef(props, 'field'));\n\n\nconst rules = computed(() => ({\n required: props.required,\n url: true,\n}));\n\nconst { value, errorMessage } = useField<string>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\n</script>\n<template>\n <InputWrapper>\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n :inputType=\"mergeField.type\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <input\n type=\"url\"\n :class=\"['form-control tw-input-txt tw-w-full', { 'tw-border-danger-400': errorMessage }]\"\n v-model.trim=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder\"\n v-bind=\"inputBind\"\n v-on=\"inputOn\"\n @keydown.enter.prevent\n />\n </InputFrame>\n <!-- InputInner for other input type suffix in here -->\n </InputInner>\n <!-- error message -->\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { useField } from 'vee-validate';\nimport { computed, type PropType, toRef } from \"vue\";\nimport type { TextareaSharp } from '@/components/input/field-data-interface';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport InkWordCount from '@/components/input/InkWordCount.vue';\nimport { defaultInputProps, useMergeFieldProps } from '@/components/input/input-default-value';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<TextareaSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<Record<string, unknown>>,\n default: () => ({}),\n },\n});\n\nconst {mergeField, minLength, maxLength, checkFieldMax} = useMergeFieldProps<TextareaSharp>('textarea', toRef(props, 'field'));\n\nconst rules = computed(() => ({\n required: props.required,\n wordLimit: mergeField.value.limit,\n}));\n\nconst { value, errorMessage } = useField<string>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\nconst emit = defineEmits(['removeInputItemFn']);\n\n</script>\n<template>\n <InputWrapper>\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :inputType=\"mergeField.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div :class=\"['tw-textarea tw-w-full', { 'tw-border-danger-400': errorMessage }]\">\n <textarea\n rows=\"5\"\n :minlength=\"minLength\"\n :maxlength=\"maxLength\"\n :class=\"['form-control tw-w-full']\"\n v-model.trim=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder\"\n v-bind=\"inputBind\"\n v-on=\"inputOn\"\n />\n </div>\n </InputFrame>\n </InputInner>\n <InkWordCount v-if=\"maxLength\" :maxLength=\"maxLength\" :wordCount=\"value.length\" />\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport '@/scss/component/vue-select/_ink-vue-select.scss';\nimport { computed, useTemplateRef, defineEmits, nextTick, type PropType, watch, toRef, ref } from 'vue';\nimport vSelect from 'vue-select'\nimport { useField } from 'vee-validate';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeSelectInputBind } from '@/components/input/input-default-value';\nimport { SelectSharp } from '@/components/input/field-data-interface';\nimport { t } from '@/helper/i18n';\nimport type { SelectInputBind, UnKnownOptions, SelectReduceReturn } from '@/components/input/field-data-interface';\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<SelectSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<SelectInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<SelectSharp>('select', toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind } = useMergeSelectInputBind(toRef(props, 'inputBind'));\n\nconst isObserver = ref(false);\nconst load = useTemplateRef('load');\nconst infiniteScrollHandler = async ([{ isIntersecting, target }]: IntersectionObserverEntry[]) => {\n if (isIntersecting) {\n const ul = (target as HTMLElement).offsetParent as HTMLElement;\n const scrollTop = ul.scrollTop;\n if(mergeInputBind.value.infiniteFn){\n mergeInputBind.value.infiniteFn();\n }\n const watchOptions = watch(() => mergeInputBind.value.options, () => {\n ul.scrollTop = scrollTop;\n watchOptions();\n })\n }\n}\nconst observer = new IntersectionObserver(infiniteScrollHandler)\nconst checkAndObserver = () => { \n if (mergeInputBind.value.hasNextPage && load.value && !isObserver.value) {\n observer.observe(load.value);\n isObserver.value = true;\n }\n}\nconst disconnectObserver = () => {\n observer.disconnect();\n isObserver.value = false;\n}\nconst onOpen = async () => {\n await nextTick()\n checkAndObserver();\n // emit('openFn');\n if(mergeInputBind.value.openFn){\n mergeInputBind.value.openFn();\n }\n}\nconst onClose = () => {\n disconnectObserver();\n // emit('closeFn');\n if(mergeInputBind.value.closeFn){\n mergeInputBind.value.closeFn();\n }\n}\nwatch(() => load.value, async () => {\n if (!isObserver.value && load.value) {\n // for first time search\n await nextTick()\n checkAndObserver();\n } else {\n // for open dropdown and do search\n disconnectObserver();\n }\n})\n// get infinite data end\n\nconst rules = computed(() => ({\n required: props.required,\n}));\n\nconst { value, errorMessage, setValue } = useField<SelectReduceReturn | UnKnownOptions>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\nwatch(()=>value.value, (newVal, oldVal) => {\n if(newVal !== oldVal && typeof newVal === 'object' && newVal !== null){\n const reduceValue = mergeInputBind.value.reduce?.(newVal);\n setValue(reduceValue);\n }\n}, { immediate: true });\n\n// style\nconst elStyle = computed(() => {\n return {\n 'active': mergeInputBind.value.activeStyle && value.value,\n 'is-error': errorMessage.value,\n 'option-0-divider': mergeInputBind.value.optionDivider?.some((item: number) => item === 0),\n 'option-1-divider': mergeInputBind.value.optionDivider?.some((item: number) => item === 1),\n 'option-2-divider': mergeInputBind.value.optionDivider?.some((item: number) => item === 2),\n };\n});\n\n</script>\n<template>\n <InputWrapper>\n <InputInner>\n <InputFrame\n :inputType=\"mergeField.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\"\n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <!-- :dropdownShouldOpen=\"() => true\" -->\n <!-- @option:selected=\"onSelected\" -->\n <v-select\n v-model=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder || t('select')\"\n @open=\"onOpen\"\n @close=\"onClose\"\n class=\"tw-w-full tw-max-w-[300px]\"\n :class=\"elStyle\"\n :inputId=\"`${mergeField.id}[${props.valueIndex}]`\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n >\n <!-- 選項內容 -->\n <template #option=\"options\">\n <div :class=\"['option']\">\n <span \n class=\"tw-mr-2.5 tw-rounded-sm tw-py-1\"\n :style=\"{ 'padding-left': `calc(${options.depth > 0 ? options.depth - 1 : 0}em + 0.5rem)` }\"\n >\n <i v-if=\"options.depth > 0\" class=\"fal fa-angle-left -tw-rotate-45\"></i>\n {{ options[clearInputBind?.label || 'name'] }}\n </span>\n </div>\n </template>\n <template v-if=\"disabled\" #open-indicator=\"{ attributes }\">\n <!-- 自定義圖示或完全空白 -->\n {{ null }}\n </template>\n <template #list-footer>\n <li v-show=\"mergeInputBind.hasNextPage\" ref=\"load\" class=\"loader tw-text-sm tw-text-gray-600 tw-italic\">\n {{ t('loading') }}\n </li>\n </template>\n </v-select>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n<!-- <style lang=\"postcss\" scoped>\n.v-select.vs--single {\n :deep(.vs__dropdown-menu) {\n --vs-dropdown-min-width: auto;\n }\n}\n</style> -->","<script setup lang=\"ts\">\nimport '@/scss/component/vue-select/_ink-vue-select.scss';\nimport { computed, defineEmits, onMounted, type PropType, toRef, watch, useTemplateRef } from 'vue';\nimport vSelect from 'vue-select'\nimport { useField } from 'vee-validate';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeHashtagInputBind } from '@/components/input/input-default-value';\nimport { t } from '@/helper/i18n';\nimport type { HashtagInputBind, UnKnownOptions, HashtagSharp } from '@/components/input/field-data-interface';\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<HashtagSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<HashtagInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<HashtagSharp>('hashtag', toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind } = useMergeHashtagInputBind(toRef(props, 'inputBind'));\n\n\nconst rules = computed(() => ({\n required: props.required,\n itemLimit: [mergeField.value.min, mergeField.value.max],\n}));\n\nconst { value, errorMessage, setValue } = useField<UnKnownOptions[]>(`${mergeField.value.id}`, rules);\n\n// style\nconst elStyle = computed(() => {\n return {\n 'active': mergeInputBind.value.activeStyle && value.value,\n 'is-error': errorMessage.value,\n };\n});\n\n// const deleteSelectItemIsEmpty = ()=>{\n// if(value.value.length === 0)return;\n// value.value = value.value.filter((item: UnKnownOptions) => item);\n// }\nonMounted(() => {\n // deleteSelectItemIsEmpty();\n});\nconst vSelectRef = useTemplateRef<InstanceType<typeof vSelect>>('vSelectRef');\nwatch(value, () => {\n vSelectRef.value?.searchEl.focus();\n})\n\n</script>\n<template>\n <InputWrapper>\n <InputInner>\n <InputFrame\n :inputType=\"mergeField.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\"\n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <!-- :dropdownShouldOpen=\"() => true\" -->\n <!-- @option:selected=\"onSelected\" -->\n <v-select\n ref=\"vSelectRef\"\n v-model=\"value\"\n :disabled=\"disabled\"\n :required=\"required\"\n :placeholder=\"mergeField.placeholder\"\n class=\"tw-w-full\"\n :class=\"elStyle\"\n :inputId=\"`${mergeField.id}`\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n :taggable=\"!mergeField.limit\"\n :filterable=\"mergeField.limit\"\n multiple\n >\n <!-- 選項內容 -->\n <template #option=\"{ name }\">\n <div :class=\"['option']\">\n <span \n class=\"tw-mr-2.5 tw-rounded-sm tw-py-1\"\n >\n {{ name }}\n </span>\n </div>\n </template>\n <!-- 鎖定時不顯示刪除按鈕 -->\n <template v-if=\"disabled\" #selected-option-container=\"{ option }\">\n <div class=\"vs__selected\">{{ option.name }}</div>\n </template>\n\n <!-- 無選項內容 -->\n <template #no-options>\n {{ t('noResultsFound') }}\n </template>\n <template #open-indicator=\"{ attributes }\">\n <!-- 自定義圖示或完全空白 -->\n {{ null }}\n </template>\n <template #list-footer>\n </template>\n </v-select>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>","<script setup lang=\"ts\">\nimport { ref, computed, type PropType, watch, toRef, useId } from \"vue\";\nimport { useField } from 'vee-validate';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeCheckBoxInputBind } from '@/components/input/input-default-value';\nimport { useIntersectionObserver } from '@vueuse/core';\nimport type { CheckBoxSharp, CheckBoxInputBind, UnKnownOptions} from '@/components/input/field-data-interface';\n// import InkCheckBoxInput from '@/components/input/InkCheckBoxInput.vue';\nimport { t } from '@/helper/i18n';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<CheckBoxSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<CheckBoxInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<CheckBoxSharp>('checkbox', toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind } = useMergeCheckBoxInputBind(toRef(props, 'inputBind'));\n\nconst checkedValueKey = computed(() => {\n const key = mergeInputBind.value.valueKey || 'key'\n if(!mergeInputBind.value.options?.[0]?.hasOwnProperty(key)){\n console.warn(`InkCheckbox - the key \"${key}\" is not in the options, please check the options and the inputBind.valueKey. inputBind.valueKey default is \"key\"`);\n }\n return key;\n});\nconst onChange = (id: number | string, event: Event) => {\n const isChecked = (event.target as HTMLInputElement).checked;\n // let newValue = isChecked ? [...value.value, id] : value.value.filter(item => item !== id);\n let newValue;\n if(isChecked){\n // newValue = [...value.value, id];\n newValue = value.value.filter(item => item !== undefined).concat(id);\n }else{\n newValue = value.value.filter(item => {\n if(typeof item === 'object' && item !== null){\n return item[checkedValueKey.value] !== id && item !== undefined;\n }else{\n return item !== id && item !== undefined;\n }\n });\n }\n if(newValue.length === 0){\n newValue = [undefined];\n }\n // emit('update:modelValue', newValue);\n handleChange(newValue);\n};\nconst isChecked = (id: number | string) => {\n return value.value.some(item => {\n if(typeof item === 'object' && item !== null){\n return item[checkedValueKey.value] === id;\n }else{\n return item === id;\n }\n });\n}\n\n// get infinite data start\nconst root = ref(null)\nconst load = ref(null)\n\nconst IntersectionObserver = useIntersectionObserver(\n load,\n ([entry]) => {\n if (!entry.isIntersecting) return;\n // emit('infiniteHandler');\n if(mergeInputBind.value.infiniteFn){\n mergeInputBind.value.infiniteFn();\n }\n },\n { root },\n)\nwatch(() => mergeInputBind.value.hasNextPage, (newValue) => {\n // console.log('IntersectionObserver',IntersectionObserver)\n if (newValue) {\n IntersectionObserver.resume();\n } else {\n IntersectionObserver.pause();\n }\n}, { immediate: true })\n// get infinite data end\nconst rules = computed(() => ({\n required: props.required,\n}));\nconst { value, errorMessage, handleChange } = useField<number[] | string[] | UnKnownOptions[]>(mergeField.value.id, rules);\n\n</script>\n\n<template>\n <InputWrapper>\n <InputInner>\n <InputFrame\n :inputType=\"mergeField.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\"\n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div \n v-for=\"option in mergeInputBind.options\" \n :key=\"useId()\" \n class=\"form-check tw-mt-0 [&+div]:tw-mt-3\"\n :style=\"{ 'margin-left': option.depth + 'em' }\"\n >\n <label\n :class=\"[\n 'form-check-label',\n {\n 'form-check-label-disabled': disabled || option.disabled,\n 'tw-text-danger-400': errorMessage,\n },\n ]\">\n <!-- <InkCheckBoxInput\n :name=\"mergeField.id\"\n :value=\"option[checkedValueKey] as string | number | undefined\"\n :required=\"required\"\n :disabled=\"disabled || option.disabled\"\n v-on=\"inputOn\"\n >{{ option[mergeInputBind.label || 'name'] }}</InkCheckBoxInput> -->\n <input \n v-model=\"value\"\n type=\"checkbox\" \n class=\"form-check-input tw-peer\"\n :value=\"option[checkedValueKey] as string | number\" \n :disabled=\"disabled || option.disabled\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n />\n {{ option[mergeInputBind.label || 'name'] }}\n <i :class=\"['tw-check', { 'tw-border-danger-400': errorMessage }]\"></i>\n </label>\n </div>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n <div v-show=\"mergeInputBind.hasNextPage\" ref=\"load\" class=\"tw-text-sm tw-text-gray-600 tw-italic\">{{ t('loading') }}</div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, computed, type PropType, watch, toRef, useId } from \"vue\";\nimport { useField } from 'vee-validate';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeCheckBoxInputBind } from '@/components/input/input-default-value';\nimport { useIntersectionObserver } from '@vueuse/core';\nimport type { RadioSharp, RadioInputBind, UnKnownOptions} from '@/components/input/field-data-interface';\n\nimport { t } from '@/helper/i18n';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<RadioSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<RadioInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<RadioSharp>('radio', toRef(props, 'field'));\n // because radio current is similar to checkbox, so use the same function to merge inputBind,\n // but if radio is not similar to checkbox, please use the different function to merge inputBind\nconst { mergeInputBind, clearInputBind } = useMergeCheckBoxInputBind(toRef(props, 'inputBind'));\n\nconst checkedValueKey = computed(() => {\n const key = mergeInputBind.value.valueKey || 'key'\n if(!mergeInputBind.value.options?.[0]?.hasOwnProperty(key)){\n console.warn(`InkRadio - the key \"${key}\" is not in the options, please check the options and the inputBind.valueKey. inputBind.valueKey default is \"key\"`);\n }\n return key;\n});\nconst onChange = (id: number | string, event: Event) => {\n const isChecked = (event.target as HTMLInputElement).checked;\n // let newValue = isChecked ? [...value.value, id] : value.value.filter(item => item !== id);\n let newValue = undefined;\n if(isChecked){\n newValue = id;\n }\n\n handleChange(newValue);\n};\nconst isChecked = (id: number | string) => {\n if(typeof value.value === 'object' && value.value !== null){\n return value.value[checkedValueKey.value] === id;\n }else{\n return value.value === id;\n }\n}\n\n// get infinite data start\nconst root = ref(null)\nconst load = ref(null)\n\nconst IntersectionObserver = useIntersectionObserver(\n load,\n ([entry]) => {\n if (!entry.isIntersecting) return;\n // emit('infiniteHandler');\n if(mergeInputBind.value.infiniteFn){\n mergeInputBind.value.infiniteFn();\n }\n },\n { root },\n)\nwatch(() => mergeInputBind.value.hasNextPage, (newValue) => {\n // console.log('IntersectionObserver',IntersectionObserver)\n if (newValue) {\n IntersectionObserver.resume();\n } else {\n IntersectionObserver.pause();\n }\n}, { immediate: true })\n// get infinite data end\nconst rules = computed(() => ({\n required: props.required,\n}));\nconst { value, errorMessage, handleChange } = useField<number | string | UnKnownOptions>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\n</script>\n\n<template>\n <InputWrapper>\n <InputInner>\n <InputFrame\n :inputType=\"mergeField.type\"\n :max=\"checkFieldMax\" \n :disabled=\"disabled\"\n :inputTotal=\"inputTotal\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div \n class=\"form-radio tw-mt-0 tw-flex tw-flex-col tw-gap-2\"\n >\n <label\n v-for=\"option in mergeInputBind.options\" \n :key=\"useId()\" \n :class=\"[\n 'form-radio-label',\n {\n 'form-check-label-disabled': disabled || option.disabled,\n 'tw-text-danger-400': errorMessage,\n },\n ]\">\n <input \n v-model=\"value\"\n type=\"radio\" \n class=\"form-check-input tw-peer\"\n :value=\"option[checkedValueKey] as string | number\" \n :disabled=\"disabled || option.disabled\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n />\n {{ option[mergeInputBind.label || 'name'] }}\n <i :class=\"['tw-radio', { 'tw-border-danger-400': errorMessage }]\"></i>\n </label>\n </div>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n <div v-show=\"mergeInputBind.hasNextPage\" ref=\"load\" class=\"tw-text-sm tw-text-gray-600 tw-italic\">{{ t('loading') }}</div>\n</template>\n","<script setup lang=\"ts\">\nimport { useField } from 'vee-validate';\nimport { computed, type PropType, toRef } from 'vue';\nimport { defaultInputProps, useMergeFieldProps } from '@/components/input/input-default-value';\nimport type { SwitchSharp } from '@/components/input/field-data-interface';\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<SwitchSharp>,\n required: true,\n },\n});\n\nconst emit = defineEmits(['removeInputItemFn', 'inkChanged']);\n\nconst {mergeField, checkFieldMax} = useMergeFieldProps<SwitchSharp>('switch', toRef(props, 'field'));\n\nconst onChange = () => {\n handleChange(!value.value);\n emit('inkChanged', value.value);\n};\nconst rules = computed(() => ({\n required: props.required,\n}));\n\nconst { value, errorMessage, handleChange } = useField<boolean>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\n</script>\n<template>\n <InputWrapper>\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n :inputType=\"mergeField.type\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <button\n type=\"button\"\n :class=\"[\n 'tw-switch',\n value ? 'tw-bg-secondary-800' : 'tw-bg-gray-400',\n ]\"\n :disabled=\"disabled\"\n @click=\"onChange()\"\n >\n <input\n type=\"checkbox\"\n :checked=\"value\"\n :disabled=\"disabled\"\n readonly\n hidden\n />\n <span class=\"tw-sr-only\">Enable notifications</span>\n <span\n :class=\"value ? 'tw-translate-x-4' : 'tw-translate-x-0'\"\n class=\"tw-inline-block tw-h-3 tw-w-3 tw-transform tw-rounded-full tw-bg-white tw-transition\"\n />\n </button>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"errorMessage\" :errorText=\"errorMessage\"/>\n </InputWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { ElConfigProvider } from 'element-plus';\nimport type { Language } from 'element-plus/es/locale'\nimport { ref, watchEffect } from 'vue';\nimport { inkI18n } from '@/helper/i18n';\nimport { useRestAttrs } from '@/helper/useAttrs'\n\nconst restAttrs = useRestAttrs()\n\nconst locale = ref<Language>();\n\nwatchEffect(async () => {\n switch (inkI18n.global.locale.value) {\n case 'zh-tw':\n locale.value = (await import('element-plus/es/locale/lang/zh-tw')).default\n break\n case 'en-us':\n locale.value = (await import('element-plus/es/locale/lang/en')).default\n break\n case 'ja-jp':\n locale.value = (await import('element-plus/es/locale/lang/ja')).default\n break\n default:\n locale.value = (await import('element-plus/es/locale/lang/en')).default\n }\n})\n</script>\n\n<template>\n <ElConfigProvider \n :locale=\"locale\"\n v-bind=\"restAttrs\"\n >\n <slot />\n </ElConfigProvider>\n</template>","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-element-plus-datetime.scss';\nimport { ElDatePicker } from 'element-plus';\nimport 'element-plus/es/components/date-picker/style/css';\nimport { computed, onMounted, onUnmounted, PropType, useTemplateRef, toRef, watch, ref } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeDatetimePickerInputBind } from '@/components/input/input-default-value';\nimport type { DatetimeSharp, DatetimePickerInputBind } from '@/components/input/field-data-interface';\nimport dayjs, { formatTimeToUnix, formatUnixTime } from '@/helper/dayjs';\nimport { RestrictTypeMode } from '@/components/input/field-data-interface';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<DatetimeSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<DatetimePickerInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn', 'inkChanged']);\nconst { mergeField, checkFieldMax } = useMergeFieldProps<DatetimeSharp>(props.field.type, toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind, panelInputModeNone, panelTimezone } = useMergeDatetimePickerInputBind(toRef(props, 'inputBind'));\n\nconst datetimeType = computed(() => {\n if(mergeInputBind.value.type) return mergeInputBind.value.type;\n switch(mergeField.value.type){\n case 'date':\n return 'date'\n default:\n return 'datetime'\n }\n});\nconst datetimeFormat = computed(() => {\n if(mergeInputBind.value.format) return mergeInputBind.value.format;\n switch(mergeField.value.type){\n case 'date':\n return 'YYYY/MM/DD'\n default:\n return 'YYYY/MM/DD HH:mm'\n }\n});\nconst clearTime = () => {\n handleChange(undefined);\n displayValue.value = undefined;\n};\nconst disabledDate = (date: Date) => {\n if(mergeInputBind.value.restrict.restrictType === RestrictTypeMode.PAST) {\n return dayjs.tz(date, mergeInputBind.value.timezone).unix() > dayjs.tz(dayjs(), mergeInputBind.value.timezone).endOf('day').unix()\n };\n if(mergeInputBind.value.restrict.restrictType === RestrictTypeMode.FUTURE) {\n return dayjs.tz(date, mergeInputBind.value.timezone).unix() < dayjs.tz(dayjs(), mergeInputBind.value.timezone).startOf('day').unix()\n };\n return false;\n}\n\nconst startDatePickerRef = useTemplateRef('startDatePicker');\n\nconst elStyle = computed(() => {\n return {\n 'tw-border-danger-400': startErrorMessage.value,\n 'tw-disabled': props.disabled,\n };\n});\n\nconst datetimeWrapperClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n if (target.classList.contains('is-text') || target.closest('.is-text')) {\n displayValue.value = dayjs.tz(dayjs(), mergeInputBind.value.timezone).format(datetimeFormat.value)\n }\n}\n\nonMounted(() => {\n const datePickerRefs = [startDatePickerRef.value];\n datePickerRefs.forEach((datePickerRef) => {\n const inputEls = datePickerRef?.$el.nextSibling.querySelectorAll('input');\n if (inputEls) {\n inputEls.forEach((inputEl: HTMLInputElement) => {\n inputEl.setAttribute(\"inputmode\", \"none\");\n })\n }\n })\n panelInputModeNone();\n panelTimezone(mergeInputBind.value.timezone);\n\n\n // now click\n const popperIdEl = document.querySelector(`.js-datetime-${mergeField.value.id}-popper`) as HTMLElement;\n if (popperIdEl) { \n popperIdEl.addEventListener('click', (e: MouseEvent) => { \n datetimeWrapperClick(e);\n })\n }\n})\n\nonUnmounted(() => { \n const popperIdEl = document.querySelector(`.js-datetime-${mergeField.value.id}-popper`) as HTMLElement;\n if (popperIdEl) { \n popperIdEl.removeEventListener('click', (e: MouseEvent) => { \n datetimeWrapperClick(e);\n })\n }\n})\n\nconst rules = computed(() => ({\n required: props.required,\n datetimeRestrict: [mergeInputBind.value.restrict, mergeInputBind.value.timezone, datetimeFormat.value]\n}));\nconst { value: startValue, errorMessage: startErrorMessage, handleChange } = useField<number | undefined>(`${mergeField.value.id}[${props.valueIndex}]`, rules);\n\nconst displayValue = ref<string | undefined>();\nwatch(startValue, () => {\n if(startValue.value) {\n displayValue.value = formatUnixTime(mergeInputBind.value.timezone, startValue.value, datetimeFormat.value);\n }else{\n displayValue.value = undefined;\n }\n emit('inkChanged', startValue.value);\n}, { immediate: true })\nwatch(displayValue, (newVal, oldVal) => {\n if (newVal) {\n if(newVal === oldVal) return;\n const targetTime = dayjs.tz(newVal, mergeInputBind.value.timezone).format();\n const utcTimestamp = formatTimeToUnix(targetTime);\n handleChange(utcTimestamp);\n }else{\n handleChange(undefined);\n }\n})\n</script>\n\n<template>\n <InputWrapper\n :data-field-id=\"mergeField.id\"\n >\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n :inputType=\"mergeField.type\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div\n :class=\"[\n 'date-time-picker tw-max-w-[300px]',\n elStyle\n ]\"\n >\n <el-date-picker\n ref=\"startDatePicker\"\n v-model=\"displayValue\"\n class=\"datetime-picker-input\"\n :placeholder=\"mergeField.placeholder\"\n :disabled=\"disabled\"\n :disabled-date=\"disabledDate\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n :type=\"datetimeType\"\n :format=\"datetimeFormat\"\n :value-format=\"datetimeFormat\"\n :popper-class=\"`${mergeInputBind.popperClass} js-datetime-${mergeField.id}-popper`\"\n />\n <button\n v-if=\"mergeInputBind.isClearable && !disabled && startValue\"\n type=\"button\"\n class=\"tw-relative tw-px-1 before:tw-absolute before:-tw-inset-2.5 before:tw-content-['']\"\n @click.prevent=\"clearTime\"\n >\n <i class=\"far fa-times-circle tw-text-xs tw-text-gray-700\"></i>\n </button>\n </div>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"startErrorMessage\" :errorText=\"startErrorMessage\"/>\n </InputWrapper>\n</template>\n\n<style lang=\"postcss\" scoped>\n</style>\n","<script setup lang=\"ts\">\nimport '@/scss/component/_ink-element-plus-datetime.scss';\nimport { ElDatePicker } from 'element-plus';\nimport 'element-plus/es/components/date-picker/style/css';\nimport { computed, onMounted, onUnmounted, PropType, useTemplateRef, toRef, ref, watch } from \"vue\";\nimport { useField } from \"vee-validate\";\nimport InputWrapper from '@/components/input/InputWrapper.vue';\nimport InputInner from '@/components/input/InputInner.vue';\nimport InkErrorMessage from '@/components/input/InkErrorMessage.vue';\nimport InputFrame from '@/components/input/InputFrame.vue';\nimport { defaultInputProps, useMergeFieldProps, useMergeDatetimerngInputBind } from '@/components/input/input-default-value';\nimport type { DatetimerngSharp, DatetimerngInputBind } from '@/components/input/field-data-interface';\nimport dayjs, { formatTimeToUnix, convertUnixToStartOf, formatUnixTime } from '@/helper/dayjs';\nimport { t } from '@/helper/i18n';\n\nconst props = defineProps({\n ...defaultInputProps,\n field: {\n type: Object as PropType<DatetimerngSharp>,\n required: true,\n },\n inputBind: {\n type: Object as PropType<DatetimerngInputBind>,\n default: () => ({}),\n },\n});\nconst emit = defineEmits(['removeInputItemFn', 'inkChanged']);\nconst { mergeField, checkFieldMax,minLength, maxLength } = useMergeFieldProps<DatetimerngSharp>(props.field.type, toRef(props, 'field'));\nconst { mergeInputBind, clearInputBind, panelInputModeNone, panelTimezone } = useMergeDatetimerngInputBind(toRef(props, 'inputBind'));\n\nconst rngElType = computed(() => {\n if(mergeInputBind.value.type) return mergeInputBind.value.type;\n switch(mergeField.value.type){\n case 'daterng':\n return 'date'\n default:\n return 'datetime'\n }\n});\nconst rngElFormat = computed(() => {\n if(mergeInputBind.value.format) return mergeInputBind.value.format;\n switch(mergeField.value.type){\n case 'daterng':\n return 'YYYY/MM/DD'\n default:\n return 'YYYY/MM/DD HH:mm'\n }\n});\nconst clearTime = () => {\n handleChangeStart(undefined);\n handleChangeEnd(undefined);\n displayStartValue.value = undefined;\n displayEndValue.value = undefined;\n startValueUnix.value = undefined;\n endValueUnix.value = undefined;\n};\nconst startDisabledDate = (date: Date) => {\n if(minLength.value && formatTimeToUnix(date) < minLength.value){\n return true;\n }\n if(maxLength.value && formatTimeToUnix(date) > maxLength.value){\n return true;\n }\n if(endValue.value && formatTimeToUnix(date) > endValue.value ){\n return true\n }\n return false;\n}\nconst endDisabledDate = (date: Date) => {\n if(minLength.value && formatTimeToUnix(date) < minLength.value){\n return true;\n }\n if(maxLength.value && formatTimeToUnix(date) > maxLength.value){\n return true;\n }\n if(startValue.value && formatTimeToUnix(date) < convertUnixToStartOf(startValue.value)){\n return true;\n }\n return false;\n}\nconst startDatePickerRef = useTemplateRef('startDatePicker');\nconst endDatePickerRef = useTemplateRef('endDatePicker');\n\nconst elStyle = computed(() => {\n return {\n 'tw-border-danger-400': startErrorMessage.value || endErrorMessage.value,\n 'tw-border-secondary-700': mergeInputBind.value.activeStyle && (startValue.value || endValue.value),\n 'tw-disabled': props.disabled,\n };\n});\n\nonMounted(() => {\n const datePickerRefs = [startDatePickerRef.value, endDatePickerRef.value];\n datePickerRefs.forEach((datePickerRef) => {\n const inputEls = datePickerRef?.$el.nextSibling.querySelectorAll('input');\n if (inputEls) {\n inputEls.forEach((inputEl: HTMLInputElement) => {\n inputEl.setAttribute(\"inputmode\", \"none\");\n })\n }\n })\n panelInputModeNone();\n panelTimezone(mergeInputBind.value.timezone);\n\n // now click\n const startPopperIdEl = document.querySelector(`.js-${mergeField.value.id}-start-datetime-popper`) as HTMLElement;\n const endPopperIdEl = document.querySelector(`.js-${mergeField.value.id}-end-datetime-popper`) as HTMLElement;\n if (startPopperIdEl) { \n startPopperIdEl.addEventListener('click', (e: MouseEvent) => { \n datetimeWrapperClick(e);\n })\n }\n if (endPopperIdEl) { \n endPopperIdEl.addEventListener('click', (e: MouseEvent) => { \n datetimeWrapperClick(e);\n })\n }\n})\n\nonUnmounted(() => { \n const startPopperIdEl = document.querySelector(`.js-${mergeField.value.id}-start-datetime-popper`) as HTMLElement;\n const endPopperIdEl = document.querySelector(`.js-${mergeField.value.id}-end-datetime-popper`) as HTMLElement;\n if (startPopperIdEl) { \n startPopperIdEl.removeEventListener('click', (e: MouseEvent) => { \n datetimeWrapperClick(e);\n })\n }\n if (endPopperIdEl) { \n endPopperIdEl.removeEventListener('click', (e: MouseEvent) => { \n datetimeWrapperClick(e);\n })\n }\n})\n\n// type ValidationRules = {\n// required: boolean;\n// datetimerngStartLimit?: [number | undefined, false | NumberLimit | TextLimit | FileLimit | DatetimerngLimit, string, unknown];\n// datetimerngEndLimit?: [number | undefined, false | NumberLimit | TextLimit | FileLimit | DatetimerngLimit, string, unknown];\n// };\n\nconst startValueUnix = ref<number | undefined>();\nconst endValueUnix = ref<number | undefined>();\nconst displayStartValue = ref<string | undefined>();\nconst displayEndValue = ref<string | undefined>();\n\nconst startRules = computed(() => ({\n required: props.required,\n datetimerngStartLimit: [endValueUnix.value, minLength.value, maxLength.value, mergeInputBind.value.timezone, mergeInputBind.value.format]\n}));\n\nconst endRules = computed(() => ({\n required: props.required,\n datetimerngEndLimit: [startValueUnix.value, minLength.value, maxLength.value, mergeInputBind.value.timezone, mergeInputBind.value.format]\n}));\n\nconst { value: startValue, errorMessage: startErrorMessage, handleChange: handleChangeStart } = useField<number | undefined>(`${mergeField.value.id}[${props.valueIndex}][0]`, startRules);\nconst { value: endValue, errorMessage: endErrorMessage, handleChange: handleChangeEnd } = useField<number | undefined>(`${mergeField.value.id}[${props.valueIndex}][1]`, endRules);\n\n// 同步 ref 值\nwatch(startValue, () => {\n if(startValue.value) {\n displayStartValue.value = formatUnixTime(mergeInputBind.value.timezone, startValue.value, rngElFormat.value);\n startValueUnix.value = startValue.value;\n } else {\n displayStartValue.value = undefined;\n startValueUnix.value = undefined;\n }\n emit('inkChanged', [startValue.value, endValue.value]);\n}, { immediate: true });\nwatch(endValue, () => {\n if(endValue.value) {\n displayEndValue.value = formatUnixTime(mergeInputBind.value.timezone, endValue.value, rngElFormat.value);\n endValueUnix.value = endValue.value;\n } else {\n displayEndValue.value = undefined;\n endValueUnix.value = undefined;\n }\n emit('inkChanged', [startValue.value, endValue.value]);\n}, { immediate: true });\n\nwatch(displayStartValue, (newVal, oldVal) => {\n if (newVal) {\n if(newVal === oldVal) return;\n const targetTime = dayjs.tz(newVal, mergeInputBind.value.timezone).format();\n const utcTimestamp = formatTimeToUnix(targetTime);\n handleChangeStart(utcTimestamp);\n startValueUnix.value = utcTimestamp;\n }else{\n handleChangeStart(undefined);\n startValueUnix.value = undefined;\n }\n})\nwatch(displayEndValue, (newVal, oldVal) => {\n if(newVal) {\n const targetTime = dayjs.tz(newVal, mergeInputBind.value.timezone).format();\n const utcTimestamp = formatTimeToUnix(targetTime);\n handleChangeEnd(utcTimestamp);\n endValueUnix.value = utcTimestamp;\n }else{\n handleChangeEnd(undefined);\n endValueUnix.value = undefined;\n }\n})\nconst datetimeWrapperClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n if ((target.classList.contains('is-text') || target.closest('.is-text'))) {\n if (target.closest(`.js-${mergeField.value.id}-start-datetime-popper`)) {\n displayStartValue.value = dayjs.tz(dayjs(), mergeInputBind.value.timezone).format(rngElFormat.value)\n } else if(target.closest(`.js-${mergeField.value.id}-end-datetime-popper`)){\n displayEndValue.value = dayjs.tz(dayjs(), mergeInputBind.value.timezone).format(rngElFormat.value)\n }\n }\n}\n</script>\n\n<template>\n <InputWrapper\n :data-field-id=\"mergeField.id\"\n >\n <!-- InputWrapper for group error message, other input type wordcount, etc. -->\n <InputInner>\n <!-- InputInner for other input type prefix in here -->\n <InputFrame \n :max=\"checkFieldMax\" \n :disabled=\"disabled\" \n :inputTotal=\"inputTotal\"\n :inputType=\"mergeField.type\"\n @removeComponent=\"emit('removeInputItemFn', valueIndex)\"\n >\n <div\n :class=\"[\n 'date-time-picker date-time-rng-picker tw-max-w-[360px]',\n elStyle\n ]\"\n >\n <el-date-picker\n ref=\"startDatePicker\"\n v-model=\"displayStartValue\"\n class=\"datetime-picker-input datetimerng-input\"\n :placeholder=\"t('startDate')\"\n :disabled=\"disabled\"\n :disabled-date=\"startDisabledDate\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n :type=\"rngElType\"\n :format=\"rngElFormat\"\n :value-format=\"rngElFormat\"\n :popper-class=\"`${mergeInputBind.popperClass} js-${mergeField.id}-start-datetime-popper`\"\n />\n <i class=\"far fa-arrow-right tw-text-xs tw-text-gray-700\"></i>\n <el-date-picker\n ref=\"endDatePicker\"\n v-model=\"displayEndValue\"\n class=\"datetime-picker-input datetimerng-input\"\n :placeholder=\"t('endDate')\"\n :disabled=\"disabled\"\n :disabled-date=\"endDisabledDate\"\n v-bind=\"clearInputBind\"\n v-on=\"inputOn\"\n :type=\"rngElType\"\n :format=\"rngElFormat\"\n :value-format=\"rngElFormat\"\n :popper-class=\"`${mergeInputBind.popperClass} js-${mergeField.id}-end-datetime-popper`\"\n />\n <button\n v-if=\"mergeInputBind.isClearable && !disabled\"\n type=\"button\"\n class=\"tw-relative tw-px-1 before:tw-absolute before:-tw-inset-2.5 before:tw-content-['']\"\n @click.prevent=\"clearTime\"\n >\n <i class=\"far fa-times-circle tw-text-xs tw-text-gray-700\"></i>\n </button>\n </div>\n </InputFrame>\n </InputInner>\n <InkErrorMessage v-if=\"startErrorMessage || endErrorMessage\" :errorText=\"startErrorMessage || endErrorMessage\"/>\n </InputWrapper>\n</template>\n\n<style lang=\"postcss\" scoped>\n</style>\n","export const InkSetFont = (userLanguage = 'en-us') => {\n document.documentElement.lang = userLanguage;\n // add google font\n let fontStyleLink = document.createElement('link');\n fontStyleLink.rel = 'stylesheet';\n if (userLanguage === 'zh-tw') {\n fontStyleLink.href = 'https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400..700&display=swap'\n } else if (userLanguage === 'ja-jp') {\n fontStyleLink.href = 'https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400..700&display=swap';\n } else {\n }\n document.head.appendChild(fontStyleLink);\n}","import { defineRule } from 'vee-validate';\nimport { t } from '@/helper/i18n';\nimport type { NumberLimit, FileLimit, DatetimerngLimit, DatetimePickerInputBind } from '@/components/input/field-data-interface';\nimport { formatUnixTime, formatValueOfTime, formatTimeToUnix } from '@/helper/dayjs';\nimport { RestrictTypeMode } from '@/components/input/field-data-interface';\nexport default () => {\n // from sandwich\n defineRule('required', (value: any) => {\n if (typeof value === 'number') return true;\n if (typeof value === 'boolean') return true;\n if (typeof value === 'string' && value.trim() !== '') return true; // string is not empty\n if (Array.isArray(value) && value[0]) return true; // array is not empty\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) return true; // object is not empty, if object is for empty object, change value to undefined || null\n return t('required');\n });\n\n // defineRule('matchRatio', (value: any, [valueWidth, valueHeight, reqWidth, reqHeight]: [number, number, number, number]) => {\n // if(!value) return true; // 如果沒有值,則不進行檢查,交由required檢查\n // if (typeof reqWidth === 'undefined') return true;\n // // 計算實際比例和要求比例\n // const actualRatio = valueWidth / valueHeight;\n // const requiredRatio = reqWidth / reqHeight;\n \n // // 計算基於3px誤差的可接受比例範圍\n // const tolerance = 3 / valueHeight; // 將3px轉換為比例誤差\n \n // // 檢查實際比例是否在可接受範圍內\n // if (Math.abs(actualRatio - requiredRatio) > tolerance) {\n // return t('notMatchRatio');\n // }\n // return true;\n // });\n\n // defineRule('slug', (value: string) => { \n // if (!value) return true;\n // const pattern = /^[a-z0-9\\.\\-\\_]+$/;\n // if (!pattern.test(value)) return t('isSlug');\n // return true;\n // })\n\n // form cabinet\n defineRule('wordLimit', (value: string, [min, max]: [number, number]) => {\n if (typeof value === 'undefined') return true; // for removed item data\n\n min = min === 0 ? -Infinity : min;\n max = max === 0 ? Infinity : max;\n\n const length = value ? value.trim().length : 0;\n if (length < min) {\n return t('isLessThenTextLimit', {length: min});\n }\n if (length > max) {\n return t('isMoreThenTextLimit', {length: max});\n }\n return true;\n });\n defineRule('itemLimit', (value: string, [min, max]: [number, number]) => {\n if ( !value || typeof value === 'undefined') return true; // for removed item data\n\n min = min === 0 ? -Infinity : min;\n max = max === 0 ? Infinity : max;\n\n const length = value.length;\n if (length < min) {\n return t('isLessThenMin', {length: min});\n }\n if (length > max) {\n return t('isMoreThenMax', {length: max});\n }\n return true;\n });\n // defineRule('numberLimit', (value: number, [min, max]: NumberLimit) => {\n // if (typeof value === 'undefined') return true; // for removed item data\n\n // min = min === false ? -Infinity : min;\n // max = max === false ? Infinity : max;\n\n // if (value < min) {\n // return t('isLessThenNumberLimit', {length: min});\n // }\n // if (value > max) {\n // return t('isMoreThenNumberLimit', {length: max});\n // }\n // return true;\n // });\n\n defineRule('datetimeRestrict', (value: number, [restrict, timezone, format]: [DatetimePickerInputBind['restrict'], string, string]) => {\n if (restrict.restrictType === RestrictTypeMode.UNLIMITED) return true;\n \n const restrictTimestamp = formatTimeToUnix() + (restrict.shiftSecond || 0);\n if(restrict.restrictType === RestrictTypeMode.PAST && value > restrictTimestamp ) {\n return t('isLessThenDatetimeRestrict', {datetime: formatUnixTime(timezone, restrictTimestamp, format)});\n }\n if(restrict.restrictType === RestrictTypeMode.FUTURE && value < restrictTimestamp ) {\n return t('isMoreThenDatetimeRestrict', {datetime: formatUnixTime(timezone, restrictTimestamp, format)});\n }\n return true\n });\n defineRule('datetimerngStartLimit', (value: number, [endValue, minLength, maxLength, timezone, format]: [number, number, number, string, string]) => {\n if (typeof value === 'undefined') return true;\n if (minLength && value < minLength) {\n return t('startTimeMustEarlierThanEndTime');\n }\n if (maxLength && value > maxLength) {\n return t('startTimeMustEarlierThanEndTime');\n }\n if (endValue && value > endValue) {\n return t('startTimeMustEarlierThanEndTime');\n }\n return true\n });\n defineRule('datetimerngEndLimit', (value: number, [startValue, minLength, maxLength, timezone, format]: [number, number, number, string, string]) => {\n if (typeof value === 'undefined') return true;\n if (minLength && value < minLength) {\n return t('startTimeMustEarlierThanEndTime');\n }\n if (maxLength && value > maxLength) {\n return t('startTimeMustEarlierThanEndTime');\n }\n if (startValue && value < startValue) {\n return t('startTimeMustEarlierThanEndTime');\n }\n return true\n });\n defineRule('url', (value: string) => {\n if (typeof value === 'undefined') return true; // for removed item data\n const pattern = /^https?:\\/\\//;\n return !value || pattern.test(value) ? true : t('isUrl');\n });\n // defineRule('email', (value: string) => {\n // if (typeof value === 'undefined') return true; // for removed item data\n // const pattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n // return !value || pattern.test(value) ? true : t('isEmail');\n // });\n // defineRule('json', (value: string) => {\n // if (typeof value === 'undefined') return true; // for removed item data\n // try {\n // JSON.parse(value || '{}');\n // return true;\n // } catch (error) {\n // return t('isJson');\n // }\n // });\n // defineRule('maxItem', (value: any[], [max]: [number]) => {\n // if (typeof value === 'undefined') return true; // for removed item data\n // if (value?.length > max) {\n // return t('isMoreThenMax', {length: max});\n // }\n // return true;\n // });\n}\n","import { App } from 'vue'\nimport '@/scss/component/_ink-text-color.scss'\nimport InkButton from '@/components/InkButton.vue'\nimport InkBadge from '@/components/InkBadge.vue'\nimport InkSpinner from '@/components/InkSpinner.vue'\nimport InkMenu from '@/components/ink-menu/InkMenu.vue'\nimport InkMenuButton from '@/components/ink-menu/InkMenuButton.vue'\nimport InkMenuItems from '@/components/ink-menu/InkMenuItems.vue'\nimport InkMenuItem from '@/components/ink-menu/InkMenuItem.vue'\nimport InkMenuItemsWrapper from '@/components/ink-menu/InkMenuItemsWrapper.vue'\nimport InkDisclosure from './components/ink-disclosure/InkDisclosure.vue'\nimport InkDisclosureButton from '@/components/ink-disclosure/InkDisclosureButton.vue'\nimport InkDisclosurePanel from '@/components/ink-disclosure/InkDisclosurePanel.vue'\nimport InkNavbar from '@/components/InkNavbar.vue'\nimport InkSidebar from '@/components/ink-sidebar/InkSidebar.vue'\nimport InkSidebarSimpleHide from '@/components/ink-sidebar/InkSidebarSimpleHide.vue'\nimport { InkVTooltip, vInkTooltip } from '@/components/ink-tooltip/Ink-tooltip'\nimport InkField from '@/components/input/InkField.vue'\nimport InkText from '@/components/input/InkText.vue'\nimport InkUrl from '@/components/input/InkUrl.vue'\nimport InkTextarea from '@/components/input/InkTextarea.vue'\nimport InkSelect from '@/components/input/InkSelect.vue'\nimport InkHashtag from '@/components/input/InkHashtag.vue'\nimport InkCheckbox from '@/components/input/InkCheckbox.vue'\nimport InkRadio from '@/components/input/InkRadio.vue'\nimport InkSwitch from '@/components/input/InkSwitch.vue'\nimport InkElConfigProvider from '@/components/input/InkElConfigProvider.vue'\nimport InkDatetime from '@/components/input/InkDatetime.vue'\nimport InkDate from '@/components/input/InkDatetime.vue'\nimport InkDatetimerng from '@/components/input/InkDatetimerng.vue'\nimport InkDaterng from '@/components/input/InkDatetimerng.vue'\nimport { inkI18n } from '@/helper/i18n'\nimport { InkSetFont } from '@/helper/set-font'\nimport useInkDefineRule from '@/helper/useDefineRule'\n\nexport {\n InkSetFont,\n InkButton,\n InkBadge,\n InkSpinner,\n InkMenu,\n InkMenuButton,\n InkMenuItems,\n InkMenuItem,\n InkMenuItemsWrapper,\n InkDisclosure,\n InkDisclosureButton,\n InkDisclosurePanel,\n InkNavbar,\n InkSidebar,\n InkSidebarSimpleHide,\n InkVTooltip,\n vInkTooltip,\n InkField,\n InkText,\n InkUrl,\n InkTextarea,\n InkSelect,\n InkHashtag,\n InkCheckbox,\n InkRadio,\n InkSwitch,\n InkElConfigProvider,\n InkDatetime,\n InkDate,\n InkDatetimerng,\n InkDaterng\n}\n\nexport default {\n install: (app: App, options: { lang?: 'zh-tw' | 'en-us' | 'ja-jp' }) => {\n InkSetFont(options.lang)\n inkI18n.global.locale.value = options.lang || 'en-us'\n useInkDefineRule()\n }\n} "],"names":["useRestAttrs","attrs","useAttrs","computed","className","restAttrs","props","__props","classList","list","_imports_1","handleSidebarTogglerClick","isDesktop","isFolded","Cookies","t","i","module","this","e","s","f","n","o","r","a","u","h","l","c","m","d","v","dayjs","utc","timezone","formatUnixTime","tz","time","format","formatTimeToUnix","utcTimezone","convertUnixToStartOf","unit","inkI18n","createI18n","zh","en","jp","apps","getHostname","app","hostname","prefix","_imports_0","sides","alignments","placements","acc","side","min","max","oppositeSideMap","oppositeAlignmentMap","clamp","start","value","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","width","height","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","name","fn","nextX","nextY","data","reset","detectOverflow","state","options","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","overflow","currentIndex","currentPlacement","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","b","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","_overflowsData$filter2","currentSideAxis","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","p","g","w","L","E","R","T","C","F","W","D","S","A","H","O","P","B","Ze","re","$","_e","Te","pe","ae","de","G","le","he","Y","q","Q","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","_","ue","fe","tt","Pe","ce","et","ot","it","J","ke","Le","st","nt","z","X","Fe","rt","Re","De","pt","Ie","at","M","Z","dt","lt","ht","ut","ft","ct","mt","je","Ve","se","ee","te","K","gt","wt","$e","N","I","j","V","Ee","ve","k","Ce","$t","vt","yt","_t","We","ze","Ae","Tt","Ne","Pt","St","U","Ge","qe","He","me","oe","Ht","Mt","Vt","emit","__emit","onMainItemCheckSwitch","item","close","onTabItemCheckSwitch","toggleSidebar","closeSidebar","onMounted","RestrictTypeMode","singleFieldTypes","defaultInputProps","fieldDefaultValue","type","useMergeFieldProps","field","defaultField","mergeField","minLength","maxLength","checkFieldMax","defaultAllSelectInputBind","defaultSelectInputBind","option","useMergeSelectInputBind","inputBind","mergeInputBind","clearInputBind","key","defaultHashtagInputBind","useMergeHashtagInputBind","defaultCheckBoxInputBind","useMergeCheckBoxInputBind","defaultAllDatetimeInputBind","defaultAllDatetimeMethod","popperEl","inputEls","inputEl","el","utcEl","defaultDatetimePickerInputBind","useMergeDatetimePickerInputBind","defaultDatetimerngInputBind","useMergeDatetimerngInputBind","componentMap","defineAsyncComponent","fieldType","toRef","dynamicComponent","remove","push","fields","update","replace","useFieldArray","inputTotal","onRemoveItemHandler","index","onPushItem","onInkChanged","nextTick","_sfc_render","_ctx","_cache","_openBlock","_createElementBlock","_hoisted_1","rules","errorMessage","useField","isObserver","ref","load","useTemplateRef","infiniteScrollHandler","isIntersecting","target","ul","scrollTop","watchOptions","watch","observer","checkAndObserver","disconnectObserver","onOpen","onClose","setValue","newVal","oldVal","reduceValue","_b","_a","elStyle","_c","vSelectRef","checkedValueKey","root","IntersectionObserver","useIntersectionObserver","entry","newValue","handleChange","onChange","locale","watchEffect","panelInputModeNone","panelTimezone","datetimeType","datetimeFormat","clearTime","displayValue","disabledDate","date","startDatePickerRef","startErrorMessage","datetimeWrapperClick","datePickerRef","popperIdEl","onUnmounted","startValue","targetTime","utcTimestamp","rngElType","rngElFormat","handleChangeStart","handleChangeEnd","displayStartValue","displayEndValue","startValueUnix","endValueUnix","startDisabledDate","endValue","endDisabledDate","endDatePickerRef","endErrorMessage","startPopperIdEl","endPopperIdEl","startRules","endRules","InkSetFont","userLanguage","fontStyleLink","useInkDefineRule","defineRule","restrict","restrictTimestamp"],"mappings":"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","x_google_ignoreList":[14,15,20,21,22,23]}
|