mediacube-ui-v2 0.0.17 → 0.0.18

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.
Files changed (60) hide show
  1. package/dist/index.cjs +1845 -165
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +1844 -167
  4. package/dist/index.js.map +1 -1
  5. package/dist/style.css +4370 -4327
  6. package/dist/types/src/components/elements/McButton/McButton.vue.d.ts +1 -1
  7. package/dist/types/src/components/elements/McDatepicker/McDatepicker.vue.d.ts.map +1 -1
  8. package/dist/types/src/components/elements/McFieldCheckbox/McFieldCheckbox.vue.d.ts.map +1 -1
  9. package/dist/types/src/components/elements/McFieldRadio/McFieldRadio.vue.d.ts +2 -2
  10. package/dist/types/src/components/elements/McFieldRadio/McFieldRadio.vue.d.ts.map +1 -1
  11. package/dist/types/src/components/elements/McFieldRadioGroup/McFieldRadioGroup.vue.d.ts.map +1 -1
  12. package/dist/types/src/components/elements/McFieldSelect/McFieldSelect.vue.d.ts +4 -4
  13. package/dist/types/src/components/elements/McFieldSelect/McFieldSelect.vue.d.ts.map +1 -1
  14. package/dist/types/src/components/elements/McFieldText/McFieldText.vue.d.ts +3 -3
  15. package/dist/types/src/components/elements/McFieldText/McFieldText.vue.d.ts.map +1 -1
  16. package/dist/types/src/components/elements/McFieldToggle/McFieldToggle.vue.d.ts +1 -1
  17. package/dist/types/src/components/elements/McNodata/McNoData.vue.d.ts.map +1 -1
  18. package/dist/types/src/components/elements/McNotification/McNotification.vue.d.ts.map +1 -1
  19. package/dist/types/src/components/elements/McSlideUpDown/McSlideUpDown.vue.d.ts +1 -1
  20. package/dist/types/src/components/elements/McSvgIcon/McSvgIcon.vue.d.ts +1 -1
  21. package/dist/types/src/components/elements/McSvgIcon/McSvgIcon.vue.d.ts.map +1 -1
  22. package/dist/types/src/components/elements/McTitle/McTitle.vue.d.ts +1 -1
  23. package/dist/types/src/components/elements/McTitle/McTitle.vue.d.ts.map +1 -1
  24. package/dist/types/src/components/index.d.ts +69 -61
  25. package/dist/types/src/components/index.d.ts.map +1 -1
  26. package/dist/types/src/components/patterns/McCollapse/McCollapse.vue.d.ts.map +1 -1
  27. package/dist/types/src/components/patterns/McFilter/McFilter.vue.d.ts.map +1 -1
  28. package/dist/types/src/components/patterns/McFilter/McFilterChip/McFilterChip.vue.d.ts.map +1 -1
  29. package/dist/types/src/components/patterns/McFilter/McFilterTags/McFilterTags.vue.d.ts.map +1 -1
  30. package/dist/types/src/components/patterns/McFilter/McFilterTypeRelation/McFilterTypeRelation.vue.d.ts.map +1 -1
  31. package/dist/types/src/components/patterns/McSideBar/McSideBar.vue.d.ts +5 -5
  32. package/dist/types/src/components/patterns/McSideBar/McSideBar.vue.d.ts.map +1 -1
  33. package/dist/types/src/components/patterns/McSideBar/McSideBarButton/McSideBarButton.vue.d.ts.map +1 -1
  34. package/dist/types/src/components/patterns/McSideBar/McSideBarCenter/McSideBarCenter.vue.d.ts.map +1 -1
  35. package/dist/types/src/components/patterns/McSideBar/McSideBarTop/McSideBarTop.vue.d.ts +2 -2
  36. package/dist/types/src/components/patterns/McSideBar/McSideBarTop/McSideBarTop.vue.d.ts.map +1 -1
  37. package/dist/types/src/components/patterns/McTabs/McTabs.vue.d.ts +1 -1
  38. package/dist/types/src/components/templates/McDrawer/McDrawer.vue.d.ts +1 -1
  39. package/dist/types/src/components/templates/McTable/McTable/McTable.vue.d.ts.map +1 -1
  40. package/dist/types/src/components/templates/McTable/McTableCard/McTableCardHeader/McTableCardHeader.vue.d.ts.map +1 -1
  41. package/dist/types/src/components/templates/McTopBar/McTopBar.vue.d.ts.map +1 -1
  42. package/dist/types/src/composables/index.d.ts +7 -8
  43. package/dist/types/src/composables/index.d.ts.map +1 -1
  44. package/dist/types/src/index.d.ts.map +1 -1
  45. package/dist/types/src/mocks/categories.d.ts +9 -0
  46. package/dist/types/src/mocks/categories.d.ts.map +1 -0
  47. package/dist/types/src/utils/dayjs.d.ts +12 -0
  48. package/dist/types/src/utils/dayjs.d.ts.map +1 -0
  49. package/dist/{vue-qI5e4HjB.cjs → vue-Cd_5orww.cjs} +15270 -6353
  50. package/dist/vue-Cd_5orww.cjs.map +1 -0
  51. package/dist/{vue-ClUN1lBG.js → vue-Dg6NgCSm.js} +15204 -6288
  52. package/dist/vue-Dg6NgCSm.js.map +1 -0
  53. package/package.json +1 -1
  54. package/dist/.vite/ssr-manifest.json +0 -879
  55. package/dist/dayjs-CAmwdbhW.js +0 -1665
  56. package/dist/dayjs-CAmwdbhW.js.map +0 -1
  57. package/dist/dayjs-RhyhJ68u.cjs +0 -1668
  58. package/dist/dayjs-RhyhJ68u.cjs.map +0 -1
  59. package/dist/vue-ClUN1lBG.js.map +0 -1
  60. package/dist/vue-qI5e4HjB.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue-Dg6NgCSm.js","sources":["../src/components/elements/McAvatar/McAvatar.vue","../src/components/elements/McBadge/McBadge.vue","../src/components/elements/McBottomLoader/McBottomLoader.vue","../src/components/templates/McModal/McModalContainer.vue","../src/components/templates/McDrawer/McDrawerContainer.vue","../node_modules/@vueuse/shared/index.mjs","../node_modules/@vueuse/core/index.mjs","../src/components/elements/McButton/McButton.vue","../src/components/elements/McChip/McChip.vue","../node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js","../src/components/elements/McDatepicker/McDatepicker.vue","../src/components/elements/McDraggable/McDraggable.vue","../src/components/elements/McFieldCheckbox/McFieldCheckbox.vue","../src/components/elements/McFieldRadio/McFieldRadio.vue","../src/components/elements/McFieldRadioGroup/McFieldRadioGroup.vue","../node_modules/vue-3-slider-component/dist/vue-3-slider-component.mjs","../src/components/elements/McFieldRange/McFieldRange.vue","../node_modules/vue-multiselect/dist/vue-multiselect.esm.js","../src/components/elements/McFieldSelect/McFieldSelect.vue","../node_modules/vue-imask/esm/props.js","../node_modules/vue-imask/esm/composable.js","../node_modules/vue-imask/esm/utils.js","../node_modules/vue-imask/esm/component3-composition.js","../node_modules/vue-imask/esm/component2.js","../node_modules/vue-imask/esm/component.js","../src/components/elements/McFieldText/McFieldText.vue","../src/components/elements/McFieldToggle/McFieldToggle.vue","../src/components/elements/McInfinityLoadingTrigger/McInfinityLoadingTrigger.vue","../src/components/elements/McNodata/McNoData.vue","../src/components/elements/McNotification/McNotification.vue","../src/components/elements/McProgress/McProgress.vue","../src/components/elements/McSeparator/McSeparator.vue","../src/components/elements/McSlideUpDown/McSlideUpDown.vue","../src/components/elements/McStack/McStack.vue","../src/components/elements/McSvgIcon/McSvgIcon.vue","../src/components/elements/McTitle/McTitle.vue","../src/components/elements/McTooltip/McTooltip.vue","../src/components/patterns/McAccordion/McAccordion.vue","../src/components/patterns/McCell/McCell.vue","../src/components/patterns/McCollapse/McCollapse.vue","../src/components/patterns/McDropdown/McDropdown.vue","../src/components/patterns/McDropdown/McDropdownPanel.vue","../src/components/patterns/McFilter/McFilter.vue","../src/components/patterns/McFilter/McFilterChip/McFilterChip.vue","../src/components/patterns/McFilter/McFilterTags/McFilterTags.vue","../src/components/patterns/McFilter/McFilterTypeDate/McFilterTypeDate.vue","../src/components/patterns/McFilter/McFilterTypeRange/McFilterTypeRange.vue","../src/components/patterns/McFilter/McFilterTypeRelation/McFilterTypeRelation.vue","../src/components/patterns/McFilter/McFilterTypeText/McFilterTypeText.vue","../src/components/patterns/McGridCol/McGridCol.vue","../src/components/patterns/McGridRow/McGridRow.vue","../src/components/patterns/McOverlay/McOverlay.vue","../src/components/patterns/McPreview/McPreview.vue","../src/components/patterns/McSideBar/McSideBar.vue","../src/components/patterns/McSideBar/McSideBarBottom/McSideBarBottom.vue","../src/components/patterns/McSideBar/McSideBarButton/McSideBarButton.vue","../src/components/patterns/McSideBar/McSideBarCenter/McSideBarCenter.vue","../src/components/patterns/McSideBar/McSideBarTop/McSideBarTop.vue","../src/components/patterns/McTab/McTab.vue","../src/components/patterns/McWrapScroll/McWrapScroll.vue","../src/components/patterns/McTabs/McTabs.vue","../src/components/templates/McDrawer/McDrawer.vue","../src/components/templates/McDrawer/McDrawerContentTemplate/McDrawerContentTemplate.vue","../src/components/templates/McModal/McModal.vue","../src/components/templates/McTable/McTable/McTable.vue","../src/components/templates/McTable/McTableCard/McTableCardHeader/McTableCardHeader.vue","../src/components/templates/McTable/McTableCard/McTableCard.vue","../src/components/templates/McTable/McTableSkeletonLoading/McTableSkeletonLoading.vue","../src/components/templates/McTable/McTableSort/McTableSort.vue","../src/components/templates/McTopBar/McTopBar.vue","../src/components/templates/McVirtualScroll/McVirtualScroll.vue"],"sourcesContent":["<script setup lang=\"ts\">\n//@ts-ignore\nimport defaultImage from '@/assets/img/no_user.png'\nimport { computed, ref, watch } from 'vue'\nimport { AvatarSizes, type AvatarSizeTypes } from '@/types/styles/AvatarSizes'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { Sizes } from '@/types/styles/Sizes'\nimport { Radiuses } from '@/types'\n\nconst props = defineProps({\n /**\n * Путь до изображения\n *\n */\n src: {\n type: String,\n default: defaultImage\n },\n /**\n * Отложенная подгрузка\n *\n */\n lazy: {\n type: Boolean,\n default: false\n },\n /**\n * Атрибут alt\n */\n alt: {\n type: String,\n default: ''\n },\n /**\n * Размеры\n */\n size: {\n type: String as () => AvatarSizeTypes,\n default: '300'\n },\n /**\n * Круглый\n *\n */\n rounded: {\n type: Boolean,\n default: false\n },\n /**\n * Цвет рамки\n *\n */\n borderColor: {\n type: String as () => ColorTypes,\n default: ''\n },\n /**\n * Цвет точки\n *\n */\n dotColor: {\n type: String as () => ColorTypes,\n default: ''\n },\n /**\n * Цвет точки\n *\n */\n shadow: {\n type: Boolean,\n default: false\n },\n /**\n * Перетаскивание изображения\n *\n */\n draggable: {\n type: Boolean,\n default: true\n }\n})\n\nconst style = ref<{ [key: string]: string }>({})\nconst wrapperStyle = ref<{ [key: string]: string }>({})\nconst hasStatus = computed((): boolean => !!props.borderColor || !!props.dotColor)\n\nconst classes = computed((): { [key: string]: boolean } => ({\n 'mc-avatar': true,\n 'mc-avatar--rounded': props.rounded,\n 'mc-avatar--bordered': !!props.borderColor,\n 'mc-avatar--shadow': props.shadow && !hasStatus.value,\n [`mc-avatar--size-${props.size}`]: !!props.size\n}))\n\nconst wrapperClasses = computed((): { [key: string]: boolean } => {\n return {\n 'mc-avatar__wrapper': true,\n 'mc-avatar__wrapper-status--shadow': !!props.shadow,\n [`mc-avatar__wrapper-status--size-${props.size}`]: !!props.size,\n 'mc-avatar__wrapper--has-dot': !!props.dotColor\n }\n})\n\nwatch(\n () => props.dotColor,\n () => {\n if (hasStatus.value) {\n if (props.dotColor) wrapperStyle.value['--mc-avatar-dot-color'] = Colors[props.dotColor]\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.borderColor,\n () => {\n if (hasStatus.value) {\n if (props.borderColor) style.value['--mc-avatar-border-color'] = Colors[props.borderColor]\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.size,\n () => {\n if (props.size) {\n style.value['--mc-avatar-avatar-size'] = AvatarSizes[props.size]\n if (+props.size < 500) {\n wrapperStyle.value['--mc-avatar-dot-size'] = Sizes['100']\n style.value['--mc-avatar-avatar-radius'] = Radiuses['50']\n }\n switch (+props.size) {\n case 500:\n case 600: {\n wrapperStyle.value['--mc-avatar-dot-size'] = Sizes['150']\n break\n }\n case 700:\n case 800:\n case 900:\n case 1000: {\n wrapperStyle.value['--mc-avatar-dot-size'] = Sizes['200']\n wrapperStyle.value['--mc-avatar-dot-border-width'] = '2px'\n break\n }\n }\n }\n },\n { immediate: true }\n)\nconst handleOnError = (e: Event): void => {\n if (!e.target) return\n //@ts-ignore\n e.target.src = defaultImage\n}\n</script>\n\n<template>\n <div :class=\"wrapperClasses\" :style=\"wrapperStyle\">\n <div :class=\"classes\" :style=\"style\">\n <img\n :src=\"props.src || defaultImage\"\n :alt=\"props.alt\"\n :draggable=\"props.draggable\"\n :lazy=\"props.lazy\"\n class=\"mc-avatar__img\"\n @onerror=\"handleOnError\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/durations' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/border-radius' as *;\n$color-borders: $token-colors;\n$dot-colors: $token-colors;\n\n.mc-avatar {\n $avatar-name: &;\n --mc-avatar-avatar-size: #{$size-300};\n --mc-avatar-border-color: initial;\n @include reset();\n position: relative;\n display: inline-block;\n width: var(--mc-avatar-avatar-size);\n height: var(--mc-avatar-avatar-size);\n min-width: var(--mc-avatar-avatar-size);\n border-radius: $radius-100;\n border: var(--mc-avatar-dot-border-width) solid $color-white;\n overflow: hidden;\n background-color: $color-hover-gray;\n transition: box-shadow $duration-s;\n &--bordered {\n border: 2px solid var(--mc-avatar-border-color);\n }\n &__img {\n width: 100%;\n height: 100%;\n }\n &--rounded {\n border-radius: $radius-circle;\n }\n\n &--shadow {\n &:hover,\n &:focus {\n box-shadow: 0 0 0 $space-100 $color-hover-gray;\n }\n }\n\n &:hover,\n &:focus {\n .mc-avatar {\n box-shadow: none;\n }\n }\n\n &--shadow {\n &:hover,\n &:focus {\n background-color: $color-hover-gray;\n box-shadow: 0 0 0 $space-50 $color-hover-gray;\n }\n }\n &__wrapper {\n --mc-avatar-dot-border-width: 1px;\n --mc-avatar-dot-size: #{$space-100};\n position: relative;\n width: max-content;\n height: max-content;\n border: none !important;\n &--has-dot {\n &::after {\n width: var(--mc-avatar-dot-size);\n height: var(--mc-avatar-dot-size);\n @include pseudo();\n left: 0;\n bottom: 0;\n background-color: var(--mc-avatar-dot-color);\n z-index: 2;\n border-radius: 50%;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { computed } from 'vue'\n\ninterface ISetProperty {\n property?: string | undefined\n value?: string | undefined\n newColor?: ColorTypes\n}\n\nconst props = defineProps({\n /**\n * Дизайн:\n * `purple, purple-outline т.д.`\n */\n variation: {\n type: String as () => ColorTypes,\n default: 'purple'\n },\n /**\n * Вертикальная черта (в таблице, к примеру)\n */\n verticalLine: {\n type: Boolean,\n default: false\n },\n modern: {\n type: Boolean,\n default: false\n }\n})\n\nconst classes = computed((): { [key: string]: boolean } => ({\n 'mc-badge': true,\n 'mc-badge--vertical-line': props.verticalLine,\n 'mc-badge--modern': props.modern\n}))\n\nconst rootStyles = computed((): { [key: string]: string } => {\n const variation = `${props.variation}${props.modern ? '-modern' : ''}` as ColorTypes\n\n let style = {} as { [key: string]: string }\n const texts = variation.split('-')\n const currentStyle: string = texts[texts.length - 1]\n const color = (props.variation ? variation.replace(`-${currentStyle}`, '') : variation) as ColorTypes\n const setProperty = ({ property = '--mc-badge-color', value, newColor = color }: ISetProperty = {}) => {\n style[property] = value || newColor && Colors[newColor]\n }\n\n switch (currentStyle) {\n case 'outline': {\n setProperty()\n setProperty({ property: '--mc-badge-border-color' })\n setProperty({ property: '--mc-badge-background-color', newColor: 'white' as ColorTypes })\n setProperty({ property: '--mc-badge-background-opacity', value: '0.4' })\n break\n }\n case 'invert':\n case 'modern': {\n setProperty()\n setProperty({ property: '--mc-badge-background-color' })\n setProperty({ property: '--mc-badge-background-opacity', value: '0.1' })\n break\n }\n default: {\n const lightColors = [\n 'hover-gray',\n 'white',\n 'lighter-blue',\n 'lighter-purple',\n 'toxic',\n 'transparent'\n ] as ColorTypes[]\n lightColors.includes(variation) && setProperty({ newColor: 'black' })\n setProperty({ property: '--mc-badge-background-color', newColor: variation as ColorTypes })\n break\n }\n }\n return style\n})\n</script>\n\n<template>\n <div :class=\"classes\" :style=\"rootStyles\" v-bind=\"$attrs\">\n <div class=\"mc-badge__text\">\n <slot />\n </div>\n <div class=\"mc-badge__background\"></div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/letter-spacings' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/border-radius' as *;\n.mc-badge {\n $block-name: &;\n --mc-badge-color: #{$color-white};\n --mc-badge-background-color: inherit;\n --mc-badge-background-opacity: initial;\n --mc-badge-border-color: #{$color-transparent};\n @include ellipsis(100%, inline-flex);\n align-items: center;\n color: var(--mc-badge-color);\n position: relative;\n font-family: $font-family-main;\n font-size: $font-size-100;\n line-height: $line-height-150;\n height: $line-height-200;\n font-weight: $font-weight-medium;\n text-transform: uppercase;\n letter-spacing: $letter-spacing-m;\n vertical-align: middle;\n padding: 2px $space-100;\n border-radius: $radius-50;\n &:before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n @include size(100%);\n background-color: var(--mc-badge-background-color);\n opacity: var(--mc-badge-background-opacity);\n border: 1px solid var(--mc-badge-border-color);\n border-radius: inherit;\n }\n &__text {\n z-index: 1;\n }\n &--modern {\n border-radius: $radius-50;\n }\n &--vertical-line {\n padding: 0;\n border-radius: 0;\n width: 5px;\n #{$block-name} {\n &__text {\n display: none;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nconst props = defineProps({\n center: {\n type: Boolean,\n default: false\n }\n})\n\nconst classes = computed(() => {\n return {\n 'mc-bottom-loader': true,\n 'mc-bottom-loader--center': props.center\n }\n})\n</script>\n\n<template>\n <section :class=\"classes\">\n <section class=\"mc-bottom-loader__spinner\"></section>\n </section>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/z-indexes' as *;\n.mc-bottom-loader {\n position: sticky;\n bottom: 0;\n width: 100%;\n height: 1px;\n background-color: transparent;\n z-index: $z-index-overlay;\n &::before {\n @include pseudo();\n position: absolute;\n top: auto;\n bottom: 0;\n left: 0;\n width: 100%;\n height: $space-700;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(to top, $color-bg-gray, rgba($color-bg-gray, 0));\n z-index: 11;\n }\n &__spinner {\n position: absolute;\n top: auto;\n bottom: calc(#{$space-350} - calc(#{$space-400} / 2));\n left: calc(50% - #{$space-200});\n transform: translateX(-50%);\n display: block;\n width: $space-300;\n height: $space-300;\n border: 2px solid $color-purple;\n border-left-color: transparent;\n border-radius: 50%;\n animation: rotate 1.5s infinite linear;\n z-index: $z-index-overlay;\n @keyframes rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n }\n\n &--center {\n top: calc(50% - #{$space-200});\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, type PropType } from 'vue'\nimport type { IModalServiceState, IModalState } from '@/types/IModal'\n\nconst props = defineProps({\n modalServiceState: {\n type: Object as PropType<IModalServiceState>,\n default: () => ({})\n },\n reactiveProps: {\n type: Object as () => { modals: IModalState[] },\n default: () => ({})\n }\n})\n\nconst containerStyle = computed((): { [key: string]: string | number } => ({\n zIndex: props.reactiveProps.modals.length ? 99 : -1,\n visibility: props.reactiveProps.modals.length ? 'visible' : 'hidden'\n}))\nconst closeModal = (value: IModalState) => {\n value.close()\n setTimeout(() => {\n if (props.reactiveProps.modals.every((d) => !d.modelValue)) {\n props.modalServiceState.closeServiceState()\n }\n }, 300)\n}\n</script>\n\n<template>\n <div class=\"mc-modal-container\" :style=\"containerStyle\">\n <div v-for=\"modal in props.reactiveProps.modals\" :key=\"modal.id\" @close=\"() => closeModal(modal)\">\n <component\n v-model=\"modal.modelValue\"\n :is=\"modal.component\"\n v-bind=\"modal.componentProps\"\n @closed=\"() => closeModal(modal)\"\n />\n </div>\n </div>\n</template>\n\n<style>\n.mc-modal-container {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, type PropType } from 'vue'\nimport { McDrawer } from '@/components'\nimport type { IDrawerServiceState, IDrawerState } from '@/types/IDrawer'\n\nconst props = defineProps({\n drawerServiceState: {\n type: Object as PropType<IDrawerServiceState>,\n default: () => ({})\n },\n reactiveProps: {\n type: Object as () => { drawers: IDrawerState[] },\n default: () => ({})\n }\n})\n\nconst containerStyle = computed((): { [key: string]: string | number } => ({\n zIndex: props.reactiveProps.drawers.length ? 99 : -1,\n visibility: props.reactiveProps.drawers.length ? 'visible' : 'hidden'\n}))\nconst closeDrawer = (value: IDrawerState) => {\n value.close()\n setTimeout(() => {\n if (props.reactiveProps.drawers.every((d) => !d.modelValue)) {\n props.drawerServiceState.closeServiceState()\n }\n }, value?.drawerProps?.duration || 300)\n}\n</script>\n\n<template>\n <div class=\"mc-drawer-container\" :style=\"containerStyle\">\n <mc-drawer\n v-for=\"(drawer, i) in props.reactiveProps.drawers\"\n :key=\"drawer.id\"\n v-model=\"drawer.modelValue\"\n v-bind=\"drawer.drawerProps\"\n :show-overlay=\"i + 1 === props.reactiveProps.drawers.length\"\n @close=\"() => closeDrawer(drawer)\"\n >\n <component :is=\"drawer.component\" v-bind=\"drawer.componentProps\" @close-drawer=\"() => closeDrawer(drawer)\" />\n </mc-drawer>\n </div>\n</template>\n\n<style>\n.mc-drawer-container {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n}\n</style>\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, inject, provide, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get(v);\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!scope) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n if (isActive.value)\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, notNullish, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, computedWithControl, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, tryOnUnmounted, clamp, syncRef, objectPick, watchWithFilter, tryOnBeforeUnmount, identity, isDef, whenever, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, isVue2, readonly, reactive, toRaw, nextTick, markRaw, unref, getCurrentScope, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return toValue(ignore).some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n let isProcessingClick = false;\n const cleanup = [\n useEventListener(window, \"click\", (event) => {\n if (!isProcessingClick) {\n isProcessingClick = true;\n setTimeout(() => {\n isProcessingClick = false;\n }, 0);\n listener(event);\n }\n }, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n let startTimestamp;\n let hasLongPressed = false;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n startTimestamp = void 0;\n hasLongPressed = false;\n }\n function onRelease(ev) {\n var _a2, _b2, _c;\n const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n clear();\n if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n return;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - _posStart.x;\n const dy = ev.y - _posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n startTimestamp = ev.timeStamp;\n timeout = setTimeout(\n () => {\n hasLongPressed = true;\n handler(ev);\n },\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n if (!isFocusedElementEditable() && isTypedCharValid(event)) {\n callback(event);\n }\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, isVue2 ? void 0 : instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true,\n triggerOnRemoval = false\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = ref();\n const trigger = () => {\n activeElement.value = getDeepActiveElement();\n };\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n trigger();\n }, true);\n useEventListener(window, \"focus\", trigger, true);\n }\n if (triggerOnRemoval) {\n useMutationObserver(document, (mutations) => {\n mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => {\n if (node === activeElement.value)\n trigger();\n });\n }, {\n childList: true,\n subtree: true\n });\n }\n trigger();\n return activeElement;\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp;\n const delta = timestamp - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp;\n fn({ delta, timestamp });\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n if (!animate.value)\n update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n if (el)\n update();\n });\n watch(() => keyframes, (value) => {\n if (animate.value)\n update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => update(true), false);\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n if (!animate.value)\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n useEventListener(animate, \"finish\", () => {\n var _a;\n if (commitStyles)\n (_a = animate.value) == null ? void 0 : _a.commitStyles();\n });\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n if (activeIndex.value === tasks.length - 1)\n onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetifyV2 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904\n};\nconst breakpointsVuetifyV3 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n};\nconst breakpointsVuetify = breakpointsVuetifyV2;\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\nconst breakpointsElement = {\n xs: 0,\n sm: 768,\n md: 992,\n lg: 1200,\n xl: 1920\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[toValue(k)]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n const permissionStatus = shallowRef();\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = shallowRef();\n const update = () => {\n var _a, _b;\n state.value = (_b = (_a = permissionStatus.value) == null ? void 0 : _a.state) != null ? _b : \"prompt\";\n };\n useEventListener(permissionStatus, \"change\", update);\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus.value) {\n try {\n permissionStatus.value = await navigator.permissions.query(desc);\n } catch (e) {\n permissionStatus.value = void 0;\n } finally {\n update();\n }\n }\n if (controls)\n return toRaw(permissionStatus.value);\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && isAllowed(permissionWrite.value))\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n function isAllowed(status) {\n return status === \"granted\" || status === \"prompt\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n if (storage instanceof Storage)\n useEventListener(window, \"storage\", update);\n else\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window) {\n const payload = {\n key,\n oldValue,\n newValue,\n storageArea: storage\n };\n window.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, {\n detail: payload\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\n\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n const classesToAdd = /* @__PURE__ */ new Set();\n const classesToRemove = /* @__PURE__ */ new Set();\n let attributeToChange = null;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n classesToAdd.add(v);\n else\n classesToRemove.add(v);\n });\n } else {\n attributeToChange = { key: attribute2, value };\n }\n if (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n style.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n window.document.head.appendChild(style);\n }\n for (const c of classesToAdd) {\n el.classList.add(c);\n }\n for (const c of classesToRemove) {\n el.classList.remove(c);\n }\n if (attributeToChange) {\n el.setAttribute(attributeToChange.key, attributeToChange.value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue, observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window && key) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n (_, old) => {\n if (old[0] && old[1])\n old[0].style.removeProperty(old[1]);\n updateCssVar();\n },\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n const raw_prop = toValue(prop);\n if (((_a = elRef.value) == null ? void 0 : _a.style) && raw_prop) {\n if (val == null)\n elRef.value.style.removeProperty(raw_prop);\n else\n elRef.value.style.setProperty(raw_prop, val);\n }\n }\n );\n return variable;\n}\n\nfunction useCurrentElement(rootComponent) {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev,\n go: set\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n let granted = true;\n try {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n } catch (e) {\n stream = null;\n granted = false;\n }\n update();\n permissionGranted.value = granted;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n var _a2;\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener(\"ended\", stop));\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target,\n buttons = [0]\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!toValue(buttons).includes(e.button))\n return;\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n var _a, _b;\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isValid = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const multiple = (_a = _options.multiple) != null ? _a : true;\n const preventDefaultForUnhandled = (_b = _options.preventDefaultForUnhandled) != null ? _b : false;\n const getFiles = (event) => {\n var _a2, _b2;\n const list = Array.from((_b2 = (_a2 = event.dataTransfer) == null ? void 0 : _a2.files) != null ? _b2 : []);\n return list.length === 0 ? null : multiple ? list : [list[0]];\n };\n const checkDataTypes = (types) => {\n if (_options.dataTypes) {\n const dataTypes = unref(_options.dataTypes);\n return typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n }\n return true;\n };\n const checkValidity = (event) => {\n var _a2, _b2;\n const items = Array.from((_b2 = (_a2 = event.dataTransfer) == null ? void 0 : _a2.items) != null ? _b2 : []);\n const types = items.map((item) => item.type);\n const dataTypesValid = checkDataTypes(types);\n const multipleFilesValid = multiple || items.length <= 1;\n return dataTypesValid && multipleFilesValid;\n };\n const handleDragEvent = (event, eventType) => {\n var _a2, _b2, _c, _d;\n isValid = checkValidity(event);\n if (!isValid) {\n if (preventDefaultForUnhandled) {\n event.preventDefault();\n }\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = \"none\";\n }\n return;\n }\n event.preventDefault();\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = \"copy\";\n }\n const currentFiles = getFiles(event);\n switch (eventType) {\n case \"enter\":\n counter += 1;\n isOverDropZone.value = true;\n (_a2 = _options.onEnter) == null ? void 0 : _a2.call(_options, null, event);\n break;\n case \"over\":\n (_b2 = _options.onOver) == null ? void 0 : _b2.call(_options, null, event);\n break;\n case \"leave\":\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_c = _options.onLeave) == null ? void 0 : _c.call(_options, null, event);\n break;\n case \"drop\":\n counter = 0;\n isOverDropZone.value = false;\n if (isValid) {\n files.value = currentFiles;\n (_d = _options.onDrop) == null ? void 0 : _d.call(_options, currentFiles, event);\n }\n break;\n }\n };\n useEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n useEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n useEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n useEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const _targets = toValue(target);\n return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n });\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els) {\n if (_el)\n observer.observe(_el, observerOptions);\n }\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true,\n updateTiming = \"sync\"\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function recalculate() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n function update() {\n if (updateTiming === \"sync\")\n recalculate();\n else if (updateTiming === \"next-frame\")\n requestAnimationFrame(() => recalculate());\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const rect = $elem.getBoundingClientRect();\n width.value = rect.width;\n height.value = rect.height;\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction resolveNestedOptions$1(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const urlRef = toRef(url);\n const lastEventId = shallowRef(null);\n let explicitlyClosed = false;\n let retried = 0;\n const {\n withCredentials = false,\n immediate = true\n } = options;\n const close = () => {\n if (isClient && eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n explicitlyClosed = true;\n }\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const es = new EventSource(urlRef.value, { withCredentials });\n status.value = \"CONNECTING\";\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {\n es.close();\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions$1(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n lastEventId.value = e.lastEventId;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n };\n const open = () => {\n if (!isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n tryOnScopeDispose(close);\n return {\n eventSource,\n event,\n data,\n status,\n error,\n open,\n close,\n lastEventId\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n return reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries(headers.entries());\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished: readonly(isFinished),\n isFetching: readonly(isFetching),\n statusCode,\n response,\n error,\n data,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger: changeTrigger } = createEventHook();\n const { on: onCancel, trigger: cancelTrigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n changeTrigger(files.value);\n };\n input.oncancel = () => {\n cancelTrigger();\n };\n }\n const reset = () => {\n files.value = null;\n if (input && input.value) {\n input.value = \"\";\n changeTrigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onCancel,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n await updateFile();\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false, preventScroll = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll });\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nfunction useFocusWithin(target, options = {}) {\n const { window = defaultWindow } = options;\n const targetElement = computed(() => unrefElement(target));\n const _focused = ref(false);\n const focused = computed(() => _focused.value);\n const activeElement = useActiveElement(options);\n if (!window || !activeElement.value) {\n return { focused };\n }\n useEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true);\n useEventListener(targetElement, EVENT_FOCUS_OUT, () => _focused.value = false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n index: gamepad.index,\n connected: gamepad.connected,\n mapping: gamepad.mapping,\n timestamp: gamepad.timestamp,\n vibrationActuator: gamepad.vibrationActuator,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n onGamepadConnected(gamepad);\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c, _d;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n if (x != null)\n internalX.value = scrollContainer.scrollLeft;\n if (y != null)\n internalY.value = scrollContainer.scrollTop;\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n const stop = watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n tryOnUnmounted(stop);\n return {\n isLoading,\n reset() {\n nextTick(() => checkAndLoad());\n }\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n target = toRef(target);\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const playbackErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n if (isPlaying) {\n el.play().catch((e) => {\n playbackErrorEvent.trigger(e);\n throw e;\n });\n } else {\n el.pause();\n }\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on,\n onPlaybackError: playbackErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el || !(el instanceof Element))\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported: readonly(isSupported),\n isOnline: readonly(isOnline),\n saveData: readonly(saveData),\n offlineAt: readonly(offlineAt),\n onlineAt: readonly(onlineAt),\n downlink: readonly(downlink),\n downlinkMax: readonly(downlinkMax),\n effectiveType: readonly(effectiveType),\n rtt: readonly(rtt),\n type: readonly(type)\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const screenOrientation = reactive(useScreenOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) {\n return \"deviceOrientation\";\n }\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.gamma / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.gamma / 90;\n break;\n case \"portrait-primary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-secondary\":\n value = orientation.beta / 90;\n break;\n default:\n value = -orientation.beta / 90;\n }\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.beta / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-primary\":\n value = orientation.gamma / 90;\n break;\n case \"portrait-secondary\":\n value = -orientation.gamma / 90;\n break;\n default:\n value = orientation.gamma / 90;\n }\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock();\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n if (isIOS)\n stopTouchMoveListener == null ? void 0 : stopTouchMoveListener();\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n maxAlternatives = 1,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.maxAlternatives = maxAlternatives;\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const currentResult = event.results[event.resultIndex];\n const { transcript } = currentResult[0];\n isFinal.value = currentResult.isFinal;\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n if (utterance)\n synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorageAsync\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n var _a;\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : \"height\";\n const textareaScrollHeight = ref(1);\n const textareaOldWidth = ref(0);\n function triggerResize() {\n var _a2;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style[styleProp] = \"1px\";\n textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;\n const _styleTarget = toValue(options == null ? void 0 : options.styleTarget);\n if (_styleTarget)\n _styleTarget.style[styleProp] = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style[styleProp] = height;\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n watch(textareaScrollHeight, () => {\n var _a2;\n return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options);\n });\n useResizeObserver(textarea, ([{ contentRect }]) => {\n if (textareaOldWidth.value === contentRect.width)\n return;\n textareaOldWidth.value = contentRect.width;\n triggerResize();\n });\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n stop();\n });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n watch([size.width, size.height, list, containerRef], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n const requestedType = ref(false);\n const sentinel = shallowRef(null);\n const documentVisibility = useDocumentVisibility({ document });\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = computed(() => !!sentinel.value && documentVisibility.value === \"visible\");\n if (isSupported.value) {\n useEventListener(sentinel, \"release\", () => {\n var _a, _b;\n requestedType.value = (_b = (_a = sentinel.value) == null ? void 0 : _a.type) != null ? _b : false;\n });\n whenever(\n () => documentVisibility.value === \"visible\" && (document == null ? void 0 : document.visibilityState) === \"visible\" && requestedType.value,\n (type) => {\n requestedType.value = false;\n forceRequest(type);\n }\n );\n }\n async function forceRequest(type) {\n var _a;\n await ((_a = sentinel.value) == null ? void 0 : _a.release());\n sentinel.value = isSupported.value ? await navigator.wakeLock.request(type) : null;\n }\n async function request(type) {\n if (documentVisibility.value === \"visible\")\n await forceRequest(type);\n else\n requestedType.value = type;\n }\n async function release() {\n requestedType.value = false;\n const s = sentinel.value;\n sentinel.value = null;\n await (s == null ? void 0 : s.release());\n }\n return {\n sentinel,\n isSupported,\n isActive,\n request,\n forceRequest,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => {\n if (!window || !(\"Notification\" in window))\n return false;\n try {\n new Notification(\"\");\n } catch (e) {\n return false;\n }\n return true;\n });\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n wsRef.value = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n retried = 0;\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect && (wsRef.value == null || ws === wsRef.value)) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n if (typeof retries === \"number\" && (retries < 0 || retried < retries)) {\n retried += 1;\n setTimeout(_init, delay);\n } else if (typeof retries === \"function\" && retries()) {\n setTimeout(_init, delay);\n } else {\n onFailed == null ? void 0 : onFailed();\n }\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE,\n responseMessage = message\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === responseMessage)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n open();\n watch(urlRef, open);\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction depsParser(deps, localDeps) {\n if (deps.length === 0 && localDeps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n const depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n const str = fn.toString();\n if (str.trim().startsWith(\"function\")) {\n return str;\n } else {\n const name = fn.name;\n return `const ${name} = ${str}`;\n }\n }).join(\";\");\n const importString = `importScripts(${depsString});`;\n return `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n localDependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n var _a;\n promise.value = {\n resolve,\n reject\n };\n (_a = worker.value) == null ? void 0 : _a.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true,\n type = \"inner\"\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (type === \"outer\") {\n width.value = window.outerWidth;\n height.value = window.outerHeight;\n } else if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsElement, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","<script setup lang=\"ts\">\nimport { computed, type PropType, ref } from 'vue'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { FontWeights } from '@/types/styles/FontWeights'\nimport { useTooltip } from '@/composables'\nimport type { ITooltip, TooltipPositionsUnion } from '@/types/ITooltip'\nimport type { ButtonVariationUnion, IButtonStyleOptions } from '@/types/IButton'\nimport { TooltipPositions, TooltipSizes } from '@/enums/Tooltip'\nimport { McSvgIcon } from '@/components'\nimport type { ButtonSizeUnion, ButtonTypeUnion } from '@/types/IButton'\nimport type { HorizontalAlignmentUnion } from '@/types/styles/Alignment'\nimport type { WeightsUnion } from '@/types/styles/Weights'\nimport type { ColorsUnion } from '@/types/styles/Colors'\nimport type { FontWeightsUnion } from '@/types/styles/FontWeights'\nimport { ButtonModifiers } from '@/enums'\n\ninterface ElButtonTagBind {\n to?: string | null\n href?: string | null\n disabled: boolean\n rel: string\n type: ButtonTypeUnion\n tabindex: number | string | undefined | null\n}\n\nconst vTooltip = useTooltip()\n\nconst buttonTooltip = computed((): ITooltip => {\n let payload = {} as ITooltip\n if (props.tooltip) {\n payload = {\n content: props.tooltip,\n size: TooltipSizes.M,\n placement: props.tooltipPlacement || TooltipPositions.Top,\n }\n }\n return payload\n})\n\nconst props = defineProps({\n /**\n * Если нужна ссылка внутри приложения:\n */\n to: {\n type: String as PropType<string>,\n },\n /**\n * Если нужна обычная ссылка:\n * `https://mediacube.agency/`\n */\n href: {\n type: String as PropType<string>,\n },\n /**\n * По умолчанию ожидается использование в `Nuxt`\n *\n */\n nuxt: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Отключенное состояние\n *\n */\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Дизэйблить не меняя внешнего вида\n *\n */\n inactive: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Индикация загрузки\n *\n */\n loading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Индикация загрузки\n * вращением иконки\n */\n iconLoading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Типы:\n * `button, submit, reset`\n */\n type: {\n type: String as () => ButtonTypeUnion,\n default: null\n },\n /**\n * Дизайн:\n * `purple, red, purple-outline, purple-invert, purple-flat и т.д.`\n */\n variation: {\n type: String as () => ButtonVariationUnion,\n default: 'purple'\n },\n /**\n * Размеры:\n * `xs, xs-compact, s, s-compact, m, m-compact, l, l-compact`\n */\n size: {\n type: String as () => ButtonSizeUnion,\n default: 'm'\n },\n /**\n * Тень\n *\n */\n shadow: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Круглая (применимо для *-compact size)\n *\n */\n rounded: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Закругленная\n *\n */\n semiRounded: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Позиция текста внутри кнопки:\n * `left, center, right`\n */\n textAlign: {\n type: String as () => HorizontalAlignmentUnion,\n default: 'center'\n },\n /**\n * На всю ширину\n *\n */\n fullWidth: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Если нужно активное состояние\n *\n */\n isActive: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * exact\n *\n */\n exact: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Заглавные буквы\n */\n uppercase: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Тег по умолчанию\n */\n defaultTag: {\n type: String as PropType<string>,\n default: 'button'\n },\n /**\n * Если нужен другой цвет при взаимодействии\n */\n secondaryColor: {\n type: String as () => ColorTypes,\n default: null\n },\n /**\n * Если нужна подчёркнутая ссылка\n */\n underlineLink: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Если нужен постоянный\n * фон у типа 'flat'\n */\n bgFlat: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Жирность шрифта:\n * `normal, medium, semi-bold`\n */\n weight: {\n type: String as () => WeightsUnion,\n default: 'semi-bold'\n },\n /**\n * Тултип при наличии\n */\n tooltip: {\n type: String as PropType<string>,\n default: null\n },\n tooltipPlacement: {\n type: String as () => TooltipPositionsUnion,\n default: null,\n },\n\n /**\n * Атрибут tabindex для главного элемента\n *\n */\n tabindex: {\n type: [String, Number]\n }\n})\n\nconst mcButton = ref(null)\nconst emit = defineEmits(['blur', 'click'])\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n [`mc-button--variation-${props.variation}`]: !!props.variation,\n [`mc-button--size-${props.size}`]: !!props.size,\n [`mc-button--text-align-${props.textAlign}`]: !!props.textAlign,\n 'mc-button--loading': !!props.loading,\n 'mc-button--icon-loading': !!props.iconLoading,\n 'mc-button--is-active': !!props.isActive,\n 'mc-button--disabled': !!props.disabled,\n 'mc-button--rounded': props.rounded && /-compact$/.test(props.size),\n 'mc-button--semi-rounded': !!props.semiRounded,\n 'mc-button--full-width': !!props.fullWidth,\n 'mc-button--uppercase': !!props.uppercase,\n 'mc-button--shadow': !!props.shadow,\n 'mc-button--secondary-color': !!props.secondaryColor,\n 'mc-button--underline-link': !!props.underlineLink,\n 'mc-button--bg-flat': !!props.bgFlat,\n [`mc-button--type-${buttonVariation.value.type}`]: !!buttonVariation.value.type,\n 'mc-button--inactive': !!props.inactive\n }\n})\n\nconst buttonVariation = computed((): IButtonStyleOptions => {\n const variation = props.variation\n const texts = variation.split('-')\n const currentStyle = texts[texts.length - 1]\n let color = variation.replace(`-${currentStyle}`, '')\n switch (currentStyle) {\n case ButtonModifiers.Link:\n case ButtonModifiers.Flat:\n case ButtonModifiers.Outline:\n case ButtonModifiers.Invert: {\n break\n }\n default: {\n color = variation\n break\n }\n }\n return {\n color: color as ColorTypes,\n type: currentStyle\n }\n})\n\nconst styles = computed((): { [key: string]: ColorsUnion | FontWeightsUnion | string | undefined } => {\n let hoverBrightness: string | undefined\n let textColor: ColorTypes | undefined\n switch (buttonVariation.value.type) {\n case ButtonModifiers.Link:\n case ButtonModifiers.Flat:\n case ButtonModifiers.Outline:\n case ButtonModifiers.Invert: {\n break\n }\n default: {\n switch (buttonVariation.value.color) {\n case 'yellow':\n case 'white': {\n hoverBrightness = '0.9'\n break\n }\n case 'toxic': {\n break\n }\n default: {\n textColor = 'white' as ColorTypes\n }\n }\n break\n }\n }\n\n return {\n '--mc-button-secondary-color': props.secondaryColor && Colors[props.secondaryColor],\n '--mc-button-background-color':\n props.variation && Colors[buttonVariation.value.color as ColorTypes],\n '--mc-button-font-weight': props.weight && FontWeights[props.weight],\n '--mc-button-hover-brightness': hoverBrightness,\n '--mc-button-text-color': textColor && Colors[textColor]\n }\n})\n\nconst tag = computed((): string => {\n if (props.to) {\n return props.nuxt ? 'nuxt-link' : 'router-link'\n } else if (props.href) {\n return 'a'\n }\n return props.defaultTag\n})\n\nconst isVariationLink = computed((): boolean => {\n return buttonVariation.value.type === ButtonModifiers.Link\n})\n\nconst tagBind = computed((): ElButtonTagBind => {\n let result:ElButtonTagBind = {\n to: props.to,\n href: props.href,\n disabled: false,\n rel: '',\n type: props.type,\n tabindex: props.tabindex\n }\n\n if (props.to) {\n delete result.href\n } else if (props.href) {\n delete result.to\n } else if (props.disabled || props.loading) {\n result.disabled = true\n }\n\n if (isVariationLink.value) result.rel = 'noreferrer'\n\n return result\n})\n\nconst handleBlur = (e: Event): void => {\n emit('blur', e)\n}\nconst handleClick = (e: Event): void => {\n emit('click', e)\n}\n</script>\n\n<template>\n <component\n v-tooltip=\"buttonTooltip\"\n :is=\"tag\"\n :ref=\"mcButton\"\n v-bind=\"{ ...tagBind }\"\n class=\"mc-button\"\n :class=\"classes\"\n :exact=\"exact\"\n :style=\"styles\"\n @blur=\"handleBlur\"\n @click=\"handleClick\"\n >\n <span v-if=\"$slots['icon-prepend']\" class=\"mc-button__prepend\">\n <!-- @slot Слот для вставки в начало -->\n <slot name=\"icon-prepend\" />\n </span>\n <span v-if=\"loading\" class=\"mc-button__loader\">\n <mc-svg-icon class=\"mc-button__loader-icon\" type=\"div\" name=\"loader\" />\n </span>\n <span v-if=\"$slots.default\" class=\"mc-button__text\">\n <!-- @slot Слот по умолчанию -->\n <slot />\n </span>\n <span v-if=\"$slots['icon-append']\" class=\"mc-button__append\">\n <!-- @slot Слот для вставки в конец -->\n <slot name=\"icon-append\" />\n </span>\n <div v-if=\"!isVariationLink\" class=\"mc-button__background\" />\n </component>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/styles/tooltip' as *;\n@use '../../../assets/tokens/durations' as *;\n@use '../../../assets/tokens/opacities' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/letter-spacings' as *;\n@use '../../../assets/tokens/animations' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/media-queries' as *;\n@use '../../../assets/tokens/border-radius' as *;\n\n.mc-button {\n $block-name: &;\n @include reset();\n --mc-button-background-color: #{$color-transparent};\n --mc-button-font-weight: #{$font-weight-normal};\n --mc-button-text-color: #{$color-black};\n --mc-button-hover-brightness: 0.9;\n --mc-button-secondary-color: initial;\n position: relative;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n border: none;\n flex-wrap: nowrap;\n max-width: 100%;\n font-family: $font-family-main;\n border-radius: $radius-100;\n white-space: nowrap;\n user-select: none;\n text-decoration: none;\n text-transform: none;\n background: none;\n cursor: pointer;\n outline: 0;\n transition: all $duration-s;\n font-weight: var(--mc-button-font-weight);\n color: var(--mc-button-text-color);\n -webkit-appearance: none;\n -webkit-text-fill-color: currentColor;\n z-index: 0;\n\n &__loader {\n display: none;\n line-height: 0;\n @include align(true, true, absolute);\n top: unset;\n left: unset;\n transform: unset;\n z-index: 1;\n &-icon {\n animation: $animation-spinner;\n }\n }\n &__prepend,\n &__append {\n display: inline-flex;\n align-items: center;\n z-index: 1;\n }\n\n &__text {\n @include ellipsis($display: inline-block);\n @include layout-flex-fix();\n z-index: 1;\n &:empty {\n display: none;\n }\n }\n @mixin hoverMixin {\n @media #{$media-desktop} {\n &:hover {\n #{$block-name}__background {\n @content;\n }\n }\n }\n\n &:active {\n #{$block-name}__background {\n @content;\n }\n }\n }\n @include hoverMixin {\n filter: brightness(var(--mc-button-hover-brightness));\n }\n\n &--size {\n &-xxs {\n height: $size-300;\n padding: 0 $space-100;\n letter-spacing: normal;\n font-size: $font-size-200;\n line-height: $line-height-200;\n\n &-compact {\n @include size($size-300);\n padding: $space-50;\n .mc-svg-icon {\n @include size($size-200);\n }\n }\n .mc-svg-icon {\n @include size($size-200);\n }\n\n #{$block-name} {\n &__prepend {\n margin-inline-end: $space-50;\n }\n &__append {\n margin-inline-start: $space-50;\n }\n }\n }\n &-xs {\n height: $size-400;\n padding: 0 $space-150;\n letter-spacing: normal;\n font-size: $font-size-200;\n line-height: $line-height-200;\n\n &-compact {\n @include size($size-400);\n padding: 6px;\n .mc-svg-icon {\n @include size($size-250);\n }\n }\n .mc-svg-icon {\n @include size($size-250);\n }\n\n #{$block-name} {\n &__prepend {\n margin-inline-end: $space-50;\n }\n &__append {\n margin-inline-start: $space-50;\n }\n }\n }\n &-s {\n height: $size-500;\n padding: 0 $space-200;\n letter-spacing: normal;\n font-size: $font-size-200;\n line-height: $line-height-200;\n\n &-compact {\n @include size($size-500);\n padding: $space-150;\n .mc-svg-icon {\n @include size($size-250);\n }\n }\n .mc-svg-icon {\n @include size($size-250);\n }\n\n #{$block-name} {\n &__prepend {\n margin-inline-end: $space-50;\n }\n &__append {\n margin-inline-start: $space-50;\n }\n }\n }\n &-m {\n height: $size-500;\n padding: 0 $space-200;\n font-size: $font-size-200;\n line-height: $line-height-200;\n\n &-compact {\n @include size($size-500);\n padding: $space-100;\n .mc-svg-icon {\n @include size($size-300);\n }\n }\n .mc-svg-icon {\n @include size($size-300);\n }\n\n #{$block-name} {\n &__prepend {\n margin-inline-end: $space-50;\n }\n &__append {\n margin-inline-start: $space-50;\n }\n }\n }\n &-l {\n height: $size-600;\n padding: $space-150 $space-300;\n font-size: $font-size-200;\n line-height: $line-height-200;\n\n &-compact {\n @include size($size-600);\n padding: $space-150;\n .mc-svg-icon {\n @include size($size-300);\n }\n }\n .mc-svg-icon {\n @include size($size-300);\n }\n\n #{$block-name} {\n &__prepend {\n margin-inline-end: $space-100;\n }\n &__append {\n margin-inline-start: $space-100;\n }\n }\n }\n\n &-s,\n &-m,\n &-l {\n &-compact {\n #{$block-name} {\n &__prepend,\n &__append {\n margin: 0 !important;\n }\n }\n }\n }\n }\n\n &__background {\n position: absolute;\n top: 0;\n left: 0;\n @include size(100%);\n max-height: -webkit-fill-available;\n max-width: -webkit-fill-available;\n opacity: 1 !important;\n border: 1px solid $color-transparent;\n border-radius: inherit;\n background-color: var(--mc-button-background-color);\n transition: all $duration-s;\n }\n &--type {\n &-outline {\n color: var(--mc-button-background-color);\n #{$block-name}__background {\n opacity: 0.6 !important;\n background-color: $color-transparent;\n border-color: var(--mc-button-background-color);\n }\n @media #{$media-desktop} {\n &:hover {\n #{$block-name}__background {\n background-color: var(--mc-button-background-color);\n opacity: 0.2 !important;\n }\n }\n &:active {\n #{$block-name}__background {\n background-color: var(--mc-button-background-color);\n border: none;\n }\n }\n }\n }\n &-invert {\n color: var(--mc-button-background-color);\n #{$block-name} {\n &__background {\n opacity: 0.1 !important;\n }\n }\n @include hoverMixin {\n opacity: 0.2 !important;\n }\n }\n &-flat {\n color: var(--mc-button-background-color);\n #{$block-name}__background {\n opacity: 0 !important;\n }\n @include hoverMixin {\n opacity: 0.1 !important;\n }\n }\n &-link {\n color: var(--mc-button-background-color);\n padding: 0;\n @include size(auto);\n border: none;\n user-select: text;\n &#{$block-name}--size-l {\n line-height: $line-height-250;\n }\n &#{$block-name} {\n &--disabled {\n opacity: $opacity-disabled;\n background-color: transparent !important;\n color: var(--mc-button-background-color) !important;\n border-color: transparent !important;\n }\n }\n @media #{$media-desktop} {\n &:hover {\n filter: brightness(0.85);\n }\n }\n\n &:active {\n filter: brightness(0.85);\n }\n #{$block-name} {\n &__background {\n display: none;\n }\n }\n }\n }\n &--bg-flat {\n #{$block-name} {\n &__background {\n opacity: 0.1 !important;\n }\n }\n }\n &--shadow {\n box-shadow: 0 3px 10px var(--mc-button-background-color);\n }\n &--underline-link {\n #{$block-name}__text {\n text-decoration: underline !important;\n }\n }\n\n &--secondary-color {\n @media #{$media-desktop} {\n &:hover {\n color: var(--mc-button-secondary-color);\n }\n }\n &:active {\n color: var(--mc-button-secondary-color);\n }\n }\n\n &--uppercase {\n text-transform: uppercase;\n letter-spacing: $letter-spacing-m;\n }\n\n &--is-active,\n &.nuxt-link-active {\n color: $color-purple;\n background-color: transparent;\n border-color: transparent;\n pointer-events: none;\n }\n\n &--rounded {\n border-radius: $radius-circle;\n }\n\n &--semi-rounded {\n border-radius: 50px;\n }\n\n &--full-width {\n width: 100%;\n }\n\n &--text-align {\n &-left {\n justify-content: flex-start;\n }\n &-center {\n justify-content: center;\n }\n &-right {\n justify-content: flex-end;\n }\n }\n\n &--loading,\n &--icon-loading,\n &--disabled {\n pointer-events: none;\n }\n\n &--loading {\n #{$block-name} {\n &__loader {\n display: inline-block;\n }\n }\n\n > *:not(#{$block-name}__loader) {\n opacity: 0;\n }\n }\n &--icon-loading {\n #{$block-name} {\n &__append,\n &__prepend {\n .mc-svg-icon {\n animation: $animation-spinner;\n }\n }\n }\n #{$block-name}__loader {\n transform-origin: center center;\n animation: $animation-spinner;\n }\n }\n\n &--disabled {\n color: $color-outline-gray;\n cursor: not-allowed;\n #{$block-name} {\n &__background {\n background-color: $color-hover-gray;\n border-color: $color-hover-gray;\n }\n }\n }\n\n &--inactive {\n pointer-events: none;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McSvgIcon } from '@/components'\nimport { computed, type PropType } from 'vue'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport type { ChipVariationUnion, IChipStyleOptions } from '@/types/IChip'\nimport { type ChipSizeUnion } from '@/types/IChip'\nimport type { ColorsUnion } from '@/types/styles/Colors'\nimport { ChipModifiers } from '@/enums'\n\nconst emit = defineEmits(['close', 'click'])\nconst props = defineProps({\n /**\n * Text content\n *\n */\n title: {\n type: [String, Number] as PropType<string | number>,\n default: '',\n },\n /**\n * Кнопка закрытия\n *\n */\n closable: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n /**\n * Дизайн:\n * `purple, purple-invert т.д.`\n */\n variation: {\n type: String as () => ChipVariationUnion,\n default: 'transparent',\n },\n /**\n * Счетчик\n *\n */\n counter: {\n type: [String, Number] as PropType<string | number>,\n default: null,\n },\n /**\n * Размер\n */\n size: {\n type: String as () => ChipSizeUnion,\n default: 'm',\n },\n /**\n * Если нужен\n * иной цвет текста\n */\n textColor: {\n type: String as () => ColorTypes,\n default: '',\n },\n})\n\nconst classes = computed((): { [key: string]: boolean } => ({\n [`mc-chip--variation-${chipOptions.value.variation}`]: !!props.variation,\n [`mc-chip--size-${props.size}`]: !!props.size,\n}))\n\nconst chipOptions = computed((): IChipStyleOptions => {\n const variationProps = props.variation?.split('-')\n const currentVariation = variationProps[variationProps.length - 1]\n let color\n let variation\n switch (currentVariation) {\n case ChipModifiers.Outline:\n case ChipModifiers.Invert: {\n variation = currentVariation\n color = props.variation.replace(`-${currentVariation}`, '')\n break\n }\n default: {\n variation = 'default'\n color = props.variation\n break\n }\n }\n return {\n color: color as ColorTypes,\n variation,\n }\n})\n\nconst styles = computed((): { [key: string]: ColorsUnion } => {\n const textColor = props.textColor || 'white'\n return {\n '--mc-chip-color': Colors[chipOptions.value.color as ColorTypes],\n '--mc-chip-text-color': Colors[textColor],\n }\n})\n\nconst handleCloseClick = (e: Event): void => {\n emit('close', e)\n}\nconst handleClick = (e: Event): void => {\n emit('click', e)\n}\n</script>\n\n<template>\n <section class=\"mc-chip\" tabindex=\"0\" :class=\"classes\" :style=\"styles\" @click=\"handleClick\">\n <div v-if=\"$slots.icon\" class=\"mc-chip__icon\">\n <!-- @slot Слот для иконки -->\n <slot name=\"icon\" />\n </div>\n <div v-if=\"title || $slots.default\" class=\"mc-chip__title\">\n <!-- @slot Слот для контента -->\n <slot>\n {{ title }}\n </slot>\n </div>\n <div v-if=\"counter || counter === 0\" class=\"mc-chip__counter\">\n {{ counter }}\n </div>\n <button v-if=\"closable\" class=\"mc-chip__button\" type=\"button\" @click.stop=\"handleCloseClick\">\n <!-- @slot Слот для пользовательской кнопки -->\n <slot name=\"button\">\n <mc-svg-icon size=\"200\" name=\"cancel\" />\n </slot>\n </button>\n </section>\n</template>\n\n<style lang=\"scss\">\n@use 'sass:color' as sasscolor;\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/durations' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/sizes' as *;\n\n.mc-chip {\n $block-name: &;\n --mc-chip-text-color: #{$color-black};\n --mc-chip-color: #{$color-white};\n display: inline-flex;\n position: relative;\n align-items: center;\n color: var(--mc-chip-color);\n font-family: $font-family-main;\n font-size: $font-size-200;\n line-height: $line-height-200;\n max-width: 100%;\n border-radius: 100px;\n vertical-align: middle;\n outline: none;\n z-index: 0;\n flex-shrink: 0;\n overflow: visible;\n &:before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n z-index: 0;\n @include size(100%);\n border-radius: inherit;\n background-color: var(--mc-chip-color);\n }\n > * {\n margin-right: $space-50;\n z-index: 1;\n }\n > *:first-child {\n margin-left: $space-50;\n }\n\n &--size {\n @mixin padding-x($space, $space-compact) {\n padding-right: $space;\n padding-left: $space;\n &-compact {\n padding-right: $space-compact;\n padding-left: $space-compact;\n }\n }\n &-m {\n @include padding-x($space-100, $space-50);\n &,\n &-compact {\n height: $size-400;\n }\n }\n &-s {\n @include padding-x($space-100, $space-50);\n &,\n &-compact {\n height: $size-300;\n }\n }\n &-xs {\n @include padding-x($space-50, 0);\n &,\n &-compact {\n height: $space-200;\n font-size: $font-size-100;\n line-height: $line-height-150;\n }\n }\n }\n &__icon {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-left: 0;\n }\n &__title {\n @include ellipsis();\n @include layout-flex-fix();\n color: var(--mc-chip-text-color);\n &:empty {\n display: none;\n }\n }\n &__counter {\n flex: 0 0 auto;\n font-family: $font-family-main;\n font-size: $font-size-200;\n line-height: $line-height-200;\n color: $color-dark-gray;\n\n &:empty {\n display: none;\n }\n }\n &__button {\n @include size($size-200);\n position: relative;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n align-items: center;\n padding: 0;\n margin-right: 0;\n border-radius: 0;\n user-select: none;\n text-decoration: none;\n text-transform: none;\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n outline: 0;\n border: none;\n transition: all $duration-s;\n flex-wrap: nowrap;\n -webkit-appearance: none;\n -webkit-text-fill-color: currentColor;\n color: $color-dark-gray;\n opacity: 0.2;\n\n &:hover {\n opacity: 1;\n color: $color-red;\n }\n\n &:active {\n color: sasscolor.adjust($color-red, $lightness: 15%);\n }\n }\n\n &--variation {\n &-default {\n #{$block-name} {\n &__button {\n color: var(--mc-chip-color);\n &:hover {\n opacity: 1;\n color: $color-white;\n }\n &:active {\n color: sasscolor.adjust($color-white, $lightness: 15%);\n }\n }\n &__title {\n color: var(--mc-chip-text-color);\n }\n &__counter {\n color: var(--mc-chip-text-color);\n opacity: 0.5;\n }\n }\n }\n &-outline {\n color: var(--mc-chip-color);\n border: 1px solid var(--mc-chip-color);\n &:before {\n display: none;\n }\n }\n &-invert {\n color: $color-black;\n &:before {\n background-color: var(--mc-chip-color);\n opacity: 0.15;\n }\n }\n }\n}\n</style>\n","import { useAttrs as jn, openBlock as T, createElementBlock as K, createElementVNode as ye, unref as o, reactive as Qt, computed as J, ref as ne, toRef as Vt, watch as at, defineComponent as Le, onMounted as We, onUnmounted as ua, renderSlot as ie, normalizeProps as Ne, mergeProps as Ee, Fragment as be, normalizeStyle as tt, createCommentVNode as Z, createTextVNode as ct, toDisplayString as Ue, onBeforeUpdate as Kn, nextTick as xe, normalizeClass as we, withModifiers as Wt, renderList as Re, withDirectives as na, vShow as la, createBlock as $e, withCtx as ke, withKeys as Gn, createVNode as Ze, Transition as Nt, createSlots as Ve, useSlots as Pt, guardReactiveProps as Qe, resolveDynamicComponent as ia, h as Qn, render as xa, getCurrentScope as qn, onScopeDispose as Xn, isRef as en, Teleport as Jn } from \"vue\";\nimport { format as ut, isEqual as Ot, set as Te, startOfMonth as Zn, isAfter as _t, getYear as pe, getMonth as De, setMonth as xn, setYear as st, addMonths as At, subMonths as jt, isValid as ra, isBefore as Kt, eachDayOfInterval as pn, setHours as el, setMinutes as tl, setSeconds as yn, setMilliseconds as gn, getHours as ft, getMinutes as ht, getSeconds as Bt, startOfWeek as La, endOfWeek as hn, parse as Ia, isDate as al, addHours as nl, addYears as bn, subYears as kn, endOfYear as wn, startOfYear as oa, differenceInYears as ll, add as Dn, sub as rl, getWeek as ol, getISOWeek as sl, addDays as $t, isSameQuarter as tn, eachQuarterOfInterval as ul, startOfQuarter as il, endOfQuarter as an, getQuarter as nn, getDay as dl, differenceInCalendarDays as cl } from \"date-fns\";\nfunction Et() {\n const e = jn();\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\",\n ...e\n },\n [\n ye(\"path\", {\n d: \"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z\"\n }),\n ye(\"path\", {\n d: \"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n ye(\"path\", {\n d: \"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n }),\n ye(\"path\", {\n d: \"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z\"\n })\n ]\n );\n}\nEt.compatConfig = {\n MODE: 3\n};\nfunction Mn() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"\n }),\n ye(\"path\", {\n d: \"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nMn.compatConfig = {\n MODE: 3\n};\nfunction za() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nza.compatConfig = {\n MODE: 3\n};\nfunction Ha() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z\"\n })\n ]\n );\n}\nHa.compatConfig = {\n MODE: 3\n};\nfunction Ua() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z\"\n }),\n ye(\"path\", {\n d: \"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"\n })\n ]\n );\n}\nUa.compatConfig = {\n MODE: 3\n};\nfunction Va() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"\n })\n ]\n );\n}\nVa.compatConfig = {\n MODE: 3\n};\nfunction Wa() {\n return T(), K(\n \"svg\",\n {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n class: \"dp__icon\",\n role: \"img\"\n },\n [\n ye(\"path\", {\n d: \"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"\n })\n ]\n );\n}\nWa.compatConfig = {\n MODE: 3\n};\nconst qe = (e, t) => t ? new Date(e.toLocaleString(\"en-US\", { timeZone: t })) : new Date(e), ja = (e, t, l) => {\n const a = Na(e, t, l);\n return a || G();\n}, fl = (e, t, l) => {\n const a = t.dateInTz ? qe(new Date(e), t.dateInTz) : G(e);\n return l ? Ge(a, !0) : a;\n}, Na = (e, t, l) => {\n if (!e) return null;\n const a = l ? Ge(G(e), !0) : G(e);\n return t ? t.exactMatch ? fl(e, t, l) : qe(a, t.timezone) : a;\n}, vl = (e) => {\n if (!e) return 0;\n const t = /* @__PURE__ */ new Date(), l = new Date(t.toLocaleString(\"en-US\", { timeZone: \"UTC\" })), a = new Date(t.toLocaleString(\"en-US\", { timeZone: e })), n = a.getTimezoneOffset() / 60;\n return (+l - +a) / (1e3 * 60 * 60) - n;\n};\nvar nt = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e))(nt || {}), Mt = /* @__PURE__ */ ((e) => (e.top = \"top\", e.bottom = \"bottom\", e))(Mt || {}), Tt = /* @__PURE__ */ ((e) => (e.header = \"header\", e.calendar = \"calendar\", e.timePicker = \"timePicker\", e))(Tt || {}), He = /* @__PURE__ */ ((e) => (e.month = \"month\", e.year = \"year\", e.calendar = \"calendar\", e.time = \"time\", e.minutes = \"minutes\", e.hours = \"hours\", e.seconds = \"seconds\", e))(He || {});\nconst ml = [\"timestamp\", \"date\", \"iso\"];\nvar je = /* @__PURE__ */ ((e) => (e.up = \"up\", e.down = \"down\", e.left = \"left\", e.right = \"right\", e))(je || {}), Pe = /* @__PURE__ */ ((e) => (e.arrowUp = \"ArrowUp\", e.arrowDown = \"ArrowDown\", e.arrowLeft = \"ArrowLeft\", e.arrowRight = \"ArrowRight\", e.enter = \"Enter\", e.space = \" \", e.esc = \"Escape\", e.tab = \"Tab\", e.home = \"Home\", e.end = \"End\", e.pageUp = \"PageUp\", e.pageDown = \"PageDown\", e))(Pe || {});\nfunction ln(e) {\n return (t) => new Intl.DateTimeFormat(e, { weekday: \"short\", timeZone: \"UTC\" }).format(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`)).slice(0, 2);\n}\nfunction pl(e) {\n return (t) => ut(qe(/* @__PURE__ */ new Date(`2017-01-0${t}T00:00:00+00:00`), \"UTC\"), \"EEEEEE\", { locale: e });\n}\nconst yl = (e, t, l) => {\n const a = [1, 2, 3, 4, 5, 6, 7];\n let n;\n if (e !== null)\n try {\n n = a.map(pl(e));\n } catch {\n n = a.map(ln(t));\n }\n else\n n = a.map(ln(t));\n const i = n.slice(0, l), d = n.slice(l + 1, n.length);\n return [n[l]].concat(...d).concat(...i);\n}, Ka = (e, t, l) => {\n const a = [];\n for (let n = +e[0]; n <= +e[1]; n++)\n a.push({ value: +n, text: Sn(n, t) });\n return l ? a.reverse() : a;\n}, $n = (e, t, l) => {\n const a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((i) => {\n const d = i < 10 ? `0${i}` : i;\n return /* @__PURE__ */ new Date(`2017-${d}-01T00:00:00+00:00`);\n });\n if (e !== null)\n try {\n const i = l === \"long\" ? \"LLLL\" : \"LLL\";\n return a.map((d, b) => {\n const c = ut(qe(d, \"UTC\"), i, { locale: e });\n return {\n text: c.charAt(0).toUpperCase() + c.substring(1),\n value: b\n };\n });\n } catch {\n }\n const n = new Intl.DateTimeFormat(t, { month: l, timeZone: \"UTC\" });\n return a.map((i, d) => {\n const b = n.format(i);\n return {\n text: b.charAt(0).toUpperCase() + b.substring(1),\n value: d\n };\n });\n}, gl = (e) => [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11][e], Ie = (e) => {\n const t = o(e);\n return t != null && t.$el ? t == null ? void 0 : t.$el : t;\n}, hl = (e) => ({ type: \"dot\", ...e ?? {} }), An = (e) => Array.isArray(e) ? !!e[0] && !!e[1] : !1, Ga = {\n prop: (e) => `\"${e}\" prop must be enabled!`,\n dateArr: (e) => `You need to use array as \"model-value\" binding in order to support \"${e}\"`\n}, Ye = (e) => e, rn = (e) => e === 0 ? e : !e || isNaN(+e) ? null : +e, on = (e) => e === null, Tn = (e) => {\n if (e)\n return [...e.querySelectorAll(\"input, button, select, textarea, a[href]\")][0];\n}, bl = (e) => {\n const t = [], l = (a) => a.filter((n) => n);\n for (let a = 0; a < e.length; a += 3) {\n const n = [e[a], e[a + 1], e[a + 2]];\n t.push(l(n));\n }\n return t;\n}, Gt = (e, t, l) => {\n const a = l != null, n = t != null;\n if (!a && !n) return !1;\n const i = +l, d = +t;\n return a && n ? +e > i || +e < d : a ? +e > i : n ? +e < d : !1;\n}, Yt = (e, t) => bl(e).map((l) => l.map((a) => {\n const { active: n, disabled: i, isBetween: d, highlighted: b } = t(a);\n return {\n ...a,\n active: n,\n disabled: i,\n className: {\n dp__overlay_cell_active: n,\n dp__overlay_cell: !n,\n dp__overlay_cell_disabled: i,\n dp__overlay_cell_pad: !0,\n dp__overlay_cell_active_disabled: i && n,\n dp__cell_in_between: d,\n \"dp--highlighted\": b\n }\n };\n})), yt = (e, t, l = !1) => {\n e && t.allowStopPropagation && (l && e.stopImmediatePropagation(), e.stopPropagation());\n}, kl = () => [\n \"a[href]\",\n \"area[href]\",\n \"input:not([disabled]):not([type='hidden'])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"[tabindex]:not([tabindex='-1'])\",\n \"[data-datepicker-instance]\"\n].join(\", \");\nfunction wl(e, t) {\n let l = [...document.querySelectorAll(kl())];\n l = l.filter((n) => !e.contains(n) || n.hasAttribute(\"data-datepicker-instance\"));\n const a = l.indexOf(e);\n if (a >= 0 && (t ? a - 1 >= 0 : a + 1 <= l.length))\n return l[a + (t ? -1 : 1)];\n}\nconst Ea = (e, t) => e == null ? void 0 : e.querySelector(`[data-dp-element=\"${t}\"]`), Sn = (e, t) => new Intl.NumberFormat(t, { useGrouping: !1, style: \"decimal\" }).format(e), Qa = (e) => ut(e, \"dd-MM-yyyy\"), $a = (e) => Array.isArray(e), sa = (e, t) => t.get(Qa(e)), Dl = (e, t) => e ? t ? t instanceof Map ? !!sa(e, t) : t(G(e)) : !1 : !0, Ke = (e, t, l = !1, a) => {\n if (e.key === Pe.enter || e.key === Pe.space)\n return l && e.preventDefault(), t();\n if (a) return a(e);\n}, sn = () => [\"iPad Simulator\", \"iPhone Simulator\", \"iPod Simulator\", \"iPad\", \"iPhone\", \"iPod\"].some(\n (e) => navigator.userAgent.includes(e)\n) || navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document, un = (e, t, l, a, n, i) => {\n const d = Ia(e, t.slice(0, e.length), /* @__PURE__ */ new Date(), { locale: i });\n return ra(d) && al(d) ? a || n ? d : Te(d, {\n hours: +l.hours,\n minutes: +(l == null ? void 0 : l.minutes),\n seconds: +(l == null ? void 0 : l.seconds),\n milliseconds: 0\n }) : null;\n}, Ml = (e, t, l, a, n, i) => {\n const d = Array.isArray(l) ? l[0] : l;\n if (typeof t == \"string\")\n return un(e, t, d, a, n, i);\n if (Array.isArray(t)) {\n let b = null;\n for (const c of t)\n if (b = un(e, c, d, a, n, i), b)\n break;\n return b;\n }\n return typeof t == \"function\" ? t(e) : null;\n}, G = (e) => e ? new Date(e) : /* @__PURE__ */ new Date(), $l = (e, t, l) => {\n if (t) {\n const n = (e.getMonth() + 1).toString().padStart(2, \"0\"), i = e.getDate().toString().padStart(2, \"0\"), d = e.getHours().toString().padStart(2, \"0\"), b = e.getMinutes().toString().padStart(2, \"0\"), c = l ? e.getSeconds().toString().padStart(2, \"0\") : \"00\";\n return `${e.getFullYear()}-${n}-${i}T${d}:${b}:${c}.000Z`;\n }\n const a = Date.UTC(\n e.getUTCFullYear(),\n e.getUTCMonth(),\n e.getUTCDate(),\n e.getUTCHours(),\n e.getUTCMinutes(),\n e.getUTCSeconds()\n );\n return new Date(a).toISOString();\n}, Ge = (e, t) => {\n const l = G(JSON.parse(JSON.stringify(e))), a = Te(l, { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 });\n return t ? Zn(a) : a;\n}, gt = (e, t, l, a) => {\n let n = e ? G(e) : G();\n return (t || t === 0) && (n = el(n, +t)), (l || l === 0) && (n = tl(n, +l)), (a || a === 0) && (n = yn(n, +a)), gn(n, 0);\n}, Oe = (e, t) => !e || !t ? !1 : Kt(Ge(e), Ge(t)), Me = (e, t) => !e || !t ? !1 : Ot(Ge(e), Ge(t)), Be = (e, t) => !e || !t ? !1 : _t(Ge(e), Ge(t)), da = (e, t, l) => e != null && e[0] && (e != null && e[1]) ? Be(l, e[0]) && Oe(l, e[1]) : e != null && e[0] && t ? Be(l, e[0]) && Oe(l, t) || Oe(l, e[0]) && Be(l, t) : !1, lt = (e) => {\n const t = Te(new Date(e), { date: 1 });\n return Ge(t);\n}, Aa = (e, t, l) => t && (l || l === 0) ? Object.fromEntries(\n [\"hours\", \"minutes\", \"seconds\"].map((a) => a === t ? [a, l] : [a, isNaN(+e[a]) ? void 0 : +e[a]])\n) : {\n hours: isNaN(+e.hours) ? void 0 : +e.hours,\n minutes: isNaN(+e.minutes) ? void 0 : +e.minutes,\n seconds: isNaN(+e.seconds) ? void 0 : +e.seconds\n}, St = (e) => ({\n hours: ft(e),\n minutes: ht(e),\n seconds: Bt(e)\n}), Pn = (e, t) => {\n if (t) {\n const l = pe(G(t));\n if (l > e) return 12;\n if (l === e) return De(G(t));\n }\n}, Rn = (e, t) => {\n if (t) {\n const l = pe(G(t));\n return l < e ? -1 : l === e ? De(G(t)) : void 0;\n }\n}, It = (e) => {\n if (e) return pe(G(e));\n}, Cn = (e, t) => {\n const l = Be(e, t) ? t : e, a = Be(t, e) ? t : e;\n return pn({ start: l, end: a });\n}, Al = (e) => {\n const t = At(e, 1);\n return { month: De(t), year: pe(t) };\n}, it = (e, t) => {\n const l = La(e, { weekStartsOn: +t }), a = hn(e, { weekStartsOn: +t });\n return [l, a];\n}, On = (e, t) => {\n const l = {\n hours: ft(G()),\n minutes: ht(G()),\n seconds: t ? Bt(G()) : 0\n };\n return Object.assign(l, e);\n}, pt = (e, t, l) => [Te(G(e), { date: 1 }), Te(G(), { month: t, year: l, date: 1 })], dt = (e, t, l) => {\n let a = e ? G(e) : G();\n return (t || t === 0) && (a = xn(a, t)), l && (a = st(a, l)), a;\n}, _n = (e, t, l, a, n) => {\n if (!a || n && !t || !n && !l) return !1;\n const i = n ? At(e, 1) : jt(e, 1), d = [De(i), pe(i)];\n return n ? !Sl(...d, t) : !Tl(...d, l);\n}, Tl = (e, t, l) => Oe(...pt(l, e, t)) || Me(...pt(l, e, t)), Sl = (e, t, l) => Be(...pt(l, e, t)) || Me(...pt(l, e, t)), Bn = (e, t, l, a, n, i, d) => {\n if (typeof t == \"function\" && !d) return t(e);\n const b = l ? { locale: l } : void 0;\n return Array.isArray(e) ? `${ut(e[0], i, b)}${n && !e[1] ? \"\" : a}${e[1] ? ut(e[1], i, b) : \"\"}` : ut(e, i, b);\n}, Rt = (e) => {\n if (e) return null;\n throw new Error(Ga.prop(\"partial-range\"));\n}, ta = (e, t) => {\n if (t) return e();\n throw new Error(Ga.prop(\"range\"));\n}, Fa = (e) => Array.isArray(e) ? ra(e[0]) && (e[1] ? ra(e[1]) : !0) : e ? ra(e) : !1, Pl = (e, t) => Te(t ?? G(), {\n hours: +e.hours || 0,\n minutes: +e.minutes || 0,\n seconds: +e.seconds || 0\n}), Ta = (e, t, l, a) => {\n if (!e) return !0;\n if (a) {\n const n = l === \"max\" ? Kt(e, t) : _t(e, t), i = { seconds: 0, milliseconds: 0 };\n return n || Ot(Te(e, i), Te(t, i));\n }\n return l === \"max\" ? e.getTime() <= t.getTime() : e.getTime() >= t.getTime();\n}, Sa = (e, t, l) => e ? Pl(e, t) : G(l ?? t), dn = (e, t, l, a, n) => {\n if (Array.isArray(a)) {\n const d = Sa(e, a[0], t), b = Sa(e, a[1], t);\n return Ta(a[0], d, l, !!t) && Ta(a[1], b, l, !!t) && n;\n }\n const i = Sa(e, a, t);\n return Ta(a, i, l, !!t) && n;\n}, Pa = (e) => Te(G(), St(e)), Rl = (e, t) => e instanceof Map ? Array.from(e.values()).filter((l) => pe(G(l)) === t).map((l) => De(l)) : [], Yn = (e, t, l) => typeof e == \"function\" ? e({ month: t, year: l }) : !!e.months.find((a) => a.month === t && a.year === l), qa = (e, t) => typeof e == \"function\" ? e(t) : e.years.includes(t), In = (e) => ut(e, \"yyyy-MM-dd\"), Ht = Qt({\n menuFocused: !1,\n shiftKeyInMenu: !1\n}), Nn = () => {\n const e = (a) => {\n Ht.menuFocused = a;\n }, t = (a) => {\n Ht.shiftKeyInMenu !== a && (Ht.shiftKeyInMenu = a);\n };\n return {\n control: J(() => ({ shiftKeyInMenu: Ht.shiftKeyInMenu, menuFocused: Ht.menuFocused })),\n setMenuFocused: e,\n setShiftKey: t\n };\n}, Se = Qt({\n monthYear: [],\n calendar: [],\n time: [],\n actionRow: [],\n selectionGrid: [],\n timePicker: {\n 0: [],\n 1: []\n },\n monthPicker: []\n}), Ra = ne(null), aa = ne(!1), Ca = ne(!1), Oa = ne(!1), _a = ne(!1), ze = ne(0), _e = ne(0), bt = () => {\n const e = J(() => aa.value ? [...Se.selectionGrid, Se.actionRow].filter((f) => f.length) : Ca.value ? [\n ...Se.timePicker[0],\n ...Se.timePicker[1],\n _a.value ? [] : [Ra.value],\n Se.actionRow\n ].filter((f) => f.length) : Oa.value ? [...Se.monthPicker, Se.actionRow] : [Se.monthYear, ...Se.calendar, Se.time, Se.actionRow].filter((f) => f.length)), t = (f) => {\n ze.value = f ? ze.value + 1 : ze.value - 1;\n let B = null;\n e.value[_e.value] && (B = e.value[_e.value][ze.value]), !B && e.value[_e.value + (f ? 1 : -1)] ? (_e.value = _e.value + (f ? 1 : -1), ze.value = f ? 0 : e.value[_e.value].length - 1) : B || (ze.value = f ? ze.value - 1 : ze.value + 1);\n }, l = (f) => {\n if (_e.value === 0 && !f || _e.value === e.value.length && f) return;\n _e.value = f ? _e.value + 1 : _e.value - 1, e.value[_e.value] ? e.value[_e.value] && !e.value[_e.value][ze.value] && ze.value !== 0 && (ze.value = e.value[_e.value].length - 1) : _e.value = f ? _e.value - 1 : _e.value + 1;\n }, a = (f) => {\n let B = null;\n e.value[_e.value] && (B = e.value[_e.value][ze.value]), B ? B.focus({ preventScroll: !aa.value }) : ze.value = f ? ze.value - 1 : ze.value + 1;\n }, n = () => {\n t(!0), a(!0);\n }, i = () => {\n t(!1), a(!1);\n }, d = () => {\n l(!1), a(!0);\n }, b = () => {\n l(!0), a(!0);\n }, c = (f, B) => {\n Se[B] = f;\n }, L = (f, B) => {\n Se[B] = f;\n }, v = () => {\n ze.value = 0, _e.value = 0;\n };\n return {\n buildMatrix: c,\n buildMultiLevelMatrix: L,\n setTimePickerBackRef: (f) => {\n Ra.value = f;\n },\n setSelectionGrid: (f) => {\n aa.value = f, v(), f || (Se.selectionGrid = []);\n },\n setTimePicker: (f, B = !1) => {\n Ca.value = f, _a.value = B, v(), f || (Se.timePicker[0] = [], Se.timePicker[1] = []);\n },\n setTimePickerElements: (f, B = 0) => {\n Se.timePicker[B] = f;\n },\n arrowRight: n,\n arrowLeft: i,\n arrowUp: d,\n arrowDown: b,\n clearArrowNav: () => {\n Se.monthYear = [], Se.calendar = [], Se.time = [], Se.actionRow = [], Se.selectionGrid = [], Se.timePicker[0] = [], Se.timePicker[1] = [], aa.value = !1, Ca.value = !1, _a.value = !1, Oa.value = !1, v(), Ra.value = null;\n },\n setMonthPicker: (f) => {\n Oa.value = f, v();\n },\n refSets: Se\n // exposed for testing\n };\n}, cn = (e) => ({\n menuAppearTop: \"dp-menu-appear-top\",\n menuAppearBottom: \"dp-menu-appear-bottom\",\n open: \"dp-slide-down\",\n close: \"dp-slide-up\",\n next: \"calendar-next\",\n previous: \"calendar-prev\",\n vNext: \"dp-slide-up\",\n vPrevious: \"dp-slide-down\",\n ...e ?? {}\n}), Cl = (e) => ({\n toggleOverlay: \"Toggle overlay\",\n menu: \"Datepicker menu\",\n input: \"Datepicker input\",\n openTimePicker: \"Open time picker\",\n closeTimePicker: \"Close time Picker\",\n incrementValue: (t) => `Increment ${t}`,\n decrementValue: (t) => `Decrement ${t}`,\n openTpOverlay: (t) => `Open ${t} overlay`,\n amPmButton: \"Switch AM/PM mode\",\n openYearsOverlay: \"Open years overlay\",\n openMonthsOverlay: \"Open months overlay\",\n nextMonth: \"Next month\",\n prevMonth: \"Previous month\",\n nextYear: \"Next year\",\n prevYear: \"Previous year\",\n day: void 0,\n weekDay: void 0,\n clearInput: \"Clear value\",\n calendarIcon: \"Calendar icon\",\n timePicker: \"Time picker\",\n monthPicker: (t) => `Month picker${t ? \" overlay\" : \"\"}`,\n yearPicker: (t) => `Year picker${t ? \" overlay\" : \"\"}`,\n timeOverlay: (t) => `${t} overlay`,\n ...e ?? {}\n}), fn = (e) => e ? typeof e == \"boolean\" ? e ? 2 : 0 : +e >= 2 ? +e : 2 : 0, Ol = (e) => {\n const t = typeof e == \"object\" && e, l = {\n static: !0,\n solo: !1\n };\n if (!e) return { ...l, count: fn(!1) };\n const a = t ? e : {}, n = t ? a.count ?? !0 : e, i = fn(n);\n return Object.assign(l, a, { count: i });\n}, _l = (e, t, l) => e || (typeof l == \"string\" ? l : t), Bl = (e) => typeof e == \"boolean\" ? e ? cn({}) : !1 : cn(e), Yl = (e) => {\n const t = {\n enterSubmit: !0,\n tabSubmit: !0,\n openMenu: \"open\",\n selectOnFocus: !1,\n rangeSeparator: \" - \"\n };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : { ...t, enabled: e };\n}, Il = (e) => ({\n months: [],\n years: [],\n times: { hours: [], minutes: [], seconds: [] },\n ...e ?? {}\n}), Nl = (e) => ({\n showSelect: !0,\n showCancel: !0,\n showNow: !1,\n showPreview: !0,\n ...e ?? {}\n}), El = (e) => {\n const t = { input: !1 };\n return typeof e == \"object\" ? { ...t, ...e ?? {}, enabled: !0 } : {\n enabled: e,\n ...t\n };\n}, Fl = (e) => ({ ...{\n allowStopPropagation: !0,\n closeOnScroll: !1,\n modeHeight: 255,\n allowPreventDefault: !1,\n closeOnClearValue: !0,\n closeOnAutoApply: !0,\n noSwipe: !1,\n keepActionRow: !1,\n onClickOutside: void 0,\n tabOutClosesMenu: !0,\n arrowLeft: void 0,\n keepViewOnOffsetClick: !1,\n timeArrowHoldThreshold: 0,\n shadowDom: !1\n}, ...e ?? {} }), Ll = (e) => {\n const t = {\n dates: Array.isArray(e) ? e.map((l) => G(l)) : [],\n years: [],\n months: [],\n quarters: [],\n weeks: [],\n weekdays: [],\n options: { highlightDisabled: !1 }\n };\n return typeof e == \"function\" ? e : { ...t, ...e ?? {} };\n}, zl = (e) => typeof e == \"object\" ? {\n type: (e == null ? void 0 : e.type) ?? \"local\",\n hideOnOffsetDates: (e == null ? void 0 : e.hideOnOffsetDates) ?? !1\n} : {\n type: e,\n hideOnOffsetDates: !1\n}, Hl = (e) => {\n const t = {\n noDisabledRange: !1,\n showLastInRange: !0,\n minMaxRawRange: !1,\n partialRange: !0,\n disableTimeRangeValidation: !1,\n maxRange: void 0,\n minRange: void 0,\n autoRange: void 0,\n fixedStart: !1,\n fixedEnd: !1\n };\n return typeof e == \"object\" ? { enabled: !0, ...t, ...e } : {\n enabled: e,\n ...t\n };\n}, Ul = (e) => e ? typeof e == \"string\" ? {\n timezone: e,\n exactMatch: !1,\n dateInTz: void 0,\n emitTimezone: void 0,\n convertModel: !0\n} : {\n timezone: e.timezone,\n exactMatch: e.exactMatch ?? !1,\n dateInTz: e.dateInTz ?? void 0,\n emitTimezone: e.emitTimezone ?? void 0,\n convertModel: e.convertModel ?? !0\n} : { timezone: void 0, exactMatch: !1, emitTimezone: void 0 }, Ba = (e, t, l) => new Map(\n e.map((a) => {\n const n = ja(a, t, l);\n return [Qa(n), n];\n })\n), Vl = (e, t) => e.length ? new Map(\n e.map((l) => {\n const a = ja(l.date, t);\n return [Qa(a), l];\n })\n) : null, Wl = (e) => {\n var t;\n return {\n minDate: Na(e.minDate, e.timezone, e.isSpecific),\n maxDate: Na(e.maxDate, e.timezone, e.isSpecific),\n disabledDates: $a(e.disabledDates) ? Ba(e.disabledDates, e.timezone, e.isSpecific) : e.disabledDates,\n allowedDates: $a(e.allowedDates) ? Ba(e.allowedDates, e.timezone, e.isSpecific) : null,\n highlight: typeof e.highlight == \"object\" && $a((t = e.highlight) == null ? void 0 : t.dates) ? Ba(e.highlight.dates, e.timezone) : e.highlight,\n markers: Vl(e.markers, e.timezone)\n };\n}, jl = (e) => typeof e == \"boolean\" ? { enabled: e, dragSelect: !0, limit: null } : {\n enabled: !!e,\n limit: e.limit ? +e.limit : null,\n dragSelect: e.dragSelect ?? !0\n}, Kl = (e) => ({\n ...Object.fromEntries(\n Object.keys(e).map((l) => {\n const a = l, n = e[a], i = typeof e[a] == \"string\" ? { [n]: !0 } : Object.fromEntries(n.map((d) => [d, !0]));\n return [l, i];\n })\n )\n}), Ce = (e) => {\n const t = () => {\n const oe = e.enableSeconds ? \":ss\" : \"\", ee = e.enableMinutes ? \":mm\" : \"\";\n return e.is24 ? `HH${ee}${oe}` : `hh${ee}${oe} aa`;\n }, l = () => {\n var oe;\n return e.format ? e.format : e.monthPicker ? \"MM/yyyy\" : e.timePicker ? t() : e.weekPicker ? `${((oe = U.value) == null ? void 0 : oe.type) === \"iso\" ? \"RR\" : \"ww\"}-yyyy` : e.yearPicker ? \"yyyy\" : e.quarterPicker ? \"QQQ/yyyy\" : e.enableTimePicker ? `MM/dd/yyyy, ${t()}` : \"MM/dd/yyyy\";\n }, a = (oe) => On(oe, e.enableSeconds), n = () => Q.value.enabled ? e.startTime && Array.isArray(e.startTime) ? [a(e.startTime[0]), a(e.startTime[1])] : null : e.startTime && !Array.isArray(e.startTime) ? a(e.startTime) : null, i = J(() => Ol(e.multiCalendars)), d = J(() => n()), b = J(() => Cl(e.ariaLabels)), c = J(() => Il(e.filters)), L = J(() => Bl(e.transitions)), v = J(() => Nl(e.actionRow)), _ = J(\n () => _l(e.previewFormat, e.format, l())\n ), h = J(() => Yl(e.textInput)), C = J(() => El(e.inline)), H = J(() => Fl(e.config)), E = J(() => Ll(e.highlight)), U = J(() => zl(e.weekNumbers)), f = J(() => Ul(e.timezone)), B = J(() => jl(e.multiDates)), P = J(\n () => Wl({\n minDate: e.minDate,\n maxDate: e.maxDate,\n disabledDates: e.disabledDates,\n allowedDates: e.allowedDates,\n highlight: E.value,\n markers: e.markers,\n timezone: f.value,\n isSpecific: e.monthPicker || e.yearPicker || e.quarterPicker\n })\n ), Q = J(() => Hl(e.range)), ae = J(() => Kl(e.ui));\n return {\n defaultedTransitions: L,\n defaultedMultiCalendars: i,\n defaultedStartTime: d,\n defaultedAriaLabels: b,\n defaultedFilters: c,\n defaultedActionRow: v,\n defaultedPreviewFormat: _,\n defaultedTextInput: h,\n defaultedInline: C,\n defaultedConfig: H,\n defaultedHighlight: E,\n defaultedWeekNumbers: U,\n defaultedRange: Q,\n propDates: P,\n defaultedTz: f,\n defaultedMultiDates: B,\n defaultedUI: ae,\n getDefaultPattern: l,\n getDefaultStartTime: n\n };\n}, Gl = (e, t, l) => {\n const a = ne(), { defaultedTextInput: n, defaultedRange: i, defaultedTz: d, defaultedMultiDates: b, getDefaultPattern: c } = Ce(t), L = ne(\"\"), v = Vt(t, \"format\"), _ = Vt(t, \"formatLocale\");\n at(\n a,\n () => {\n typeof t.onInternalModelChange == \"function\" && e(\"internal-model-change\", a.value, M(!0));\n },\n { deep: !0 }\n ), at(i, (u, le) => {\n u.enabled !== le.enabled && (a.value = null);\n }), at(v, () => {\n X();\n });\n const h = (u) => d.value.timezone && d.value.convertModel ? qe(u, d.value.timezone) : u, C = (u) => {\n if (d.value.timezone && d.value.convertModel) {\n const le = vl(d.value.timezone);\n return nl(u, le);\n }\n return u;\n }, H = (u, le, me = !1) => Bn(\n u,\n t.format,\n t.formatLocale,\n n.value.rangeSeparator,\n t.modelAuto,\n le ?? c(),\n me\n ), E = (u) => u ? t.modelType ? p(u) : {\n hours: ft(u),\n minutes: ht(u),\n seconds: t.enableSeconds ? Bt(u) : 0\n } : null, U = (u) => t.modelType ? p(u) : { month: De(u), year: pe(u) }, f = (u) => Array.isArray(u) ? b.value.enabled ? u.map((le) => B(le, st(G(), le))) : ta(\n () => [\n st(G(), u[0]),\n u[1] ? st(G(), u[1]) : Rt(i.value.partialRange)\n ],\n i.value.enabled\n ) : st(G(), +u), B = (u, le) => (typeof u == \"string\" || typeof u == \"number\") && t.modelType ? A(u) : le, P = (u) => Array.isArray(u) ? [\n B(\n u[0],\n gt(null, +u[0].hours, +u[0].minutes, u[0].seconds)\n ),\n B(\n u[1],\n gt(null, +u[1].hours, +u[1].minutes, u[1].seconds)\n )\n ] : B(u, gt(null, u.hours, u.minutes, u.seconds)), Q = (u) => {\n const le = Te(G(), { date: 1 });\n return Array.isArray(u) ? b.value.enabled ? u.map((me) => B(me, dt(le, +me.month, +me.year))) : ta(\n () => [\n B(u[0], dt(le, +u[0].month, +u[0].year)),\n B(\n u[1],\n u[1] ? dt(le, +u[1].month, +u[1].year) : Rt(i.value.partialRange)\n )\n ],\n i.value.enabled\n ) : B(u, dt(le, +u.month, +u.year));\n }, ae = (u) => {\n if (Array.isArray(u))\n return u.map((le) => A(le));\n throw new Error(Ga.dateArr(\"multi-dates\"));\n }, oe = (u) => {\n if (Array.isArray(u) && i.value.enabled) {\n const le = u[0], me = u[1];\n return [\n G(Array.isArray(le) ? le[0] : null),\n Array.isArray(me) && me.length ? G(me[0]) : null\n ];\n }\n return G(u[0]);\n }, ee = (u) => t.modelAuto ? Array.isArray(u) ? [A(u[0]), A(u[1])] : t.autoApply ? [A(u)] : [A(u), null] : Array.isArray(u) ? ta(\n () => u[1] ? [\n A(u[0]),\n u[1] ? A(u[1]) : Rt(i.value.partialRange)\n ] : [A(u[0])],\n i.value.enabled\n ) : A(u), S = () => {\n Array.isArray(a.value) && i.value.enabled && a.value.length === 1 && a.value.push(Rt(i.value.partialRange));\n }, x = () => {\n const u = a.value;\n return [\n p(u[0]),\n u[1] ? p(u[1]) : Rt(i.value.partialRange)\n ];\n }, Y = () => a.value[1] ? x() : p(Ye(a.value[0])), q = () => (a.value || []).map((u) => p(u)), de = (u = !1) => (u || S(), t.modelAuto ? Y() : b.value.enabled ? q() : Array.isArray(a.value) ? ta(() => x(), i.value.enabled) : p(Ye(a.value))), ve = (u) => !u || Array.isArray(u) && !u.length ? null : t.timePicker ? P(Ye(u)) : t.monthPicker ? Q(Ye(u)) : t.yearPicker ? f(Ye(u)) : b.value.enabled ? ae(Ye(u)) : t.weekPicker ? oe(Ye(u)) : ee(Ye(u)), y = (u) => {\n const le = ve(u);\n Fa(Ye(le)) ? (a.value = Ye(le), X()) : (a.value = null, L.value = \"\");\n }, z = () => {\n const u = (le) => ut(le, n.value.format);\n return `${u(a.value[0])} ${n.value.rangeSeparator} ${a.value[1] ? u(a.value[1]) : \"\"}`;\n }, te = () => l.value && a.value ? Array.isArray(a.value) ? z() : ut(a.value, n.value.format) : H(a.value), g = () => a.value ? b.value.enabled ? a.value.map((u) => H(u)).join(\"; \") : n.value.enabled && typeof n.value.format == \"string\" ? te() : H(a.value) : \"\", X = () => {\n !t.format || typeof t.format == \"string\" || n.value.enabled && typeof n.value.format == \"string\" ? L.value = g() : L.value = t.format(a.value);\n }, A = (u) => {\n if (t.utc) {\n const le = new Date(u);\n return t.utc === \"preserve\" ? new Date(le.getTime() + le.getTimezoneOffset() * 6e4) : le;\n }\n return t.modelType ? ml.includes(t.modelType) ? h(new Date(u)) : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? h(\n Ia(u, c(), /* @__PURE__ */ new Date(), { locale: _.value })\n ) : h(\n Ia(u, t.modelType, /* @__PURE__ */ new Date(), { locale: _.value })\n ) : h(new Date(u));\n }, p = (u) => u ? t.utc ? $l(u, t.utc === \"preserve\", t.enableSeconds) : t.modelType ? t.modelType === \"timestamp\" ? +C(u) : t.modelType === \"iso\" ? C(u).toISOString() : t.modelType === \"format\" && (typeof t.format == \"string\" || !t.format) ? H(C(u)) : H(C(u), t.modelType, !0) : C(u) : \"\", se = (u, le = !1, me = !1) => {\n if (me) return u;\n if (e(\"update:model-value\", u), d.value.emitTimezone && le) {\n const $ = Array.isArray(u) ? u.map((ge) => qe(Ye(ge), d.value.emitTimezone)) : qe(Ye(u), d.value.emitTimezone);\n e(\"update:model-timezone-value\", $);\n }\n }, I = (u) => Array.isArray(a.value) ? b.value.enabled ? a.value.map((le) => u(le)) : [\n u(a.value[0]),\n a.value[1] ? u(a.value[1]) : Rt(i.value.partialRange)\n ] : u(Ye(a.value)), D = () => {\n if (Array.isArray(a.value)) {\n const u = it(a.value[0], t.weekStart), le = a.value[1] ? it(a.value[1], t.weekStart) : [];\n return [u.map((me) => G(me)), le.map((me) => G(me))];\n }\n return it(a.value, t.weekStart).map((u) => G(u));\n }, V = (u, le) => se(Ye(I(u)), !1, le), s = (u) => {\n const le = D();\n return u ? le : e(\"update:model-value\", D());\n }, M = (u = !1) => (u || X(), t.monthPicker ? V(U, u) : t.timePicker ? V(E, u) : t.yearPicker ? V(pe, u) : t.weekPicker ? s(u) : se(de(u), !0, u));\n return {\n inputValue: L,\n internalModelValue: a,\n checkBeforeEmit: () => a.value ? i.value.enabled ? i.value.partialRange ? a.value.length >= 1 : a.value.length === 2 : !!a.value : !1,\n parseExternalModelValue: y,\n formatInputValue: X,\n emitModelValue: M\n };\n}, Ql = (e, t) => {\n const { defaultedFilters: l, propDates: a } = Ce(e), { validateMonthYearInRange: n } = kt(e), i = (v, _) => {\n let h = v;\n return l.value.months.includes(De(h)) ? (h = _ ? At(v, 1) : jt(v, 1), i(h, _)) : h;\n }, d = (v, _) => {\n let h = v;\n return l.value.years.includes(pe(h)) ? (h = _ ? bn(v, 1) : kn(v, 1), d(h, _)) : h;\n }, b = (v, _ = !1) => {\n const h = Te(G(), { month: e.month, year: e.year });\n let C = v ? At(h, 1) : jt(h, 1);\n e.disableYearSelect && (C = st(C, e.year));\n let H = De(C), E = pe(C);\n l.value.months.includes(H) && (C = i(C, v), H = De(C), E = pe(C)), l.value.years.includes(E) && (C = d(C, v), E = pe(C)), n(H, E, v, e.preventMinMaxNavigation) && c(H, E, _);\n }, c = (v, _, h) => {\n t(\"update-month-year\", { month: v, year: _, fromNav: h });\n }, L = J(() => (v) => _n(\n Te(G(), { month: e.month, year: e.year }),\n a.value.maxDate,\n a.value.minDate,\n e.preventMinMaxNavigation,\n v\n ));\n return { handleMonthYearChange: b, isDisabled: L, updateMonthYear: c };\n}, ca = {\n multiCalendars: { type: [Boolean, Number, String, Object], default: void 0 },\n modelValue: { type: [String, Date, Array, Object, Number], default: null },\n modelType: { type: String, default: null },\n position: { type: String, default: \"center\" },\n dark: { type: Boolean, default: !1 },\n format: {\n type: [String, Function],\n default: () => null\n },\n autoPosition: { type: Boolean, default: !0 },\n altPosition: { type: Function, default: null },\n transitions: { type: [Boolean, Object], default: !0 },\n formatLocale: { type: Object, default: null },\n utc: { type: [Boolean, String], default: !1 },\n ariaLabels: { type: Object, default: () => ({}) },\n offset: { type: [Number, String], default: 10 },\n hideNavigation: { type: Array, default: () => [] },\n timezone: { type: [String, Object], default: null },\n vertical: { type: Boolean, default: !1 },\n disableMonthYearSelect: { type: Boolean, default: !1 },\n disableYearSelect: { type: Boolean, default: !1 },\n dayClass: {\n type: Function,\n default: null\n },\n yearRange: { type: Array, default: () => [1900, 2100] },\n enableTimePicker: { type: Boolean, default: !0 },\n autoApply: { type: Boolean, default: !1 },\n disabledDates: { type: [Array, Function], default: () => [] },\n monthNameFormat: { type: String, default: \"short\" },\n startDate: { type: [Date, String], default: null },\n startTime: { type: [Object, Array], default: null },\n hideOffsetDates: { type: Boolean, default: !1 },\n noToday: { type: Boolean, default: !1 },\n disabledWeekDays: { type: Array, default: () => [] },\n allowedDates: { type: Array, default: null },\n nowButtonLabel: { type: String, default: \"Now\" },\n markers: { type: Array, default: () => [] },\n escClose: { type: Boolean, default: !0 },\n spaceConfirm: { type: Boolean, default: !0 },\n monthChangeOnArrows: { type: Boolean, default: !0 },\n presetDates: { type: Array, default: () => [] },\n flow: { type: Array, default: () => [] },\n partialFlow: { type: Boolean, default: !1 },\n preventMinMaxNavigation: { type: Boolean, default: !1 },\n reverseYears: { type: Boolean, default: !1 },\n weekPicker: { type: Boolean, default: !1 },\n filters: { type: Object, default: () => ({}) },\n arrowNavigation: { type: Boolean, default: !1 },\n highlight: {\n type: [Function, Object],\n default: null\n },\n teleport: { type: [Boolean, String, Object], default: null },\n teleportCenter: { type: Boolean, default: !1 },\n locale: { type: String, default: \"en-Us\" },\n weekNumName: { type: String, default: \"W\" },\n weekStart: { type: [Number, String], default: 1 },\n weekNumbers: {\n type: [String, Function, Object],\n default: null\n },\n monthChangeOnScroll: { type: [Boolean, String], default: !0 },\n dayNames: {\n type: [Function, Array],\n default: null\n },\n monthPicker: { type: Boolean, default: !1 },\n customProps: { type: Object, default: null },\n yearPicker: { type: Boolean, default: !1 },\n modelAuto: { type: Boolean, default: !1 },\n selectText: { type: String, default: \"Select\" },\n cancelText: { type: String, default: \"Cancel\" },\n previewFormat: {\n type: [String, Function],\n default: () => \"\"\n },\n multiDates: { type: [Object, Boolean], default: !1 },\n ignoreTimeValidation: { type: Boolean, default: !1 },\n minDate: { type: [Date, String], default: null },\n maxDate: { type: [Date, String], default: null },\n minTime: { type: Object, default: null },\n maxTime: { type: Object, default: null },\n name: { type: String, default: null },\n placeholder: { type: String, default: \"\" },\n hideInputIcon: { type: Boolean, default: !1 },\n clearable: { type: Boolean, default: !0 },\n state: { type: Boolean, default: null },\n required: { type: Boolean, default: !1 },\n autocomplete: { type: String, default: \"off\" },\n timePicker: { type: Boolean, default: !1 },\n enableSeconds: { type: Boolean, default: !1 },\n is24: { type: Boolean, default: !0 },\n noHoursOverlay: { type: Boolean, default: !1 },\n noMinutesOverlay: { type: Boolean, default: !1 },\n noSecondsOverlay: { type: Boolean, default: !1 },\n hoursGridIncrement: { type: [String, Number], default: 1 },\n minutesGridIncrement: { type: [String, Number], default: 5 },\n secondsGridIncrement: { type: [String, Number], default: 5 },\n hoursIncrement: { type: [Number, String], default: 1 },\n minutesIncrement: { type: [Number, String], default: 1 },\n secondsIncrement: { type: [Number, String], default: 1 },\n range: { type: [Boolean, Object], default: !1 },\n uid: { type: String, default: null },\n disabled: { type: Boolean, default: !1 },\n readonly: { type: Boolean, default: !1 },\n inline: { type: [Boolean, Object], default: !1 },\n textInput: { type: [Boolean, Object], default: !1 },\n sixWeeks: { type: [Boolean, String], default: !1 },\n actionRow: { type: Object, default: () => ({}) },\n focusStartDate: { type: Boolean, default: !1 },\n disabledTimes: { type: [Function, Array], default: void 0 },\n timePickerInline: { type: Boolean, default: !1 },\n calendar: { type: Function, default: null },\n config: { type: Object, default: void 0 },\n quarterPicker: { type: Boolean, default: !1 },\n yearFirst: { type: Boolean, default: !1 },\n loading: { type: Boolean, default: !1 },\n onInternalModelChange: { type: [Function, Object], default: null },\n enableMinutes: { type: Boolean, default: !0 },\n ui: { type: Object, default: () => ({}) }\n}, rt = {\n ...ca,\n shadow: { type: Boolean, default: !1 },\n flowStep: { type: Number, default: 0 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n menuWrapRef: { type: Object, default: null },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 }\n}, ql = [\"title\"], Xl = [\"disabled\"], Jl = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"ActionRow\",\n props: {\n menuMount: { type: Boolean, default: !1 },\n calendarWidth: { type: Number, default: 0 },\n ...rt\n },\n emits: [\"close-picker\", \"select-date\", \"select-now\", \"invalid-select\"],\n setup(e, { emit: t }) {\n const l = t, a = e, {\n defaultedActionRow: n,\n defaultedPreviewFormat: i,\n defaultedMultiCalendars: d,\n defaultedTextInput: b,\n defaultedInline: c,\n defaultedRange: L,\n defaultedMultiDates: v\n } = Ce(a), { isTimeValid: _, isMonthValid: h } = kt(a), { buildMatrix: C } = bt(), H = ne(null), E = ne(null), U = ne(!1), f = ne({}), B = ne(null), P = ne(null);\n We(() => {\n a.arrowNavigation && C([Ie(H), Ie(E)], \"actionRow\"), Q(), window.addEventListener(\"resize\", Q);\n }), ua(() => {\n window.removeEventListener(\"resize\", Q);\n });\n const Q = () => {\n U.value = !1, setTimeout(() => {\n var te, g;\n const y = (te = B.value) == null ? void 0 : te.getBoundingClientRect(), z = (g = P.value) == null ? void 0 : g.getBoundingClientRect();\n y && z && (f.value.maxWidth = `${z.width - y.width - 20}px`), U.value = !0;\n }, 0);\n }, ae = J(() => L.value.enabled && !L.value.partialRange && a.internalModelValue ? a.internalModelValue.length === 2 : !0), oe = J(\n () => !_.value(a.internalModelValue) || !h.value(a.internalModelValue) || !ae.value\n ), ee = () => {\n const y = i.value;\n return a.timePicker || a.monthPicker, y(Ye(a.internalModelValue));\n }, S = () => {\n const y = a.internalModelValue;\n return d.value.count > 0 ? `${x(y[0])} - ${x(y[1])}` : [x(y[0]), x(y[1])];\n }, x = (y) => Bn(\n y,\n i.value,\n a.formatLocale,\n b.value.rangeSeparator,\n a.modelAuto,\n i.value\n ), Y = J(() => !a.internalModelValue || !a.menuMount ? \"\" : typeof i.value == \"string\" ? Array.isArray(a.internalModelValue) ? a.internalModelValue.length === 2 && a.internalModelValue[1] ? S() : v.value.enabled ? a.internalModelValue.map((y) => `${x(y)}`) : a.modelAuto ? `${x(a.internalModelValue[0])}` : `${x(a.internalModelValue[0])} -` : x(a.internalModelValue) : ee()), q = () => v.value.enabled ? \"; \" : \" - \", de = J(\n () => Array.isArray(Y.value) ? Y.value.join(q()) : Y.value\n ), ve = () => {\n _.value(a.internalModelValue) && h.value(a.internalModelValue) && ae.value ? l(\"select-date\") : l(\"invalid-select\");\n };\n return (y, z) => (T(), K(\"div\", {\n ref_key: \"actionRowRef\",\n ref: P,\n class: \"dp__action_row\"\n }, [\n y.$slots[\"action-row\"] ? ie(y.$slots, \"action-row\", Ne(Ee({ key: 0 }, {\n internalModelValue: y.internalModelValue,\n disabled: oe.value,\n selectDate: () => y.$emit(\"select-date\"),\n closePicker: () => y.$emit(\"close-picker\")\n }))) : (T(), K(be, { key: 1 }, [\n o(n).showPreview ? (T(), K(\"div\", {\n key: 0,\n class: \"dp__selection_preview\",\n title: de.value,\n style: tt(f.value)\n }, [\n y.$slots[\"action-preview\"] && U.value ? ie(y.$slots, \"action-preview\", {\n key: 0,\n value: y.internalModelValue\n }) : Z(\"\", !0),\n !y.$slots[\"action-preview\"] && U.value ? (T(), K(be, { key: 1 }, [\n ct(Ue(de.value), 1)\n ], 64)) : Z(\"\", !0)\n ], 12, ql)) : Z(\"\", !0),\n ye(\"div\", {\n ref_key: \"actionBtnContainer\",\n ref: B,\n class: \"dp__action_buttons\",\n \"data-dp-element\": \"action-row\"\n }, [\n y.$slots[\"action-buttons\"] ? ie(y.$slots, \"action-buttons\", {\n key: 0,\n value: y.internalModelValue\n }) : Z(\"\", !0),\n y.$slots[\"action-buttons\"] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n !o(c).enabled && o(n).showCancel ? (T(), K(\"button\", {\n key: 0,\n ref_key: \"cancelButtonRef\",\n ref: H,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: z[0] || (z[0] = (te) => y.$emit(\"close-picker\")),\n onKeydown: z[1] || (z[1] = (te) => o(Ke)(te, () => y.$emit(\"close-picker\")))\n }, Ue(y.cancelText), 545)) : Z(\"\", !0),\n o(n).showNow ? (T(), K(\"button\", {\n key: 1,\n type: \"button\",\n class: \"dp__action_button dp__action_cancel\",\n onClick: z[2] || (z[2] = (te) => y.$emit(\"select-now\")),\n onKeydown: z[3] || (z[3] = (te) => o(Ke)(te, () => y.$emit(\"select-now\")))\n }, Ue(y.nowButtonLabel), 33)) : Z(\"\", !0),\n o(n).showSelect ? (T(), K(\"button\", {\n key: 2,\n ref_key: \"selectButtonRef\",\n ref: E,\n type: \"button\",\n class: \"dp__action_button dp__action_select\",\n disabled: oe.value,\n \"data-test\": \"select-button\",\n onKeydown: z[4] || (z[4] = (te) => o(Ke)(te, () => ve())),\n onClick: ve\n }, Ue(y.selectText), 41, Xl)) : Z(\"\", !0)\n ], 64))\n ], 512)\n ], 64))\n ], 512));\n }\n}), Zl = [\"role\", \"aria-label\", \"tabindex\"], xl = { class: \"dp__selection_grid_header\" }, er = [\"aria-selected\", \"aria-disabled\", \"data-test\", \"onClick\", \"onKeydown\", \"onMouseover\"], tr = [\"aria-label\"], qt = /* @__PURE__ */ Le({\n __name: \"SelectionOverlay\",\n props: {\n items: {},\n type: {},\n isLast: { type: Boolean },\n arrowNavigation: { type: Boolean },\n skipButtonRef: { type: Boolean },\n headerRefs: {},\n hideNavigation: {},\n escClose: { type: Boolean },\n useRelative: { type: Boolean },\n height: {},\n textInput: { type: [Boolean, Object] },\n config: {},\n noOverlayFocus: { type: Boolean },\n focusValue: {},\n menuWrapRef: {},\n ariaLabels: {},\n overlayLabel: {}\n },\n emits: [\"selected\", \"toggle\", \"reset-flow\", \"hover-value\"],\n setup(e, { expose: t, emit: l }) {\n const { setSelectionGrid: a, buildMultiLevelMatrix: n, setMonthPicker: i } = bt(), d = l, b = e, { defaultedAriaLabels: c, defaultedTextInput: L, defaultedConfig: v } = Ce(\n b\n ), { hideNavigationButtons: _ } = ma(), h = ne(!1), C = ne(null), H = ne(null), E = ne([]), U = ne(), f = ne(null), B = ne(0), P = ne(null);\n Kn(() => {\n C.value = null;\n }), We(() => {\n xe().then(() => q()), b.noOverlayFocus || ae(), Q(!0);\n }), ua(() => Q(!1));\n const Q = (I) => {\n var D;\n b.arrowNavigation && ((D = b.headerRefs) != null && D.length ? i(I) : a(I));\n }, ae = () => {\n var D;\n const I = Ie(H);\n I && (L.value.enabled || (C.value ? (D = C.value) == null || D.focus({ preventScroll: !0 }) : I.focus({ preventScroll: !0 })), h.value = I.clientHeight < I.scrollHeight);\n }, oe = J(\n () => ({\n dp__overlay: !0,\n \"dp--overlay-absolute\": !b.useRelative,\n \"dp--overlay-relative\": b.useRelative\n })\n ), ee = J(\n () => b.useRelative ? { height: `${b.height}px`, width: \"var(--dp-menu-min-width)\" } : void 0\n ), S = J(() => ({\n dp__overlay_col: !0\n })), x = J(\n () => ({\n dp__btn: !0,\n dp__button: !0,\n dp__overlay_action: !0,\n dp__over_action_scroll: h.value,\n dp__button_bottom: b.isLast\n })\n ), Y = J(() => {\n var I, D;\n return {\n dp__overlay_container: !0,\n dp__container_flex: ((I = b.items) == null ? void 0 : I.length) <= 6,\n dp__container_block: ((D = b.items) == null ? void 0 : D.length) > 6\n };\n });\n at(\n () => b.items,\n () => q(!1),\n { deep: !0 }\n );\n const q = (I = !0) => {\n xe().then(() => {\n const D = Ie(C), V = Ie(H), s = Ie(f), M = Ie(P), F = s ? s.getBoundingClientRect().height : 0;\n V && (V.getBoundingClientRect().height ? B.value = V.getBoundingClientRect().height - F : B.value = v.value.modeHeight - F), D && M && I && (M.scrollTop = D.offsetTop - M.offsetTop - (B.value / 2 - D.getBoundingClientRect().height) - F);\n });\n }, de = (I) => {\n I.disabled || d(\"selected\", I.value);\n }, ve = () => {\n d(\"toggle\"), d(\"reset-flow\");\n }, y = () => {\n b.escClose && ve();\n }, z = (I, D, V, s) => {\n I && ((D.active || D.value === b.focusValue) && (C.value = I), b.arrowNavigation && (Array.isArray(E.value[V]) ? E.value[V][s] = I : E.value[V] = [I], te()));\n }, te = () => {\n var D, V;\n const I = (D = b.headerRefs) != null && D.length ? [b.headerRefs].concat(E.value) : E.value.concat([b.skipButtonRef ? [] : [f.value]]);\n n(Ye(I), (V = b.headerRefs) != null && V.length ? \"monthPicker\" : \"selectionGrid\");\n }, g = (I) => {\n b.arrowNavigation || yt(I, v.value, !0);\n }, X = (I) => {\n U.value = I, d(\"hover-value\", I);\n }, A = () => {\n if (ve(), !b.isLast) {\n const I = Ea(b.menuWrapRef ?? null, \"action-row\");\n if (I) {\n const D = Tn(I);\n D == null || D.focus();\n }\n }\n }, p = (I) => {\n switch (I.key) {\n case Pe.esc:\n return y();\n case Pe.arrowLeft:\n return g(I);\n case Pe.arrowRight:\n return g(I);\n case Pe.arrowUp:\n return g(I);\n case Pe.arrowDown:\n return g(I);\n default:\n return;\n }\n }, se = (I) => {\n if (I.key === Pe.enter) return ve();\n if (I.key === Pe.tab) return A();\n };\n return t({ focusGrid: ae }), (I, D) => {\n var V;\n return T(), K(\"div\", {\n ref_key: \"gridWrapRef\",\n ref: H,\n class: we(oe.value),\n style: tt(ee.value),\n role: I.useRelative ? void 0 : \"dialog\",\n \"aria-label\": I.overlayLabel,\n tabindex: I.useRelative ? void 0 : \"0\",\n onKeydown: p,\n onClick: D[0] || (D[0] = Wt(() => {\n }, [\"prevent\"]))\n }, [\n ye(\"div\", {\n ref_key: \"containerRef\",\n ref: P,\n class: we(Y.value),\n style: tt({ \"--dp-overlay-height\": `${B.value}px` }),\n role: \"grid\"\n }, [\n ye(\"div\", xl, [\n ie(I.$slots, \"header\")\n ]),\n I.$slots.overlay ? ie(I.$slots, \"overlay\", { key: 0 }) : (T(!0), K(be, { key: 1 }, Re(I.items, (s, M) => (T(), K(\"div\", {\n key: M,\n class: we([\"dp__overlay_row\", { dp__flex_row: I.items.length >= 3 }]),\n role: \"row\"\n }, [\n (T(!0), K(be, null, Re(s, (F, u) => (T(), K(\"div\", {\n key: F.value,\n ref_for: !0,\n ref: (le) => z(le, F, M, u),\n role: \"gridcell\",\n class: we(S.value),\n \"aria-selected\": F.active || void 0,\n \"aria-disabled\": F.disabled || void 0,\n tabindex: \"0\",\n \"data-test\": F.text,\n onClick: Wt((le) => de(F), [\"prevent\"]),\n onKeydown: (le) => o(Ke)(le, () => de(F), !0),\n onMouseover: (le) => X(F.value)\n }, [\n ye(\"div\", {\n class: we(F.className)\n }, [\n I.$slots.item ? ie(I.$slots, \"item\", {\n key: 0,\n item: F\n }) : Z(\"\", !0),\n I.$slots.item ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(F.text), 1)\n ], 64))\n ], 2)\n ], 42, er))), 128))\n ], 2))), 128))\n ], 6),\n I.$slots[\"button-icon\"] ? na((T(), K(\"button\", {\n key: 0,\n ref_key: \"toggleButton\",\n ref: f,\n type: \"button\",\n \"aria-label\": (V = o(c)) == null ? void 0 : V.toggleOverlay,\n class: we(x.value),\n tabindex: \"0\",\n onClick: ve,\n onKeydown: se\n }, [\n ie(I.$slots, \"button-icon\")\n ], 42, tr)), [\n [la, !o(_)(I.hideNavigation, I.type)]\n ]) : Z(\"\", !0)\n ], 46, Zl);\n };\n }\n}), fa = /* @__PURE__ */ Le({\n __name: \"InstanceWrap\",\n props: {\n multiCalendars: {},\n stretch: { type: Boolean },\n collapse: { type: Boolean }\n },\n setup(e) {\n const t = e, l = J(\n () => t.multiCalendars > 0 ? [...Array(t.multiCalendars).keys()] : [0]\n ), a = J(() => ({\n dp__instance_calendar: t.multiCalendars > 0\n }));\n return (n, i) => (T(), K(\"div\", {\n class: we({\n dp__menu_inner: !n.stretch,\n \"dp--menu--inner-stretched\": n.stretch,\n dp__flex_display: n.multiCalendars > 0,\n \"dp--flex-display-collapsed\": n.collapse\n })\n }, [\n (T(!0), K(be, null, Re(l.value, (d, b) => (T(), K(\"div\", {\n key: d,\n class: we(a.value)\n }, [\n ie(n.$slots, \"default\", {\n instance: d,\n index: b\n })\n ], 2))), 128))\n ], 2));\n }\n}), ar = [\"data-dp-element\", \"aria-label\", \"aria-disabled\"], Ut = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"ArrowBtn\",\n props: {\n ariaLabel: {},\n elName: {},\n disabled: { type: Boolean }\n },\n emits: [\"activate\", \"set-ref\"],\n setup(e, { emit: t }) {\n const l = t, a = ne(null);\n return We(() => l(\"set-ref\", a)), (n, i) => (T(), K(\"button\", {\n ref_key: \"elRef\",\n ref: a,\n type: \"button\",\n \"data-dp-element\": n.elName,\n class: \"dp__btn dp--arrow-btn-nav\",\n tabindex: \"0\",\n \"aria-label\": n.ariaLabel,\n \"aria-disabled\": n.disabled || void 0,\n onClick: i[0] || (i[0] = (d) => n.$emit(\"activate\")),\n onKeydown: i[1] || (i[1] = (d) => o(Ke)(d, () => n.$emit(\"activate\"), !0))\n }, [\n ye(\"span\", {\n class: we([\"dp__inner_nav\", { dp__inner_nav_disabled: n.disabled }])\n }, [\n ie(n.$slots, \"default\")\n ], 2)\n ], 40, ar));\n }\n}), nr = [\"aria-label\", \"data-test\"], En = /* @__PURE__ */ Le({\n __name: \"YearModePicker\",\n props: {\n ...rt,\n showYearPicker: { type: Boolean, default: !1 },\n items: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n isDisabled: { type: Function, default: () => !1 }\n },\n emits: [\"toggle-year-picker\", \"year-select\", \"handle-year\"],\n setup(e, { emit: t }) {\n const l = t, a = e, { showRightIcon: n, showLeftIcon: i } = ma(), { defaultedConfig: d, defaultedMultiCalendars: b, defaultedAriaLabels: c, defaultedTransitions: L, defaultedUI: v } = Ce(a), { showTransition: _, transitionName: h } = Xt(L), C = ne(!1), H = (f = !1, B) => {\n C.value = !C.value, l(\"toggle-year-picker\", { flow: f, show: B });\n }, E = (f) => {\n C.value = !1, l(\"year-select\", f);\n }, U = (f = !1) => {\n l(\"handle-year\", f);\n };\n return (f, B) => {\n var P, Q, ae, oe, ee;\n return T(), K(be, null, [\n ye(\"div\", {\n class: we([\"dp--year-mode-picker\", { \"dp--hidden-el\": C.value }])\n }, [\n o(i)(o(b), e.instance) ? (T(), $e(Ut, {\n key: 0,\n ref: \"mpPrevIconRef\",\n \"aria-label\": (P = o(c)) == null ? void 0 : P.prevYear,\n disabled: e.isDisabled(!1),\n class: we((Q = o(v)) == null ? void 0 : Q.navBtnPrev),\n onActivate: B[0] || (B[0] = (S) => U(!1))\n }, {\n default: ke(() => [\n f.$slots[\"arrow-left\"] ? ie(f.$slots, \"arrow-left\", { key: 0 }) : Z(\"\", !0),\n f.$slots[\"arrow-left\"] ? Z(\"\", !0) : (T(), $e(o(za), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Z(\"\", !0),\n ye(\"button\", {\n ref: \"mpYearButtonRef\",\n class: \"dp__btn dp--year-select\",\n type: \"button\",\n \"aria-label\": `${e.year}-${(ae = o(c)) == null ? void 0 : ae.openYearsOverlay}`,\n \"data-test\": `year-mode-btn-${e.instance}`,\n onClick: B[1] || (B[1] = () => H(!1)),\n onKeydown: B[2] || (B[2] = Gn(() => H(!1), [\"enter\"]))\n }, [\n f.$slots.year ? ie(f.$slots, \"year\", {\n key: 0,\n year: e.year\n }) : Z(\"\", !0),\n f.$slots.year ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(e.year), 1)\n ], 64))\n ], 40, nr),\n o(n)(o(b), e.instance) ? (T(), $e(Ut, {\n key: 1,\n ref: \"mpNextIconRef\",\n \"aria-label\": (oe = o(c)) == null ? void 0 : oe.nextYear,\n disabled: e.isDisabled(!0),\n class: we((ee = o(v)) == null ? void 0 : ee.navBtnNext),\n onActivate: B[3] || (B[3] = (S) => U(!0))\n }, {\n default: ke(() => [\n f.$slots[\"arrow-right\"] ? ie(f.$slots, \"arrow-right\", { key: 0 }) : Z(\"\", !0),\n f.$slots[\"arrow-right\"] ? Z(\"\", !0) : (T(), $e(o(Ha), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Z(\"\", !0)\n ], 2),\n Ze(Nt, {\n name: o(h)(e.showYearPicker),\n css: o(_)\n }, {\n default: ke(() => {\n var S, x;\n return [\n e.showYearPicker ? (T(), $e(qt, {\n key: 0,\n items: e.items,\n \"text-input\": f.textInput,\n \"esc-close\": f.escClose,\n config: f.config,\n \"is-last\": f.autoApply && !o(d).keepActionRow,\n \"hide-navigation\": f.hideNavigation,\n \"aria-labels\": f.ariaLabels,\n \"overlay-label\": (x = (S = o(c)) == null ? void 0 : S.yearPicker) == null ? void 0 : x.call(S, !0),\n type: \"year\",\n onToggle: H,\n onSelected: B[4] || (B[4] = (Y) => E(Y))\n }, Ve({\n \"button-icon\": ke(() => [\n f.$slots[\"calendar-icon\"] ? ie(f.$slots, \"calendar-icon\", { key: 0 }) : Z(\"\", !0),\n f.$slots[\"calendar-icon\"] ? Z(\"\", !0) : (T(), $e(o(Et), { key: 1 }))\n ]),\n _: 2\n }, [\n f.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: ke(({ item: Y }) => [\n ie(f.$slots, \"year-overlay-value\", {\n text: Y.text,\n value: Y.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"text-input\", \"esc-close\", \"config\", \"is-last\", \"hide-navigation\", \"aria-labels\", \"overlay-label\"])) : Z(\"\", !0)\n ];\n }),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 64);\n };\n }\n}), Xa = (e, t, l) => {\n if (t.value && Array.isArray(t.value))\n if (t.value.some((a) => Me(e, a))) {\n const a = t.value.filter((n) => !Me(n, e));\n t.value = a.length ? a : null;\n } else (l && +l > t.value.length || !l) && t.value.push(e);\n else\n t.value = [e];\n}, Ja = (e, t, l) => {\n let a = e.value ? e.value.slice() : [];\n return a.length === 2 && a[1] !== null && (a = []), a.length ? Oe(t, a[0]) ? (a.unshift(t), l(\"range-start\", a[0]), l(\"range-start\", a[1])) : (a[1] = t, l(\"range-end\", t)) : (a = [t], l(\"range-start\", t)), a;\n}, va = (e, t, l, a) => {\n e && (e[0] && e[1] && l && t(\"auto-apply\"), e[0] && !e[1] && a && l && t(\"auto-apply\"));\n}, Fn = (e) => {\n Array.isArray(e.value) && e.value.length <= 2 && e.range ? e.modelValue.value = e.value.map((t) => qe(G(t), e.timezone)) : Array.isArray(e.value) || (e.modelValue.value = qe(G(e.value), e.timezone));\n}, Ln = (e, t, l, a) => Array.isArray(t.value) && (t.value.length === 2 || t.value.length === 1 && a.value.partialRange) ? a.value.fixedStart && (Be(e, t.value[0]) || Me(e, t.value[0])) ? [t.value[0], e] : a.value.fixedEnd && (Oe(e, t.value[1]) || Me(e, t.value[1])) ? [e, t.value[1]] : (l(\"invalid-fixed-range\", e), t.value) : [], zn = ({\n multiCalendars: e,\n range: t,\n highlight: l,\n propDates: a,\n calendars: n,\n modelValue: i,\n props: d,\n filters: b,\n year: c,\n month: L,\n emit: v\n}) => {\n const _ = J(() => Ka(d.yearRange, d.locale, d.reverseYears)), h = ne([!1]), C = J(() => (Y, q) => {\n const de = Te(lt(/* @__PURE__ */ new Date()), {\n month: L.value(Y),\n year: c.value(Y)\n }), ve = q ? wn(de) : oa(de);\n return _n(\n ve,\n a.value.maxDate,\n a.value.minDate,\n d.preventMinMaxNavigation,\n q\n );\n }), H = () => Array.isArray(i.value) && e.value.solo && i.value[1], E = () => {\n for (let Y = 0; Y < e.value.count; Y++)\n if (Y === 0)\n n.value[Y] = n.value[0];\n else if (Y === e.value.count - 1 && H())\n n.value[Y] = {\n month: De(i.value[1]),\n year: pe(i.value[1])\n };\n else {\n const q = Te(G(), n.value[Y - 1]);\n n.value[Y] = { month: De(q), year: pe(bn(q, 1)) };\n }\n }, U = (Y) => {\n if (!Y) return E();\n const q = Te(G(), n.value[Y]);\n return n.value[0].year = pe(kn(q, e.value.count - 1)), E();\n }, f = (Y, q) => {\n const de = ll(q, Y);\n return t.value.showLastInRange && de > 1 ? q : Y;\n }, B = (Y) => d.focusStartDate || e.value.solo ? Y[0] : Y[1] ? f(Y[0], Y[1]) : Y[0], P = () => {\n if (i.value) {\n const Y = Array.isArray(i.value) ? B(i.value) : i.value;\n n.value[0] = { month: De(Y), year: pe(Y) };\n }\n }, Q = () => {\n P(), e.value.count && E();\n };\n at(i, (Y, q) => {\n d.isTextInputDate && JSON.stringify(Y ?? {}) !== JSON.stringify(q ?? {}) && Q();\n }), We(() => {\n Q();\n });\n const ae = (Y, q) => {\n n.value[q].year = Y, v(\"update-month-year\", { instance: q, year: Y, month: n.value[q].month }), e.value.count && !e.value.solo && U(q);\n }, oe = J(() => (Y) => Yt(_.value, (q) => {\n var z;\n const de = c.value(Y) === q.value, ve = Gt(\n q.value,\n It(a.value.minDate),\n It(a.value.maxDate)\n ) || ((z = b.value.years) == null ? void 0 : z.includes(c.value(Y))), y = qa(l.value, q.value);\n return { active: de, disabled: ve, highlighted: y };\n })), ee = (Y, q) => {\n ae(Y, q), x(q);\n }, S = (Y, q = !1) => {\n if (!C.value(Y, q)) {\n const de = q ? c.value(Y) + 1 : c.value(Y) - 1;\n ae(de, Y);\n }\n }, x = (Y, q = !1, de) => {\n q || v(\"reset-flow\"), de !== void 0 ? h.value[Y] = de : h.value[Y] = !h.value[Y], h.value[Y] ? v(\"overlay-toggle\", { open: !0, overlay: He.year }) : (v(\"overlay-closed\"), v(\"overlay-toggle\", { open: !1, overlay: He.year }));\n };\n return {\n isDisabled: C,\n groupedYears: oe,\n showYearPicker: h,\n selectYear: ae,\n toggleYearPicker: x,\n handleYearSelect: ee,\n handleYear: S\n };\n}, lr = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedAriaLabels: a,\n defaultedTransitions: n,\n defaultedConfig: i,\n defaultedRange: d,\n defaultedHighlight: b,\n propDates: c,\n defaultedTz: L,\n defaultedFilters: v,\n defaultedMultiDates: _\n } = Ce(e), h = () => {\n e.isTextInputDate && Q(pe(G(e.startDate)), 0);\n }, { modelValue: C, year: H, month: E, calendars: U } = Jt(e, t, h), f = J(() => $n(e.formatLocale, e.locale, e.monthNameFormat)), B = ne(null), { checkMinMaxRange: P } = kt(e), {\n selectYear: Q,\n groupedYears: ae,\n showYearPicker: oe,\n toggleYearPicker: ee,\n handleYearSelect: S,\n handleYear: x,\n isDisabled: Y\n } = zn({\n modelValue: C,\n multiCalendars: l,\n range: d,\n highlight: b,\n calendars: U,\n year: H,\n propDates: c,\n month: E,\n filters: v,\n props: e,\n emit: t\n });\n We(() => {\n e.startDate && (C.value && e.focusStartDate || !C.value) && Q(pe(G(e.startDate)), 0);\n });\n const q = (M) => M ? { month: De(M), year: pe(M) } : { month: null, year: null }, de = () => C.value ? Array.isArray(C.value) ? C.value.map((M) => q(M)) : q(C.value) : q(), ve = (M, F) => {\n const u = U.value[M], le = de();\n return Array.isArray(le) ? le.some((me) => me.year === (u == null ? void 0 : u.year) && me.month === F) : (u == null ? void 0 : u.year) === le.year && F === le.month;\n }, y = (M, F, u) => {\n var me, $;\n const le = de();\n return Array.isArray(le) ? H.value(F) === ((me = le[u]) == null ? void 0 : me.year) && M === (($ = le[u]) == null ? void 0 : $.month) : !1;\n }, z = (M, F) => {\n if (d.value.enabled) {\n const u = de();\n if (Array.isArray(C.value) && Array.isArray(u)) {\n const le = y(M, F, 0) || y(M, F, 1), me = dt(lt(G()), M, H.value(F));\n return da(C.value, B.value, me) && !le;\n }\n return !1;\n }\n return !1;\n }, te = J(() => (M) => Yt(f.value, (F) => {\n var ge;\n const u = ve(M, F.value), le = Gt(\n F.value,\n Pn(H.value(M), c.value.minDate),\n Rn(H.value(M), c.value.maxDate)\n ) || Rl(c.value.disabledDates, H.value(M)).includes(F.value) || ((ge = v.value.months) == null ? void 0 : ge.includes(F.value)), me = z(F.value, M), $ = Yn(b.value, F.value, H.value(M));\n return { active: u, disabled: le, isBetween: me, highlighted: $ };\n })), g = (M, F) => dt(lt(G()), M, H.value(F)), X = (M, F) => {\n const u = C.value ? C.value : lt(/* @__PURE__ */ new Date());\n C.value = dt(u, M, H.value(F)), t(\"auto-apply\"), t(\"update-flow-step\");\n }, A = (M, F) => {\n const u = g(M, F);\n d.value.fixedEnd || d.value.fixedStart ? C.value = Ln(u, C, t, d) : C.value ? P(u, C.value) && (C.value = Ja(C, g(M, F), t)) : C.value = [g(M, F)], xe().then(() => {\n va(C.value, t, e.autoApply, e.modelAuto);\n });\n }, p = (M, F) => {\n Xa(g(M, F), C, _.value.limit), t(\"auto-apply\", !0);\n }, se = (M, F) => (U.value[F].month = M, D(F, U.value[F].year, M), _.value.enabled ? p(M, F) : d.value.enabled ? A(M, F) : X(M, F)), I = (M, F) => {\n Q(M, F), D(F, M, null);\n }, D = (M, F, u) => {\n let le = u;\n if (!le && le !== 0) {\n const me = de();\n le = Array.isArray(me) ? me[M].month : me.month;\n }\n t(\"update-month-year\", { instance: M, year: F, month: le });\n };\n return {\n groupedMonths: te,\n groupedYears: ae,\n year: H,\n isDisabled: Y,\n defaultedMultiCalendars: l,\n defaultedAriaLabels: a,\n defaultedTransitions: n,\n defaultedConfig: i,\n showYearPicker: oe,\n modelValue: C,\n presetDate: (M, F) => {\n Fn({\n value: M,\n modelValue: C,\n range: d.value.enabled,\n timezone: F ? void 0 : L.value.timezone\n }), t(\"auto-apply\");\n },\n setHoverDate: (M, F) => {\n B.value = g(M, F);\n },\n selectMonth: se,\n selectYear: I,\n toggleYearPicker: ee,\n handleYearSelect: S,\n handleYear: x,\n getModelMonthYear: de\n };\n}, rr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"MonthPicker\",\n props: {\n ...rt\n },\n emits: [\n \"update:internal-model-value\",\n \"overlay-closed\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\",\n \"update-flow-step\",\n \"mount\",\n \"invalid-fixed-range\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = Pt(), i = Je(n, \"yearMode\"), d = e;\n We(() => {\n d.shadow || a(\"mount\", null);\n });\n const {\n groupedMonths: b,\n groupedYears: c,\n year: L,\n isDisabled: v,\n defaultedMultiCalendars: _,\n defaultedConfig: h,\n showYearPicker: C,\n modelValue: H,\n presetDate: E,\n setHoverDate: U,\n selectMonth: f,\n selectYear: B,\n toggleYearPicker: P,\n handleYearSelect: Q,\n handleYear: ae,\n getModelMonthYear: oe\n } = lr(d, a);\n return t({ getSidebarProps: () => ({\n modelValue: H,\n year: L,\n getModelMonthYear: oe,\n selectMonth: f,\n selectYear: B,\n handleYear: ae\n }), presetDate: E, toggleYearPicker: (S) => P(0, S) }), (S, x) => (T(), $e(fa, {\n \"multi-calendars\": o(_).count,\n collapse: S.collapse,\n stretch: \"\"\n }, {\n default: ke(({ instance: Y }) => [\n S.$slots[\"top-extra\"] ? ie(S.$slots, \"top-extra\", {\n key: 0,\n value: S.internalModelValue\n }) : Z(\"\", !0),\n S.$slots[\"month-year\"] ? ie(S.$slots, \"month-year\", Ne(Ee({ key: 1 }, {\n year: o(L),\n months: o(b)(Y),\n years: o(c)(Y),\n selectMonth: o(f),\n selectYear: o(B),\n instance: Y\n }))) : (T(), $e(qt, {\n key: 2,\n items: o(b)(Y),\n \"arrow-navigation\": S.arrowNavigation,\n \"is-last\": S.autoApply && !o(h).keepActionRow,\n \"esc-close\": S.escClose,\n height: o(h).modeHeight,\n config: S.config,\n \"no-overlay-focus\": !!(S.noOverlayFocus || S.textInput),\n \"use-relative\": \"\",\n type: \"month\",\n onSelected: (q) => o(f)(q, Y),\n onHoverValue: (q) => o(U)(q, Y)\n }, Ve({\n header: ke(() => [\n Ze(En, Ee(S.$props, {\n items: o(c)(Y),\n instance: Y,\n \"show-year-picker\": o(C)[Y],\n year: o(L)(Y),\n \"is-disabled\": (q) => o(v)(Y, q),\n onHandleYear: (q) => o(ae)(Y, q),\n onYearSelect: (q) => o(Q)(q, Y),\n onToggleYearPicker: (q) => o(P)(Y, q == null ? void 0 : q.flow, q == null ? void 0 : q.show)\n }), Ve({ _: 2 }, [\n Re(o(i), (q, de) => ({\n name: q,\n fn: ke((ve) => [\n ie(S.$slots, q, Ne(Qe(ve)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n _: 2\n }, [\n S.$slots[\"month-overlay-value\"] ? {\n name: \"item\",\n fn: ke(({ item: q }) => [\n ie(S.$slots, \"month-overlay-value\", {\n text: q.text,\n value: q.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"is-last\", \"esc-close\", \"height\", \"config\", \"no-overlay-focus\", \"onSelected\", \"onHoverValue\"]))\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\"]));\n }\n}), or = (e, t) => {\n const l = () => {\n e.isTextInputDate && (v.value = pe(G(e.startDate)));\n }, { modelValue: a } = Jt(e, t, l), n = ne(null), { defaultedHighlight: i, defaultedMultiDates: d, defaultedFilters: b, defaultedRange: c, propDates: L } = Ce(e), v = ne();\n We(() => {\n e.startDate && (a.value && e.focusStartDate || !a.value) && (v.value = pe(G(e.startDate)));\n });\n const _ = (f) => Array.isArray(a.value) ? a.value.some((B) => pe(B) === f) : a.value ? pe(a.value) === f : !1, h = (f) => c.value.enabled && Array.isArray(a.value) ? da(a.value, n.value, H(f)) : !1, C = J(() => Yt(Ka(e.yearRange, e.locale, e.reverseYears), (f) => {\n const B = _(f.value), P = Gt(\n f.value,\n It(L.value.minDate),\n It(L.value.maxDate)\n ) || b.value.years.includes(f.value), Q = h(f.value) && !B, ae = qa(i.value, f.value);\n return { active: B, disabled: P, isBetween: Q, highlighted: ae };\n })), H = (f) => st(lt(oa(/* @__PURE__ */ new Date())), f);\n return {\n groupedYears: C,\n modelValue: a,\n focusYear: v,\n setHoverValue: (f) => {\n n.value = st(lt(/* @__PURE__ */ new Date()), f);\n },\n selectYear: (f) => {\n var B;\n if (t(\"update-month-year\", { instance: 0, year: f }), d.value.enabled)\n return a.value ? Array.isArray(a.value) && (((B = a.value) == null ? void 0 : B.map((Q) => pe(Q))).includes(f) ? a.value = a.value.filter((Q) => pe(Q) !== f) : a.value.push(st(Ge(G()), f))) : a.value = [st(Ge(oa(G())), f)], t(\"auto-apply\", !0);\n c.value.enabled ? (a.value = Ja(a, H(f), t), xe().then(() => {\n va(a.value, t, e.autoApply, e.modelAuto);\n })) : (a.value = H(f), t(\"auto-apply\"));\n }\n };\n}, sr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"YearPicker\",\n props: {\n ...rt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"range-start\",\n \"range-end\",\n \"auto-apply\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, { groupedYears: i, modelValue: d, focusYear: b, selectYear: c, setHoverValue: L } = or(n, a), { defaultedConfig: v } = Ce(n);\n return t({ getSidebarProps: () => ({\n modelValue: d,\n selectYear: c\n }) }), (h, C) => (T(), K(\"div\", null, [\n h.$slots[\"top-extra\"] ? ie(h.$slots, \"top-extra\", {\n key: 0,\n value: h.internalModelValue\n }) : Z(\"\", !0),\n h.$slots[\"month-year\"] ? ie(h.$slots, \"month-year\", Ne(Ee({ key: 1 }, {\n years: o(i),\n selectYear: o(c)\n }))) : (T(), $e(qt, {\n key: 2,\n items: o(i),\n \"is-last\": h.autoApply && !o(v).keepActionRow,\n height: o(v).modeHeight,\n config: h.config,\n \"no-overlay-focus\": !!(h.noOverlayFocus || h.textInput),\n \"focus-value\": o(b),\n type: \"year\",\n \"use-relative\": \"\",\n onSelected: o(c),\n onHoverValue: o(L)\n }, Ve({ _: 2 }, [\n h.$slots[\"year-overlay-value\"] ? {\n name: \"item\",\n fn: ke(({ item: H }) => [\n ie(h.$slots, \"year-overlay-value\", {\n text: H.text,\n value: H.value\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"height\", \"config\", \"no-overlay-focus\", \"focus-value\", \"onSelected\", \"onHoverValue\"]))\n ]));\n }\n}), ur = {\n key: 0,\n class: \"dp__time_input\"\n}, ir = [\"data-test\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], dr = [\"aria-label\", \"disabled\", \"data-test\", \"onKeydown\", \"onClick\"], cr = [\"data-test\", \"aria-label\", \"onKeydown\", \"onClick\", \"onMousedown\"], fr = { key: 0 }, vr = [\"aria-label\"], mr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimeInput\",\n props: {\n hours: { type: Number, default: 0 },\n minutes: { type: Number, default: 0 },\n seconds: { type: Number, default: 0 },\n closeTimePickerBtn: { type: Object, default: null },\n order: { type: Number, default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: { type: Function, default: () => !1 },\n ...rt\n },\n emits: [\n \"set-hours\",\n \"set-minutes\",\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"reset-flow\",\n \"mounted\",\n \"overlay-closed\",\n \"overlay-opened\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, { setTimePickerElements: i, setTimePickerBackRef: d } = bt(), { defaultedAriaLabels: b, defaultedTransitions: c, defaultedFilters: L, defaultedConfig: v, defaultedRange: _ } = Ce(n), { transitionName: h, showTransition: C } = Xt(c), H = Qt({\n hours: !1,\n minutes: !1,\n seconds: !1\n }), E = ne(\"AM\"), U = ne(null), f = ne([]), B = ne(), P = ne(!1);\n We(() => {\n a(\"mounted\");\n });\n const Q = (r) => Te(/* @__PURE__ */ new Date(), {\n hours: r.hours,\n minutes: r.minutes,\n seconds: n.enableSeconds ? r.seconds : 0,\n milliseconds: 0\n }), ae = J(\n () => (r) => g(r, n[r]) || ee(r, n[r])\n ), oe = J(() => ({ hours: n.hours, minutes: n.minutes, seconds: n.seconds })), ee = (r, R) => _.value.enabled && !_.value.disableTimeRangeValidation ? !n.validateTime(r, R) : !1, S = (r, R) => {\n if (_.value.enabled && !_.value.disableTimeRangeValidation) {\n const O = R ? +n[`${r}Increment`] : -+n[`${r}Increment`], W = n[r] + O;\n return !n.validateTime(r, W);\n }\n return !1;\n }, x = J(() => (r) => !I(+n[r] + +n[`${r}Increment`], r) || S(r, !0)), Y = J(() => (r) => !I(+n[r] - +n[`${r}Increment`], r) || S(r, !1)), q = (r, R) => Dn(Te(G(), r), R), de = (r, R) => rl(Te(G(), r), R), ve = J(\n () => ({\n dp__time_col: !0,\n dp__time_col_block: !n.timePickerInline,\n dp__time_col_reg_block: !n.enableSeconds && n.is24 && !n.timePickerInline,\n dp__time_col_reg_inline: !n.enableSeconds && n.is24 && n.timePickerInline,\n dp__time_col_reg_with_button: !n.enableSeconds && !n.is24,\n dp__time_col_sec: n.enableSeconds && n.is24,\n dp__time_col_sec_with_button: n.enableSeconds && !n.is24\n })\n ), y = J(() => {\n const r = [{ type: \"hours\" }];\n return n.enableMinutes && r.push({ type: \"\", separator: !0 }, {\n type: \"minutes\"\n }), n.enableSeconds && r.push({ type: \"\", separator: !0 }, {\n type: \"seconds\"\n }), r;\n }), z = J(() => y.value.filter((r) => !r.separator)), te = J(() => (r) => {\n if (r === \"hours\") {\n const R = u(+n.hours);\n return { text: R < 10 ? `0${R}` : `${R}`, value: R };\n }\n return { text: n[r] < 10 ? `0${n[r]}` : `${n[r]}`, value: n[r] };\n }), g = (r, R) => {\n var W;\n if (!n.disabledTimesConfig) return !1;\n const O = n.disabledTimesConfig(n.order, r === \"hours\" ? R : void 0);\n return O[r] ? !!((W = O[r]) != null && W.includes(R)) : !0;\n }, X = (r, R) => R !== \"hours\" || E.value === \"AM\" ? r : r + 12, A = (r) => {\n const R = n.is24 ? 24 : 12, O = r === \"hours\" ? R : 60, W = +n[`${r}GridIncrement`], ue = r === \"hours\" && !n.is24 ? W : 0, w = [];\n for (let N = ue; N < O; N += W)\n w.push({ value: n.is24 ? N : X(N, r), text: N < 10 ? `0${N}` : `${N}` });\n return r === \"hours\" && !n.is24 && w.unshift({ value: E.value === \"PM\" ? 12 : 0, text: \"12\" }), Yt(w, (N) => ({ active: !1, disabled: L.value.times[r].includes(N.value) || !I(N.value, r) || g(r, N.value) || ee(r, N.value) }));\n }, p = (r) => r >= 0 ? r : 59, se = (r) => r >= 0 ? r : 23, I = (r, R) => {\n const O = n.minTime ? Q(Aa(n.minTime)) : null, W = n.maxTime ? Q(Aa(n.maxTime)) : null, ue = Q(\n Aa(\n oe.value,\n R,\n R === \"minutes\" || R === \"seconds\" ? p(r) : se(r)\n )\n );\n return O && W ? (Kt(ue, W) || Ot(ue, W)) && (_t(ue, O) || Ot(ue, O)) : O ? _t(ue, O) || Ot(ue, O) : W ? Kt(ue, W) || Ot(ue, W) : !0;\n }, D = (r) => n[`no${r[0].toUpperCase() + r.slice(1)}Overlay`], V = (r) => {\n D(r) || (H[r] = !H[r], H[r] ? (P.value = !0, a(\"overlay-opened\", r)) : (P.value = !1, a(\"overlay-closed\", r)));\n }, s = (r) => r === \"hours\" ? ft : r === \"minutes\" ? ht : Bt, M = () => {\n B.value && clearTimeout(B.value);\n }, F = (r, R = !0, O) => {\n const W = R ? q : de, ue = R ? +n[`${r}Increment`] : -+n[`${r}Increment`];\n I(+n[r] + ue, r) && a(\n `update:${r}`,\n s(r)(W({ [r]: +n[r] }, { [r]: +n[`${r}Increment`] }))\n ), !(O != null && O.keyboard) && v.value.timeArrowHoldThreshold && (B.value = setTimeout(() => {\n F(r, R);\n }, v.value.timeArrowHoldThreshold));\n }, u = (r) => n.is24 ? r : (r >= 12 ? E.value = \"PM\" : E.value = \"AM\", gl(r)), le = () => {\n E.value === \"PM\" ? (E.value = \"AM\", a(\"update:hours\", n.hours - 12)) : (E.value = \"PM\", a(\"update:hours\", n.hours + 12)), a(\"am-pm-change\", E.value);\n }, me = (r) => {\n H[r] = !0;\n }, $ = (r, R, O) => {\n if (r && n.arrowNavigation) {\n Array.isArray(f.value[R]) ? f.value[R][O] = r : f.value[R] = [r];\n const W = f.value.reduce(\n (ue, w) => w.map((N, ce) => [...ue[ce] || [], w[ce]]),\n []\n );\n d(n.closeTimePickerBtn), U.value && (W[1] = W[1].concat(U.value)), i(W, n.order);\n }\n }, ge = (r, R) => (V(r), a(`update:${r}`, R));\n return t({ openChildCmp: me }), (r, R) => {\n var O;\n return r.disabled ? Z(\"\", !0) : (T(), K(\"div\", ur, [\n (T(!0), K(be, null, Re(y.value, (W, ue) => {\n var w, N, ce;\n return T(), K(\"div\", {\n key: ue,\n class: we(ve.value)\n }, [\n W.separator ? (T(), K(be, { key: 0 }, [\n P.value ? Z(\"\", !0) : (T(), K(be, { key: 0 }, [\n ct(\":\")\n ], 64))\n ], 64)) : (T(), K(be, { key: 1 }, [\n ye(\"button\", {\n ref_for: !0,\n ref: (he) => $(he, ue, 0),\n type: \"button\",\n class: we({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_top: r.timePickerInline,\n dp__inc_dec_button_disabled: x.value(W.type),\n \"dp--hidden-el\": P.value\n }),\n \"data-test\": `${W.type}-time-inc-btn-${n.order}`,\n \"aria-label\": (w = o(b)) == null ? void 0 : w.incrementValue(W.type),\n tabindex: \"0\",\n onKeydown: (he) => o(Ke)(he, () => F(W.type, !0, { keyboard: !0 }), !0),\n onClick: (he) => o(v).timeArrowHoldThreshold ? void 0 : F(W.type, !0),\n onMousedown: (he) => o(v).timeArrowHoldThreshold ? F(W.type, !0) : void 0,\n onMouseup: M\n }, [\n n.timePickerInline ? (T(), K(be, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-up\"] ? ie(r.$slots, \"tp-inline-arrow-up\", { key: 0 }) : (T(), K(be, { key: 1 }, [\n R[2] || (R[2] = ye(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n R[3] || (R[3] = ye(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (T(), K(be, { key: 0 }, [\n r.$slots[\"arrow-up\"] ? ie(r.$slots, \"arrow-up\", { key: 0 }) : Z(\"\", !0),\n r.$slots[\"arrow-up\"] ? Z(\"\", !0) : (T(), $e(o(Va), { key: 1 }))\n ], 64))\n ], 42, ir),\n ye(\"button\", {\n ref_for: !0,\n ref: (he) => $(he, ue, 1),\n type: \"button\",\n \"aria-label\": `${te.value(W.type).text}-${(N = o(b)) == null ? void 0 : N.openTpOverlay(W.type)}`,\n class: we({\n dp__time_display: !0,\n dp__time_display_block: !r.timePickerInline,\n dp__time_display_inline: r.timePickerInline,\n \"dp--time-invalid\": ae.value(W.type),\n \"dp--time-overlay-btn\": !ae.value(W.type),\n \"dp--hidden-el\": P.value\n }),\n disabled: D(W.type),\n tabindex: \"0\",\n \"data-test\": `${W.type}-toggle-overlay-btn-${n.order}`,\n onKeydown: (he) => o(Ke)(he, () => V(W.type), !0),\n onClick: (he) => V(W.type)\n }, [\n r.$slots[W.type] ? ie(r.$slots, W.type, {\n key: 0,\n text: te.value(W.type).text,\n value: te.value(W.type).value\n }) : Z(\"\", !0),\n r.$slots[W.type] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(te.value(W.type).text), 1)\n ], 64))\n ], 42, dr),\n ye(\"button\", {\n ref_for: !0,\n ref: (he) => $(he, ue, 2),\n type: \"button\",\n class: we({\n dp__btn: !0,\n dp__inc_dec_button: !r.timePickerInline,\n dp__inc_dec_button_inline: r.timePickerInline,\n dp__tp_inline_btn_bottom: r.timePickerInline,\n dp__inc_dec_button_disabled: Y.value(W.type),\n \"dp--hidden-el\": P.value\n }),\n \"data-test\": `${W.type}-time-dec-btn-${n.order}`,\n \"aria-label\": (ce = o(b)) == null ? void 0 : ce.decrementValue(W.type),\n tabindex: \"0\",\n onKeydown: (he) => o(Ke)(he, () => F(W.type, !1, { keyboard: !0 }), !0),\n onClick: (he) => o(v).timeArrowHoldThreshold ? void 0 : F(W.type, !1),\n onMousedown: (he) => o(v).timeArrowHoldThreshold ? F(W.type, !1) : void 0,\n onMouseup: M\n }, [\n n.timePickerInline ? (T(), K(be, { key: 1 }, [\n r.$slots[\"tp-inline-arrow-down\"] ? ie(r.$slots, \"tp-inline-arrow-down\", { key: 0 }) : (T(), K(be, { key: 1 }, [\n R[4] || (R[4] = ye(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_l\" }, null, -1)),\n R[5] || (R[5] = ye(\"span\", { class: \"dp__tp_inline_btn_bar dp__tp_btn_in_r\" }, null, -1))\n ], 64))\n ], 64)) : (T(), K(be, { key: 0 }, [\n r.$slots[\"arrow-down\"] ? ie(r.$slots, \"arrow-down\", { key: 0 }) : Z(\"\", !0),\n r.$slots[\"arrow-down\"] ? Z(\"\", !0) : (T(), $e(o(Wa), { key: 1 }))\n ], 64))\n ], 42, cr)\n ], 64))\n ], 2);\n }), 128)),\n r.is24 ? Z(\"\", !0) : (T(), K(\"div\", fr, [\n r.$slots[\"am-pm-button\"] ? ie(r.$slots, \"am-pm-button\", {\n key: 0,\n toggle: le,\n value: E.value\n }) : Z(\"\", !0),\n r.$slots[\"am-pm-button\"] ? Z(\"\", !0) : (T(), K(\"button\", {\n key: 1,\n ref_key: \"amPmButton\",\n ref: U,\n type: \"button\",\n class: \"dp__pm_am_button\",\n role: \"button\",\n \"aria-label\": (O = o(b)) == null ? void 0 : O.amPmButton,\n tabindex: \"0\",\n onClick: le,\n onKeydown: R[0] || (R[0] = (W) => o(Ke)(W, () => le(), !0))\n }, Ue(E.value), 41, vr))\n ])),\n (T(!0), K(be, null, Re(z.value, (W, ue) => (T(), $e(Nt, {\n key: ue,\n name: o(h)(H[W.type]),\n css: o(C)\n }, {\n default: ke(() => {\n var w, N;\n return [\n H[W.type] ? (T(), $e(qt, {\n key: 0,\n items: A(W.type),\n \"is-last\": r.autoApply && !o(v).keepActionRow,\n \"esc-close\": r.escClose,\n type: W.type,\n \"text-input\": r.textInput,\n config: r.config,\n \"arrow-navigation\": r.arrowNavigation,\n \"aria-labels\": r.ariaLabels,\n \"overlay-label\": (N = (w = o(b)).timeOverlay) == null ? void 0 : N.call(w, W.type),\n onSelected: (ce) => ge(W.type, ce),\n onToggle: (ce) => V(W.type),\n onResetFlow: R[1] || (R[1] = (ce) => r.$emit(\"reset-flow\"))\n }, Ve({\n \"button-icon\": ke(() => [\n r.$slots[\"clock-icon\"] ? ie(r.$slots, \"clock-icon\", { key: 0 }) : Z(\"\", !0),\n r.$slots[\"clock-icon\"] ? Z(\"\", !0) : (T(), $e(ia(r.timePickerInline ? o(Et) : o(Ua)), { key: 1 }))\n ]),\n _: 2\n }, [\n r.$slots[`${W.type}-overlay-value`] ? {\n name: \"item\",\n fn: ke(({ item: ce }) => [\n ie(r.$slots, `${W.type}-overlay-value`, {\n text: ce.text,\n value: ce.value\n })\n ]),\n key: \"0\"\n } : void 0,\n r.$slots[`${W.type}-overlay-header`] ? {\n name: \"header\",\n fn: ke(() => [\n ie(r.$slots, `${W.type}-overlay-header`, {\n toggle: () => V(W.type)\n })\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"items\", \"is-last\", \"esc-close\", \"type\", \"text-input\", \"config\", \"arrow-navigation\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Z(\"\", !0)\n ];\n }),\n _: 2\n }, 1032, [\"name\", \"css\"]))), 128))\n ]));\n };\n }\n}), pr = { class: \"dp--tp-wrap\" }, yr = [\"aria-label\", \"tabindex\"], gr = [\"role\", \"aria-label\", \"tabindex\"], hr = [\"aria-label\"], Hn = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePicker\",\n props: {\n hours: { type: [Number, Array], default: 0 },\n minutes: { type: [Number, Array], default: 0 },\n seconds: { type: [Number, Array], default: 0 },\n disabledTimesConfig: { type: Function, default: null },\n validateTime: {\n type: Function,\n default: () => !1\n },\n ...rt\n },\n emits: [\n \"update:hours\",\n \"update:minutes\",\n \"update:seconds\",\n \"mount\",\n \"reset-flow\",\n \"overlay-opened\",\n \"overlay-closed\",\n \"am-pm-change\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, { buildMatrix: i, setTimePicker: d } = bt(), b = Pt(), { defaultedTransitions: c, defaultedAriaLabels: L, defaultedTextInput: v, defaultedConfig: _, defaultedRange: h } = Ce(n), { transitionName: C, showTransition: H } = Xt(c), { hideNavigationButtons: E } = ma(), U = ne(null), f = ne(null), B = ne([]), P = ne(null), Q = ne(!1);\n We(() => {\n a(\"mount\"), !n.timePicker && n.arrowNavigation ? i([Ie(U.value)], \"time\") : d(!0, n.timePicker);\n });\n const ae = J(() => h.value.enabled && n.modelAuto ? An(n.internalModelValue) : !0), oe = ne(!1), ee = (A) => ({\n hours: Array.isArray(n.hours) ? n.hours[A] : n.hours,\n minutes: Array.isArray(n.minutes) ? n.minutes[A] : n.minutes,\n seconds: Array.isArray(n.seconds) ? n.seconds[A] : n.seconds\n }), S = J(() => {\n const A = [];\n if (h.value.enabled)\n for (let p = 0; p < 2; p++)\n A.push(ee(p));\n else\n A.push(ee(0));\n return A;\n }), x = (A, p = !1, se = \"\") => {\n p || a(\"reset-flow\"), oe.value = A, a(A ? \"overlay-opened\" : \"overlay-closed\", He.time), n.arrowNavigation && d(A), xe(() => {\n se !== \"\" && B.value[0] && B.value[0].openChildCmp(se);\n });\n }, Y = J(() => ({\n dp__btn: !0,\n dp__button: !0,\n dp__button_bottom: n.autoApply && !_.value.keepActionRow\n })), q = Je(b, \"timePicker\"), de = (A, p, se) => h.value.enabled ? p === 0 ? [A, S.value[1][se]] : [S.value[0][se], A] : A, ve = (A) => {\n a(\"update:hours\", A);\n }, y = (A) => {\n a(\"update:minutes\", A);\n }, z = (A) => {\n a(\"update:seconds\", A);\n }, te = () => {\n if (P.value && !v.value.enabled && !n.noOverlayFocus) {\n const A = Tn(P.value);\n A && A.focus({ preventScroll: !0 });\n }\n }, g = (A) => {\n Q.value = !1, a(\"overlay-closed\", A);\n }, X = (A) => {\n Q.value = !0, a(\"overlay-opened\", A);\n };\n return t({ toggleTimePicker: x }), (A, p) => {\n var se;\n return T(), K(\"div\", pr, [\n !A.timePicker && !A.timePickerInline ? na((T(), K(\"button\", {\n key: 0,\n ref_key: \"openTimePickerBtn\",\n ref: U,\n type: \"button\",\n class: we({ ...Y.value, \"dp--hidden-el\": oe.value }),\n \"aria-label\": (se = o(L)) == null ? void 0 : se.openTimePicker,\n tabindex: A.noOverlayFocus ? void 0 : 0,\n \"data-test\": \"open-time-picker-btn\",\n onKeydown: p[0] || (p[0] = (I) => o(Ke)(I, () => x(!0))),\n onClick: p[1] || (p[1] = (I) => x(!0))\n }, [\n A.$slots[\"clock-icon\"] ? ie(A.$slots, \"clock-icon\", { key: 0 }) : Z(\"\", !0),\n A.$slots[\"clock-icon\"] ? Z(\"\", !0) : (T(), $e(o(Ua), { key: 1 }))\n ], 42, yr)), [\n [la, !o(E)(A.hideNavigation, \"time\")]\n ]) : Z(\"\", !0),\n Ze(Nt, {\n name: o(C)(oe.value),\n css: o(H) && !A.timePickerInline\n }, {\n default: ke(() => {\n var I, D;\n return [\n oe.value || A.timePicker || A.timePickerInline ? (T(), K(\"div\", {\n key: 0,\n ref_key: \"overlayRef\",\n ref: P,\n role: A.timePickerInline ? void 0 : \"dialog\",\n class: we({\n dp__overlay: !A.timePickerInline,\n \"dp--overlay-absolute\": !n.timePicker && !A.timePickerInline,\n \"dp--overlay-relative\": n.timePicker\n }),\n style: tt(A.timePicker ? { height: `${o(_).modeHeight}px` } : void 0),\n \"aria-label\": (I = o(L)) == null ? void 0 : I.timePicker,\n tabindex: A.timePickerInline ? void 0 : 0\n }, [\n ye(\"div\", {\n class: we(\n A.timePickerInline ? \"dp__time_picker_inline_container\" : \"dp__overlay_container dp__container_flex dp__time_picker_overlay_container\"\n ),\n style: { display: \"flex\" }\n }, [\n A.$slots[\"time-picker-overlay\"] ? ie(A.$slots, \"time-picker-overlay\", {\n key: 0,\n hours: e.hours,\n minutes: e.minutes,\n seconds: e.seconds,\n setHours: ve,\n setMinutes: y,\n setSeconds: z\n }) : Z(\"\", !0),\n A.$slots[\"time-picker-overlay\"] ? Z(\"\", !0) : (T(), K(\"div\", {\n key: 1,\n class: we(A.timePickerInline ? \"dp__flex\" : \"dp__overlay_row dp__flex_row\")\n }, [\n (T(!0), K(be, null, Re(S.value, (V, s) => na((T(), $e(mr, Ee({\n key: s,\n ref_for: !0\n }, {\n ...A.$props,\n order: s,\n hours: V.hours,\n minutes: V.minutes,\n seconds: V.seconds,\n closeTimePickerBtn: f.value,\n disabledTimesConfig: e.disabledTimesConfig,\n disabled: s === 0 ? o(h).fixedStart : o(h).fixedEnd\n }, {\n ref_for: !0,\n ref_key: \"timeInputRefs\",\n ref: B,\n \"validate-time\": (M, F) => e.validateTime(M, de(F, s, M)),\n \"onUpdate:hours\": (M) => ve(de(M, s, \"hours\")),\n \"onUpdate:minutes\": (M) => y(de(M, s, \"minutes\")),\n \"onUpdate:seconds\": (M) => z(de(M, s, \"seconds\")),\n onMounted: te,\n onOverlayClosed: g,\n onOverlayOpened: X,\n onAmPmChange: p[2] || (p[2] = (M) => A.$emit(\"am-pm-change\", M))\n }), Ve({ _: 2 }, [\n Re(o(q), (M, F) => ({\n name: M,\n fn: ke((u) => [\n ie(A.$slots, M, Ee({ ref_for: !0 }, u))\n ])\n }))\n ]), 1040, [\"validate-time\", \"onUpdate:hours\", \"onUpdate:minutes\", \"onUpdate:seconds\"])), [\n [la, s === 0 ? !0 : ae.value]\n ])), 128))\n ], 2)),\n !A.timePicker && !A.timePickerInline ? na((T(), K(\"button\", {\n key: 2,\n ref_key: \"closeTimePickerBtn\",\n ref: f,\n type: \"button\",\n class: we({ ...Y.value, \"dp--hidden-el\": Q.value }),\n \"aria-label\": (D = o(L)) == null ? void 0 : D.closeTimePicker,\n tabindex: \"0\",\n onKeydown: p[3] || (p[3] = (V) => o(Ke)(V, () => x(!1))),\n onClick: p[4] || (p[4] = (V) => x(!1))\n }, [\n A.$slots[\"calendar-icon\"] ? ie(A.$slots, \"calendar-icon\", { key: 0 }) : Z(\"\", !0),\n A.$slots[\"calendar-icon\"] ? Z(\"\", !0) : (T(), $e(o(Et), { key: 1 }))\n ], 42, hr)), [\n [la, !o(E)(A.hideNavigation, \"time\")]\n ]) : Z(\"\", !0)\n ], 2)\n ], 14, gr)) : Z(\"\", !0)\n ];\n }),\n _: 3\n }, 8, [\"name\", \"css\"])\n ]);\n };\n }\n}), Un = (e, t, l, a) => {\n const { defaultedRange: n } = Ce(e), i = (P, Q) => Array.isArray(t[P]) ? t[P][Q] : t[P], d = (P) => e.enableSeconds ? Array.isArray(t.seconds) ? t.seconds[P] : t.seconds : 0, b = (P, Q) => P ? Q !== void 0 ? gt(P, i(\"hours\", Q), i(\"minutes\", Q), d(Q)) : gt(P, t.hours, t.minutes, d()) : yn(G(), d(Q)), c = (P, Q) => {\n t[P] = Q;\n }, L = J(() => e.modelAuto && n.value.enabled ? Array.isArray(l.value) ? l.value.length > 1 : !1 : n.value.enabled), v = (P, Q) => {\n const ae = Object.fromEntries(\n Object.keys(t).map((oe) => oe === P ? [oe, Q] : [oe, t[oe]].slice())\n );\n if (L.value && !n.value.disableTimeRangeValidation) {\n const oe = (S) => l.value ? gt(\n l.value[S],\n ae.hours[S],\n ae.minutes[S],\n ae.seconds[S]\n ) : null, ee = (S) => gn(l.value[S], 0);\n return !(Me(oe(0), oe(1)) && (_t(oe(0), ee(1)) || Kt(oe(1), ee(0))));\n }\n return !0;\n }, _ = (P, Q) => {\n v(P, Q) && (c(P, Q), a && a());\n }, h = (P) => {\n _(\"hours\", P);\n }, C = (P) => {\n _(\"minutes\", P);\n }, H = (P) => {\n _(\"seconds\", P);\n }, E = (P, Q, ae, oe) => {\n Q && h(P), !Q && !ae && C(P), ae && H(P), l.value && oe(l.value);\n }, U = (P) => {\n if (P) {\n const Q = Array.isArray(P), ae = Q ? [+P[0].hours, +P[1].hours] : +P.hours, oe = Q ? [+P[0].minutes, +P[1].minutes] : +P.minutes, ee = Q ? [+P[0].seconds, +P[1].seconds] : +P.seconds;\n c(\"hours\", ae), c(\"minutes\", oe), e.enableSeconds && c(\"seconds\", ee);\n }\n }, f = (P, Q) => {\n const ae = {\n hours: Array.isArray(t.hours) ? t.hours[P] : t.hours,\n disabledArr: []\n };\n return (Q || Q === 0) && (ae.hours = Q), Array.isArray(e.disabledTimes) && (ae.disabledArr = n.value.enabled && Array.isArray(e.disabledTimes[P]) ? e.disabledTimes[P] : e.disabledTimes), ae;\n }, B = J(() => (P, Q) => {\n var ae;\n if (Array.isArray(e.disabledTimes)) {\n const { disabledArr: oe, hours: ee } = f(P, Q), S = oe.filter((x) => +x.hours === ee);\n return ((ae = S[0]) == null ? void 0 : ae.minutes) === \"*\" ? { hours: [ee], minutes: void 0, seconds: void 0 } : {\n hours: [],\n minutes: (S == null ? void 0 : S.map((x) => +x.minutes)) ?? [],\n seconds: (S == null ? void 0 : S.map((x) => x.seconds ? +x.seconds : void 0)) ?? []\n };\n }\n return { hours: [], minutes: [], seconds: [] };\n });\n return {\n setTime: c,\n updateHours: h,\n updateMinutes: C,\n updateSeconds: H,\n getSetDateTime: b,\n updateTimeValues: E,\n getSecondsValue: d,\n assignStartTime: U,\n validateTime: v,\n disabledTimesConfig: B\n };\n}, br = (e, t) => {\n const l = () => {\n e.isTextInputDate && Q();\n }, { modelValue: a, time: n } = Jt(e, t, l), { defaultedStartTime: i, defaultedRange: d, defaultedTz: b } = Ce(e), { updateTimeValues: c, getSetDateTime: L, setTime: v, assignStartTime: _, disabledTimesConfig: h, validateTime: C } = Un(e, n, a, H);\n function H() {\n t(\"update-flow-step\");\n }\n const E = (ee) => {\n const { hours: S, minutes: x, seconds: Y } = ee;\n return { hours: +S, minutes: +x, seconds: Y ? +Y : 0 };\n }, U = () => {\n if (e.startTime) {\n if (Array.isArray(e.startTime)) {\n const S = E(e.startTime[0]), x = E(e.startTime[1]);\n return [Te(G(), S), Te(G(), x)];\n }\n const ee = E(e.startTime);\n return Te(G(), ee);\n }\n return d.value.enabled ? [null, null] : null;\n }, f = () => {\n if (d.value.enabled) {\n const [ee, S] = U();\n a.value = [\n qe(L(ee, 0), b.value.timezone),\n qe(L(S, 1), b.value.timezone)\n ];\n } else\n a.value = qe(L(U()), b.value.timezone);\n }, B = (ee) => Array.isArray(ee) ? [St(G(ee[0])), St(G(ee[1]))] : [St(ee ?? G())], P = (ee, S, x) => {\n v(\"hours\", ee), v(\"minutes\", S), v(\"seconds\", e.enableSeconds ? x : 0);\n }, Q = () => {\n const [ee, S] = B(a.value);\n return d.value.enabled ? P(\n [ee.hours, S.hours],\n [ee.minutes, S.minutes],\n [ee.seconds, S.seconds]\n ) : P(ee.hours, ee.minutes, ee.seconds);\n };\n We(() => {\n if (!e.shadow)\n return _(i.value), a.value ? Q() : f();\n });\n const ae = () => {\n Array.isArray(a.value) ? a.value = a.value.map((ee, S) => ee && L(ee, S)) : a.value = L(a.value), t(\"time-update\");\n };\n return {\n modelValue: a,\n time: n,\n disabledTimesConfig: h,\n updateTime: (ee, S = !0, x = !1) => {\n c(ee, S, x, ae);\n },\n validateTime: C\n };\n}, kr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"TimePickerSolo\",\n props: {\n ...rt\n },\n emits: [\n \"update:internal-model-value\",\n \"time-update\",\n \"am-pm-change\",\n \"mount\",\n \"reset-flow\",\n \"update-flow-step\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, i = Pt(), d = Je(i, \"timePicker\"), b = ne(null), { time: c, modelValue: L, disabledTimesConfig: v, updateTime: _, validateTime: h } = br(n, a);\n return We(() => {\n n.shadow || a(\"mount\", null);\n }), t({ getSidebarProps: () => ({\n modelValue: L,\n time: c,\n updateTime: _\n }), toggleTimePicker: (E, U = !1, f = \"\") => {\n var B;\n (B = b.value) == null || B.toggleTimePicker(E, U, f);\n } }), (E, U) => (T(), $e(fa, {\n \"multi-calendars\": 0,\n stretch: \"\"\n }, {\n default: ke(() => [\n Ze(Hn, Ee({\n ref_key: \"tpRef\",\n ref: b\n }, E.$props, {\n hours: o(c).hours,\n minutes: o(c).minutes,\n seconds: o(c).seconds,\n \"internal-model-value\": E.internalModelValue,\n \"disabled-times-config\": o(v),\n \"validate-time\": o(h),\n \"onUpdate:hours\": U[0] || (U[0] = (f) => o(_)(f)),\n \"onUpdate:minutes\": U[1] || (U[1] = (f) => o(_)(f, !1)),\n \"onUpdate:seconds\": U[2] || (U[2] = (f) => o(_)(f, !1, !0)),\n onAmPmChange: U[3] || (U[3] = (f) => E.$emit(\"am-pm-change\", f)),\n onResetFlow: U[4] || (U[4] = (f) => E.$emit(\"reset-flow\")),\n onOverlayClosed: U[5] || (U[5] = (f) => E.$emit(\"overlay-toggle\", { open: !1, overlay: f })),\n onOverlayOpened: U[6] || (U[6] = (f) => E.$emit(\"overlay-toggle\", { open: !0, overlay: f }))\n }), Ve({ _: 2 }, [\n Re(o(d), (f, B) => ({\n name: f,\n fn: ke((P) => [\n ie(E.$slots, f, Ne(Qe(P)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"])\n ]),\n _: 3\n }));\n }\n}), wr = { class: \"dp--header-wrap\" }, Dr = {\n key: 0,\n class: \"dp__month_year_wrap\"\n}, Mr = { key: 0 }, $r = { class: \"dp__month_year_wrap\" }, Ar = [\"data-dp-element\", \"aria-label\", \"data-test\", \"onClick\", \"onKeydown\"], Tr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpHeader\",\n props: {\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n instance: { type: Number, default: 0 },\n years: { type: Array, default: () => [] },\n months: { type: Array, default: () => [] },\n ...rt\n },\n emits: [\"update-month-year\", \"mount\", \"reset-flow\", \"overlay-closed\", \"overlay-opened\"],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, {\n defaultedTransitions: i,\n defaultedAriaLabels: d,\n defaultedMultiCalendars: b,\n defaultedFilters: c,\n defaultedConfig: L,\n defaultedHighlight: v,\n propDates: _,\n defaultedUI: h\n } = Ce(n), { transitionName: C, showTransition: H } = Xt(i), { buildMatrix: E } = bt(), { handleMonthYearChange: U, isDisabled: f, updateMonthYear: B } = Ql(n, a), { showLeftIcon: P, showRightIcon: Q } = ma(), ae = ne(!1), oe = ne(!1), ee = ne(!1), S = ne([null, null, null, null]);\n We(() => {\n a(\"mount\");\n });\n const x = (D) => ({\n get: () => n[D],\n set: (V) => {\n const s = D === nt.month ? nt.year : nt.month;\n a(\"update-month-year\", { [D]: V, [s]: n[s] }), D === nt.month ? g(!0) : X(!0);\n }\n }), Y = J(x(nt.month)), q = J(x(nt.year)), de = J(() => (D) => ({\n month: n.month,\n year: n.year,\n items: D === nt.month ? n.months : n.years,\n instance: n.instance,\n updateMonthYear: B,\n toggle: D === nt.month ? g : X\n })), ve = J(() => {\n const D = n.months.find((V) => V.value === n.month);\n return D || { text: \"\", value: 0 };\n }), y = J(() => Yt(n.months, (D) => {\n const V = n.month === D.value, s = Gt(\n D.value,\n Pn(n.year, _.value.minDate),\n Rn(n.year, _.value.maxDate)\n ) || c.value.months.includes(D.value), M = Yn(v.value, D.value, n.year);\n return { active: V, disabled: s, highlighted: M };\n })), z = J(() => Yt(n.years, (D) => {\n const V = n.year === D.value, s = Gt(\n D.value,\n It(_.value.minDate),\n It(_.value.maxDate)\n ) || c.value.years.includes(D.value), M = qa(v.value, D.value);\n return { active: V, disabled: s, highlighted: M };\n })), te = (D, V, s) => {\n s !== void 0 ? D.value = s : D.value = !D.value, D.value ? (ee.value = !0, a(\"overlay-opened\", V)) : (ee.value = !1, a(\"overlay-closed\", V));\n }, g = (D = !1, V) => {\n A(D), te(ae, He.month, V);\n }, X = (D = !1, V) => {\n A(D), te(oe, He.year, V);\n }, A = (D) => {\n D || a(\"reset-flow\");\n }, p = (D, V) => {\n n.arrowNavigation && (S.value[V] = Ie(D), E(S.value, \"monthYear\"));\n }, se = J(() => {\n var D, V, s, M, F, u;\n return [\n {\n type: nt.month,\n index: 1,\n toggle: g,\n modelValue: Y.value,\n updateModelValue: (le) => Y.value = le,\n text: ve.value.text,\n showSelectionGrid: ae.value,\n items: y.value,\n ariaLabel: (D = d.value) == null ? void 0 : D.openMonthsOverlay,\n overlayLabel: ((s = (V = d.value).monthPicker) == null ? void 0 : s.call(V, !0)) ?? void 0\n },\n {\n type: nt.year,\n index: 2,\n toggle: X,\n modelValue: q.value,\n updateModelValue: (le) => q.value = le,\n text: Sn(n.year, n.locale),\n showSelectionGrid: oe.value,\n items: z.value,\n ariaLabel: (M = d.value) == null ? void 0 : M.openYearsOverlay,\n overlayLabel: ((u = (F = d.value).yearPicker) == null ? void 0 : u.call(F, !0)) ?? void 0\n }\n ];\n }), I = J(() => n.disableYearSelect ? [se.value[0]] : n.yearFirst ? [...se.value].reverse() : se.value);\n return t({\n toggleMonthPicker: g,\n toggleYearPicker: X,\n handleMonthYearChange: U\n }), (D, V) => {\n var s, M, F, u, le, me;\n return T(), K(\"div\", wr, [\n D.$slots[\"month-year\"] ? (T(), K(\"div\", Dr, [\n ie(D.$slots, \"month-year\", Ne(Qe({ month: e.month, year: e.year, months: e.months, years: e.years, updateMonthYear: o(B), handleMonthYearChange: o(U), instance: e.instance })))\n ])) : (T(), K(be, { key: 1 }, [\n D.$slots[\"top-extra\"] ? (T(), K(\"div\", Mr, [\n ie(D.$slots, \"top-extra\", { value: D.internalModelValue })\n ])) : Z(\"\", !0),\n ye(\"div\", $r, [\n o(P)(o(b), e.instance) && !D.vertical ? (T(), $e(Ut, {\n key: 0,\n \"aria-label\": (s = o(d)) == null ? void 0 : s.prevMonth,\n disabled: o(f)(!1),\n class: we((M = o(h)) == null ? void 0 : M.navBtnPrev),\n \"el-name\": \"action-prev\",\n onActivate: V[0] || (V[0] = ($) => o(U)(!1, !0)),\n onSetRef: V[1] || (V[1] = ($) => p($, 0))\n }, {\n default: ke(() => [\n D.$slots[\"arrow-left\"] ? ie(D.$slots, \"arrow-left\", { key: 0 }) : Z(\"\", !0),\n D.$slots[\"arrow-left\"] ? Z(\"\", !0) : (T(), $e(o(za), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Z(\"\", !0),\n ye(\"div\", {\n class: we([\"dp__month_year_wrap\", {\n dp__year_disable_select: D.disableYearSelect\n }])\n }, [\n (T(!0), K(be, null, Re(I.value, ($, ge) => (T(), K(be, {\n key: $.type\n }, [\n ye(\"button\", {\n ref_for: !0,\n ref: (r) => p(r, ge + 1),\n type: \"button\",\n \"data-dp-element\": `overlay-${$.type}`,\n class: we([\"dp__btn dp__month_year_select\", { \"dp--hidden-el\": ee.value }]),\n \"aria-label\": `${$.text}-${$.ariaLabel}`,\n \"data-test\": `${$.type}-toggle-overlay-${e.instance}`,\n onClick: $.toggle,\n onKeydown: (r) => o(Ke)(r, () => $.toggle(), !0)\n }, [\n D.$slots[$.type] ? ie(D.$slots, $.type, {\n key: 0,\n text: $.text,\n value: n[$.type]\n }) : Z(\"\", !0),\n D.$slots[$.type] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue($.text), 1)\n ], 64))\n ], 42, Ar),\n Ze(Nt, {\n name: o(C)($.showSelectionGrid),\n css: o(H)\n }, {\n default: ke(() => [\n $.showSelectionGrid ? (T(), $e(qt, {\n key: 0,\n items: $.items,\n \"arrow-navigation\": D.arrowNavigation,\n \"hide-navigation\": D.hideNavigation,\n \"is-last\": D.autoApply && !o(L).keepActionRow,\n \"skip-button-ref\": !1,\n config: D.config,\n type: $.type,\n \"header-refs\": [],\n \"esc-close\": D.escClose,\n \"menu-wrap-ref\": D.menuWrapRef,\n \"text-input\": D.textInput,\n \"aria-labels\": D.ariaLabels,\n \"overlay-label\": $.overlayLabel,\n onSelected: $.updateModelValue,\n onToggle: $.toggle\n }, Ve({\n \"button-icon\": ke(() => [\n D.$slots[\"calendar-icon\"] ? ie(D.$slots, \"calendar-icon\", { key: 0 }) : Z(\"\", !0),\n D.$slots[\"calendar-icon\"] ? Z(\"\", !0) : (T(), $e(o(Et), { key: 1 }))\n ]),\n _: 2\n }, [\n D.$slots[`${$.type}-overlay-value`] ? {\n name: \"item\",\n fn: ke(({ item: r }) => [\n ie(D.$slots, `${$.type}-overlay-value`, {\n text: r.text,\n value: r.value\n })\n ]),\n key: \"0\"\n } : void 0,\n D.$slots[`${$.type}-overlay`] ? {\n name: \"overlay\",\n fn: ke(() => [\n ie(D.$slots, `${$.type}-overlay`, Ee({ ref_for: !0 }, de.value($.type)))\n ]),\n key: \"1\"\n } : void 0,\n D.$slots[`${$.type}-overlay-header`] ? {\n name: \"header\",\n fn: ke(() => [\n ie(D.$slots, `${$.type}-overlay-header`, {\n toggle: $.toggle\n })\n ]),\n key: \"2\"\n } : void 0\n ]), 1032, [\"items\", \"arrow-navigation\", \"hide-navigation\", \"is-last\", \"config\", \"type\", \"esc-close\", \"menu-wrap-ref\", \"text-input\", \"aria-labels\", \"overlay-label\", \"onSelected\", \"onToggle\"])) : Z(\"\", !0)\n ]),\n _: 2\n }, 1032, [\"name\", \"css\"])\n ], 64))), 128))\n ], 2),\n o(P)(o(b), e.instance) && D.vertical ? (T(), $e(Ut, {\n key: 1,\n \"aria-label\": (F = o(d)) == null ? void 0 : F.prevMonth,\n \"el-name\": \"action-prev\",\n disabled: o(f)(!1),\n class: we((u = o(h)) == null ? void 0 : u.navBtnPrev),\n onActivate: V[2] || (V[2] = ($) => o(U)(!1, !0))\n }, {\n default: ke(() => [\n D.$slots[\"arrow-up\"] ? ie(D.$slots, \"arrow-up\", { key: 0 }) : Z(\"\", !0),\n D.$slots[\"arrow-up\"] ? Z(\"\", !0) : (T(), $e(o(Va), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"class\"])) : Z(\"\", !0),\n o(Q)(o(b), e.instance) ? (T(), $e(Ut, {\n key: 2,\n ref: \"rightIcon\",\n \"el-name\": \"action-next\",\n disabled: o(f)(!0),\n \"aria-label\": (le = o(d)) == null ? void 0 : le.nextMonth,\n class: we((me = o(h)) == null ? void 0 : me.navBtnNext),\n onActivate: V[3] || (V[3] = ($) => o(U)(!0, !0)),\n onSetRef: V[4] || (V[4] = ($) => p($, D.disableYearSelect ? 2 : 3))\n }, {\n default: ke(() => [\n D.$slots[D.vertical ? \"arrow-down\" : \"arrow-right\"] ? ie(D.$slots, D.vertical ? \"arrow-down\" : \"arrow-right\", { key: 0 }) : Z(\"\", !0),\n D.$slots[D.vertical ? \"arrow-down\" : \"arrow-right\"] ? Z(\"\", !0) : (T(), $e(ia(D.vertical ? o(Wa) : o(Ha)), { key: 1 }))\n ]),\n _: 3\n }, 8, [\"disabled\", \"aria-label\", \"class\"])) : Z(\"\", !0)\n ])\n ], 64))\n ]);\n };\n }\n}), Sr = {\n class: \"dp__calendar_header\",\n role: \"row\"\n}, Pr = {\n key: 0,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\"\n}, Rr = [\"aria-label\"], Cr = {\n key: 0,\n class: \"dp__calendar_item dp__week_num\",\n role: \"gridcell\"\n}, Or = { class: \"dp__cell_inner\" }, _r = [\"id\", \"aria-pressed\", \"aria-disabled\", \"aria-label\", \"tabindex\", \"data-test\", \"onClick\", \"onTouchend\", \"onKeydown\", \"onMouseenter\", \"onMouseleave\", \"onMousedown\"], Br = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"DpCalendar\",\n props: {\n mappedDates: { type: Array, default: () => [] },\n instance: { type: Number, default: 0 },\n month: { type: Number, default: 0 },\n year: { type: Number, default: 0 },\n ...rt\n },\n emits: [\n \"select-date\",\n \"set-hover-date\",\n \"handle-scroll\",\n \"mount\",\n \"handle-swipe\",\n \"handle-space\",\n \"tooltip-open\",\n \"tooltip-close\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, { buildMultiLevelMatrix: i } = bt(), {\n defaultedTransitions: d,\n defaultedConfig: b,\n defaultedAriaLabels: c,\n defaultedMultiCalendars: L,\n defaultedWeekNumbers: v,\n defaultedMultiDates: _,\n defaultedUI: h\n } = Ce(n), C = ne(null), H = ne({\n bottom: \"\",\n left: \"\",\n transform: \"\"\n }), E = ne([]), U = ne(null), f = ne(!0), B = ne(\"\"), P = ne({ startX: 0, endX: 0, startY: 0, endY: 0 }), Q = ne([]), ae = ne({ left: \"50%\" }), oe = ne(!1), ee = J(() => n.calendar ? n.calendar(n.mappedDates) : n.mappedDates), S = J(() => n.dayNames ? Array.isArray(n.dayNames) ? n.dayNames : n.dayNames(n.locale, +n.weekStart) : yl(n.formatLocale, n.locale, +n.weekStart));\n We(() => {\n a(\"mount\", { cmp: \"calendar\", refs: E }), b.value.noSwipe || U.value && (U.value.addEventListener(\"touchstart\", p, { passive: !1 }), U.value.addEventListener(\"touchend\", se, { passive: !1 }), U.value.addEventListener(\"touchmove\", I, { passive: !1 })), n.monthChangeOnScroll && U.value && U.value.addEventListener(\"wheel\", s, { passive: !1 });\n });\n const x = ($) => $ ? n.vertical ? \"vNext\" : \"next\" : n.vertical ? \"vPrevious\" : \"previous\", Y = ($, ge) => {\n if (n.transitions) {\n const r = Ge(dt(G(), n.month, n.year));\n B.value = Be(Ge(dt(G(), $, ge)), r) ? d.value[x(!0)] : d.value[x(!1)], f.value = !1, xe(() => {\n f.value = !0;\n });\n }\n }, q = J(\n () => ({\n ...h.value.calendar ?? {}\n })\n ), de = J(() => ($) => {\n const ge = hl($);\n return {\n dp__marker_dot: ge.type === \"dot\",\n dp__marker_line: ge.type === \"line\"\n };\n }), ve = J(() => ($) => Me($, C.value)), y = J(() => ({\n dp__calendar: !0,\n dp__calendar_next: L.value.count > 0 && n.instance !== 0\n })), z = J(() => ($) => n.hideOffsetDates ? $.current : !0), te = async ($, ge) => {\n const { width: r, height: R } = $.getBoundingClientRect();\n C.value = ge.value;\n let O = { left: `${r / 2}px` }, W = -50;\n if (await xe(), Q.value[0]) {\n const { left: ue, width: w } = Q.value[0].getBoundingClientRect();\n ue < 0 && (O = { left: \"0\" }, W = 0, ae.value.left = `${r / 2}px`), window.innerWidth < ue + w && (O = { right: \"0\" }, W = 0, ae.value.left = `${w - r / 2}px`);\n }\n H.value = {\n bottom: `${R}px`,\n ...O,\n transform: `translateX(${W}%)`\n };\n }, g = async ($, ge, r) => {\n var O, W, ue;\n const R = Ie(E.value[ge][r]);\n R && ((O = $.marker) != null && O.customPosition && ((ue = (W = $.marker) == null ? void 0 : W.tooltip) != null && ue.length) ? H.value = $.marker.customPosition(R) : await te(R, $), a(\"tooltip-open\", $.marker));\n }, X = async ($, ge, r) => {\n var R, O;\n if (oe.value && _.value.enabled && _.value.dragSelect)\n return a(\"select-date\", $);\n a(\"set-hover-date\", $), (O = (R = $.marker) == null ? void 0 : R.tooltip) != null && O.length && await g($, ge, r);\n }, A = ($) => {\n C.value && (C.value = null, H.value = JSON.parse(JSON.stringify({ bottom: \"\", left: \"\", transform: \"\" })), a(\"tooltip-close\", $.marker));\n }, p = ($) => {\n P.value.startX = $.changedTouches[0].screenX, P.value.startY = $.changedTouches[0].screenY;\n }, se = ($) => {\n P.value.endX = $.changedTouches[0].screenX, P.value.endY = $.changedTouches[0].screenY, D();\n }, I = ($) => {\n n.vertical && !n.inline && $.preventDefault();\n }, D = () => {\n const $ = n.vertical ? \"Y\" : \"X\";\n Math.abs(P.value[`start${$}`] - P.value[`end${$}`]) > 10 && a(\"handle-swipe\", P.value[`start${$}`] > P.value[`end${$}`] ? \"right\" : \"left\");\n }, V = ($, ge, r) => {\n $ && (Array.isArray(E.value[ge]) ? E.value[ge][r] = $ : E.value[ge] = [$]), n.arrowNavigation && i(E.value, \"calendar\");\n }, s = ($) => {\n n.monthChangeOnScroll && ($.preventDefault(), a(\"handle-scroll\", $));\n }, M = ($) => v.value.type === \"local\" ? ol($.value, { weekStartsOn: +n.weekStart }) : v.value.type === \"iso\" ? sl($.value) : typeof v.value.type == \"function\" ? v.value.type($.value) : \"\", F = ($) => {\n const ge = $[0];\n return v.value.hideOnOffsetDates ? $.some((r) => r.current) ? M(ge) : \"\" : M(ge);\n }, u = ($, ge, r = !0) => {\n r && sn() || !r && !sn() || _.value.enabled || (yt($, b.value), a(\"select-date\", ge));\n }, le = ($) => {\n yt($, b.value);\n }, me = ($) => {\n _.value.enabled && _.value.dragSelect ? (oe.value = !0, a(\"select-date\", $)) : _.value.enabled && a(\"select-date\", $);\n };\n return t({ triggerTransition: Y }), ($, ge) => (T(), K(\"div\", {\n class: we(y.value)\n }, [\n ye(\"div\", {\n ref_key: \"calendarWrapRef\",\n ref: U,\n class: we(q.value),\n role: \"grid\"\n }, [\n ye(\"div\", Sr, [\n $.weekNumbers ? (T(), K(\"div\", Pr, Ue($.weekNumName), 1)) : Z(\"\", !0),\n (T(!0), K(be, null, Re(S.value, (r, R) => {\n var O, W;\n return T(), K(\"div\", {\n key: R,\n class: \"dp__calendar_header_item\",\n role: \"gridcell\",\n \"data-test\": \"calendar-header\",\n \"aria-label\": (W = (O = o(c)) == null ? void 0 : O.weekDay) == null ? void 0 : W.call(O, R)\n }, [\n $.$slots[\"calendar-header\"] ? ie($.$slots, \"calendar-header\", {\n key: 0,\n day: r,\n index: R\n }) : Z(\"\", !0),\n $.$slots[\"calendar-header\"] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(r), 1)\n ], 64))\n ], 8, Rr);\n }), 128))\n ]),\n ge[2] || (ge[2] = ye(\"div\", { class: \"dp__calendar_header_separator\" }, null, -1)),\n Ze(Nt, {\n name: B.value,\n css: !!$.transitions\n }, {\n default: ke(() => [\n f.value ? (T(), K(\"div\", {\n key: 0,\n class: \"dp__calendar\",\n role: \"rowgroup\",\n onMouseleave: ge[1] || (ge[1] = (r) => oe.value = !1)\n }, [\n (T(!0), K(be, null, Re(ee.value, (r, R) => (T(), K(\"div\", {\n key: R,\n class: \"dp__calendar_row\",\n role: \"row\"\n }, [\n $.weekNumbers ? (T(), K(\"div\", Cr, [\n ye(\"div\", Or, Ue(F(r.days)), 1)\n ])) : Z(\"\", !0),\n (T(!0), K(be, null, Re(r.days, (O, W) => {\n var ue, w, N;\n return T(), K(\"div\", {\n id: o(In)(O.value),\n ref_for: !0,\n ref: (ce) => V(ce, R, W),\n key: W + R,\n role: \"gridcell\",\n class: \"dp__calendar_item\",\n \"aria-pressed\": (O.classData.dp__active_date || O.classData.dp__range_start || O.classData.dp__range_start) ?? void 0,\n \"aria-disabled\": O.classData.dp__cell_disabled || void 0,\n \"aria-label\": (w = (ue = o(c)) == null ? void 0 : ue.day) == null ? void 0 : w.call(ue, O),\n tabindex: !O.current && $.hideOffsetDates ? void 0 : 0,\n \"data-test\": O.value,\n onClick: Wt((ce) => u(ce, O), [\"prevent\"]),\n onTouchend: (ce) => u(ce, O, !1),\n onKeydown: (ce) => o(Ke)(ce, () => $.$emit(\"select-date\", O)),\n onMouseenter: (ce) => X(O, R, W),\n onMouseleave: (ce) => A(O),\n onMousedown: (ce) => me(O),\n onMouseup: ge[0] || (ge[0] = (ce) => oe.value = !1)\n }, [\n ye(\"div\", {\n class: we([\"dp__cell_inner\", O.classData])\n }, [\n $.$slots.day && z.value(O) ? ie($.$slots, \"day\", {\n key: 0,\n day: +O.text,\n date: O.value\n }) : Z(\"\", !0),\n $.$slots.day ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ct(Ue(O.text), 1)\n ], 64)),\n O.marker && z.value(O) ? (T(), K(be, { key: 2 }, [\n $.$slots.marker ? ie($.$slots, \"marker\", {\n key: 0,\n marker: O.marker,\n day: +O.text,\n date: O.value\n }) : (T(), K(\"div\", {\n key: 1,\n class: we(de.value(O.marker)),\n style: tt(O.marker.color ? { backgroundColor: O.marker.color } : {})\n }, null, 6))\n ], 64)) : Z(\"\", !0),\n ve.value(O.value) ? (T(), K(\"div\", {\n key: 3,\n ref_for: !0,\n ref_key: \"activeTooltip\",\n ref: Q,\n class: \"dp__marker_tooltip\",\n style: tt(H.value)\n }, [\n (N = O.marker) != null && N.tooltip ? (T(), K(\"div\", {\n key: 0,\n class: \"dp__tooltip_content\",\n onClick: le\n }, [\n (T(!0), K(be, null, Re(O.marker.tooltip, (ce, he) => (T(), K(\"div\", {\n key: he,\n class: \"dp__tooltip_text\"\n }, [\n $.$slots[\"marker-tooltip\"] ? ie($.$slots, \"marker-tooltip\", {\n key: 0,\n tooltip: ce,\n day: O.value\n }) : Z(\"\", !0),\n $.$slots[\"marker-tooltip\"] ? Z(\"\", !0) : (T(), K(be, { key: 1 }, [\n ye(\"div\", {\n class: \"dp__tooltip_mark\",\n style: tt(ce.color ? { backgroundColor: ce.color } : {})\n }, null, 4),\n ye(\"div\", null, Ue(ce.text), 1)\n ], 64))\n ]))), 128)),\n ye(\"div\", {\n class: \"dp__arrow_bottom_tp\",\n style: tt(ae.value)\n }, null, 4)\n ])) : Z(\"\", !0)\n ], 4)) : Z(\"\", !0)\n ], 2)\n ], 40, _r);\n }), 128))\n ]))), 128))\n ], 32)) : Z(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ], 2)\n ], 2));\n }\n}), vn = (e) => Array.isArray(e), Yr = (e, t, l, a) => {\n const n = ne([]), i = ne(/* @__PURE__ */ new Date()), d = ne(), b = () => p(e.isTextInputDate), { modelValue: c, calendars: L, time: v, today: _ } = Jt(e, t, b), {\n defaultedMultiCalendars: h,\n defaultedStartTime: C,\n defaultedRange: H,\n defaultedConfig: E,\n defaultedTz: U,\n propDates: f,\n defaultedMultiDates: B\n } = Ce(e), { validateMonthYearInRange: P, isDisabled: Q, isDateRangeAllowed: ae, checkMinMaxRange: oe } = kt(e), { updateTimeValues: ee, getSetDateTime: S, setTime: x, assignStartTime: Y, validateTime: q, disabledTimesConfig: de } = Un(e, v, c, a), ve = J(\n () => (k) => L.value[k] ? L.value[k].month : 0\n ), y = J(\n () => (k) => L.value[k] ? L.value[k].year : 0\n ), z = (k) => !E.value.keepViewOnOffsetClick || k ? !0 : !d.value, te = (k, m, j, re = !1) => {\n var Ae, Fe;\n z(re) && (L.value[k] || (L.value[k] = { month: 0, year: 0 }), L.value[k].month = on(m) ? (Ae = L.value[k]) == null ? void 0 : Ae.month : m, L.value[k].year = on(j) ? (Fe = L.value[k]) == null ? void 0 : Fe.year : j);\n }, g = () => {\n e.autoApply && t(\"select-date\");\n };\n We(() => {\n e.shadow || (c.value || ($(), C.value && Y(C.value)), p(!0), e.focusStartDate && e.startDate && $());\n });\n const X = J(() => {\n var k;\n return (k = e.flow) != null && k.length && !e.partialFlow ? e.flowStep === e.flow.length : !0;\n }), A = () => {\n e.autoApply && X.value && t(\"auto-apply\", e.partialFlow ? e.flowStep !== e.flow.length : !1);\n }, p = (k = !1) => {\n if (c.value)\n return Array.isArray(c.value) ? (n.value = c.value, F(k)) : D(c.value, k);\n if (h.value.count && k && !e.startDate)\n return I(G(), k);\n }, se = () => Array.isArray(c.value) && H.value.enabled ? De(c.value[0]) === De(c.value[1] ?? c.value[0]) : !1, I = (k = /* @__PURE__ */ new Date(), m = !1) => {\n if ((!h.value.count || !h.value.static || m) && te(0, De(k), pe(k)), h.value.count && (!h.value.solo || !c.value || se()))\n for (let j = 1; j < h.value.count; j++) {\n const re = Te(G(), { month: ve.value(j - 1), year: y.value(j - 1) }), Ae = Dn(re, { months: 1 });\n L.value[j] = { month: De(Ae), year: pe(Ae) };\n }\n }, D = (k, m) => {\n I(k), x(\"hours\", ft(k)), x(\"minutes\", ht(k)), x(\"seconds\", Bt(k)), h.value.count && m && me();\n }, V = (k) => {\n if (h.value.count) {\n if (h.value.solo) return 0;\n const m = De(k[0]), j = De(k[1]);\n return Math.abs(j - m) < h.value.count ? 0 : 1;\n }\n return 1;\n }, s = (k, m) => {\n k[1] && H.value.showLastInRange ? I(k[V(k)], m) : I(k[0], m);\n const j = (re, Ae) => [\n re(k[0]),\n k[1] ? re(k[1]) : v[Ae][1]\n ];\n x(\"hours\", j(ft, \"hours\")), x(\"minutes\", j(ht, \"minutes\")), x(\"seconds\", j(Bt, \"seconds\"));\n }, M = (k, m) => {\n if ((H.value.enabled || e.weekPicker) && !B.value.enabled)\n return s(k, m);\n if (B.value.enabled && m) {\n const j = k[k.length - 1];\n return D(j, m);\n }\n }, F = (k) => {\n const m = c.value;\n M(m, k), h.value.count && h.value.solo && me();\n }, u = (k, m) => {\n const j = Te(G(), { month: ve.value(m), year: y.value(m) }), re = k < 0 ? At(j, 1) : jt(j, 1);\n P(De(re), pe(re), k < 0, e.preventMinMaxNavigation) && (te(m, De(re), pe(re)), t(\"update-month-year\", { instance: m, month: De(re), year: pe(re) }), h.value.count && !h.value.solo && le(m), l());\n }, le = (k) => {\n for (let m = k - 1; m >= 0; m--) {\n const j = jt(Te(G(), { month: ve.value(m + 1), year: y.value(m + 1) }), 1);\n te(m, De(j), pe(j));\n }\n for (let m = k + 1; m <= h.value.count - 1; m++) {\n const j = At(Te(G(), { month: ve.value(m - 1), year: y.value(m - 1) }), 1);\n te(m, De(j), pe(j));\n }\n }, me = () => {\n if (Array.isArray(c.value) && c.value.length === 2) {\n const k = G(\n G(c.value[1] ? c.value[1] : At(c.value[0], 1))\n ), [m, j] = [De(c.value[0]), pe(c.value[0])], [re, Ae] = [De(c.value[1]), pe(c.value[1])];\n (m !== re || m === re && j !== Ae) && h.value.solo && te(1, De(k), pe(k));\n } else c.value && !Array.isArray(c.value) && (te(0, De(c.value), pe(c.value)), I(G()));\n }, $ = () => {\n e.startDate && (te(0, De(G(e.startDate)), pe(G(e.startDate))), h.value.count && le(0));\n }, ge = (k, m) => {\n if (e.monthChangeOnScroll) {\n const j = (/* @__PURE__ */ new Date()).getTime() - i.value.getTime(), re = Math.abs(k.deltaY);\n let Ae = 500;\n re > 1 && (Ae = 100), re > 100 && (Ae = 0), j > Ae && (i.value = /* @__PURE__ */ new Date(), u(e.monthChangeOnScroll !== \"inverse\" ? -k.deltaY : k.deltaY, m));\n }\n }, r = (k, m, j = !1) => {\n e.monthChangeOnArrows && e.vertical === j && R(k, m);\n }, R = (k, m) => {\n u(k === \"right\" ? -1 : 1, m);\n }, O = (k) => {\n if (f.value.markers)\n return sa(k.value, f.value.markers);\n }, W = (k, m) => {\n switch (e.sixWeeks === !0 ? \"append\" : e.sixWeeks) {\n case \"prepend\":\n return [!0, !1];\n case \"center\":\n return [k == 0, !0];\n case \"fair\":\n return [k == 0 || m > k, !0];\n case \"append\":\n return [!1, !1];\n default:\n return [!1, !1];\n }\n }, ue = (k, m, j, re) => {\n if (e.sixWeeks && k.length < 6) {\n const Ae = 6 - k.length, Fe = (m.getDay() + 7 - re) % 7, xt = 6 - (j.getDay() + 7 - re) % 7, [zt, Da] = W(Fe, xt);\n for (let Dt = 1; Dt <= Ae; Dt++)\n if (Da ? !!(Dt % 2) == zt : zt) {\n const ea = k[0].days[0], Ma = w($t(ea.value, -7), De(m));\n k.unshift({ days: Ma });\n } else {\n const ea = k[k.length - 1], Ma = ea.days[ea.days.length - 1], Wn = w($t(Ma.value, 1), De(m));\n k.push({ days: Wn });\n }\n }\n return k;\n }, w = (k, m) => {\n const j = G(k), re = [];\n for (let Ae = 0; Ae < 7; Ae++) {\n const Fe = $t(j, Ae), wt = De(Fe) !== m;\n re.push({\n text: e.hideOffsetDates && wt ? \"\" : Fe.getDate(),\n value: Fe,\n current: !wt,\n classData: {}\n });\n }\n return re;\n }, N = (k, m) => {\n const j = [], re = new Date(m, k), Ae = new Date(m, k + 1, 0), Fe = e.weekStart, wt = La(re, { weekStartsOn: Fe }), xt = (zt) => {\n const Da = w(zt, k);\n if (j.push({ days: Da }), !j[j.length - 1].days.some(\n (Dt) => Me(Ge(Dt.value), Ge(Ae))\n )) {\n const Dt = $t(zt, 7);\n xt(Dt);\n }\n };\n return xt(wt), ue(j, re, Ae, Fe);\n }, ce = (k) => {\n const m = gt(G(k.value), v.hours, v.minutes, Xe());\n t(\"date-update\", m), B.value.enabled ? Xa(m, c, B.value.limit) : c.value = m, a(), xe().then(() => {\n A();\n });\n }, he = (k) => H.value.noDisabledRange ? Cn(n.value[0], k).some((j) => Q(j)) : !1, et = () => {\n n.value = c.value ? c.value.slice() : [], n.value.length === 2 && !(H.value.fixedStart || H.value.fixedEnd) && (n.value = []);\n }, fe = (k, m) => {\n const j = [\n G(k.value),\n $t(G(k.value), +H.value.autoRange)\n ];\n ae(j) ? (m && vt(k.value), n.value = j) : t(\"invalid-date\", k.value);\n }, vt = (k) => {\n const m = De(G(k)), j = pe(G(k));\n if (te(0, m, j), h.value.count > 0)\n for (let re = 1; re < h.value.count; re++) {\n const Ae = Al(\n Te(G(k), { year: y.value(re - 1), month: ve.value(re - 1) })\n );\n te(re, Ae.month, Ae.year);\n }\n }, ot = (k) => {\n if (he(k.value) || !oe(k.value, c.value, H.value.fixedStart ? 0 : 1))\n return t(\"invalid-date\", k.value);\n n.value = Ln(G(k.value), c, t, H);\n }, Ft = (k, m) => {\n if (et(), H.value.autoRange) return fe(k, m);\n if (H.value.fixedStart || H.value.fixedEnd) return ot(k);\n n.value[0] ? oe(G(k.value), c.value) && !he(k.value) ? Oe(G(k.value), G(n.value[0])) ? (n.value.unshift(G(k.value)), t(\"range-end\", n.value[0])) : (n.value[1] = G(k.value), t(\"range-end\", n.value[1])) : (e.autoApply && t(\"auto-apply-invalid\", k.value), t(\"invalid-date\", k.value)) : (n.value[0] = G(k.value), t(\"range-start\", n.value[0]));\n }, Xe = (k = !0) => e.enableSeconds ? Array.isArray(v.seconds) ? k ? v.seconds[0] : v.seconds[1] : v.seconds : 0, Lt = (k) => {\n n.value[k] = gt(\n n.value[k],\n v.hours[k],\n v.minutes[k],\n Xe(k !== 1)\n );\n }, pa = () => {\n var k, m;\n n.value[0] && n.value[1] && +((k = n.value) == null ? void 0 : k[0]) > +((m = n.value) == null ? void 0 : m[1]) && (n.value.reverse(), t(\"range-start\", n.value[0]), t(\"range-end\", n.value[1]));\n }, Zt = () => {\n n.value.length && (n.value[0] && !n.value[1] ? Lt(0) : (Lt(0), Lt(1), a()), pa(), c.value = n.value.slice(), va(n.value, t, e.autoApply, e.modelAuto));\n }, ya = (k, m = !1) => {\n if (Q(k.value) || !k.current && e.hideOffsetDates) return t(\"invalid-date\", k.value);\n if (d.value = JSON.parse(JSON.stringify(k)), !H.value.enabled) return ce(k);\n vn(v.hours) && vn(v.minutes) && !B.value.enabled && (Ft(k, m), Zt());\n }, ga = (k, m) => {\n var re;\n te(k, m.month, m.year, !0), h.value.count && !h.value.solo && le(k), t(\"update-month-year\", { instance: k, month: m.month, year: m.year }), l(h.value.solo ? k : void 0);\n const j = (re = e.flow) != null && re.length ? e.flow[e.flowStep] : void 0;\n !m.fromNav && (j === He.month || j === He.year) && a();\n }, ha = (k, m) => {\n Fn({\n value: k,\n modelValue: c,\n range: H.value.enabled,\n timezone: m ? void 0 : U.value.timezone\n }), g(), e.multiCalendars && xe().then(() => p(!0));\n }, ba = () => {\n const k = ja(G(), U.value);\n H.value.enabled ? c.value && Array.isArray(c.value) && c.value[0] ? c.value = Oe(k, c.value[0]) ? [k, c.value[0]] : [c.value[0], k] : c.value = [k] : c.value = k, g();\n }, ka = () => {\n if (Array.isArray(c.value))\n if (B.value.enabled) {\n const k = wa();\n c.value[c.value.length - 1] = S(k);\n } else\n c.value = c.value.map((k, m) => k && S(k, m));\n else\n c.value = S(c.value);\n t(\"time-update\");\n }, wa = () => Array.isArray(c.value) && c.value.length ? c.value[c.value.length - 1] : null;\n return {\n calendars: L,\n modelValue: c,\n month: ve,\n year: y,\n time: v,\n disabledTimesConfig: de,\n today: _,\n validateTime: q,\n getCalendarDays: N,\n getMarker: O,\n handleScroll: ge,\n handleSwipe: R,\n handleArrow: r,\n selectDate: ya,\n updateMonthYear: ga,\n presetDate: ha,\n selectCurrentDate: ba,\n updateTime: (k, m = !0, j = !1) => {\n ee(k, m, j, ka);\n },\n assignMonthAndYear: I\n };\n}, Ir = { key: 0 }, Nr = /* @__PURE__ */ Le({\n __name: \"DatePicker\",\n props: {\n ...rt\n },\n emits: [\n \"tooltip-open\",\n \"tooltip-close\",\n \"mount\",\n \"update:internal-model-value\",\n \"update-flow-step\",\n \"reset-flow\",\n \"auto-apply\",\n \"focus-menu\",\n \"select-date\",\n \"range-start\",\n \"range-end\",\n \"invalid-fixed-range\",\n \"time-update\",\n \"am-pm-change\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"recalculate-position\",\n \"update-month-year\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, {\n calendars: i,\n month: d,\n year: b,\n modelValue: c,\n time: L,\n disabledTimesConfig: v,\n today: _,\n validateTime: h,\n getCalendarDays: C,\n getMarker: H,\n handleArrow: E,\n handleScroll: U,\n handleSwipe: f,\n selectDate: B,\n updateMonthYear: P,\n presetDate: Q,\n selectCurrentDate: ae,\n updateTime: oe,\n assignMonthAndYear: ee\n } = Yr(n, a, se, I), S = Pt(), { setHoverDate: x, getDayClassData: Y, clearHoverDate: q } = Jr(c, n), { defaultedMultiCalendars: de } = Ce(n), ve = ne([]), y = ne([]), z = ne(null), te = Je(S, \"calendar\"), g = Je(S, \"monthYear\"), X = Je(S, \"timePicker\"), A = (r) => {\n n.shadow || a(\"mount\", r);\n };\n at(\n i,\n () => {\n n.shadow || setTimeout(() => {\n a(\"recalculate-position\");\n }, 0);\n },\n { deep: !0 }\n ), at(\n de,\n (r, R) => {\n r.count - R.count > 0 && ee();\n },\n { deep: !0 }\n );\n const p = J(() => (r) => C(d.value(r), b.value(r)).map((R) => ({\n ...R,\n days: R.days.map((O) => (O.marker = H(O), O.classData = Y(O), O))\n })));\n function se(r) {\n var R;\n r || r === 0 ? (R = y.value[r]) == null || R.triggerTransition(d.value(r), b.value(r)) : y.value.forEach((O, W) => O.triggerTransition(d.value(W), b.value(W)));\n }\n function I() {\n a(\"update-flow-step\");\n }\n const D = (r, R = !1) => {\n B(r, R), n.spaceConfirm && a(\"select-date\");\n }, V = (r, R, O = 0) => {\n var W;\n (W = ve.value[O]) == null || W.toggleMonthPicker(r, R);\n }, s = (r, R, O = 0) => {\n var W;\n (W = ve.value[O]) == null || W.toggleYearPicker(r, R);\n }, M = (r, R, O) => {\n var W;\n (W = z.value) == null || W.toggleTimePicker(r, R, O);\n }, F = (r, R) => {\n var O;\n if (!n.range) {\n const W = c.value ? c.value : _, ue = R ? new Date(R) : W, w = r ? La(ue, { weekStartsOn: 1 }) : hn(ue, { weekStartsOn: 1 });\n B({\n value: w,\n current: De(ue) === d.value(0),\n text: \"\",\n classData: {}\n }), (O = document.getElementById(In(w))) == null || O.focus();\n }\n }, u = (r) => {\n var R;\n (R = ve.value[0]) == null || R.handleMonthYearChange(r, !0);\n }, le = (r) => {\n P(0, { month: d.value(0), year: b.value(0) + (r ? 1 : -1), fromNav: !0 });\n }, me = (r, R) => {\n r === He.time && a(`time-picker-${R ? \"open\" : \"close\"}`), a(\"overlay-toggle\", { open: R, overlay: r });\n }, $ = (r) => {\n a(\"overlay-toggle\", { open: !1, overlay: r }), a(\"focus-menu\");\n };\n return t({\n clearHoverDate: q,\n presetDate: Q,\n selectCurrentDate: ae,\n toggleMonthPicker: V,\n toggleYearPicker: s,\n toggleTimePicker: M,\n handleArrow: E,\n updateMonthYear: P,\n getSidebarProps: () => ({\n modelValue: c,\n month: d,\n year: b,\n time: L,\n updateTime: oe,\n updateMonthYear: P,\n selectDate: B,\n presetDate: Q\n }),\n changeMonth: u,\n changeYear: le,\n selectWeekDate: F\n }), (r, R) => (T(), K(be, null, [\n Ze(fa, {\n \"multi-calendars\": o(de).count,\n collapse: r.collapse\n }, {\n default: ke(({ instance: O, index: W }) => [\n r.disableMonthYearSelect ? Z(\"\", !0) : (T(), $e(Tr, Ee({\n key: 0,\n ref: (ue) => {\n ue && (ve.value[W] = ue);\n },\n months: o($n)(r.formatLocale, r.locale, r.monthNameFormat),\n years: o(Ka)(r.yearRange, r.locale, r.reverseYears),\n month: o(d)(O),\n year: o(b)(O),\n instance: O\n }, r.$props, {\n onMount: R[0] || (R[0] = (ue) => A(o(Tt).header)),\n onResetFlow: R[1] || (R[1] = (ue) => r.$emit(\"reset-flow\")),\n onUpdateMonthYear: (ue) => o(P)(O, ue),\n onOverlayClosed: $,\n onOverlayOpened: R[2] || (R[2] = (ue) => r.$emit(\"overlay-toggle\", { open: !0, overlay: ue }))\n }), Ve({ _: 2 }, [\n Re(o(g), (ue, w) => ({\n name: ue,\n fn: ke((N) => [\n ie(r.$slots, ue, Ne(Qe(N)))\n ])\n }))\n ]), 1040, [\"months\", \"years\", \"month\", \"year\", \"instance\", \"onUpdateMonthYear\"])),\n Ze(Br, Ee({\n ref: (ue) => {\n ue && (y.value[W] = ue);\n },\n \"mapped-dates\": p.value(O),\n month: o(d)(O),\n year: o(b)(O),\n instance: O\n }, r.$props, {\n onSelectDate: (ue) => o(B)(ue, O !== 1),\n onHandleSpace: (ue) => D(ue, O !== 1),\n onSetHoverDate: R[3] || (R[3] = (ue) => o(x)(ue)),\n onHandleScroll: (ue) => o(U)(ue, O),\n onHandleSwipe: (ue) => o(f)(ue, O),\n onMount: R[4] || (R[4] = (ue) => A(o(Tt).calendar)),\n onResetFlow: R[5] || (R[5] = (ue) => r.$emit(\"reset-flow\")),\n onTooltipOpen: R[6] || (R[6] = (ue) => r.$emit(\"tooltip-open\", ue)),\n onTooltipClose: R[7] || (R[7] = (ue) => r.$emit(\"tooltip-close\", ue))\n }), Ve({ _: 2 }, [\n Re(o(te), (ue, w) => ({\n name: ue,\n fn: ke((N) => [\n ie(r.$slots, ue, Ne(Qe({ ...N })))\n ])\n }))\n ]), 1040, [\"mapped-dates\", \"month\", \"year\", \"instance\", \"onSelectDate\", \"onHandleSpace\", \"onHandleScroll\", \"onHandleSwipe\"])\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\"]),\n r.enableTimePicker ? (T(), K(\"div\", Ir, [\n r.$slots[\"time-picker\"] ? ie(r.$slots, \"time-picker\", Ne(Ee({ key: 0 }, { time: o(L), updateTime: o(oe) }))) : (T(), $e(Hn, Ee({\n key: 1,\n ref_key: \"timePickerRef\",\n ref: z\n }, r.$props, {\n hours: o(L).hours,\n minutes: o(L).minutes,\n seconds: o(L).seconds,\n \"internal-model-value\": r.internalModelValue,\n \"disabled-times-config\": o(v),\n \"validate-time\": o(h),\n onMount: R[8] || (R[8] = (O) => A(o(Tt).timePicker)),\n \"onUpdate:hours\": R[9] || (R[9] = (O) => o(oe)(O)),\n \"onUpdate:minutes\": R[10] || (R[10] = (O) => o(oe)(O, !1)),\n \"onUpdate:seconds\": R[11] || (R[11] = (O) => o(oe)(O, !1, !0)),\n onResetFlow: R[12] || (R[12] = (O) => r.$emit(\"reset-flow\")),\n onOverlayClosed: R[13] || (R[13] = (O) => me(O, !1)),\n onOverlayOpened: R[14] || (R[14] = (O) => me(O, !0)),\n onAmPmChange: R[15] || (R[15] = (O) => r.$emit(\"am-pm-change\", O))\n }), Ve({ _: 2 }, [\n Re(o(X), (O, W) => ({\n name: O,\n fn: ke((ue) => [\n ie(r.$slots, O, Ne(Qe(ue)))\n ])\n }))\n ]), 1040, [\"hours\", \"minutes\", \"seconds\", \"internal-model-value\", \"disabled-times-config\", \"validate-time\"]))\n ])) : Z(\"\", !0)\n ], 64));\n }\n}), Er = (e, t) => {\n const l = ne(), {\n defaultedMultiCalendars: a,\n defaultedConfig: n,\n defaultedHighlight: i,\n defaultedRange: d,\n propDates: b,\n defaultedFilters: c,\n defaultedMultiDates: L\n } = Ce(e), { modelValue: v, year: _, month: h, calendars: C } = Jt(e, t), { isDisabled: H } = kt(e), { selectYear: E, groupedYears: U, showYearPicker: f, isDisabled: B, toggleYearPicker: P, handleYearSelect: Q, handleYear: ae } = zn({\n modelValue: v,\n multiCalendars: a,\n range: d,\n highlight: i,\n calendars: C,\n propDates: b,\n month: h,\n year: _,\n filters: c,\n props: e,\n emit: t\n }), oe = (g, X) => [g, X].map((A) => ut(A, \"MMMM\", { locale: e.formatLocale })).join(\"-\"), ee = J(() => (g) => v.value ? Array.isArray(v.value) ? v.value.some((X) => tn(g, X)) : tn(v.value, g) : !1), S = (g) => {\n if (d.value.enabled) {\n if (Array.isArray(v.value)) {\n const X = Me(g, v.value[0]) || Me(g, v.value[1]);\n return da(v.value, l.value, g) && !X;\n }\n return !1;\n }\n return !1;\n }, x = (g, X) => g.quarter === nn(X) && g.year === pe(X), Y = (g) => typeof i.value == \"function\" ? i.value({ quarter: nn(g), year: pe(g) }) : !!i.value.quarters.find((X) => x(X, g)), q = J(() => (g) => {\n const X = Te(/* @__PURE__ */ new Date(), { year: _.value(g) });\n return ul({\n start: oa(X),\n end: wn(X)\n }).map((A) => {\n const p = il(A), se = an(A), I = H(A), D = S(p), V = Y(p);\n return {\n text: oe(p, se),\n value: p,\n active: ee.value(p),\n highlighted: V,\n disabled: I,\n isBetween: D\n };\n });\n }), de = (g) => {\n Xa(g, v, L.value.limit), t(\"auto-apply\", !0);\n }, ve = (g) => {\n v.value = Ja(v, g, t), va(v.value, t, e.autoApply, e.modelAuto);\n }, y = (g) => {\n v.value = g, t(\"auto-apply\");\n };\n return {\n defaultedConfig: n,\n defaultedMultiCalendars: a,\n groupedYears: U,\n year: _,\n isDisabled: B,\n quarters: q,\n showYearPicker: f,\n modelValue: v,\n setHoverDate: (g) => {\n l.value = g;\n },\n selectYear: E,\n selectQuarter: (g, X, A) => {\n if (!A)\n return C.value[X].month = De(an(g)), L.value.enabled ? de(g) : d.value.enabled ? ve(g) : y(g);\n },\n toggleYearPicker: P,\n handleYearSelect: Q,\n handleYear: ae\n };\n}, Fr = { class: \"dp--quarter-items\" }, Lr = [\"data-test\", \"disabled\", \"onClick\", \"onMouseover\"], zr = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"QuarterPicker\",\n props: {\n ...rt\n },\n emits: [\n \"update:internal-model-value\",\n \"reset-flow\",\n \"overlay-closed\",\n \"auto-apply\",\n \"range-start\",\n \"range-end\",\n \"overlay-toggle\",\n \"update-month-year\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, i = Pt(), d = Je(i, \"yearMode\"), {\n defaultedMultiCalendars: b,\n defaultedConfig: c,\n groupedYears: L,\n year: v,\n isDisabled: _,\n quarters: h,\n modelValue: C,\n showYearPicker: H,\n setHoverDate: E,\n selectQuarter: U,\n toggleYearPicker: f,\n handleYearSelect: B,\n handleYear: P\n } = Er(n, a);\n return t({ getSidebarProps: () => ({\n modelValue: C,\n year: v,\n selectQuarter: U,\n handleYearSelect: B,\n handleYear: P\n }) }), (ae, oe) => (T(), $e(fa, {\n \"multi-calendars\": o(b).count,\n collapse: ae.collapse,\n stretch: \"\"\n }, {\n default: ke(({ instance: ee }) => [\n ye(\"div\", {\n class: \"dp-quarter-picker-wrap\",\n style: tt({ minHeight: `${o(c).modeHeight}px` })\n }, [\n ae.$slots[\"top-extra\"] ? ie(ae.$slots, \"top-extra\", {\n key: 0,\n value: ae.internalModelValue\n }) : Z(\"\", !0),\n ye(\"div\", null, [\n Ze(En, Ee(ae.$props, {\n items: o(L)(ee),\n instance: ee,\n \"show-year-picker\": o(H)[ee],\n year: o(v)(ee),\n \"is-disabled\": (S) => o(_)(ee, S),\n onHandleYear: (S) => o(P)(ee, S),\n onYearSelect: (S) => o(B)(S, ee),\n onToggleYearPicker: (S) => o(f)(ee, S == null ? void 0 : S.flow, S == null ? void 0 : S.show)\n }), Ve({ _: 2 }, [\n Re(o(d), (S, x) => ({\n name: S,\n fn: ke((Y) => [\n ie(ae.$slots, S, Ne(Qe(Y)))\n ])\n }))\n ]), 1040, [\"items\", \"instance\", \"show-year-picker\", \"year\", \"is-disabled\", \"onHandleYear\", \"onYearSelect\", \"onToggleYearPicker\"])\n ]),\n ye(\"div\", Fr, [\n (T(!0), K(be, null, Re(o(h)(ee), (S, x) => (T(), K(\"div\", { key: x }, [\n ye(\"button\", {\n type: \"button\",\n class: we([\"dp--qr-btn\", {\n \"dp--qr-btn-active\": S.active,\n \"dp--qr-btn-between\": S.isBetween,\n \"dp--qr-btn-disabled\": S.disabled,\n \"dp--highlighted\": S.highlighted\n }]),\n \"data-test\": S.value,\n disabled: S.disabled,\n onClick: (Y) => o(U)(S.value, ee, S.disabled),\n onMouseover: (Y) => o(E)(S.value)\n }, [\n ae.$slots.quarter ? ie(ae.$slots, \"quarter\", {\n key: 0,\n value: S.value,\n text: S.text\n }) : (T(), K(be, { key: 1 }, [\n ct(Ue(S.text), 1)\n ], 64))\n ], 42, Lr)\n ]))), 128))\n ])\n ], 4)\n ]),\n _: 3\n }, 8, [\"multi-calendars\", \"collapse\"]));\n }\n}), Hr = [\"id\", \"tabindex\", \"role\", \"aria-label\"], Ur = {\n key: 0,\n class: \"dp--menu-load-container\"\n}, Vr = {\n key: 1,\n class: \"dp--menu-header\"\n}, Wr = {\n key: 0,\n class: \"dp__sidebar_left\"\n}, jr = [\"data-test\", \"onClick\", \"onKeydown\"], Kr = {\n key: 2,\n class: \"dp__sidebar_right\"\n}, Gr = {\n key: 3,\n class: \"dp__action_extra\"\n}, mn = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerMenu\",\n props: {\n ...ca,\n shadow: { type: Boolean, default: !1 },\n openOnTop: { type: Boolean, default: !1 },\n internalModelValue: { type: [Date, Array], default: null },\n noOverlayFocus: { type: Boolean, default: !1 },\n collapse: { type: Boolean, default: !1 },\n getInputRect: { type: Function, default: () => ({}) },\n isTextInputDate: { type: Boolean, default: !1 }\n },\n emits: [\n \"close-picker\",\n \"select-date\",\n \"auto-apply\",\n \"time-update\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"update:internal-model-value\",\n \"recalculate-position\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"auto-apply-invalid\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, i = ne(null), d = J(() => {\n const { openOnTop: w, ...N } = n;\n return {\n ...N,\n flowStep: x.value,\n collapse: n.collapse,\n noOverlayFocus: n.noOverlayFocus,\n menuWrapRef: i.value\n };\n }), { setMenuFocused: b, setShiftKey: c, control: L } = Nn(), v = Pt(), { defaultedTextInput: _, defaultedInline: h, defaultedConfig: C, defaultedUI: H } = Ce(n), E = ne(null), U = ne(0), f = ne(null), B = ne(!1), P = ne(null);\n We(() => {\n if (!n.shadow) {\n B.value = !0, Q(), window.addEventListener(\"resize\", Q);\n const w = Ie(i);\n if (w && !_.value.enabled && !h.value.enabled && (b(!0), te()), w) {\n const N = (ce) => {\n C.value.allowPreventDefault && ce.preventDefault(), yt(ce, C.value, !0);\n };\n w.addEventListener(\"pointerdown\", N), w.addEventListener(\"mousedown\", N);\n }\n }\n }), ua(() => {\n window.removeEventListener(\"resize\", Q);\n });\n const Q = () => {\n const w = Ie(f);\n w && (U.value = w.getBoundingClientRect().width);\n }, { arrowRight: ae, arrowLeft: oe, arrowDown: ee, arrowUp: S } = bt(), { flowStep: x, updateFlowStep: Y, childMount: q, resetFlow: de, handleFlow: ve } = Zr(n, a, P), y = J(() => n.monthPicker ? rr : n.yearPicker ? sr : n.timePicker ? kr : n.quarterPicker ? zr : Nr), z = J(() => {\n var ce;\n if (C.value.arrowLeft) return C.value.arrowLeft;\n const w = (ce = i.value) == null ? void 0 : ce.getBoundingClientRect(), N = n.getInputRect();\n return (N == null ? void 0 : N.width) < (U == null ? void 0 : U.value) && (N == null ? void 0 : N.left) <= ((w == null ? void 0 : w.left) ?? 0) ? `${(N == null ? void 0 : N.width) / 2}px` : (N == null ? void 0 : N.right) >= ((w == null ? void 0 : w.right) ?? 0) && (N == null ? void 0 : N.width) < (U == null ? void 0 : U.value) ? `${(U == null ? void 0 : U.value) - (N == null ? void 0 : N.width) / 2}px` : \"50%\";\n }), te = () => {\n const w = Ie(i);\n w && w.focus({ preventScroll: !0 });\n }, g = J(() => {\n var w;\n return ((w = P.value) == null ? void 0 : w.getSidebarProps()) || {};\n }), X = () => {\n n.openOnTop && a(\"recalculate-position\");\n }, A = Je(v, \"action\"), p = J(() => n.monthPicker || n.yearPicker ? Je(v, \"monthYear\") : n.timePicker ? Je(v, \"timePicker\") : Je(v, \"shared\")), se = J(() => n.openOnTop ? \"dp__arrow_bottom\" : \"dp__arrow_top\"), I = J(() => ({\n dp__menu_disabled: n.disabled,\n dp__menu_readonly: n.readonly,\n \"dp-menu-loading\": n.loading\n })), D = J(\n () => ({\n dp__menu: !0,\n dp__menu_index: !h.value.enabled,\n dp__relative: h.value.enabled,\n ...H.value.menu ?? {}\n })\n ), V = (w) => {\n yt(w, C.value, !0);\n }, s = () => {\n n.escClose && a(\"close-picker\");\n }, M = (w) => {\n if (n.arrowNavigation) {\n if (w === je.up) return S();\n if (w === je.down) return ee();\n if (w === je.left) return oe();\n if (w === je.right) return ae();\n } else w === je.left || w === je.up ? $(\"handleArrow\", je.left, 0, w === je.up) : $(\"handleArrow\", je.right, 0, w === je.down);\n }, F = (w) => {\n c(w.shiftKey), !n.disableMonthYearSelect && w.code === Pe.tab && w.target.classList.contains(\"dp__menu\") && L.value.shiftKeyInMenu && (w.preventDefault(), yt(w, C.value, !0), a(\"close-picker\"));\n }, u = () => {\n te(), a(\"time-picker-close\");\n }, le = (w) => {\n var N, ce, he;\n (N = P.value) == null || N.toggleTimePicker(!1, !1), (ce = P.value) == null || ce.toggleMonthPicker(!1, !1, w), (he = P.value) == null || he.toggleYearPicker(!1, !1, w);\n }, me = (w, N = 0) => {\n var ce, he, et;\n return w === \"month\" ? (ce = P.value) == null ? void 0 : ce.toggleMonthPicker(!1, !0, N) : w === \"year\" ? (he = P.value) == null ? void 0 : he.toggleYearPicker(!1, !0, N) : w === \"time\" ? (et = P.value) == null ? void 0 : et.toggleTimePicker(!0, !1) : le(N);\n }, $ = (w, ...N) => {\n var ce, he;\n (ce = P.value) != null && ce[w] && ((he = P.value) == null || he[w](...N));\n }, ge = () => {\n $(\"selectCurrentDate\");\n }, r = (w, N) => {\n $(\"presetDate\", w, N);\n }, R = () => {\n $(\"clearHoverDate\");\n }, O = (w, N) => {\n $(\"updateMonthYear\", w, N);\n }, W = (w, N) => {\n w.preventDefault(), M(N);\n }, ue = (w) => {\n var N, ce, he;\n if (F(w), w.key === Pe.home || w.key === Pe.end)\n return $(\n \"selectWeekDate\",\n w.key === Pe.home,\n w.target.getAttribute(\"id\")\n );\n switch ((w.key === Pe.pageUp || w.key === Pe.pageDown) && (w.shiftKey ? ($(\"changeYear\", w.key === Pe.pageUp), (N = Ea(i.value, \"overlay-year\")) == null || N.focus()) : ($(\"changeMonth\", w.key === Pe.pageUp), (ce = Ea(i.value, w.key === Pe.pageUp ? \"action-prev\" : \"action-next\")) == null || ce.focus()), w.target.getAttribute(\"id\") && ((he = i.value) == null || he.focus({ preventScroll: !0 }))), w.key) {\n case Pe.esc:\n return s();\n case Pe.arrowLeft:\n return W(w, je.left);\n case Pe.arrowRight:\n return W(w, je.right);\n case Pe.arrowUp:\n return W(w, je.up);\n case Pe.arrowDown:\n return W(w, je.down);\n default:\n return;\n }\n };\n return t({\n updateMonthYear: O,\n switchView: me,\n handleFlow: ve\n }), (w, N) => {\n var ce, he, et;\n return T(), K(\"div\", {\n id: w.uid ? `dp-menu-${w.uid}` : void 0,\n ref_key: \"dpMenuRef\",\n ref: i,\n tabindex: o(h).enabled ? void 0 : \"0\",\n role: o(h).enabled ? void 0 : \"dialog\",\n \"aria-label\": (ce = w.ariaLabels) == null ? void 0 : ce.menu,\n class: we(D.value),\n style: tt({ \"--dp-arrow-left\": z.value }),\n onMouseleave: R,\n onClick: V,\n onKeydown: ue\n }, [\n (w.disabled || w.readonly) && o(h).enabled || w.loading ? (T(), K(\"div\", {\n key: 0,\n class: we(I.value)\n }, [\n w.loading ? (T(), K(\"div\", Ur, N[19] || (N[19] = [\n ye(\"span\", { class: \"dp--menu-loader\" }, null, -1)\n ]))) : Z(\"\", !0)\n ], 2)) : Z(\"\", !0),\n w.$slots[\"menu-header\"] ? (T(), K(\"div\", Vr, [\n ie(w.$slots, \"menu-header\")\n ])) : Z(\"\", !0),\n !o(h).enabled && !w.teleportCenter ? (T(), K(\"div\", {\n key: 2,\n class: we(se.value)\n }, null, 2)) : Z(\"\", !0),\n ye(\"div\", {\n ref_key: \"innerMenuRef\",\n ref: f,\n class: we({\n dp__menu_content_wrapper: ((he = w.presetDates) == null ? void 0 : he.length) || !!w.$slots[\"left-sidebar\"] || !!w.$slots[\"right-sidebar\"],\n \"dp--menu-content-wrapper-collapsed\": e.collapse && (((et = w.presetDates) == null ? void 0 : et.length) || !!w.$slots[\"left-sidebar\"] || !!w.$slots[\"right-sidebar\"])\n }),\n style: tt({ \"--dp-menu-width\": `${U.value}px` })\n }, [\n w.$slots[\"left-sidebar\"] ? (T(), K(\"div\", Wr, [\n ie(w.$slots, \"left-sidebar\", Ne(Qe(g.value)))\n ])) : Z(\"\", !0),\n w.presetDates.length ? (T(), K(\"div\", {\n key: 1,\n class: we({ \"dp--preset-dates-collapsed\": e.collapse, \"dp--preset-dates\": !0 })\n }, [\n (T(!0), K(be, null, Re(w.presetDates, (fe, vt) => (T(), K(be, { key: vt }, [\n fe.slot ? ie(w.$slots, fe.slot, {\n key: 0,\n presetDate: r,\n label: fe.label,\n value: fe.value\n }) : (T(), K(\"button\", {\n key: 1,\n type: \"button\",\n style: tt(fe.style || {}),\n class: we([\"dp__btn dp--preset-range\", { \"dp--preset-range-collapsed\": e.collapse }]),\n \"data-test\": fe.testId ?? void 0,\n onClick: Wt((ot) => r(fe.value, fe.noTz), [\"prevent\"]),\n onKeydown: (ot) => o(Ke)(ot, () => r(fe.value, fe.noTz), !0)\n }, Ue(fe.label), 47, jr))\n ], 64))), 128))\n ], 2)) : Z(\"\", !0),\n ye(\"div\", {\n ref_key: \"calendarWrapperRef\",\n ref: E,\n class: \"dp__instance_calendar\",\n role: \"document\"\n }, [\n (T(), $e(ia(y.value), Ee({\n ref_key: \"dynCmpRef\",\n ref: P\n }, d.value, {\n \"flow-step\": o(x),\n onMount: o(q),\n onUpdateFlowStep: o(Y),\n onResetFlow: o(de),\n onFocusMenu: te,\n onSelectDate: N[0] || (N[0] = (fe) => w.$emit(\"select-date\")),\n onDateUpdate: N[1] || (N[1] = (fe) => w.$emit(\"date-update\", fe)),\n onTooltipOpen: N[2] || (N[2] = (fe) => w.$emit(\"tooltip-open\", fe)),\n onTooltipClose: N[3] || (N[3] = (fe) => w.$emit(\"tooltip-close\", fe)),\n onAutoApply: N[4] || (N[4] = (fe) => w.$emit(\"auto-apply\", fe)),\n onRangeStart: N[5] || (N[5] = (fe) => w.$emit(\"range-start\", fe)),\n onRangeEnd: N[6] || (N[6] = (fe) => w.$emit(\"range-end\", fe)),\n onInvalidFixedRange: N[7] || (N[7] = (fe) => w.$emit(\"invalid-fixed-range\", fe)),\n onTimeUpdate: N[8] || (N[8] = (fe) => w.$emit(\"time-update\")),\n onAmPmChange: N[9] || (N[9] = (fe) => w.$emit(\"am-pm-change\", fe)),\n onTimePickerOpen: N[10] || (N[10] = (fe) => w.$emit(\"time-picker-open\", fe)),\n onTimePickerClose: u,\n onRecalculatePosition: X,\n onUpdateMonthYear: N[11] || (N[11] = (fe) => w.$emit(\"update-month-year\", fe)),\n onAutoApplyInvalid: N[12] || (N[12] = (fe) => w.$emit(\"auto-apply-invalid\", fe)),\n onInvalidDate: N[13] || (N[13] = (fe) => w.$emit(\"invalid-date\", fe)),\n onOverlayToggle: N[14] || (N[14] = (fe) => w.$emit(\"overlay-toggle\", fe)),\n \"onUpdate:internalModelValue\": N[15] || (N[15] = (fe) => w.$emit(\"update:internal-model-value\", fe))\n }), Ve({ _: 2 }, [\n Re(p.value, (fe, vt) => ({\n name: fe,\n fn: ke((ot) => [\n ie(w.$slots, fe, Ne(Qe({ ...ot })))\n ])\n }))\n ]), 1040, [\"flow-step\", \"onMount\", \"onUpdateFlowStep\", \"onResetFlow\"]))\n ], 512),\n w.$slots[\"right-sidebar\"] ? (T(), K(\"div\", Kr, [\n ie(w.$slots, \"right-sidebar\", Ne(Qe(g.value)))\n ])) : Z(\"\", !0),\n w.$slots[\"action-extra\"] ? (T(), K(\"div\", Gr, [\n w.$slots[\"action-extra\"] ? ie(w.$slots, \"action-extra\", {\n key: 0,\n selectCurrentDate: ge\n }) : Z(\"\", !0)\n ])) : Z(\"\", !0)\n ], 6),\n !w.autoApply || o(C).keepActionRow ? (T(), $e(Jl, Ee({\n key: 3,\n \"menu-mount\": B.value\n }, d.value, {\n \"calendar-width\": U.value,\n onClosePicker: N[16] || (N[16] = (fe) => w.$emit(\"close-picker\")),\n onSelectDate: N[17] || (N[17] = (fe) => w.$emit(\"select-date\")),\n onInvalidSelect: N[18] || (N[18] = (fe) => w.$emit(\"invalid-select\")),\n onSelectNow: ge\n }), Ve({ _: 2 }, [\n Re(o(A), (fe, vt) => ({\n name: fe,\n fn: ke((ot) => [\n ie(w.$slots, fe, Ne(Qe({ ...ot })))\n ])\n }))\n ]), 1040, [\"menu-mount\", \"calendar-width\"])) : Z(\"\", !0)\n ], 46, Hr);\n };\n }\n});\nvar Ct = /* @__PURE__ */ ((e) => (e.center = \"center\", e.left = \"left\", e.right = \"right\", e))(Ct || {});\nconst Qr = ({\n menuRef: e,\n menuRefInner: t,\n inputRef: l,\n pickerWrapperRef: a,\n inline: n,\n emit: i,\n props: d,\n slots: b\n}) => {\n const { defaultedConfig: c } = Ce(d), L = ne({}), v = ne(!1), _ = ne({\n top: \"0\",\n left: \"0\"\n }), h = ne(!1), C = Vt(d, \"teleportCenter\");\n at(C, () => {\n _.value = JSON.parse(JSON.stringify({})), ae();\n });\n const H = (g) => {\n if (d.teleport) {\n const X = g.getBoundingClientRect();\n return {\n left: X.left + window.scrollX,\n top: X.top + window.scrollY\n };\n }\n return { top: 0, left: 0 };\n }, E = (g, X) => {\n _.value.left = `${g + X - L.value.width}px`;\n }, U = (g) => {\n _.value.left = `${g}px`;\n }, f = (g, X) => {\n d.position === Ct.left && U(g), d.position === Ct.right && E(g, X), d.position === Ct.center && (_.value.left = `${g + X / 2 - L.value.width / 2}px`);\n }, B = (g) => {\n const { width: X, height: A } = g.getBoundingClientRect(), { top: p, left: se } = d.altPosition ? d.altPosition(g) : H(g);\n return { top: +p, left: +se, width: X, height: A };\n }, P = () => {\n _.value.left = \"50%\", _.value.top = \"50%\", _.value.transform = \"translate(-50%, -50%)\", _.value.position = \"fixed\", delete _.value.opacity;\n }, Q = () => {\n const g = Ie(l), { top: X, left: A, transform: p } = d.altPosition(g);\n _.value = { top: `${X}px`, left: `${A}px`, transform: p ?? \"\" };\n }, ae = (g = !0) => {\n var X;\n if (!n.value.enabled) {\n if (C.value) return P();\n if (d.altPosition !== null) return Q();\n if (g) {\n const A = d.teleport ? (X = t.value) == null ? void 0 : X.$el : e.value;\n A && (L.value = A.getBoundingClientRect()), i(\"recalculate-position\");\n }\n return de();\n }\n }, oe = ({ inputEl: g, left: X, width: A }) => {\n window.screen.width > 768 && !v.value && f(X, A), x(g);\n }, ee = (g) => {\n const { top: X, left: A, height: p, width: se } = B(g);\n _.value.top = `${p + X + +d.offset}px`, h.value = !1, v.value || (_.value.left = `${A + se / 2 - L.value.width / 2}px`), oe({ inputEl: g, left: A, width: se });\n }, S = (g) => {\n const { top: X, left: A, width: p } = B(g);\n _.value.top = `${X - +d.offset - L.value.height}px`, h.value = !0, oe({ inputEl: g, left: A, width: p });\n }, x = (g) => {\n if (d.autoPosition) {\n const { left: X, width: A } = B(g), { left: p, right: se } = L.value;\n if (!v.value) {\n if (Math.abs(p) !== Math.abs(se)) {\n if (p <= 0)\n return v.value = !0, U(X);\n if (se >= document.documentElement.clientWidth)\n return v.value = !0, E(X, A);\n }\n return f(X, A);\n }\n }\n }, Y = () => {\n const g = Ie(l);\n if (g) {\n const { height: X } = L.value, { top: A, height: p } = g.getBoundingClientRect(), I = window.innerHeight - A - p, D = A;\n return X <= I ? Mt.bottom : X > I && X <= D ? Mt.top : I >= D ? Mt.bottom : Mt.top;\n }\n return Mt.bottom;\n }, q = (g) => Y() === Mt.bottom ? ee(g) : S(g), de = () => {\n const g = Ie(l);\n if (g)\n return d.autoPosition ? q(g) : ee(g);\n }, ve = function(g) {\n if (g) {\n const X = g.scrollHeight > g.clientHeight, p = window.getComputedStyle(g).overflowY.indexOf(\"hidden\") !== -1;\n return X && !p;\n }\n return !0;\n }, y = function(g) {\n return !g || g === document.body || g.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? window : ve(g) ? g : y(\n g.assignedSlot && c.value.shadowDom ? g.assignedSlot.parentNode : g.parentNode\n );\n }, z = (g) => {\n if (g)\n switch (d.position) {\n case Ct.left:\n return { left: 0, transform: \"translateX(0)\" };\n case Ct.right:\n return { left: `${g.width}px`, transform: \"translateX(-100%)\" };\n default:\n return { left: `${g.width / 2}px`, transform: \"translateX(-50%)\" };\n }\n return {};\n };\n return {\n openOnTop: h,\n menuStyle: _,\n xCorrect: v,\n setMenuPosition: ae,\n getScrollableParent: y,\n shadowRender: (g, X) => {\n var s, M, F;\n const A = document.createElement(\"div\"), p = (s = Ie(l)) == null ? void 0 : s.getBoundingClientRect();\n A.setAttribute(\"id\", \"dp--temp-container\");\n const se = (M = a.value) != null && M.clientWidth ? a.value : document.body;\n se.append(A);\n const I = z(p), D = c.value.shadowDom ? Object.keys(b).filter(\n (u) => [\"right-sidebar\", \"left-sidebar\", \"top-extra\", \"action-extra\"].includes(u)\n ) : Object.keys(b), V = Qn(\n g,\n {\n ...X,\n shadow: !0,\n style: { opacity: 0, position: \"absolute\", ...I }\n },\n Object.fromEntries(D.map((u) => [u, b[u]]))\n );\n xa(V, A), L.value = (F = V.el) == null ? void 0 : F.getBoundingClientRect(), xa(null, A), se.removeChild(A);\n }\n };\n}, mt = [\n { name: \"clock-icon\", use: [\"time\", \"calendar\", \"shared\"] },\n { name: \"arrow-left\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-right\", use: [\"month-year\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"arrow-up\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"arrow-down\", use: [\"time\", \"calendar\", \"month-year\", \"shared\"] },\n { name: \"calendar-icon\", use: [\"month-year\", \"time\", \"calendar\", \"shared\", \"year-mode\"] },\n { name: \"day\", use: [\"calendar\", \"shared\"] },\n { name: \"month-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year-overlay-value\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"year-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay\", use: [\"month-year\", \"shared\"] },\n { name: \"month-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"year-overlay-header\", use: [\"month-year\", \"shared\"] },\n { name: \"hours-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-value\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"seconds-overlay-header\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"hours\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"minutes\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"month\", use: [\"calendar\", \"month-year\", \"shared\"] },\n { name: \"year\", use: [\"calendar\", \"month-year\", \"shared\", \"year-mode\"] },\n { name: \"action-buttons\", use: [\"action\"] },\n { name: \"action-preview\", use: [\"action\"] },\n { name: \"calendar-header\", use: [\"calendar\", \"shared\"] },\n { name: \"marker-tooltip\", use: [\"calendar\", \"shared\"] },\n { name: \"action-extra\", use: [\"menu\"] },\n { name: \"time-picker-overlay\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"am-pm-button\", use: [\"calendar\", \"time\", \"shared\"] },\n { name: \"left-sidebar\", use: [\"menu\"] },\n { name: \"right-sidebar\", use: [\"menu\"] },\n { name: \"month-year\", use: [\"month-year\", \"shared\"] },\n { name: \"time-picker\", use: [\"menu\", \"shared\"] },\n { name: \"action-row\", use: [\"action\"] },\n { name: \"marker\", use: [\"calendar\", \"shared\"] },\n { name: \"quarter\", use: [\"shared\"] },\n { name: \"top-extra\", use: [\"shared\", \"month-year\"] },\n { name: \"tp-inline-arrow-up\", use: [\"shared\", \"time\"] },\n { name: \"tp-inline-arrow-down\", use: [\"shared\", \"time\"] },\n { name: \"menu-header\", use: [\"menu\"] }\n], qr = [{ name: \"trigger\" }, { name: \"input-icon\" }, { name: \"clear-icon\" }, { name: \"dp-input\" }], Xr = {\n all: () => mt,\n monthYear: () => mt.filter((e) => e.use.includes(\"month-year\")),\n input: () => qr,\n timePicker: () => mt.filter((e) => e.use.includes(\"time\")),\n action: () => mt.filter((e) => e.use.includes(\"action\")),\n calendar: () => mt.filter((e) => e.use.includes(\"calendar\")),\n menu: () => mt.filter((e) => e.use.includes(\"menu\")),\n shared: () => mt.filter((e) => e.use.includes(\"shared\")),\n yearMode: () => mt.filter((e) => e.use.includes(\"year-mode\"))\n}, Je = (e, t, l) => {\n const a = [];\n return Xr[t]().forEach((n) => {\n e[n.name] && a.push(n.name);\n }), l != null && l.length && l.forEach((n) => {\n n.slot && a.push(n.slot);\n }), a;\n}, Xt = (e) => {\n const t = J(() => (a) => e.value ? a ? e.value.open : e.value.close : \"\"), l = J(() => (a) => e.value ? a ? e.value.menuAppearTop : e.value.menuAppearBottom : \"\");\n return { transitionName: t, showTransition: !!e.value, menuTransition: l };\n}, Jt = (e, t, l) => {\n const { defaultedRange: a, defaultedTz: n } = Ce(e), i = G(qe(G(), n.value.timezone)), d = ne([{ month: De(i), year: pe(i) }]), b = (h) => {\n const C = {\n hours: ft(i),\n minutes: ht(i),\n seconds: 0\n };\n return a.value.enabled ? [C[h], C[h]] : C[h];\n }, c = Qt({\n hours: b(\"hours\"),\n minutes: b(\"minutes\"),\n seconds: b(\"seconds\")\n });\n at(\n a,\n (h, C) => {\n h.enabled !== C.enabled && (c.hours = b(\"hours\"), c.minutes = b(\"minutes\"), c.seconds = b(\"seconds\"));\n },\n { deep: !0 }\n );\n const L = J({\n get: () => e.internalModelValue,\n set: (h) => {\n !e.readonly && !e.disabled && t(\"update:internal-model-value\", h);\n }\n }), v = J(\n () => (h) => d.value[h] ? d.value[h].month : 0\n ), _ = J(\n () => (h) => d.value[h] ? d.value[h].year : 0\n );\n return at(\n L,\n (h, C) => {\n l && JSON.stringify(h ?? {}) !== JSON.stringify(C ?? {}) && l();\n },\n { deep: !0 }\n ), {\n calendars: d,\n time: c,\n modelValue: L,\n month: v,\n year: _,\n today: i\n };\n}, Jr = (e, t) => {\n const {\n defaultedMultiCalendars: l,\n defaultedMultiDates: a,\n defaultedUI: n,\n defaultedHighlight: i,\n defaultedTz: d,\n propDates: b,\n defaultedRange: c\n } = Ce(t), { isDisabled: L } = kt(t), v = ne(null), _ = ne(qe(/* @__PURE__ */ new Date(), d.value.timezone)), h = (s) => {\n !s.current && t.hideOffsetDates || (v.value = s.value);\n }, C = () => {\n v.value = null;\n }, H = (s) => Array.isArray(e.value) && c.value.enabled && e.value[0] && v.value ? s ? Be(v.value, e.value[0]) : Oe(v.value, e.value[0]) : !0, E = (s, M) => {\n const F = () => e.value ? M ? e.value[0] || null : e.value[1] : null, u = e.value && Array.isArray(e.value) ? F() : null;\n return Me(G(s.value), u);\n }, U = (s) => {\n const M = Array.isArray(e.value) ? e.value[0] : null;\n return s ? !Oe(v.value ?? null, M) : !0;\n }, f = (s, M = !0) => (c.value.enabled || t.weekPicker) && Array.isArray(e.value) && e.value.length === 2 ? t.hideOffsetDates && !s.current ? !1 : Me(G(s.value), e.value[M ? 0 : 1]) : c.value.enabled ? E(s, M) && U(M) || Me(s.value, Array.isArray(e.value) ? e.value[0] : null) && H(M) : !1, B = (s, M) => {\n if (Array.isArray(e.value) && e.value[0] && e.value.length === 1) {\n const F = Me(s.value, v.value);\n return M ? Be(e.value[0], s.value) && F : Oe(e.value[0], s.value) && F;\n }\n return !1;\n }, P = (s) => !e.value || t.hideOffsetDates && !s.current ? !1 : c.value.enabled ? t.modelAuto && Array.isArray(e.value) ? Me(s.value, e.value[0] ? e.value[0] : _.value) : !1 : a.value.enabled && Array.isArray(e.value) ? e.value.some((M) => Me(M, s.value)) : Me(s.value, e.value ? e.value : _.value), Q = (s) => {\n if (c.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !s.current) return !1;\n const M = $t(v.value, +c.value.autoRange), F = it(G(v.value), t.weekStart);\n return t.weekPicker ? Me(F[1], G(s.value)) : Me(M, G(s.value));\n }\n return !1;\n }\n return !1;\n }, ae = (s) => {\n if (c.value.autoRange || t.weekPicker) {\n if (v.value) {\n const M = $t(v.value, +c.value.autoRange);\n if (t.hideOffsetDates && !s.current) return !1;\n const F = it(G(v.value), t.weekStart);\n return t.weekPicker ? Be(s.value, F[0]) && Oe(s.value, F[1]) : Be(s.value, v.value) && Oe(s.value, M);\n }\n return !1;\n }\n return !1;\n }, oe = (s) => {\n if (c.value.autoRange || t.weekPicker) {\n if (v.value) {\n if (t.hideOffsetDates && !s.current) return !1;\n const M = it(G(v.value), t.weekStart);\n return t.weekPicker ? Me(M[0], s.value) : Me(v.value, s.value);\n }\n return !1;\n }\n return !1;\n }, ee = (s) => da(e.value, v.value, s.value), S = () => t.modelAuto && Array.isArray(t.internalModelValue) ? !!t.internalModelValue[0] : !1, x = () => t.modelAuto ? An(t.internalModelValue) : !0, Y = (s) => {\n if (t.weekPicker) return !1;\n const M = c.value.enabled ? !f(s) && !f(s, !1) : !0;\n return !L(s.value) && !P(s) && !(!s.current && t.hideOffsetDates) && M;\n }, q = (s) => c.value.enabled ? t.modelAuto ? S() && P(s) : !1 : P(s), de = (s) => i.value ? Dl(s.value, b.value.highlight) : !1, ve = (s) => {\n const M = L(s.value);\n return M && (typeof i.value == \"function\" ? !i.value(s.value, M) : !i.value.options.highlightDisabled);\n }, y = (s) => {\n var M;\n return typeof i.value == \"function\" ? i.value(s.value) : (M = i.value.weekdays) == null ? void 0 : M.includes(s.value.getDay());\n }, z = (s) => (c.value.enabled || t.weekPicker) && (!(l.value.count > 0) || s.current) && x() && !(!s.current && t.hideOffsetDates) && !P(s) ? ee(s) : !1, te = (s) => {\n const { isRangeStart: M, isRangeEnd: F } = p(s), u = c.value.enabled ? M || F : !1;\n return {\n dp__cell_offset: !s.current,\n dp__pointer: !t.disabled && !(!s.current && t.hideOffsetDates) && !L(s.value),\n dp__cell_disabled: L(s.value),\n dp__cell_highlight: !ve(s) && (de(s) || y(s)) && !q(s) && !u && !oe(s) && !(z(s) && t.weekPicker) && !F,\n dp__cell_highlight_active: !ve(s) && (de(s) || y(s)) && q(s),\n dp__today: !t.noToday && Me(s.value, _.value) && s.current,\n \"dp--past\": Oe(s.value, _.value),\n \"dp--future\": Be(s.value, _.value)\n };\n }, g = (s) => ({\n dp__active_date: q(s),\n dp__date_hover: Y(s)\n }), X = (s) => {\n if (e.value && !Array.isArray(e.value)) {\n const M = it(e.value, t.weekStart);\n return {\n ...I(s),\n dp__range_start: Me(M[0], s.value),\n dp__range_end: Me(M[1], s.value),\n dp__range_between_week: Be(s.value, M[0]) && Oe(s.value, M[1])\n };\n }\n return {\n ...I(s)\n };\n }, A = (s) => {\n if (e.value && Array.isArray(e.value)) {\n const M = it(e.value[0], t.weekStart), F = e.value[1] ? it(e.value[1], t.weekStart) : [];\n return {\n ...I(s),\n dp__range_start: Me(M[0], s.value) || Me(F[0], s.value),\n dp__range_end: Me(M[1], s.value) || Me(F[1], s.value),\n dp__range_between_week: Be(s.value, M[0]) && Oe(s.value, M[1]) || Be(s.value, F[0]) && Oe(s.value, F[1]),\n dp__range_between: Be(s.value, M[1]) && Oe(s.value, F[0])\n };\n }\n return {\n ...I(s)\n };\n }, p = (s) => {\n const M = l.value.count > 0 ? s.current && f(s) && x() : f(s) && x(), F = l.value.count > 0 ? s.current && f(s, !1) && x() : f(s, !1) && x();\n return { isRangeStart: M, isRangeEnd: F };\n }, se = (s) => {\n const { isRangeStart: M, isRangeEnd: F } = p(s);\n return {\n dp__range_start: M,\n dp__range_end: F,\n dp__range_between: z(s),\n dp__date_hover: Me(s.value, v.value) && !M && !F && !t.weekPicker,\n dp__date_hover_start: B(s, !0),\n dp__date_hover_end: B(s, !1)\n };\n }, I = (s) => ({\n ...se(s),\n dp__cell_auto_range: ae(s),\n dp__cell_auto_range_start: oe(s),\n dp__cell_auto_range_end: Q(s)\n }), D = (s) => c.value.enabled ? c.value.autoRange ? I(s) : t.modelAuto ? { ...g(s), ...se(s) } : t.weekPicker ? A(s) : se(s) : t.weekPicker ? X(s) : g(s);\n return {\n setHoverDate: h,\n clearHoverDate: C,\n getDayClassData: (s) => t.hideOffsetDates && !s.current ? {} : {\n ...te(s),\n ...D(s),\n [t.dayClass ? t.dayClass(s.value, t.internalModelValue) : \"\"]: !0,\n ...n.value.calendarCell ?? {}\n }\n };\n}, kt = (e) => {\n const { defaultedFilters: t, defaultedRange: l, propDates: a, defaultedMultiDates: n } = Ce(e), i = (y) => a.value.disabledDates ? typeof a.value.disabledDates == \"function\" ? a.value.disabledDates(G(y)) : !!sa(y, a.value.disabledDates) : !1, d = (y) => a.value.maxDate ? e.yearPicker ? pe(y) > pe(a.value.maxDate) : Be(y, a.value.maxDate) : !1, b = (y) => a.value.minDate ? e.yearPicker ? pe(y) < pe(a.value.minDate) : Oe(y, a.value.minDate) : !1, c = (y) => {\n const z = d(y), te = b(y), g = i(y), A = t.value.months.map((V) => +V).includes(De(y)), p = e.disabledWeekDays.length ? e.disabledWeekDays.some((V) => +V === dl(y)) : !1, se = C(y), I = pe(y), D = I < +e.yearRange[0] || I > +e.yearRange[1];\n return !(z || te || g || A || D || p || se);\n }, L = (y, z) => Oe(...pt(a.value.minDate, y, z)) || Me(...pt(a.value.minDate, y, z)), v = (y, z) => Be(...pt(a.value.maxDate, y, z)) || Me(...pt(a.value.maxDate, y, z)), _ = (y, z, te) => {\n let g = !1;\n return a.value.maxDate && te && v(y, z) && (g = !0), a.value.minDate && !te && L(y, z) && (g = !0), g;\n }, h = (y, z, te, g) => {\n let X = !1;\n return g && (a.value.minDate || a.value.maxDate) ? a.value.minDate && a.value.maxDate ? X = _(y, z, te) : (a.value.minDate && L(y, z) || a.value.maxDate && v(y, z)) && (X = !0) : X = !0, X;\n }, C = (y) => Array.isArray(a.value.allowedDates) && !a.value.allowedDates.length ? !0 : a.value.allowedDates ? !sa(y, a.value.allowedDates) : !1, H = (y) => !c(y), E = (y) => l.value.noDisabledRange ? !pn({ start: y[0], end: y[1] }).some((te) => H(te)) : !0, U = (y) => {\n if (y) {\n const z = pe(y);\n return z >= +e.yearRange[0] && z <= e.yearRange[1];\n }\n return !0;\n }, f = (y, z) => !!(Array.isArray(y) && y[z] && (l.value.maxRange || l.value.minRange) && U(y[z])), B = (y, z, te = 0) => {\n if (f(z, te) && U(y)) {\n const g = cl(y, z[te]), X = Cn(z[te], y), A = X.length === 1 ? 0 : X.filter((se) => H(se)).length, p = Math.abs(g) - (l.value.minMaxRawRange ? 0 : A);\n if (l.value.minRange && l.value.maxRange)\n return p >= +l.value.minRange && p <= +l.value.maxRange;\n if (l.value.minRange) return p >= +l.value.minRange;\n if (l.value.maxRange) return p <= +l.value.maxRange;\n }\n return !0;\n }, P = () => !e.enableTimePicker || e.monthPicker || e.yearPicker || e.ignoreTimeValidation, Q = (y) => Array.isArray(y) ? [y[0] ? Pa(y[0]) : null, y[1] ? Pa(y[1]) : null] : Pa(y), ae = (y, z, te) => y.find(\n (g) => +g.hours === ft(z) && g.minutes === \"*\" ? !0 : +g.minutes === ht(z) && +g.hours === ft(z)\n ) && te, oe = (y, z, te) => {\n const [g, X] = y, [A, p] = z;\n return !ae(g, A, te) && !ae(X, p, te) && te;\n }, ee = (y, z) => {\n const te = Array.isArray(z) ? z : [z];\n return Array.isArray(e.disabledTimes) ? Array.isArray(e.disabledTimes[0]) ? oe(e.disabledTimes, te, y) : !te.some((g) => ae(e.disabledTimes, g, y)) : y;\n }, S = (y, z) => {\n const te = Array.isArray(z) ? [St(z[0]), z[1] ? St(z[1]) : void 0] : St(z), g = !e.disabledTimes(te);\n return y && g;\n }, x = (y, z) => e.disabledTimes ? Array.isArray(e.disabledTimes) ? ee(z, y) : S(z, y) : z, Y = (y) => {\n let z = !0;\n if (!y || P()) return !0;\n const te = !a.value.minDate && !a.value.maxDate ? Q(y) : y;\n return (e.maxTime || a.value.maxDate) && (z = dn(\n e.maxTime,\n a.value.maxDate,\n \"max\",\n Ye(te),\n z\n )), (e.minTime || a.value.minDate) && (z = dn(\n e.minTime,\n a.value.minDate,\n \"min\",\n Ye(te),\n z\n )), x(y, z);\n }, q = (y) => {\n if (!e.monthPicker) return !0;\n let z = !0;\n const te = G(lt(y));\n if (a.value.minDate && a.value.maxDate) {\n const g = G(lt(a.value.minDate)), X = G(lt(a.value.maxDate));\n return Be(te, g) && Oe(te, X) || Me(te, g) || Me(te, X);\n }\n if (a.value.minDate) {\n const g = G(lt(a.value.minDate));\n z = Be(te, g) || Me(te, g);\n }\n if (a.value.maxDate) {\n const g = G(lt(a.value.maxDate));\n z = Oe(te, g) || Me(te, g);\n }\n return z;\n }, de = J(() => (y) => !e.enableTimePicker || e.ignoreTimeValidation ? !0 : Y(y)), ve = J(() => (y) => e.monthPicker ? Array.isArray(y) && (l.value.enabled || n.value.enabled) ? !y.filter((te) => !q(te)).length : q(y) : !0);\n return {\n isDisabled: H,\n validateDate: c,\n validateMonthYearInRange: h,\n isDateRangeAllowed: E,\n checkMinMaxRange: B,\n isValidTime: Y,\n isTimeValid: de,\n isMonthValid: ve\n };\n}, ma = () => {\n const e = J(() => (a, n) => a == null ? void 0 : a.includes(n)), t = J(() => (a, n) => a.count ? a.solo ? !0 : n === 0 : !0), l = J(() => (a, n) => a.count ? a.solo ? !0 : n === a.count - 1 : !0);\n return { hideNavigationButtons: e, showLeftIcon: t, showRightIcon: l };\n}, Zr = (e, t, l) => {\n const a = ne(0), n = Qt({\n [Tt.timePicker]: !e.enableTimePicker || e.timePicker || e.monthPicker,\n [Tt.calendar]: !1,\n [Tt.header]: !1\n }), i = J(() => e.monthPicker || e.timePicker), d = (_) => {\n var h;\n if ((h = e.flow) != null && h.length) {\n if (!_ && i.value) return v();\n n[_] = !0, Object.keys(n).filter((C) => !n[C]).length || v();\n }\n }, b = () => {\n var _, h;\n (_ = e.flow) != null && _.length && a.value !== -1 && (a.value += 1, t(\"flow-step\", a.value), v()), ((h = e.flow) == null ? void 0 : h.length) === a.value && xe().then(() => c());\n }, c = () => {\n a.value = -1;\n }, L = (_, h, ...C) => {\n var H, E;\n e.flow[a.value] === _ && l.value && ((E = (H = l.value)[h]) == null || E.call(H, ...C));\n }, v = (_ = 0) => {\n _ && (a.value += _), L(He.month, \"toggleMonthPicker\", !0), L(He.year, \"toggleYearPicker\", !0), L(He.calendar, \"toggleTimePicker\", !1, !0), L(He.time, \"toggleTimePicker\", !0, !0);\n const h = e.flow[a.value];\n (h === He.hours || h === He.minutes || h === He.seconds) && L(h, \"toggleTimePicker\", !0, !0, h);\n };\n return { childMount: d, updateFlowStep: b, resetFlow: c, handleFlow: v, flowStep: a };\n}, xr = {\n key: 1,\n class: \"dp__input_wrap\"\n}, eo = [\"id\", \"name\", \"inputmode\", \"placeholder\", \"disabled\", \"readonly\", \"required\", \"value\", \"autocomplete\", \"aria-label\", \"aria-disabled\", \"aria-invalid\"], to = {\n key: 2,\n class: \"dp--clear-btn\"\n}, ao = [\"aria-label\"], no = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"DatepickerInput\",\n props: {\n isMenuOpen: { type: Boolean, default: !1 },\n inputValue: { type: String, default: \"\" },\n ...ca\n },\n emits: [\n \"clear\",\n \"open\",\n \"update:input-value\",\n \"set-input-date\",\n \"close\",\n \"select-date\",\n \"set-empty-date\",\n \"toggle\",\n \"focus-prev\",\n \"focus\",\n \"blur\",\n \"real-blur\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, {\n defaultedTextInput: i,\n defaultedAriaLabels: d,\n defaultedInline: b,\n defaultedConfig: c,\n defaultedRange: L,\n defaultedMultiDates: v,\n defaultedUI: _,\n getDefaultPattern: h,\n getDefaultStartTime: C\n } = Ce(n), { checkMinMaxRange: H } = kt(n), E = ne(), U = ne(null), f = ne(!1), B = ne(!1), P = J(\n () => ({\n dp__pointer: !n.disabled && !n.readonly && !i.value.enabled,\n dp__disabled: n.disabled,\n dp__input_readonly: !i.value.enabled,\n dp__input: !0,\n dp__input_icon_pad: !n.hideInputIcon,\n dp__input_valid: typeof n.state == \"boolean\" ? n.state : !1,\n dp__input_invalid: typeof n.state == \"boolean\" ? !n.state : !1,\n dp__input_focus: f.value || n.isMenuOpen,\n dp__input_reg: !i.value.enabled,\n ..._.value.input ?? {}\n })\n ), Q = () => {\n a(\"set-input-date\", null), n.clearable && n.autoApply && (a(\"set-empty-date\"), E.value = null);\n }, ae = (p) => {\n const se = C();\n return Ml(\n p,\n i.value.format ?? h(),\n se ?? On({}, n.enableSeconds),\n n.inputValue,\n B.value,\n n.formatLocale\n );\n }, oe = (p) => {\n const { rangeSeparator: se } = i.value, [I, D] = p.split(`${se}`);\n if (I) {\n const V = ae(I.trim()), s = D ? ae(D.trim()) : null;\n if (_t(V, s)) return;\n const M = V && s ? [V, s] : [V];\n H(s, M, 0) && (E.value = V ? M : null);\n }\n }, ee = () => {\n B.value = !0;\n }, S = (p) => {\n if (L.value.enabled)\n oe(p);\n else if (v.value.enabled) {\n const se = p.split(\";\");\n E.value = se.map((I) => ae(I.trim())).filter((I) => I);\n } else\n E.value = ae(p);\n }, x = (p) => {\n var I;\n const se = typeof p == \"string\" ? p : (I = p.target) == null ? void 0 : I.value;\n se !== \"\" ? (i.value.openMenu && !n.isMenuOpen && a(\"open\"), S(se), a(\"set-input-date\", E.value)) : Q(), B.value = !1, a(\"update:input-value\", se), a(\"text-input\", p, E.value);\n }, Y = (p) => {\n i.value.enabled ? (S(p.target.value), i.value.enterSubmit && Fa(E.value) && n.inputValue !== \"\" ? (a(\"set-input-date\", E.value, !0), E.value = null) : i.value.enterSubmit && n.inputValue === \"\" && (E.value = null, a(\"clear\"))) : ve(p);\n }, q = (p, se) => {\n i.value.enabled && i.value.tabSubmit && !se && S(p.target.value), i.value.tabSubmit && Fa(E.value) && n.inputValue !== \"\" ? (a(\"set-input-date\", E.value, !0, !0), E.value = null) : i.value.tabSubmit && n.inputValue === \"\" && (E.value = null, a(\"clear\", !0));\n }, de = () => {\n f.value = !0, a(\"focus\"), xe().then(() => {\n var p;\n i.value.enabled && i.value.selectOnFocus && ((p = U.value) == null || p.select());\n });\n }, ve = (p) => {\n if (yt(p, c.value, !0), i.value.enabled && i.value.openMenu && !b.value.input) {\n if (i.value.openMenu === \"open\" && !n.isMenuOpen) return a(\"open\");\n if (i.value.openMenu === \"toggle\") return a(\"toggle\");\n } else i.value.enabled || a(\"toggle\");\n }, y = () => {\n a(\"real-blur\"), f.value = !1, (!n.isMenuOpen || b.value.enabled && b.value.input) && a(\"blur\"), n.autoApply && i.value.enabled && E.value && !n.isMenuOpen && (a(\"set-input-date\", E.value), a(\"select-date\"), E.value = null);\n }, z = (p) => {\n yt(p, c.value, !0), a(\"clear\");\n }, te = (p) => {\n if (p.key === \"Tab\" && q(p), p.key === \"Enter\" && Y(p), !i.value.enabled) {\n if (p.code === \"Tab\") return;\n p.preventDefault();\n }\n }, g = () => {\n var p;\n (p = U.value) == null || p.focus({ preventScroll: !0 });\n }, X = (p) => {\n E.value = p;\n }, A = (p) => {\n p.key === Pe.tab && q(p, !0);\n };\n return t({\n focusInput: g,\n setParsedDate: X\n }), (p, se) => {\n var I, D, V;\n return T(), K(\"div\", { onClick: ve }, [\n p.$slots.trigger && !p.$slots[\"dp-input\"] && !o(b).enabled ? ie(p.$slots, \"trigger\", { key: 0 }) : Z(\"\", !0),\n !p.$slots.trigger && (!o(b).enabled || o(b).input) ? (T(), K(\"div\", xr, [\n p.$slots[\"dp-input\"] && !p.$slots.trigger && (!o(b).enabled || o(b).enabled && o(b).input) ? ie(p.$slots, \"dp-input\", {\n key: 0,\n value: e.inputValue,\n isMenuOpen: e.isMenuOpen,\n onInput: x,\n onEnter: Y,\n onTab: q,\n onClear: z,\n onBlur: y,\n onKeypress: te,\n onPaste: ee,\n onFocus: de,\n openMenu: () => p.$emit(\"open\"),\n closeMenu: () => p.$emit(\"close\"),\n toggleMenu: () => p.$emit(\"toggle\")\n }) : Z(\"\", !0),\n p.$slots[\"dp-input\"] ? Z(\"\", !0) : (T(), K(\"input\", {\n key: 1,\n id: p.uid ? `dp-input-${p.uid}` : void 0,\n ref_key: \"inputRef\",\n ref: U,\n \"data-test\": \"dp-input\",\n name: p.name,\n class: we(P.value),\n inputmode: o(i).enabled ? \"text\" : \"none\",\n placeholder: p.placeholder,\n disabled: p.disabled,\n readonly: p.readonly,\n required: p.required,\n value: e.inputValue,\n autocomplete: p.autocomplete,\n \"aria-label\": (I = o(d)) == null ? void 0 : I.input,\n \"aria-disabled\": p.disabled || void 0,\n \"aria-invalid\": p.state === !1 ? !0 : void 0,\n onInput: x,\n onBlur: y,\n onFocus: de,\n onKeypress: te,\n onKeydown: se[0] || (se[0] = (s) => te(s)),\n onPaste: ee\n }, null, 42, eo)),\n ye(\"div\", {\n onClick: se[3] || (se[3] = (s) => a(\"toggle\"))\n }, [\n p.$slots[\"input-icon\"] && !p.hideInputIcon ? (T(), K(\"span\", {\n key: 0,\n class: \"dp__input_icon\",\n onClick: se[1] || (se[1] = (s) => a(\"toggle\"))\n }, [\n ie(p.$slots, \"input-icon\")\n ])) : Z(\"\", !0),\n !p.$slots[\"input-icon\"] && !p.hideInputIcon && !p.$slots[\"dp-input\"] ? (T(), $e(o(Et), {\n key: 1,\n \"aria-label\": (D = o(d)) == null ? void 0 : D.calendarIcon,\n class: \"dp__input_icon dp__input_icons\",\n onClick: se[2] || (se[2] = (s) => a(\"toggle\"))\n }, null, 8, [\"aria-label\"])) : Z(\"\", !0)\n ]),\n p.$slots[\"clear-icon\"] && e.inputValue && p.clearable && !p.disabled && !p.readonly ? (T(), K(\"span\", to, [\n ie(p.$slots, \"clear-icon\", { clear: z })\n ])) : Z(\"\", !0),\n p.clearable && !p.$slots[\"clear-icon\"] && e.inputValue && !p.disabled && !p.readonly ? (T(), K(\"button\", {\n key: 3,\n \"aria-label\": (V = o(d)) == null ? void 0 : V.clearInput,\n class: \"dp--clear-btn\",\n type: \"button\",\n onKeydown: se[4] || (se[4] = (s) => o(Ke)(s, () => z(s), !0, A)),\n onClick: se[5] || (se[5] = Wt((s) => z(s), [\"prevent\"]))\n }, [\n Ze(o(Mn), {\n class: \"dp__input_icons\",\n \"data-test\": \"clear-icon\"\n })\n ], 40, ao)) : Z(\"\", !0)\n ])) : Z(\"\", !0)\n ]);\n };\n }\n}), lo = typeof window < \"u\" ? window : void 0, Ya = () => {\n}, ro = (e) => qn() ? (Xn(e), !0) : !1, oo = (e, t, l, a) => {\n if (!e) return Ya;\n let n = Ya;\n const i = at(\n () => o(e),\n (b) => {\n n(), b && (b.addEventListener(t, l, a), n = () => {\n b.removeEventListener(t, l, a), n = Ya;\n });\n },\n { immediate: !0, flush: \"post\" }\n ), d = () => {\n i(), n();\n };\n return ro(d), d;\n}, so = (e, t, l, a = {}) => {\n const { window: n = lo, event: i = \"pointerdown\" } = a;\n return n ? oo(n, i, (b) => {\n const c = Ie(e), L = Ie(t);\n !c || !L || c === b.target || b.composedPath().includes(c) || b.composedPath().includes(L) || l(b);\n }, { passive: !0 }) : void 0;\n}, uo = /* @__PURE__ */ Le({\n compatConfig: {\n MODE: 3\n },\n __name: \"VueDatePicker\",\n props: {\n ...ca\n },\n emits: [\n \"update:model-value\",\n \"update:model-timezone-value\",\n \"text-submit\",\n \"closed\",\n \"cleared\",\n \"open\",\n \"focus\",\n \"blur\",\n \"internal-model-change\",\n \"recalculate-position\",\n \"flow-step\",\n \"update-month-year\",\n \"invalid-select\",\n \"invalid-fixed-range\",\n \"tooltip-open\",\n \"tooltip-close\",\n \"time-picker-open\",\n \"time-picker-close\",\n \"am-pm-change\",\n \"range-start\",\n \"range-end\",\n \"date-update\",\n \"invalid-date\",\n \"overlay-toggle\",\n \"text-input\"\n ],\n setup(e, { expose: t, emit: l }) {\n const a = l, n = e, i = Pt(), d = ne(!1), b = Vt(n, \"modelValue\"), c = Vt(n, \"timezone\"), L = ne(null), v = ne(null), _ = ne(null), h = ne(!1), C = ne(null), H = ne(!1), E = ne(!1), U = ne(!1), f = ne(!1), { setMenuFocused: B, setShiftKey: P } = Nn(), { clearArrowNav: Q } = bt(), { validateDate: ae, isValidTime: oe } = kt(n), {\n defaultedTransitions: ee,\n defaultedTextInput: S,\n defaultedInline: x,\n defaultedConfig: Y,\n defaultedRange: q,\n defaultedMultiDates: de\n } = Ce(n), { menuTransition: ve, showTransition: y } = Xt(ee);\n We(() => {\n s(n.modelValue), xe().then(() => {\n if (!x.value.enabled) {\n const m = se(C.value);\n m == null || m.addEventListener(\"scroll\", O), window == null || window.addEventListener(\"resize\", W);\n }\n }), x.value.enabled && (d.value = !0), window == null || window.addEventListener(\"keyup\", ue), window == null || window.addEventListener(\"keydown\", w);\n }), ua(() => {\n if (!x.value.enabled) {\n const m = se(C.value);\n m == null || m.removeEventListener(\"scroll\", O), window == null || window.removeEventListener(\"resize\", W);\n }\n window == null || window.removeEventListener(\"keyup\", ue), window == null || window.removeEventListener(\"keydown\", w);\n });\n const z = Je(i, \"all\", n.presetDates), te = Je(i, \"input\");\n at(\n [b, c],\n () => {\n s(b.value);\n },\n { deep: !0 }\n );\n const { openOnTop: g, menuStyle: X, xCorrect: A, setMenuPosition: p, getScrollableParent: se, shadowRender: I } = Qr({\n menuRef: L,\n menuRefInner: v,\n inputRef: _,\n pickerWrapperRef: C,\n inline: x,\n emit: a,\n props: n,\n slots: i\n }), {\n inputValue: D,\n internalModelValue: V,\n parseExternalModelValue: s,\n emitModelValue: M,\n formatInputValue: F,\n checkBeforeEmit: u\n } = Gl(a, n, h), le = J(\n () => ({\n dp__main: !0,\n dp__theme_dark: n.dark,\n dp__theme_light: !n.dark,\n dp__flex_display: x.value.enabled,\n \"dp--flex-display-collapsed\": U.value,\n dp__flex_display_with_input: x.value.input\n })\n ), me = J(() => n.dark ? \"dp__theme_dark\" : \"dp__theme_light\"), $ = J(() => n.teleport ? {\n to: typeof n.teleport == \"boolean\" ? \"body\" : n.teleport,\n disabled: !n.teleport || x.value.enabled\n } : {}), ge = J(() => ({ class: \"dp__outer_menu_wrap\" })), r = J(() => x.value.enabled && (n.timePicker || n.monthPicker || n.yearPicker || n.quarterPicker)), R = () => {\n var m, j;\n return (j = (m = _.value) == null ? void 0 : m.$el) == null ? void 0 : j.getBoundingClientRect();\n }, O = () => {\n d.value && (Y.value.closeOnScroll ? Xe() : p());\n }, W = () => {\n var j;\n d.value && p();\n const m = (j = v.value) == null ? void 0 : j.$el.getBoundingClientRect().width;\n U.value = document.body.offsetWidth <= m;\n }, ue = (m) => {\n m.key === \"Tab\" && !x.value.enabled && !n.teleport && Y.value.tabOutClosesMenu && (C.value.contains(document.activeElement) || Xe()), E.value = m.shiftKey;\n }, w = (m) => {\n E.value = m.shiftKey;\n }, N = () => {\n !n.disabled && !n.readonly && (I(mn, n), p(!1), d.value = !0, d.value && a(\"open\"), d.value || Ft(), s(n.modelValue));\n }, ce = () => {\n var m;\n D.value = \"\", Ft(), (m = _.value) == null || m.setParsedDate(null), a(\"update:model-value\", null), a(\"update:model-timezone-value\", null), a(\"cleared\"), Y.value.closeOnClearValue && Xe();\n }, he = () => {\n const m = V.value;\n return !m || !Array.isArray(m) && ae(m) ? !0 : Array.isArray(m) ? de.value.enabled || m.length === 2 && ae(m[0]) && ae(m[1]) ? !0 : q.value.partialRange && !n.timePicker ? ae(m[0]) : !1 : !1;\n }, et = () => {\n u() && he() ? (M(), Xe()) : a(\"invalid-select\", V.value);\n }, fe = (m) => {\n vt(), M(), Y.value.closeOnAutoApply && !m && Xe();\n }, vt = () => {\n _.value && S.value.enabled && _.value.setParsedDate(V.value);\n }, ot = (m = !1) => {\n n.autoApply && oe(V.value) && he() && (q.value.enabled && Array.isArray(V.value) ? (q.value.partialRange || V.value.length === 2) && fe(m) : fe(m));\n }, Ft = () => {\n S.value.enabled || (V.value = null);\n }, Xe = () => {\n x.value.enabled || (d.value && (d.value = !1, A.value = !1, B(!1), P(!1), Q(), a(\"closed\"), D.value && s(b.value)), Ft(), a(\"blur\"));\n }, Lt = (m, j, re = !1) => {\n if (!m) {\n V.value = null;\n return;\n }\n const Ae = Array.isArray(m) ? !m.some((wt) => !ae(wt)) : ae(m), Fe = oe(m);\n Ae && Fe ? (f.value = !0, V.value = m, j && (H.value = re, et(), a(\"text-submit\")), xe().then(() => {\n f.value = !1;\n })) : a(\"invalid-date\", m);\n }, pa = () => {\n n.autoApply && oe(V.value) && M(), vt();\n }, Zt = () => d.value ? Xe() : N(), ya = (m) => {\n V.value = m;\n }, ga = () => {\n S.value.enabled && (h.value = !0, F()), a(\"focus\");\n }, ha = () => {\n if (S.value.enabled && (h.value = !1, s(n.modelValue), H.value)) {\n const m = wl(C.value, E.value);\n m == null || m.focus();\n }\n a(\"blur\");\n }, ba = (m) => {\n v.value && v.value.updateMonthYear(0, {\n month: rn(m.month),\n year: rn(m.year)\n });\n }, ka = (m) => {\n s(m ?? n.modelValue);\n }, wa = (m, j) => {\n var re;\n (re = v.value) == null || re.switchView(m, j);\n }, Za = (m) => Y.value.onClickOutside ? Y.value.onClickOutside(m) : Xe(), k = (m = 0) => {\n var j;\n (j = v.value) == null || j.handleFlow(m);\n };\n return so(L, _, () => Za(he)), t({\n closeMenu: Xe,\n selectDate: et,\n clearValue: ce,\n openMenu: N,\n onScroll: O,\n formatInputValue: F,\n // exposed for testing purposes\n updateInternalModelValue: ya,\n // modify internal modelValue\n setMonthYear: ba,\n parseModel: ka,\n switchView: wa,\n toggleMenu: Zt,\n handleFlow: k,\n dpWrapMenuRef: L\n }), (m, j) => (T(), K(\"div\", {\n ref_key: \"pickerWrapperRef\",\n ref: C,\n class: we(le.value),\n \"data-datepicker-instance\": \"\"\n }, [\n Ze(no, Ee({\n ref_key: \"inputRef\",\n ref: _,\n \"input-value\": o(D),\n \"onUpdate:inputValue\": j[0] || (j[0] = (re) => en(D) ? D.value = re : null),\n \"is-menu-open\": d.value\n }, m.$props, {\n onClear: ce,\n onOpen: N,\n onSetInputDate: Lt,\n onSetEmptyDate: o(M),\n onSelectDate: et,\n onToggle: Zt,\n onClose: Xe,\n onFocus: ga,\n onBlur: ha,\n onRealBlur: j[1] || (j[1] = (re) => h.value = !1),\n onTextInput: j[2] || (j[2] = (re) => m.$emit(\"text-input\", re))\n }), Ve({ _: 2 }, [\n Re(o(te), (re, Ae) => ({\n name: re,\n fn: ke((Fe) => [\n ie(m.$slots, re, Ne(Qe(Fe)))\n ])\n }))\n ]), 1040, [\"input-value\", \"is-menu-open\", \"onSetEmptyDate\"]),\n (T(), $e(ia(m.teleport ? Jn : \"div\"), Ne(Qe($.value)), {\n default: ke(() => [\n Ze(Nt, {\n name: o(ve)(o(g)),\n css: o(y) && !o(x).enabled\n }, {\n default: ke(() => [\n d.value ? (T(), K(\"div\", Ee({\n key: 0,\n ref_key: \"dpWrapMenuRef\",\n ref: L\n }, ge.value, {\n class: { \"dp--menu-wrapper\": !o(x).enabled },\n style: o(x).enabled ? void 0 : o(X)\n }), [\n Ze(mn, Ee({\n ref_key: \"dpMenuRef\",\n ref: v\n }, m.$props, {\n \"internal-model-value\": o(V),\n \"onUpdate:internalModelValue\": j[3] || (j[3] = (re) => en(V) ? V.value = re : null),\n class: { [me.value]: !0, \"dp--menu-wrapper\": m.teleport },\n \"open-on-top\": o(g),\n \"no-overlay-focus\": r.value,\n collapse: U.value,\n \"get-input-rect\": R,\n \"is-text-input-date\": f.value,\n onClosePicker: Xe,\n onSelectDate: et,\n onAutoApply: ot,\n onTimeUpdate: pa,\n onFlowStep: j[4] || (j[4] = (re) => m.$emit(\"flow-step\", re)),\n onUpdateMonthYear: j[5] || (j[5] = (re) => m.$emit(\"update-month-year\", re)),\n onInvalidSelect: j[6] || (j[6] = (re) => m.$emit(\"invalid-select\", o(V))),\n onAutoApplyInvalid: j[7] || (j[7] = (re) => m.$emit(\"invalid-select\", re)),\n onInvalidFixedRange: j[8] || (j[8] = (re) => m.$emit(\"invalid-fixed-range\", re)),\n onRecalculatePosition: o(p),\n onTooltipOpen: j[9] || (j[9] = (re) => m.$emit(\"tooltip-open\", re)),\n onTooltipClose: j[10] || (j[10] = (re) => m.$emit(\"tooltip-close\", re)),\n onTimePickerOpen: j[11] || (j[11] = (re) => m.$emit(\"time-picker-open\", re)),\n onTimePickerClose: j[12] || (j[12] = (re) => m.$emit(\"time-picker-close\", re)),\n onAmPmChange: j[13] || (j[13] = (re) => m.$emit(\"am-pm-change\", re)),\n onRangeStart: j[14] || (j[14] = (re) => m.$emit(\"range-start\", re)),\n onRangeEnd: j[15] || (j[15] = (re) => m.$emit(\"range-end\", re)),\n onDateUpdate: j[16] || (j[16] = (re) => m.$emit(\"date-update\", re)),\n onInvalidDate: j[17] || (j[17] = (re) => m.$emit(\"invalid-date\", re)),\n onOverlayToggle: j[18] || (j[18] = (re) => m.$emit(\"overlay-toggle\", re))\n }), Ve({ _: 2 }, [\n Re(o(z), (re, Ae) => ({\n name: re,\n fn: ke((Fe) => [\n ie(m.$slots, re, Ne(Qe({ ...Fe })))\n ])\n }))\n ]), 1040, [\"internal-model-value\", \"class\", \"open-on-top\", \"no-overlay-focus\", \"collapse\", \"is-text-input-date\", \"onRecalculatePosition\"])\n ], 16)) : Z(\"\", !0)\n ]),\n _: 3\n }, 8, [\"name\", \"css\"])\n ]),\n _: 3\n }, 16))\n ], 2));\n }\n}), Vn = /* @__PURE__ */ (() => {\n const e = uo;\n return e.install = (t) => {\n t.component(\"Vue3DatePicker\", e);\n }, e;\n})(), io = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: Vn\n}, Symbol.toStringTag, { value: \"Module\" }));\nObject.entries(io).forEach(([e, t]) => {\n e !== \"default\" && (Vn[e] = t);\n});\nexport {\n Vn as default\n};\n","<script setup lang=\"ts\">\nimport { computed, onMounted, type PropType, reactive, ref, useAttrs, watch } from 'vue'\nimport {\n DatepickerFormat,\n DatepickerTypes,\n DayjsFormat,\n DatepickerOutputFormat,\n DatepickerFormatsVariations\n} from '@/enums/Datepicker'\nimport type { DatepickerFormatsObjectFormat, IDatepickerPlaceholders, IDatepickerPreset } from '@/types/IDatepicker'\nimport { type DatePickerValue, type DatepickerTypesUnion, type DatepickerFormatsObject } from '@/types/IDatepicker'\n//@ts-ignore\nimport { dayjs, dayjsLocales } from '../../../utils/dayjs.js'\nimport { default as DatePicker, type DatePickerMarker } from '@vuepic/vue-datepicker'\nimport '@vuepic/vue-datepicker/dist/main.css'\nimport { McTitle, McSvgIcon, McButton } from '@/components'\nimport { useFieldErrors } from '@/composables'\nimport { ButtonSize, TitleVariations, Weights } from '@/enums'\n\nconst attrs = useAttrs()\nconst emit = defineEmits(['update:modelValue'])\n\nconst props = defineProps({\n //@ts-ignore\n modelValue: {\n type: [String, Array] as PropType<DatePickerValue>\n },\n /**\n * Тип датапикера\n */\n type: {\n type: String as () => DatepickerTypesUnion,\n default: DatepickerTypes.DatePicker\n },\n /**\n * Заголовок поля:\n */\n title: {\n type: String as PropType<string>,\n default: ''\n },\n\n /**\n * Вспомогательный текст под инпутом:\n */\n helpText: {\n type: String as PropType<string>,\n default: ''\n },\n\n /**\n * Редактируемый инпут\n */\n editable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n placeholder: {\n type: String as PropType<string>,\n default: null\n },\n\n /**\n * Name\n */\n name: {\n type: String as PropType<string>,\n required: true\n },\n\n /**\n * Локаль The locale code (ISO 639-1 + optional country code)\n */\n lang: {\n type: String as PropType<string>,\n default: 'en'\n },\n /**\n * Ошибки\n */\n errors: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n /**\n * Отдаваемая дата будет в формате ISO String\n */\n toIsoFormat: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Формат отдаваемой даты\n */\n placeholders: {\n type: Object as IDatepickerPlaceholders,\n default: () => ({\n week: 'Week',\n month: 'Month',\n quarter: 'Quarter',\n year: 'Year',\n confirm: 'Confirm'\n })\n },\n /**\n * Пресеты для быстрых периодов\n **/\n customPresets: {\n type: Array as PropType<IDatepickerPreset[]>,\n default: () => []\n },\n range: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Если значение true, то датапикер отображается в открытом виде\n */\n inline: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Дата, до которой все будет задизэйблено\n **/\n minDate: {\n type: [Date, String] as PropType<Date | string>\n },\n /**\n * Дата, после которой все будет задизэйблено\n **/\n maxDate: {\n type: [String, Date] as PropType<Date | string>\n },\n /**\n * Массив дат запрещенных к выбору / Метод которые проверяет каждую дату\n **/\n disabledDates: {\n type: [Array as PropType<Date[] | string[]>, Function]\n },\n /**\n * Массив дат разрешенных к выбору / Метод которые проверяет каждую дату\n * **/\n allowedDates: {\n type: [Array as PropType<Date[] | string[]>, Function]\n },\n /**\n * Функция проверяющая и устанавливающая доступно ли время для выбора\n * Params [String] date - текущая дата\n * return Boolean, где true - время заблокировано для выбора\n * **/\n disabledTime: {\n type: [Array as PropType<Date[] | string[]>, Function]\n },\n minWidth: {\n type: String as PropType<string>,\n default: '240px'\n },\n hours: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n minutes: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n seconds: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n timezone: {\n type: String as PropType<string>,\n default: dayjs.tz.guess()\n },\n useTimezone: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Показывать ли крестик очищения поля\n * */\n clearable: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n loading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n setDefaultToday: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n markers: {\n type: Array as () => DatePickerMarker[],\n default: () => [] as DatePickerMarker[]\n }\n})\n\nconst fieldErrors = useFieldErrors(props.errors)\nconst pickDate = ref<DatePickerValue>(null)\nconst input = ref<InstanceType<typeof DatePicker> | null | any>(null)\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-date-picker--error': !!fieldErrors.errorText.value,\n 'mc-date-picker--disabled': props.disabled\n }\n})\n\nconst formats = reactive<DatepickerFormatsObject>({\n [DatepickerTypes.TimePicker]: {\n [DatepickerFormatsVariations.Picker]: DatepickerFormat.TimePicker,\n [DatepickerFormatsVariations.Dayjs]: DayjsFormat.TimePicker,\n [DatepickerFormatsVariations.Output]: DatepickerOutputFormat.TimePicker\n },\n [DatepickerTypes.DatePicker]: {\n [DatepickerFormatsVariations.Picker]: DatepickerFormat.DatePicker,\n [DatepickerFormatsVariations.Dayjs]: DayjsFormat.DatePicker,\n [DatepickerFormatsVariations.Output]: DatepickerOutputFormat.DatePicker\n },\n [DatepickerTypes.DateTimePicker]: {\n [DatepickerFormatsVariations.Picker]: DatepickerFormat.DateTimePicker,\n [DatepickerFormatsVariations.Dayjs]: DayjsFormat.DateTimePicker,\n [DatepickerFormatsVariations.Output]: DatepickerOutputFormat.DateTimePicker\n },\n [DatepickerTypes.WeekPicker]: {\n [DatepickerFormatsVariations.Picker]: DatepickerFormat.WeekPicker,\n [DatepickerFormatsVariations.Dayjs]: DayjsFormat.WeekPicker,\n [DatepickerFormatsVariations.Output]: DatepickerOutputFormat.WeekPicker\n },\n [DatepickerTypes.MonthPicker]: {\n [DatepickerFormatsVariations.Picker]: DatepickerFormat.MonthPicker,\n [DatepickerFormatsVariations.Dayjs]: DayjsFormat.MonthPicker,\n [DatepickerFormatsVariations.Output]: DatepickerOutputFormat.MonthPicker\n },\n [DatepickerTypes.YearPicker]: {\n [DatepickerFormatsVariations.Picker]: DatepickerFormat.YearPicker,\n [DatepickerFormatsVariations.Dayjs]: DayjsFormat.YearPicker,\n [DatepickerFormatsVariations.Output]: DatepickerOutputFormat.YearPicker\n }\n})\nconst computedType = computed((): DatepickerTypes => {\n return (props.type as DatepickerTypes) || DatepickerTypes.DatePicker\n})\nconst dateFormat = reactive<DatepickerFormatsObjectFormat>(formats[computedType.value])\n\nconst isTimePicker = computed((): boolean => {\n return computedType.value === DatepickerTypes.TimePicker\n})\nconst isDateTimePicker = computed((): boolean => {\n return computedType.value === DatepickerTypes.DateTimePicker\n})\nconst isWeekPicker = computed((): boolean => {\n return computedType.value === DatepickerTypes.WeekPicker\n})\nconst isMonthPicker = computed((): boolean => {\n return computedType.value === DatepickerTypes.MonthPicker\n})\nconst isYearPicker = computed((): boolean => {\n return computedType.value === DatepickerTypes.YearPicker\n})\nconst pickerType = computed((): Partial<Record<DatepickerTypes, boolean>> => {\n return {\n [DatepickerTypes.TimePicker]: computedType.value === DatepickerTypes.TimePicker,\n [DatepickerTypes.WeekPicker]: computedType.value === DatepickerTypes.WeekPicker,\n [DatepickerTypes.MonthPicker]: computedType.value === DatepickerTypes.MonthPicker,\n [DatepickerTypes.YearPicker]: computedType.value === DatepickerTypes.YearPicker\n }\n})\nconst isAutoApply = computed((): boolean => {\n return !isTimePicker.value && !isDateTimePicker.value && !isFooterVisible.value\n})\nconst weekNumbers = computed((): string | null => {\n return isWeekPicker.value ? 'local' : null\n})\nconst modelType = computed((): string => {\n return props.toIsoFormat && !props.useTimezone ? 'iso' : 'format'\n})\nconst hoursOptions = computed((): object => {\n return props.hours && props.hours.length ? { 'hour-options': props.hours } : {}\n})\nconst minutesOptions = computed((): object => {\n return props.minutes && props.minutes.length ? { 'minute-options': props.minutes } : {}\n})\nconst secondsOptions = computed((): object => {\n return props.seconds && props.seconds.length ? { 'second-options': props.seconds } : {}\n})\nconst isFooterVisible = computed((): boolean => {\n return (\n props.range &&\n (props.customPresets?.length || !!props.placeholders) &&\n !isTimePicker.value &&\n !isYearPicker.value &&\n !isMonthPicker.value\n )\n})\n\nonMounted(() => {\n init()\n})\n\nconst localValue = computed({\n get() {\n return getFormattedPickerDate(props.modelValue)\n },\n set(value) {\n if (!value) value = props.range ? [] : null\n const date = getFormattedOutputDate(value)\n fieldErrors.toggleErrorVisible()\n emit('update:modelValue', date)\n }\n})\n\nconst init = () => {\n props.setDefaultToday && handlePreselectToday()\n}\n\nconst handlerPreselectRange = (period: string[]): void => {\n const [start, end] = period\n input.value && (input.value.currentValue = dayjs ? [dayjs(start).toDate(), dayjs(end).toDate()] : period)\n}\n\n/**\n * Преселект при setDefaultToday = true\n * */\nconst handlePreselectToday = (): void => {\n if (isWeekPicker.value) return\n\n const hasValue = props.range\n ? localValue.value?.length && Array.isArray(localValue.value) && localValue.value.every((v) => dayjs(v).isValid())\n : //@ts-ignore\n dayjs(localValue.value).isValid()\n\n if (!hasValue) {\n let today = props.toIsoFormat\n ? dayjs().toISOString()\n : dayjs().format(dateFormat[DatepickerFormatsVariations.Output])\n localValue.value = props.range ? getFormattedPickerDate([today, today]) : getFormattedPickerDate(today)\n }\n}\n\n/**\n * Prepare dates for datepicker\n * */\nconst getFormattedPickerDate = (value: DatePickerValue): DatePickerValue => {\n if (isWeekPicker.value) return value\n let preparedValue = props.range ? (Array.isArray(value) ? value : []) : [value]\n if (!props.toIsoFormat) {\n preparedValue = preparedValue.map((pv) => dayjs(pv as string, dateFormat.output).format(dateFormat.dayjs))\n }\n\n const [start, end] = preparedValue\n return props.range ? ([start, end].filter(Boolean) as DatePickerValue) : start\n}\n\n/**\n * Prepare dates for output\n * */\nconst getFormattedOutputDate = (value: DatePickerValue): DatePickerValue => {\n if (isWeekPicker.value) return value\n let preparedValue = props.range ? (Array.isArray(value) ? value.map((pv) => String(pv)) : []) : [String(value)]\n if (!props.toIsoFormat) {\n preparedValue = preparedValue.map((pv) => dayjs(pv, dateFormat.dayjs).format(dateFormat.output))\n }\n\n const [start, end] = preparedValue.map((pv) => (pv === 'Invalid Date' ? null : pv))\n return props.range ? ([start, end].filter(Boolean) as DatePickerValue) : start\n}\n\nconst setLocale = async (): Promise<void> => {\n const locale = props.lang !== 'ar' && Object.keys(dayjsLocales).includes(props.lang) ? props.lang : 'en'\n dayjs.locale(locale)\n}\n\nconst selectPeriod = (key: string) => {\n let start = dayjs()\n //@ts-ignore\n const end = pickDate.value ? dayjs(pickDate.value) : dayjs()\n switch (key) {\n case 'week':\n start = dayjs(end).subtract(7, 'days')\n break\n case 'month':\n start = dayjs(end).subtract(1, 'months')\n break\n case 'quarter':\n start = dayjs(end).subtract(3, 'months')\n break\n case 'year':\n start = dayjs(end).subtract(1, 'years')\n break\n }\n input.value.updateInternalModelValue([start.toDate(), end.toDate()])\n}\nconst handlePickDate = (date: DatePickerValue) => {\n pickDate.value = date\n}\n\nconst handleSubmit = () => {\n input.value.selectDate()\n input.value.closeMenu()\n}\n\nwatch(\n () => props.lang,\n () => {\n setLocale()\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <div ref=\"field\" class=\"mc-date-picker\" :class=\"classes\">\n <label v-if=\"$slots.header || !!props.title\" :for=\"name\" class=\"mc-date-picker__header\">\n <!-- @slot Слот для заголовка над инпутом -->\n <slot name=\"title\">\n <mc-title v-if=\"props.title\" :weight=\"Weights.Medium\">{{ props.title }}</mc-title>\n </slot>\n </label>\n <div class=\"mc-date-picker__inner\">\n <div class=\"mc-date-picker__input-wrapper\" :style=\"{ minWidth }\">\n <date-picker\n v-model=\"localValue\"\n ref=\"input\"\n :type=\"type\"\n v-bind=\"{\n ...attrs,\n ...pickerType,\n ...hoursOptions,\n ...minutesOptions,\n ...secondsOptions\n }\"\n class=\"mc-date-picker__date-picker\"\n :range=\"props.range\"\n :multi-calendars=\"props.range\"\n :month-change-on-scroll=\"false\"\n :timezone=\"timezone\"\n :format=\"dateFormat.picker\"\n :model-type=\"modelType\"\n :auto-apply=\"isAutoApply\"\n :partial-flow=\"isTimePicker || isDateTimePicker\"\n :enable-time-picker=\"isTimePicker || isDateTimePicker\"\n :clearable=\"clearable\"\n :inline=\"inline\"\n :locale=\"lang\"\n :markers=\"markers\"\n :action-row=\"{}\"\n :loading=\"loading\"\n :week-numbers=\"weekNumbers\"\n :placeholder=\"placeholder\"\n :editable=\"editable\"\n :disabled=\"disabled\"\n :disabled-dates=\"disabledDates\"\n :allowed-dates=\"allowedDates\"\n :min-date=\"minDate\"\n :max-date=\"maxDate\"\n :disabled-times=\"disabledTime\"\n @range-start=\"handlePickDate\"\n >\n <!-- @slot Слот для вставки в футер попапа календаря -->\n <template v-if=\"isFooterVisible\" #action-row>\n <div class=\"mc-datepicker__footer-popup\">\n <div class=\"mc-datepicker__footer-popup-periods\">\n <template v-if=\"customPresets && customPresets.length\">\n <mc-button\n v-for=\"preset in customPresets\"\n :key=\"preset.title\"\n variation=\"black-link\"\n secondary-color=\"purple\"\n @click=\"handlerPreselectRange(preset.period)\"\n >\n {{ preset.title }}\n </mc-button>\n </template>\n <template v-else>\n <mc-button\n v-if=\"placeholders.week\"\n variation=\"black-link\"\n secondary-color=\"purple\"\n @click=\"selectPeriod('week')\"\n >\n {{ placeholders.week }}\n </mc-button>\n <mc-button\n v-if=\"placeholders.month\"\n variation=\"black-link\"\n secondary-color=\"purple\"\n @click=\"selectPeriod('month')\"\n >\n {{ placeholders.month }}\n </mc-button>\n <mc-button\n v-if=\"placeholders.quarter\"\n variation=\"black-link\"\n secondary-color=\"purple\"\n @click=\"selectPeriod('quarter')\"\n >\n {{ placeholders.quarter }}\n </mc-button>\n <mc-button\n v-if=\"placeholders.year\"\n variation=\"black-link\"\n secondary-color=\"purple\"\n @click=\"selectPeriod('year')\"\n >\n {{ placeholders.year }}\n </mc-button>\n </template>\n </div>\n <mc-button\n v-if=\"placeholders.confirm\"\n variation=\"purple-outline\"\n :size=\"ButtonSize.Xs\"\n @click=\"handleSubmit\"\n >\n {{ placeholders.confirm }}\n </mc-button>\n </div>\n </template>\n <template #input-icon>\n <mc-svg-icon name=\"calendar\" size=\"300\" :color=\"props.disabled ? 'outline-gray' : 'black'\" />\n </template>\n <template v-if=\"$slots.header\" #header>\n <div>\n <!-- @slot Слот для вставки в хедер попапа календаря -->\n <slot name=\"header\" />\n </div>\n </template>\n <template v-if=\"$slots.sidebar\" #sidebar>\n <div>\n <!-- @slot Слот для вставки в сайдбар попапа календаря -->\n <slot name=\"sidebar\" />\n </div>\n </template>\n <!-- @slot Слот для вставки пользовательской иконки календаря -->\n <template #icon-calendar>\n <mc-svg-icon class=\"mc-date-picker__icon\" name=\"calendar\" />\n </template>\n </date-picker>\n </div>\n </div>\n <div v-if=\"!!fieldErrors.errorText.value || !!props.helpText || !!$slots.bottom\" class=\"mc-date-picker__footer\">\n <mc-title v-if=\"!!fieldErrors.errorText.value\" tag-name=\"div\" color=\"red\" :variation=\"TitleVariations.Overline\">\n {{ fieldErrors.errorText.value }}\n </mc-title>\n <br v-if=\"!!fieldErrors.errorText.value && (!!props.helpText || !!$slots.bottom)\" />\n <!-- @slot Слот для доп. текста под инпутом -->\n <slot name=\"bottom\">\n <mc-title v-if=\"!!props.helpText\" tag-name=\"div\" :variation=\"TitleVariations.Overline\">\n {{ props.helpText }}\n </mc-title>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n//More info https://vue3datepicker.com/installation/\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/box-shadows' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/media-queries' as *;\n@use '../../../assets/tokens/border-radius' as *;\n@use 'sass:color' as sasscolor;\n.mc-date-picker {\n $block-name: &;\n display: block;\n font-family: $font-family-main;\n &__header {\n @include reset-text-indents();\n display: block;\n margin-bottom: $space-100;\n &:empty {\n display: none;\n }\n }\n &__inner {\n display: flex;\n align-items: center;\n }\n &__input-wrapper {\n width: 100%;\n .dp__input {\n font-family: $font-family-main;\n font-size: $font-size-200;\n line-height: $line-height-200;\n height: $size-500;\n padding: $space-100 $space-300 $space-100 36px;\n border-color: $color-outline-gray;\n border-radius: $radius-100;\n cursor: pointer;\n color: $color-black;\n &:hover,\n &:focus {\n border-color: $color-purple;\n }\n &::placeholder {\n color: $color-gray;\n }\n }\n }\n &__footer {\n margin-top: $space-50;\n &:empty {\n display: none;\n }\n }\n .dp__input {\n font-family: $font-family-main;\n font-size: $font-size-200;\n line-height: $line-height-200;\n height: $size-500;\n padding: $space-100 $space-300 $space-100 36px;\n border-color: $color-outline-gray;\n border-radius: $radius-100;\n cursor: pointer;\n color: $color-black;\n &:hover,\n &:focus {\n border-color: $color-purple;\n }\n &::placeholder {\n color: $color-gray;\n }\n }\n\n &--error {\n .dp__input {\n border-color: $color-red !important;\n }\n }\n &--disabled {\n .dp__input {\n color: $color-outline-gray;\n cursor: not-allowed;\n background-color: $color-hover-gray;\n border-color: $color-outline-gray;\n box-shadow: none;\n &:hover,\n &:focus {\n border-color: $color-outline-gray;\n }\n }\n }\n // Input to top\n // Calendar below\n .dp + .dp {\n border-left: none;\n }\n .dp {\n width: 256px;\n padding: $space-200;\n font-size: $font-size-200;\n &--header-wrap {\n margin-bottom: $space-200;\n }\n &__month_year_wrap {\n justify-content: center;\n }\n &__month_year_select {\n font-size: $font-size-200;\n line-height: $line-height-200;\n font-weight: $font-weight-semi-bold;\n color: $color-black;\n width: max-content;\n height: auto;\n }\n &__input_icon {\n display: flex;\n align-items: center;\n justify-content: center;\n left: 8px;\n }\n &--clear-btn {\n margin-right: $space-100;\n svg {\n padding: 0;\n }\n &:hover {\n svg {\n color: $color-black;\n }\n }\n }\n &__calendar {\n &_item {\n flex-grow: unset;\n .dp {\n &__cell_inner {\n @include size($size-400);\n font-size: $font-size-200;\n line-height: $line-height-200;\n font-weight: $font-weight-normal;\n color: $color-black;\n border-radius: $radius-100;\n &:hover {\n color: $color-purple;\n background-color: sasscolor.scale($color-purple, $lightness: 80%);\n border-radius: $radius-100;\n }\n }\n &__cell_disabled {\n background-color: $color-hover-gray !important;\n border-radius: 0 !important;\n }\n &__cell_offset {\n color: $color-hover-gray;\n }\n &__range_between {\n color: $color-black;\n background-color: sasscolor.scale($color-purple, $lightness: 90%);\n border-radius: 0;\n }\n &__range_start,\n &__range_end,\n &__active_date {\n color: $color-white !important;\n background-color: $color-purple !important;\n border-color: $color-purple !important;\n }\n &__active_date {\n box-shadow: $shadow-s-purple;\n }\n &__today {\n color: $color-purple;\n border-color: transparent;\n border-radius: $radius-100;\n }\n }\n }\n &_header {\n &_item {\n @include size($space-400);\n font-size: $font-size-200;\n line-height: $line-height-200;\n font-weight: $font-weight-normal;\n color: $color-dark-gray;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n &_separator {\n display: none;\n }\n }\n &_row {\n margin: 0;\n }\n }\n &__btn {\n font-size: $font-size-200;\n line-height: $line-height-200;\n font-weight: $font-weight-semi-bold;\n background: transparent;\n &:hover {\n color: $color-purple;\n }\n }\n &__menu {\n border-radius: $radius-150;\n box-shadow: $shadow-s;\n z-index: 12222;\n border: transparent;\n padding: $space-200;\n &_inner {\n padding: 0;\n }\n }\n &__arrow_top,\n &__arrow_bottom,\n &__arrow_left,\n &__arrow_right {\n border: none;\n box-shadow: $shadow-s;\n z-index: -1;\n }\n &__action_row {\n padding: 0;\n margin: 0;\n .mc-datepicker__footer-popup {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n &-periods {\n display: flex;\n justify-content: space-between;\n align-items: center;\n @include child-indent-right($space-200);\n > * {\n @include child-indent-right($space-300);\n }\n .mc-button {\n @include child-indent-right($space-zero);\n }\n }\n }\n }\n }\n @at-root {\n html[dir='rtl'] {\n .mx-icon {\n &-double {\n &-right:after {\n left: $space-100;\n }\n &-left:before {\n left: -$space-100;\n }\n }\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useDebounceFn, useDraggable, useLocalStorage, useSessionStorage } from '@vueuse/core'\nimport { computed, type PropType, ref, watch } from 'vue'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { McPreview } from '@/components'\nimport type { ColorsUnion } from '@/types/styles/Colors'\n\ninterface DraggableInitPayload {\n x: number\n y: number\n}\n\ntype CardIdType = string | number | undefined\ntype StorageTypeUnion = 'local' | 'session'\n\nconst localStorage = useLocalStorage('McDraggable', {})\nconst sessionStorage = useSessionStorage('McDraggable', {})\nconst draggable_el = ref<HTMLElement | null>(null)\nconst debounce = useDebounceFn((method) => {\n method()\n}, 100)\n\nconst props = defineProps({\n /**\n * Дизайн:\n * purple, red, orange и т.д.\n */\n variation: {\n type: String as () => ColorTypes,\n default: 'purple' as ColorTypes\n },\n initial: {\n type: Object as PropType<DraggableInitPayload>,\n default: () =>\n ({\n x: 0,\n y: 0\n }) as DraggableInitPayload\n },\n /**\n * Key for save position to storage (**required**, if savePosition = true)\n * */\n cardId: {\n type: [String, Number] as PropType<CardIdType>\n },\n savePosition: {\n type: Boolean,\n default: false\n },\n storageType: {\n type: String as PropType<StorageTypeUnion>,\n default: 'session'\n }\n})\n\nconst uniqueId = computed((): CardIdType => {\n return props.cardId\n})\n\nconst isSessionStorageType = computed((): boolean => {\n return props.storageType === ('session' as StorageTypeUnion)\n})\nconst isLocalStorageType = computed((): boolean => {\n return props.storageType === ('local' as StorageTypeUnion)\n})\nconst initialPositions = computed((): DraggableInitPayload => {\n let local_x = props.initial.x || 0\n let local_y = props.initial.y || 0\n\n if (props.savePosition && !uniqueId.value)\n console.warn('cardId prop required, if savePosition = true')\n\n if (!uniqueId.value || !props.savePosition) return { x: local_x, y: local_y }\n if (isSessionStorageType.value) {\n //@ts-ignore\n const { x, y } = sessionStorage.value[uniqueId.value] || ({} as DraggableInitPayload)\n local_x = x\n local_y = y\n }\n if (isLocalStorageType.value) {\n //@ts-ignore\n const { x, y } = localStorage.value[uniqueId.value] || ({} as DraggableInitPayload)\n local_x = x\n local_y = y\n }\n return { x: local_x || 0, y: local_y || 0 } as DraggableInitPayload\n})\n\nconst { x, y, style } = useDraggable(draggable_el, {\n initialValue: { x: initialPositions.value.x, y: initialPositions.value.y } as DraggableInitPayload\n})\n\nconst styles = computed((): { [key: string]: ColorsUnion | string } => {\n return {\n '--mc-draggable-color': Colors[props.variation]\n }\n})\n\nconst handleSavePosition = (): void => {\n if (!uniqueId.value) return\n if (isSessionStorageType.value) {\n sessionStorage.value = {\n ...sessionStorage.value,\n [uniqueId.value]: { x: x.value, y: y.value }\n }\n }\n if (isLocalStorageType.value) {\n localStorage.value = {\n ...localStorage.value,\n [uniqueId.value]: { x: x.value, y: y.value }\n }\n }\n}\n\nwatch(\n () => style.value,\n () => {\n if (!props.savePosition) return\n debounce(handleSavePosition)\n }\n)\n</script>\n\n<template>\n <div ref=\"draggable_el\" class=\"mc-draggable\" :style=\"style\" style=\"position: fixed\">\n <div class=\"mc-draggable__inner\" :style=\"styles\">\n <mc-preview>\n <template #left>\n <slot name=\"left\" />\n </template>\n <template #top>\n <slot name=\"top\" />\n </template>\n <template #bottom>\n <slot name=\"bottom\" />\n </template>\n <template #right>\n <slot name=\"right\" />\n </template>\n </mc-preview>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/media-queries' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/border-radius' as *;\n@use '../../../assets/tokens/font-families' as *;\n.mc-draggable {\n cursor: move;\n font-family: $font-family-main;\n &__inner {\n --mc-draggable-color: $color-purple;\n\n padding: $space-100 $space-150 $space-100 $space-200;\n min-height: $size-700;\n display: flex;\n align-items: center;\n position: relative;\n color: white;\n user-select: none;\n &:before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: var(--mc-draggable-color);\n border-radius: $radius-200;\n }\n\n .mc-preview {\n width: 100%;\n z-index: 1;\n &__top {\n margin-bottom: $space-50;\n }\n &__left {\n display: flex;\n align-items: center;\n margin-inline-end: $size-150;\n }\n &__right {\n display: flex;\n align-items: center;\n margin-inline-start: auto;\n padding-inline-start: $space-100;\n }\n }\n\n @media #{$media-query-m-down} {\n .mc-preview {\n flex-wrap: wrap;\n\n &__center {\n flex: 1;\n }\n &__right {\n width: 100%;\n padding-top: $space-100;\n padding-inline-start: $size-400 - 2;\n }\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McTitle, McSvgIcon } from '@/components'\nimport { useFieldErrors } from '@/composables'\nimport { computed, type PropType, useSlots } from 'vue'\nimport { Sizes, type SizeTypes } from '@/types/styles/Sizes'\nimport { Directions } from '@/enums/ui/Directions'\nimport type { SizesUnion } from '@/types/styles/Sizes'\nimport { TitleVariations, Weights } from '@/enums'\n\nconst emit = defineEmits(['update:modelValue'])\nconst slots = useSlots()\nconst props = defineProps({\n //@ts-ignore\n modelValue: {\n type: [Boolean, String, Number, Array as PropType<string[] | number[]>],\n validator(value: unknown, props: any): boolean {\n return props.multiple ? Array.isArray(value) : true\n }\n },\n /**\n * Name\n *\n */\n name: {\n type: String,\n default: null\n },\n /**\n * Выбранное значение\n *\n */\n checkedValue: {\n type: [String, Boolean, Number],\n default: true\n },\n /**\n * Невыбранное значение\n *\n */\n uncheckedValue: {\n type: [String, Boolean, Number],\n default: false\n },\n\n /**\n * Ошибки\n *\n */\n errors: {\n type: Array as PropType<string[]>,\n default: null\n },\n\n /**\n * Вспомогательный текст под инпутом:\n *\n */\n helpText: {\n type: String,\n default: null\n },\n\n /**\n * Подпись чекбокса:\n *\n */\n mainText: {\n type: String,\n default: null\n },\n\n /**\n * Заголовок поля:\n *\n */\n title: {\n type: String,\n default: null\n },\n\n /**\n * Отключенное состояние\n *\n */\n disabled: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n checkboxSize: {\n type: String as () => SizeTypes,\n default: '250'\n },\n\n /**\n * Атрибут tabindex для главного элемента\n *\n */\n tabindex: {\n type: [String, Number]\n },\n dir: {\n type: String as () => Directions,\n default: Directions.Ltr\n }\n})\n\nconst fieldErrors = useFieldErrors(props.errors)\n\nconst rtl = computed((): boolean => {\n return props.dir === Directions.Rtl\n})\n\nconst classes = computed((): { [key: string]: boolean } => ({\n 'mc-field-checkbox': true,\n 'mc-field-checkbox--error': props.errors,\n 'mc-field-checkbox--disabled': props.disabled,\n 'mc-field-checkbox--empty': !props.mainText && !slots.default,\n 'mc-field-checkbox--rtl': rtl.value\n}))\n\nconst styles = computed((): { [key: string]: SizesUnion | string } => ({\n '--mc-field-checkbox-size': Sizes[props.checkboxSize as SizeTypes]\n}))\n\nconst isChecked = computed((): boolean => {\n return props.multiple && props.modelValue\n ? props.modelValue.includes(props.checkedValue)\n : props.modelValue === props.checkedValue\n})\n\nconst inputProps = computed((): object => ({\n disabled: props.disabled,\n name: props.name,\n checked: isChecked.value,\n tabindex: props.tabindex,\n type: 'checkbox',\n class: 'mc-field-checkbox__input'\n}))\n\nconst handleChange = (e: Event): void => {\n fieldErrors.toggleErrorVisible()\n\n const payload =\n props.multiple && props.modelValue\n ? props.modelValue.includes(props.checkedValue)\n ? props.modelValue.filter((v: boolean) => v !== props.checkedValue)\n : [...props.modelValue, props.checkedValue]\n : //@ts-ignore\n e.target && e.target.checked\n ? props.checkedValue\n : props.uncheckedValue\n\n emit('update:modelValue', payload)\n}\n</script>\n\n<template>\n <div :dir=\"props.dir\" :class=\"classes\" :style=\"styles\">\n <div v-if=\"props.title || $slots.header\" class=\"mc-field-text__header\">\n <!-- @slot Слот заголовка -->\n <slot name=\"header\">\n <mc-title :weight=\"Weights.Medium\">{{ props.title }}</mc-title>\n </slot>\n </div>\n <div class=\"mc-field-checkbox__input-wrap\">\n <label class=\"mc-field-checkbox__name\">\n <mc-svg-icon\n class=\"mc-field-checkbox__icon\"\n :name=\"isChecked ? 'checkbox--checked' : 'checkbox'\"\n :color=\"isChecked ? 'purple' : 'gray'\"\n :size=\"props.checkboxSize\"\n />\n <input v-bind=\"inputProps\" @change=\"handleChange\" />\n <span v-if=\"props.mainText || $slots.default\" class=\"mc-field-checkbox__name-text\">\n <!-- @slot Слот для пользовательской подписи чекбокса -->\n <slot>\n <mc-title tag-name=\"div\">{{ props.mainText }}</mc-title>\n </slot>\n </span>\n </label>\n <div class=\"mc-field-checkbox__footer\">\n <mc-title\n v-if=\"fieldErrors.errorText.value\"\n tag-name=\"div\"\n color=\"red\"\n :variation=\"TitleVariations.Overline\"\n max-width=\"100%\"\n >\n {{ fieldErrors.errorText.value }}\n </mc-title>\n <br v-if=\"fieldErrors.errorText.value\" />\n <!-- @slot Слот доп. текста под чекбоксом -->\n <slot name=\"footer\">\n <mc-title\n v-if=\"props.helpText\"\n tag-name=\"div\"\n :variation=\"TitleVariations.Overline\"\n color=\"gray\"\n max-width=\"100%\"\n >\n {{ props.helpText }}\n </mc-title>\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/font-families' as *;\n.mc-field-checkbox {\n $block-name: &;\n font-family: $font-family-main;\n position: relative;\n display: block;\n min-width: var(--mc-field-checkbox-size);\n min-height: var(--mc-field-checkbox-size);\n\n #{$block-name}__icon {\n width: var(--mc-field-checkbox-size);\n height: var(--mc-field-checkbox-size);\n }\n\n &__header {\n @include reset-text-indents();\n display: block;\n margin-bottom: $space-100;\n\n &:empty {\n display: none;\n }\n }\n\n &__name {\n @include reset();\n position: relative;\n line-height: $line-height-200;\n font-size: $font-size-200;\n display: flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n }\n\n &__icon {\n z-index: 1;\n &:hover {\n color: $color-purple;\n }\n }\n\n &__name-text {\n display: inline-block;\n margin-inline-start: $space-100;\n &:before {\n @include pseudo(none);\n @include size(var(--mc-field-checkbox-size));\n @include position(absolute, 0 null null 0);\n background-size: 100%;\n }\n\n .mc-button {\n display: inline;\n white-space: normal;\n vertical-align: top;\n margin-inline-start: 1px;\n\n &__text {\n white-space: normal;\n display: inline;\n }\n }\n }\n\n &__input {\n display: none;\n }\n\n &__footer {\n padding-inline-start: $space-250;\n margin-top: $space-50;\n &:empty {\n display: none;\n }\n }\n\n &--disabled {\n #{$block-name} {\n &__icon {\n color: $color-outline-gray;\n &:hover {\n color: $color-outline-gray;\n }\n }\n &__name-text {\n &:before {\n display: block;\n border-radius: 2px;\n background-color: $color-hover-gray;\n }\n }\n }\n }\n\n &--empty {\n #{$block-name} {\n &__footer,\n &__name {\n padding: 0;\n margin: 0;\n }\n }\n }\n\n &--rtl {\n direction: rtl;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McTitle, McSvgIcon } from '@/components'\nimport { computed, type PropType, useSlots, watch } from 'vue'\nimport { type ColorTypes } from '@/types/styles/Colors'\nimport type { SizeTypes } from '@/types/styles/Sizes'\nimport { useFieldErrors } from '@/composables'\nimport type { RadioVariationUnion } from '@/types/IRadio'\nimport { Directions } from '@/enums/ui/Directions'\nimport { type DirectionsUnion } from '@/types/IDirections'\nimport type { IconsListUnion } from '@/types/styles/Icons'\nimport { TitleVariations } from '@/enums'\n\nconst slots = useSlots()\nconst emit = defineEmits(['update:modelValue'])\nconst props = defineProps({\n /**\n * Значение\n */\n modelValue: {\n default: null\n },\n value: {\n default: null\n },\n /**\n * Name\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Подпись радио:\n *\n */\n label: {\n type: [String, Number],\n default: null\n },\n /**\n * Вспомогательный текст под инпутом:\n *\n */\n helpText: {\n type: String,\n default: null\n },\n\n /**\n * Ошибки\n *\n */\n errors: {\n type: Array as PropType<string[]>,\n default: null\n },\n /**\n * Отключенное состояние\n *\n */\n disabled: {\n type: Boolean,\n default: false\n },\n\n /**\n * Атрибут tabindex для главного элемента\n *\n */\n tabindex: {\n type: [String, Number]\n },\n /**\n * Вариант активного состояния\n * circle - внутри круг\n * checkmark - внутри галочка\n * */\n variation: {\n type: String as () => RadioVariationUnion,\n default: 'circle'\n },\n /**\n * цвет\n */\n color: {\n type: String as () => ColorTypes,\n default: 'purple'\n },\n iconSize: {\n type: String as () => SizeTypes,\n default: '250'\n },\n dir: {\n type: String as () => DirectionsUnion,\n default: Directions.Ltr\n }\n})\nconst fieldErrors = useFieldErrors(props.errors)\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-field-radio-button--disabled': props.disabled,\n 'mc-field-radio-button--empty': !props.label && !slots.default,\n 'mc-field-radio-button--rtl': rtl.value\n }\n})\nconst rtl = computed((): boolean => {\n return props.dir === Directions.Rtl\n})\n\nconst activeIcon = computed((): IconsListUnion => {\n switch (props.variation) {\n case 'checkmark': {\n return 'check_circle_solid'\n }\n default: {\n return 'radio--checked'\n }\n }\n})\n\nconst iconColor = computed((): ColorTypes => {\n switch (true) {\n case props.disabled:\n return 'outline-gray'\n case inputProps.value.checked:\n return props.color as ColorTypes\n default:\n return 'gray'\n }\n})\n\nconst inputProps = computed((): { [key: string]: any } => {\n return {\n disabled: props.disabled,\n value: props.modelValue,\n name: props.name,\n checked: props.value && props.value === props.modelValue,\n tabindex: props.tabindex,\n class: 'mc-field-radio-button__input',\n type: 'radio'\n }\n})\n\nwatch(\n () => props.modelValue,\n () => {\n fieldErrors.toggleErrorVisible()\n }\n)\n\nconst handleChange = () => {\n emit('update:modelValue', props.value)\n}\n</script>\n\n<template>\n <label :dir=\"props.dir\" class=\"mc-field-radio-button\" :class=\"classes\">\n <input checked v-bind=\"inputProps\" @change=\"handleChange\" />\n <span class=\"mc-field-radio-button__icon_wrapper\">\n <mc-svg-icon\n :name=\"inputProps.checked ? activeIcon : 'circle'\"\n :color=\"iconColor\"\n :size=\"props.iconSize\"\n class=\"mc-field-radio-button__icon\"\n />\n </span>\n <span v-if=\"label || $slots.default\" class=\"mc-field-radio-button__text\">\n <!-- @slot Слот для пользовательской подписи радио -->\n <slot>\n <mc-title>{{ label }}</mc-title>\n </slot>\n <mc-title\n v-if=\"fieldErrors.errorText.value\"\n tag-name=\"div\"\n color=\"red\"\n :variation=\"TitleVariations.Overline\"\n max-width=\"100%\"\n >\n {{ fieldErrors.errorText.value }}\n </mc-title>\n <br v-if=\"fieldErrors.errorText.value\" />\n <!-- @slot -->\n <slot name=\"footer\">\n <mc-title\n v-if=\"props.helpText\"\n tag-name=\"div\"\n :variation=\"TitleVariations.Overline\"\n color=\"gray\"\n max-width=\"100%\"\n >\n {{ props.helpText }}\n </mc-title>\n </slot>\n </span>\n </label>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/border-radius' as *;\n.mc-field-radio-button {\n $block-name: &;\n font-family: $font-family-main;\n min-width: $size-250;\n min-height: $size-250;\n @include reset();\n position: relative;\n line-height: $line-height-200;\n font-size: $font-size-200;\n cursor: pointer;\n display: inline-flex;\n\n &__icon {\n &_wrapper {\n z-index: 1;\n margin-inline-end: $space-50;\n }\n }\n\n &__text {\n display: inline-block;\n margin: 2px 0;\n }\n\n &__input {\n display: none;\n }\n\n &--disabled {\n cursor: auto;\n\n #{$block-name}__input {\n & ~ #{$block-name}__icon_wrapper {\n .mc-svg-icon {\n border-radius: $radius-circle;\n background-color: $color-hover-gray;\n }\n }\n }\n }\n\n &--empty {\n padding: 0;\n margin: 0;\n }\n &--rtl {\n direction: rtl;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McTitle, McFieldRadio } from '@/components'\nimport { computed, type PropType } from 'vue'\nimport { useFieldErrors } from '@/composables'\nimport type { IRadioGroupOptions, IRadioGroupOption } from '@/types/IRadioGroup'\nimport { type DirectionsUnion } from '@/types/IDirections'\nimport { Directions } from '@/enums/ui/Directions'\nimport type { RadioGroupDirectionUnion } from '@/types/IRadioGroup'\nimport { RadioGroupDirection } from '@/enums/RadioGroup'\nimport type { RadioVariationUnion } from '@/types/IRadio'\nimport { TitleVariations } from '@/enums'\n\nconst emit = defineEmits(['update:modelValue', 'change'])\n//@ts-ignore\nconst props = defineProps({\n modelValue: [String, Number],\n /**\n * Объект или массив данных\n */\n options: {\n type: [Array as PropType<IRadioGroupOptions>],\n default: () => []\n },\n /**\n * Заголовок:\n *\n */\n title: {\n type: String,\n default: ''\n },\n /**\n * Вспомогательный текст под инпутом:\n *\n */\n helpText: {\n type: String,\n default: ''\n },\n /**\n * Ошибки\n *\n */\n errors: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n /**\n * Name\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Отключенное состояние\n * всего списка\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Добавление пользовательского\n * класса к radio\n */\n radioClassName: {\n type: String,\n default: ''\n },\n /**\n * Направление списка\n * `column`, `row`\n */\n direction: {\n type: String as () => RadioGroupDirectionUnion,\n default: RadioGroupDirection.Column\n },\n dir: {\n type: String as () => DirectionsUnion,\n default: Directions.Ltr\n },\n /**\n * Вариант активного состояния\n * circle - внутри круг\n * checkmark - внутри галочка\n * */\n variation: {\n type: String as () => RadioVariationUnion,\n default: 'circle'\n }\n})\n\nconst fieldErrors = useFieldErrors(props.errors)\n\nconst computedOptions = computed((): object => {\n if (!props.options.length) return []\n return props.options.map((o: IRadioGroupOption, i: number) => {\n const optionData = typeof o === 'object' ? o : ({ label: o, value: o } as IRadioGroupOption)\n return {\n id: Date.now() + i,\n ...optionData,\n disabled: props.disabled || optionData.disabled,\n value: optionData.value,\n modelValue: props.modelValue,\n class: props.radioClassName,\n dir: props.dir,\n variation: props.variation\n }\n })\n})\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n [`mc-field-radio-group--direction-${props.direction}`]: !!props.direction\n }\n})\n\n/**\n * Событие по смене выбора\n * @property {event}\n */\nconst handleInput = (e: string | number): void => {\n fieldErrors.toggleErrorVisible()\n emit('update:modelValue', e)\n emit('change', e)\n}\n</script>\n\n<template>\n <div :dir=\"props.dir\" class=\"mc-field-radio-group\" :class=\"classes\">\n <div class=\"mc-field-radio-group__header\">\n <!-- @slot Слот заголовка -->\n <slot name=\"header\">\n <mc-title v-if=\"props.title\">{{ props.title }}</mc-title>\n </slot>\n </div>\n <div class=\"mc-field-radio-group__buttons\">\n <mc-field-radio\n v-for=\"radio in computedOptions\"\n :key=\"radio.id\"\n v-bind=\"radio\"\n :name=\"props.name\"\n @update:modelValue=\"handleInput\"\n />\n </div>\n <div v-if=\"fieldErrors.errorText.value || props.helpText || $slots.footer\" class=\"mc-field-radio-group__footer\">\n <mc-title\n v-if=\"fieldErrors.errorText.value\"\n tag-name=\"div\"\n color=\"red\"\n :variation=\"TitleVariations.Overline\"\n max-width=\"100%\"\n >\n {{ fieldErrors.errorText.value }}\n </mc-title>\n <br v-if=\"fieldErrors.errorText.value\" />\n <!-- @slot Слот доп. текста под инпутом -->\n <slot name=\"footer\">\n <mc-title\n v-if=\"props.helpText\"\n tag-name=\"div\"\n :variation=\"TitleVariations.Overline\"\n color=\"gray\"\n max-width=\"100%\"\n >\n {{ props.helpText }}\n </mc-title>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/line-heights' as *;\n.mc-field-radio-group {\n $block-name: &;\n\n &__header {\n @include reset-text-indents();\n display: block;\n margin-bottom: $space-100;\n\n &:empty {\n display: none;\n }\n }\n\n &__footer {\n line-height: $line-height-150;\n\n &:empty {\n display: none;\n }\n }\n\n &--direction {\n &-column {\n #{$block-name}__buttons {\n display: flex;\n flex-direction: column;\n @include child-indent-bottom($space-100);\n }\n }\n &-row {\n #{$block-name}__buttons {\n @include child-indent-right($space-100);\n }\n }\n }\n}\n</style>\n","(function(){\"use strict\";try{if(typeof document<\"u\"){var e=document.createElement(\"style\");e.appendChild(document.createTextNode('.vue-slider-dot{position:absolute;transition:all 0s;z-index:5}.vue-slider-dot:focus{outline:none}.vue-slider-dot-tooltip{position:absolute;visibility:hidden}.vue-slider-dot-hover:hover .vue-slider-dot-tooltip,.vue-slider-dot-tooltip-show{visibility:visible}.vue-slider-dot-tooltip-top{top:-10px;left:50%;transform:translate(-50%,-100%)}.vue-slider-dot-tooltip-bottom{bottom:-10px;left:50%;transform:translate(-50%,100%)}.vue-slider-dot-tooltip-left{left:-10px;top:50%;transform:translate(-100%,-50%)}.vue-slider-dot-tooltip-right{right:-10px;top:50%;transform:translate(100%,-50%)}.vue-slider-marks{position:relative;width:100%;height:100%}.vue-slider-mark{position:absolute;z-index:1}.vue-slider-ltr .vue-slider-mark,.vue-slider-rtl .vue-slider-mark{width:0;height:100%;top:50%}.vue-slider-ltr .vue-slider-mark-step,.vue-slider-rtl .vue-slider-mark-step{top:0}.vue-slider-ltr .vue-slider-mark-label,.vue-slider-rtl .vue-slider-mark-label{top:100%;margin-top:10px}.vue-slider-ltr .vue-slider-mark{transform:translate(-50%,-50%)}.vue-slider-ltr .vue-slider-mark-step{left:0}.vue-slider-ltr .vue-slider-mark-label{left:50%;transform:translate(-50%)}.vue-slider-rtl .vue-slider-mark{transform:translate(50%,-50%)}.vue-slider-rtl .vue-slider-mark-step{right:0}.vue-slider-rtl .vue-slider-mark-label{right:50%;transform:translate(50%)}.vue-slider-ttb .vue-slider-mark,.vue-slider-btt .vue-slider-mark{width:100%;height:0;left:50%}.vue-slider-ttb .vue-slider-mark-step,.vue-slider-btt .vue-slider-mark-step{left:0}.vue-slider-ttb .vue-slider-mark-label,.vue-slider-btt .vue-slider-mark-label{left:100%;margin-left:10px}.vue-slider-btt .vue-slider-mark{transform:translate(-50%,50%)}.vue-slider-btt .vue-slider-mark-step{top:0}.vue-slider-btt .vue-slider-mark-label{top:50%;transform:translateY(-50%)}.vue-slider-ttb .vue-slider-mark{transform:translate(-50%,-50%)}.vue-slider-ttb .vue-slider-mark-step{bottom:0}.vue-slider-ttb .vue-slider-mark-label{bottom:50%;transform:translateY(50%)}.vue-slider-mark-step,.vue-slider-mark-label{position:absolute}.vue-slider-disabled{opacity:.5;cursor:not-allowed}.vue-slider-rail{background-color:#ccc;border-radius:15px}.vue-slider-process{background-color:#3498db;border-radius:15px}.vue-slider-mark{z-index:4}.vue-slider-mark:first-child .vue-slider-mark-step,.vue-slider-mark:last-child .vue-slider-mark-step{display:none}.vue-slider-mark-step{width:100%;height:100%;border-radius:50%;background-color:#00000029}.vue-slider-mark-label{font-size:14px;white-space:nowrap}.vue-slider-dot-handle{cursor:pointer;width:100%;height:100%;border-radius:50%;background-color:#fff;box-sizing:border-box;box-shadow:.5px .5px 2px 1px #00000052}.vue-slider-dot-handle-focus{box-shadow:0 0 1px 2px #3498db5c}.vue-slider-dot-handle-disabled{cursor:not-allowed;background-color:#ccc}.vue-slider-dot-tooltip-inner{font-size:14px;white-space:nowrap;padding:2px 5px;min-width:20px;text-align:center;color:#fff;border-radius:5px;border-color:#3498db;background-color:#3498db;box-sizing:content-box}.vue-slider-dot-tooltip-inner:after{content:\"\";position:absolute}.vue-slider-dot-tooltip-inner-top:after{top:100%;left:50%;transform:translate(-50%);height:0;width:0;border-color:transparent;border-style:solid;border-width:5px;border-top-color:inherit}.vue-slider-dot-tooltip-inner-bottom:after{bottom:100%;left:50%;transform:translate(-50%);height:0;width:0;border-color:transparent;border-style:solid;border-width:5px;border-bottom-color:inherit}.vue-slider-dot-tooltip-inner-left:after{left:100%;top:50%;transform:translateY(-50%);height:0;width:0;border-color:transparent;border-style:solid;border-width:5px;border-left-color:inherit}.vue-slider-dot-tooltip-inner-right:after{right:100%;top:50%;transform:translateY(-50%);height:0;width:0;border-color:transparent;border-style:solid;border-width:5px;border-right-color:inherit}.vue-slider-dot-tooltip-wrapper{opacity:0;transition:all .3s}.vue-slider-dot-tooltip-wrapper-show{opacity:1}.vue-slider{position:relative;box-sizing:content-box;-webkit-user-select:none;user-select:none;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.vue-slider-rail{position:relative;width:100%;height:100%;transition-property:width,height,left,right,top,bottom}.vue-slider-process{position:absolute;z-index:1}')),document.head.appendChild(e)}}catch(r){console.error(\"vite-plugin-css-injected-by-js\",r)}})();\nvar N = Object.defineProperty;\nvar T = (s, t, e) => t in s ? N(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e;\nvar l = (s, t, e) => (T(s, typeof t != \"symbol\" ? t + \"\" : t, e), e);\nimport { openBlock as u, createElementBlock as f, normalizeClass as g, renderSlot as c, createElementVNode as D, normalizeStyle as p, toDisplayString as I, createCommentVNode as B, resolveComponent as L, mergeProps as m, Fragment as P, renderList as R, createBlock as U, withCtx as A, createVNode as _ } from \"vue\";\nconst w = (s, t) => {\n const e = s.__vccOpts || s;\n for (const [i, a] of t)\n e[i] = a;\n return e;\n}, W = {\n emits: [\"drag-start\"],\n props: {\n value: {\n type: [Number, String],\n // number | string\n default: 0\n },\n tooltip: {\n type: String,\n // 'none' | 'always' | 'focus' | 'hover' | 'active'\n required: !0\n },\n dotStyle: {\n type: Array,\n // ([key: string]: any)[]\n default: () => ({})\n },\n tooltipStyle: {\n type: Array,\n // ([key: string]: any)[]\n default: () => ({})\n },\n tooltipPlacement: {\n type: String,\n // 'top' | 'right' | 'bottom' | 'left'\n required: !0\n },\n tooltipFormatter: {\n type: [String, Array, Object, Function],\n default: void 0\n },\n focus: {\n type: Boolean,\n default: !1\n },\n disabled: {\n type: Boolean,\n default: !1\n }\n },\n computed: {\n dotClasses() {\n return [\n \"vue-slider-dot\",\n {\n \"vue-slider-dot-hover\": this.tooltip === \"hover\" || this.tooltip === \"active\",\n \"vue-slider-dot-disabled\": this.disabled,\n \"vue-slider-dot-focus\": this.focus\n }\n ];\n },\n handleClasses() {\n return [\n \"vue-slider-dot-handle\",\n {\n \"vue-slider-dot-handle-disabled\": this.disabled,\n \"vue-slider-dot-handle-focus\": this.focus\n }\n ];\n },\n tooltipClasses() {\n return [\n \"vue-slider-dot-tooltip\",\n [`vue-slider-dot-tooltip-${this.tooltipPlacement}`],\n {\n \"vue-slider-dot-tooltip-show\": this.showTooltip\n }\n ];\n },\n tooltipInnerClasses() {\n return [\n \"vue-slider-dot-tooltip-inner\",\n [`vue-slider-dot-tooltip-inner-${this.tooltipPlacement}`],\n {\n \"vue-slider-dot-tooltip-inner-disabled\": this.disabled,\n \"vue-slider-dot-tooltip-inner-focus\": this.focus\n }\n ];\n },\n showTooltip() {\n switch (this.tooltip) {\n case \"always\":\n return !0;\n case \"none\":\n return !1;\n case \"focus\":\n case \"active\":\n return !!this.focus;\n default:\n return !1;\n }\n },\n tooltipValue() {\n return this.tooltipFormatter ? typeof this.tooltipFormatter == \"string\" ? this.tooltipFormatter.replace(/\\{value\\}/, String(this.value)) : this.tooltipFormatter(this.value) : this.value;\n }\n },\n methods: {\n dragStart(s) {\n if (this.disabled)\n return !1;\n this.$emit(\"drag-start\");\n }\n }\n}, K = [\"aria-valuetext\"], q = { class: \"vue-slider-dot-tooltip-text\" };\nfunction $(s, t, e, i, a, r) {\n return u(), f(\"div\", {\n ref: \"dot\",\n class: g(r.dotClasses),\n \"aria-valuetext\": r.tooltipValue,\n onMousedown: t[0] || (t[0] = (...n) => r.dragStart && r.dragStart(...n)),\n onTouchstartPassive: t[1] || (t[1] = (...n) => r.dragStart && r.dragStart(...n))\n }, [\n c(s.$slots, \"dot\", {}, () => [\n D(\"div\", {\n class: g(r.handleClasses),\n style: p(e.dotStyle)\n }, null, 6)\n ]),\n e.tooltip !== \"none\" ? (u(), f(\"div\", {\n key: 0,\n class: g(r.tooltipClasses)\n }, [\n c(s.$slots, \"tooltip\", {}, () => [\n D(\"div\", {\n class: g(r.tooltipInnerClasses),\n style: p(e.tooltipStyle)\n }, [\n D(\"span\", q, I(r.tooltipValue), 1)\n ], 6)\n ])\n ], 2)) : B(\"\", !0)\n ], 42, K);\n}\nconst M = /* @__PURE__ */ w(W, [[\"render\", $]]), X = {\n props: {\n mark: {\n type: Object,\n // Mark\n required: !0\n },\n hideLabel: {\n type: Boolean,\n default: !1\n },\n stepStyle: {\n type: Object,\n // [key: string]: any\n default: void 0\n },\n stepActiveStyle: {\n type: Object,\n // [key: string]: any\n default: void 0\n },\n labelStyle: {\n type: Object,\n // [key: string]: any\n default: void 0\n },\n labelActiveStyle: {\n type: Object,\n // [key: string]: any\n default: void 0\n }\n },\n computed: {\n marksClasses() {\n return [\n \"vue-slider-mark\",\n {\n \"vue-slider-mark-active\": this.mark.active\n }\n ];\n },\n stepClasses() {\n return [\n \"vue-slider-mark-step\",\n {\n \"vue-slider-mark-step-active\": this.mark.active\n }\n ];\n },\n labelClasses() {\n return [\n \"vue-slider-mark-label\",\n {\n \"vue-slider-mark-label-active\": this.mark.active\n }\n ];\n }\n },\n methods: {\n labelClickHandle(s) {\n s.stopPropagation(), this.$emit(\"pressLabel\", this.mark.pos);\n }\n }\n};\nfunction G(s, t, e, i, a, r) {\n return u(), f(\"div\", {\n class: g(r.marksClasses)\n }, [\n c(s.$slots, \"step\", {}, () => [\n D(\"div\", {\n class: g(r.stepClasses),\n style: p([\n e.stepStyle,\n e.mark.style,\n e.mark.active ? e.stepActiveStyle : null,\n e.mark.active ? e.mark.activeStyle : null\n ])\n }, null, 6)\n ]),\n e.hideLabel ? B(\"\", !0) : c(s.$slots, \"label\", { key: 0 }, () => [\n D(\"div\", {\n class: g(r.labelClasses),\n style: p([\n e.labelStyle,\n e.mark.labelStyle,\n e.mark.active ? e.labelActiveStyle : null,\n e.mark.active ? e.mark.labelActiveStyle : null\n ]),\n onClick: t[0] || (t[0] = (...n) => r.labelClickHandle && r.labelClickHandle(...n))\n }, I(e.mark.label), 7)\n ])\n ], 2);\n}\nconst z = /* @__PURE__ */ w(X, [[\"render\", G]]), k = (s) => typeof s == \"number\" ? `${s}px` : s, Z = (s) => {\n const t = document.documentElement, e = document.body, i = s.getBoundingClientRect();\n return {\n y: i.top + (window.pageYOffset || t.scrollTop) - (t.clientTop || e.clientTop || 0),\n x: i.left + (window.pageXOffset || t.scrollLeft) - (t.clientLeft || e.clientLeft || 0)\n };\n}, J = (s, t, e) => {\n const i = \"targetTouches\" in s ? s.targetTouches[0] : s, a = Z(t), r = {\n x: i.pageX - a.x,\n y: i.pageY - a.y\n };\n return {\n x: e ? t.offsetWidth - r.x : r.x,\n y: e ? t.offsetHeight - r.y : r.y\n };\n}, Q = (s, t) => {\n if (t.hook) {\n const e = t.hook(s);\n if (typeof e == \"function\")\n return e;\n if (!e)\n return null;\n }\n switch (s.keyCode) {\n case 38:\n return (e) => t.direction === \"ttb\" ? e - 1 : e + 1;\n case 39:\n return (e) => t.direction === \"rtl\" ? e - 1 : e + 1;\n case 40:\n return (e) => t.direction === \"ttb\" ? e + 1 : e - 1;\n case 37:\n return (e) => t.direction === \"rtl\" ? e + 1 : e - 1;\n case 35:\n return () => t.max;\n case 36:\n return () => t.min;\n case 33:\n return (e) => e + 10;\n case 34:\n return (e) => e - 10;\n default:\n return null;\n }\n};\nclass y {\n constructor(t) {\n l(this, \"num\");\n this.num = t;\n }\n decimal(t, e) {\n const i = this.num, a = this.getDecimalLen(i), r = this.getDecimalLen(t);\n let n = 0;\n switch (e) {\n case \"+\":\n n = this.getExponent(a, r), this.num = (this.safeRoundUp(i, n) + this.safeRoundUp(t, n)) / n;\n break;\n case \"-\":\n n = this.getExponent(a, r), this.num = (this.safeRoundUp(i, n) - this.safeRoundUp(t, n)) / n;\n break;\n case \"*\":\n this.num = this.safeRoundUp(\n this.safeRoundUp(i, this.getExponent(a)),\n this.safeRoundUp(t, this.getExponent(r))\n ) / this.getExponent(a + r);\n break;\n case \"/\":\n n = this.getExponent(a, r), this.num = this.safeRoundUp(i, n) / this.safeRoundUp(t, n);\n break;\n case \"%\":\n n = this.getExponent(a, r), this.num = this.safeRoundUp(i, n) % this.safeRoundUp(t, n) / n;\n break;\n }\n return this;\n }\n plus(t) {\n return this.decimal(t, \"+\");\n }\n minus(t) {\n return this.decimal(t, \"-\");\n }\n multiply(t) {\n return this.decimal(t, \"*\");\n }\n divide(t) {\n return this.decimal(t, \"/\");\n }\n remainder(t) {\n return this.decimal(t, \"%\");\n }\n toNumber() {\n return this.num;\n }\n getDecimalLen(t) {\n const e = `${t}`.split(\"e\");\n return (`${e[0]}`.split(\".\")[1] || \"\").length - (e[1] ? +e[1] : 0);\n }\n getExponent(t, e) {\n return Math.pow(10, e !== void 0 ? Math.max(t, e) : t);\n }\n // fix: 9999999.99995 * 100000 = 999999999994.9999\n safeRoundUp(t, e) {\n return Math.round(t * e);\n }\n}\nvar Y = /* @__PURE__ */ ((s) => (s[s.VALUE = 1] = \"VALUE\", s[s.INTERVAL = 2] = \"INTERVAL\", s[s.MIN = 3] = \"MIN\", s[s.MAX = 4] = \"MAX\", s[s.ORDER = 5] = \"ORDER\", s))(Y || {});\nconst tt = {\n 1: 'The type of the \"value\" is illegal',\n 2: 'The prop \"interval\" is invalid, \"(max - min)\" must be divisible by \"interval\"',\n 3: 'The \"value\" must be greater than or equal to the \"min\".',\n 4: 'The \"value\" must be less than or equal to the \"max\".',\n 5: 'When \"order\" is false, the parameters \"minRange\", \"maxRange\", \"fixed\", \"enabled\" are invalid.'\n};\nclass et {\n constructor(t) {\n l(this, \"dotsPos\", []);\n // The position of each slider\n l(this, \"dotsValue\", []);\n // The value of each slider\n l(this, \"data\");\n l(this, \"enableCross\");\n l(this, \"fixed\");\n l(this, \"max\");\n l(this, \"min\");\n l(this, \"interval\");\n l(this, \"minRange\");\n l(this, \"maxRange\");\n l(this, \"order\");\n l(this, \"marks\");\n l(this, \"included\");\n l(this, \"process\");\n l(this, \"adsorb\");\n l(this, \"dotOptions\");\n l(this, \"onError\");\n l(this, \"cacheRangeDir\", {});\n this.data = t.data, this.max = t.max, this.min = t.min, this.interval = t.interval, this.order = t.order, this.marks = t.marks, this.included = t.included, this.process = t.process, this.adsorb = t.adsorb, this.dotOptions = t.dotOptions, this.onError = t.onError, this.order ? (this.minRange = t.minRange || 0, this.maxRange = t.maxRange || 0, this.enableCross = t.enableCross, this.fixed = t.fixed) : ((t.minRange || t.maxRange || !t.enableCross || t.fixed) && this.emitError(\n 5\n /* ORDER */\n ), this.minRange = 0, this.maxRange = 0, this.enableCross = !0, this.fixed = !1), this.setValue(t.value);\n }\n setValue(t) {\n this.setDotsValue(\n Array.isArray(t) ? this.order ? [...t].sort((e, i) => this.getIndexByValue(e) - this.getIndexByValue(i)) : [...t] : [t],\n !0\n );\n }\n setDotsValue(t, e) {\n this.dotsValue = t, e && this.syncDotsPos();\n }\n // Set the slider position\n setDotsPos(t) {\n const e = this.order ? [...t].sort((i, a) => i - a) : t;\n this.dotsPos = e, this.setDotsValue(\n e.map((i) => this.getValueByPos(i)),\n this.adsorb\n );\n }\n // Get value by position\n getValueByPos(t) {\n let e = this.parsePos(t);\n if (this.included) {\n let i = 100;\n this.markList.forEach((a) => {\n const r = Math.abs(a.pos - t);\n r < i && (i = r, e = a.value);\n });\n }\n return e;\n }\n // Sync slider position\n syncDotsPos() {\n this.dotsPos = this.dotsValue.map((t) => this.parseValue(t));\n }\n /**\n * Get all the marks\n *\n * @readonly\n * @type {Mark[]}\n * @memberof Control\n */\n get markList() {\n if (!this.marks)\n return [];\n const t = (e, i) => {\n const a = this.parseValue(e);\n return {\n pos: a,\n value: e,\n label: e,\n active: this.isActiveByPos(a),\n ...i\n };\n };\n return this.marks === !0 ? this.getValues().map((e) => t(e)) : Object.prototype.toString.call(this.marks) === \"[object Object]\" ? Object.keys(this.marks).sort((e, i) => +e - +i).map((e) => {\n const i = this.marks[e];\n return t(e, typeof i != \"string\" ? i : { label: i });\n }) : Array.isArray(this.marks) ? this.marks.map((e) => t(e)) : typeof this.marks == \"function\" ? this.getValues().map((e) => ({ value: e, result: this.marks(e) })).filter(({ result: e }) => !!e).map(({ value: e, result: i }) => t(e, i)) : [];\n }\n /**\n * Get the most recent slider index by position\n *\n * @param {number} pos\n * @returns {number}\n * @memberof Control\n */\n getRecentDot(t) {\n const e = this.dotsPos.filter((i, a) => !(this.getDotOption(a) && this.getDotOption(a).disabled)).map((i) => Math.abs(i - t));\n return e.indexOf(Math.min(...e));\n }\n /**\n * Get index by value\n *\n * @param {Value} value\n * @returns {number}\n * @memberof Control\n */\n getIndexByValue(t) {\n return this.data ? this.data.indexOf(t) : new y(+t).minus(this.min).divide(this.interval).toNumber();\n }\n /**\n * Get value by index\n *\n * @param {index} number\n * @returns {Value}\n * @memberof Control\n */\n getValueByIndex(t) {\n return t < 0 ? t = 0 : t > this.total && (t = this.total), this.data ? this.data[t] : new y(t).multiply(this.interval).plus(this.min).toNumber();\n }\n /**\n * Set the position of a single slider\n *\n * @param {number} pos\n * @param {number} index\n */\n setDotPos(t, e) {\n t = this.getValidPos(t, e).pos;\n const i = t - this.dotsPos[e];\n if (!i)\n return;\n let a = new Array(this.dotsPos.length);\n this.fixed ? a = this.getFixedChangePosArr(i, e) : this.minRange || this.maxRange ? a = this.getLimitRangeChangePosArr(t, i, e) : a[e] = i, this.setDotsPos(this.dotsPos.map((r, n) => r + (a[n] || 0)));\n }\n /**\n * In fixed mode, get the position of all slider changes\n *\n * @param {number} changePos Change distance of a single slider\n * @param {number} index slider index\n * @returns {DotsPosChangeArray}\n * @memberof Control\n */\n getFixedChangePosArr(t, e) {\n return this.dotsPos.forEach((i, a) => {\n if (a !== e) {\n const { pos: r, inRange: n } = this.getValidPos(i + t, a);\n n || (t = Math.min(Math.abs(r - i), Math.abs(t)) * (t < 0 ? -1 : 1));\n }\n }), this.dotsPos.map((i) => t);\n }\n /**\n * In minRange/maxRange mode, get the position of all slider changes\n *\n * @param {number} pos position of a single slider\n * @param {number} changePos Change distance of a single slider\n * @param {number} index slider index\n * @returns {DotsPosChangeArray}\n * @memberof Control\n */\n getLimitRangeChangePosArr(t, e, i) {\n const a = [{ index: i, changePos: e }], r = e;\n return [this.minRange, this.maxRange].forEach((n, S) => {\n if (!n)\n return !1;\n const o = S === 0, h = e > 0;\n let b = 0;\n o ? b = h ? 1 : -1 : b = h ? -1 : 1;\n const H = (V, j) => {\n const E = Math.abs(V - j);\n return o ? E < this.minRangeDir : E > this.maxRangeDir;\n };\n let v = i + b, x = this.dotsPos[v], C = t;\n for (; this.isPos(x) && H(x, C); ) {\n const { pos: V } = this.getValidPos(x + r, v);\n a.push({\n index: v,\n changePos: V - x\n }), v = v + b, C = V, x = this.dotsPos[v];\n }\n }), this.dotsPos.map((n, S) => {\n const o = a.filter((h) => h.index === S);\n return o.length ? o[0].changePos : 0;\n });\n }\n isPos(t) {\n return typeof t == \"number\";\n }\n /**\n * Get a valid position by pos\n *\n * @param {number} pos\n * @param {number} index\n * @returns {{ pos: number, inRange: boolean }}\n */\n getValidPos(t, e) {\n const i = this.valuePosRange[e];\n let a = !0;\n return t < i[0] ? (t = i[0], a = !1) : t > i[1] && (t = i[1], a = !1), {\n pos: t,\n inRange: a\n };\n }\n /**\n * Calculate the position of the slider by value\n *\n * @param {Value} val\n * @returns {number}\n */\n parseValue(t) {\n if (this.data)\n t = this.data.indexOf(t);\n else if (typeof t == \"number\" || typeof t == \"string\") {\n if (t = +t, t < this.min)\n return this.emitError(\n 3\n /* MIN */\n ), 0;\n if (t > this.max)\n return this.emitError(\n 4\n /* MAX */\n ), 0;\n if (typeof t != \"number\" || t !== t)\n return this.emitError(\n 1\n /* VALUE */\n ), 0;\n t = new y(t).minus(this.min).divide(this.interval).toNumber();\n }\n const e = new y(t).multiply(this.gap).toNumber();\n return e < 0 ? 0 : e > 100 ? 100 : e;\n }\n /**\n * Calculate the value by position\n *\n * @param {number} pos\n * @returns {Value}\n * @memberof Control\n */\n parsePos(t) {\n const e = Math.round(t / this.gap);\n return this.getValueByIndex(e);\n }\n /**\n * Determine if the location is active\n *\n * @param {number} pos\n * @returns {boolean}\n * @memberof Control\n */\n isActiveByPos(t) {\n return this.processArray.some(([e, i]) => t >= e && t <= i);\n }\n /**\n * Get each value\n *\n * @returns {Value[]}\n * @memberof Control\n */\n getValues() {\n if (this.data)\n return this.data;\n {\n const t = [];\n for (let e = 0; e <= this.total; e++)\n t.push(new y(e).multiply(this.interval).plus(this.min).toNumber());\n return t;\n }\n }\n /**\n * Calculate the distance of the range\n * @param range number\n */\n getRangeDir(t) {\n return t ? new y(t).divide(\n new y(this.data ? this.data.length - 1 : this.max).minus(this.data ? 0 : this.min).toNumber()\n ).multiply(100).toNumber() : 100;\n }\n emitError(t) {\n this.onError && this.onError(t, tt[t]);\n }\n get processArray() {\n if (this.process) {\n if (typeof this.process == \"function\")\n return this.process(this.dotsPos);\n if (this.dotsPos.length === 1)\n return [[0, this.dotsPos[0]]];\n if (this.dotsPos.length > 1)\n return [[Math.min(...this.dotsPos), Math.max(...this.dotsPos)]];\n }\n return [];\n }\n /**\n * The total number of values\n *\n * @type {number}\n * @memberof Control\n */\n get total() {\n let t = 0;\n return this.data ? t = this.data.length - 1 : t = new y(this.max).minus(this.min).divide(this.interval).toNumber(), t - Math.floor(t) !== 0 ? (this.emitError(\n 2\n /* INTERVAL */\n ), 0) : t;\n }\n // Distance between each value\n get gap() {\n return 100 / this.total;\n }\n // The minimum distance between the two sliders\n get minRangeDir() {\n return this.cacheRangeDir[this.minRange] ? this.cacheRangeDir[this.minRange] : this.cacheRangeDir[this.minRange] = this.getRangeDir(this.minRange);\n }\n // Maximum distance between the two sliders\n get maxRangeDir() {\n return this.cacheRangeDir[this.maxRange] ? this.cacheRangeDir[this.maxRange] : this.cacheRangeDir[this.maxRange] = this.getRangeDir(this.maxRange);\n }\n getDotOption(t) {\n return Array.isArray(this.dotOptions) ? this.dotOptions[t] : this.dotOptions;\n }\n getDotRange(t, e, i) {\n if (!this.dotOptions)\n return i;\n const a = this.getDotOption(t);\n return a && a[e] !== void 0 ? this.parseValue(a[e]) : i;\n }\n /**\n * Sliding range of each slider\n *\n * @type {Array<[number, number]>}\n * @memberof Control\n */\n get valuePosRange() {\n const t = this.dotsPos, e = [];\n return t.forEach((i, a) => {\n e.push([\n Math.max(\n this.minRange ? this.minRangeDir * a : 0,\n this.enableCross ? 0 : t[a - 1] || 0,\n this.getDotRange(a, \"min\", 0)\n ),\n Math.min(\n this.minRange ? 100 - this.minRangeDir * (t.length - 1 - a) : 100,\n this.enableCross ? 100 : t[a + 1] || 100,\n this.getDotRange(a, \"max\", 100)\n )\n ]);\n }), e;\n }\n get dotsIndex() {\n return this.dotsValue.map((t) => this.getIndexByValue(t));\n }\n}\nclass st {\n constructor(t) {\n l(this, \"map\");\n l(this, \"states\", 0);\n this.map = t;\n }\n add(t) {\n this.states |= t;\n }\n delete(t) {\n this.states &= ~t;\n }\n toggle(t) {\n this.has(t) ? this.delete(t) : this.add(t);\n }\n has(t) {\n return !!(this.states & t);\n }\n}\nconst O = 4, d = {\n // StateMap\n None: 0,\n Drag: 2,\n Focus: 4\n}, it = {\n emits: [\"update:modelValue\", \"change\", \"drag-start\", \"drag-end\", \"dragging\", \"error\"],\n components: {\n VueSliderDot: M,\n VueSliderMark: z\n },\n props: {\n modelValue: {\n type: [Number, String, Array],\n default: 0\n },\n silent: {\n type: Boolean,\n default: !1\n },\n direction: {\n type: String,\n default: \"ltr\",\n validator: (s) => [\"ltr\", \"rtl\", \"ttb\", \"btt\"].indexOf(s) > -1\n },\n width: {\n type: [Number, String],\n default: void 0\n },\n height: {\n type: [Number, String],\n default: void 0\n },\n dotSize: {\n type: [Array, Number],\n // The size of the slider, optional [width, height] | size\n default: 14\n },\n contained: {\n type: Boolean,\n default: !1\n },\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 100\n },\n interval: {\n type: Number,\n default: 1\n },\n disabled: {\n type: Boolean,\n default: !1\n },\n clickable: {\n type: Boolean,\n default: !0\n },\n dragOnClick: {\n type: Boolean,\n default: !0\n },\n duration: {\n type: Number,\n default: 0.5\n },\n data: {\n type: [Object, Array],\n // Value[] | object[] | DataObject\n default: void 0\n },\n dataValue: {\n type: String,\n default: \"value\"\n },\n dataLabel: {\n type: String,\n default: \"label\"\n },\n lazy: {\n type: Boolean,\n default: !1\n },\n tooltip: {\n type: String,\n default: \"active\",\n validator: (s) => [\"none\", \"always\", \"focus\", \"hover\", \"active\"].indexOf(s) > -1\n },\n tooltipPlacement: {\n type: [String, Array],\n default: void 0,\n validator: (s) => (Array.isArray(s) ? s : [s]).every(\n (t) => [\"top\", \"right\", \"bottom\", \"left\"].indexOf(t) > -1\n )\n },\n tooltipFormatter: {\n type: [String, Array, Function],\n default: \"\"\n },\n useKeyboard: {\n type: Boolean,\n default: !0\n },\n keydownHook: {\n type: [Boolean, Function],\n default: void 0\n },\n enableCross: {\n type: Boolean,\n default: !0\n },\n fixed: {\n type: Boolean,\n default: !1\n },\n order: {\n type: Boolean,\n default: !0\n },\n minRange: {\n type: Number,\n default: void 0\n },\n maxRange: {\n type: Number,\n default: void 0\n },\n marks: {\n type: [Boolean, Object, Array, Function],\n default: !1\n },\n process: {\n type: [Boolean, Function],\n default: !0\n },\n zoom: {\n type: [Number],\n default: void 0\n },\n included: {\n type: [Boolean],\n default: !1\n },\n adsorb: {\n type: [Boolean],\n default: !1\n },\n hideLabel: {\n type: [Boolean],\n default: !1\n },\n dotOptions: {\n type: Object,\n default: void 0\n },\n dotAttrs: {\n type: Object,\n default: void 0\n },\n railStyle: {\n type: Object,\n default: null\n },\n processStyle: {\n type: Object,\n default: null\n },\n dotStyle: {\n type: Object,\n default: null\n },\n tooltipStyle: {\n type: Object,\n default: null\n },\n stepStyle: {\n type: Object,\n default: null\n },\n stepActiveStyle: {\n type: Object,\n default: null\n },\n labelStyle: {\n type: Object,\n default: null\n },\n labelActiveStyle: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n control: null,\n // Control instance\n states: new st(d),\n scale: 1,\n focusDotIndex: 0\n };\n },\n computed: {\n tailSize() {\n return k((this.isHorizontal ? this.height : this.width) || O);\n },\n containerClasses() {\n return [\n \"vue-slider\",\n [`vue-slider-${this.direction}`],\n {\n \"vue-slider-disabled\": this.disabled\n }\n ];\n },\n containerStyles() {\n const [s, t] = Array.isArray(this.dotSize) ? this.dotSize : [this.dotSize, this.dotSize], e = this.width ? k(this.width) : this.isHorizontal ? \"auto\" : k(O), i = this.height ? k(this.height) : this.isHorizontal ? k(O) : \"auto\";\n return {\n padding: this.contained ? `${t / 2}px ${s / 2}px` : this.isHorizontal ? `${t / 2}px 0` : `0 ${s / 2}px`,\n width: e,\n height: i\n };\n },\n processArray() {\n return this.control.processArray.map(([s, t, e], i) => {\n s > t && ([s, t] = [t, s]);\n const a = this.isHorizontal ? \"width\" : \"height\";\n return {\n start: s,\n end: t,\n index: i,\n style: {\n [this.isHorizontal ? \"height\" : \"width\"]: \"100%\",\n [this.isHorizontal ? \"top\" : \"left\"]: 0,\n [this.mainDirection]: `${s}%`,\n [a]: `${t - s}%`,\n transitionProperty: `${a},${this.mainDirection}`,\n transitionDuration: `${this.animateTime}s`,\n ...this.processStyle,\n ...e\n }\n };\n });\n },\n dotBaseStyle() {\n const [s, t] = Array.isArray(this.dotSize) ? this.dotSize : [this.dotSize, this.dotSize];\n let e;\n return this.isHorizontal ? e = {\n transform: `translate(${this.isReverse ? \"50%\" : \"-50%\"}, -50%)`,\n \"-WebkitTransform\": `translate(${this.isReverse ? \"50%\" : \"-50%\"}, -50%)`,\n top: \"50%\",\n [this.direction === \"ltr\" ? \"left\" : \"right\"]: \"0\"\n } : e = {\n transform: `translate(-50%, ${this.isReverse ? \"50%\" : \"-50%\"})`,\n \"-WebkitTransform\": `translate(-50%, ${this.isReverse ? \"50%\" : \"-50%\"})`,\n left: \"50%\",\n [this.direction === \"btt\" ? \"bottom\" : \"top\"]: \"0\"\n }, {\n width: `${s}px`,\n height: `${t}px`,\n ...e\n };\n },\n mainDirection() {\n switch (this.direction) {\n case \"ltr\":\n return \"left\";\n case \"rtl\":\n return \"right\";\n case \"btt\":\n return \"bottom\";\n case \"ttb\":\n return \"top\";\n }\n },\n isHorizontal() {\n return this.direction === \"ltr\" || this.direction === \"rtl\";\n },\n isReverse() {\n return this.direction === \"rtl\" || this.direction === \"btt\";\n },\n tooltipDirections() {\n const s = this.tooltipPlacement || (this.isHorizontal ? \"top\" : \"left\");\n return Array.isArray(s) ? s : this.dots.map(() => s);\n },\n dots() {\n return this.control.dotsPos.map((s, t) => ({\n pos: s,\n index: t,\n value: this.control.dotsValue[t],\n focus: this.states.has(d.Focus) && this.focusDotIndex === t,\n disabled: this.disabled,\n style: this.dotStyle,\n ...(Array.isArray(this.dotOptions) ? this.dotOptions[t] : this.dotOptions) || {}\n }));\n },\n animateTime() {\n return this.states.has(d.Drag) ? 0 : this.duration;\n },\n canSort() {\n return this.order && !this.minRange && !this.maxRange && !this.fixed && this.enableCross;\n },\n sliderData() {\n return this.isObjectArrayData(this.data) ? this.data.map((s) => s[this.dataValue]) : this.isObjectData(this.data) ? Object.keys(this.data) : this.data;\n },\n sliderMarks() {\n if (this.marks)\n return this.marks;\n if (this.isObjectArrayData(this.data))\n return (s) => {\n const t = { label: s };\n return this.data.some((e) => e[this.dataValue] === s ? (t.label = e[this.dataLabel], !0) : !1), t;\n };\n if (this.isObjectData(this.data))\n return this.data;\n },\n sliderTooltipFormatter() {\n if (this.tooltipFormatter)\n return this.tooltipFormatter;\n if (this.isObjectArrayData(this.data))\n return (s) => {\n let t = \"\" + s;\n return this.data.some((e) => e[this.dataValue] === s ? (t = e[this.dataLabel], !0) : !1), t;\n };\n if (this.isObjectData(this.data)) {\n const s = this.data;\n return (t) => s[t];\n }\n },\n // Slider value and component internal value are inconsistent\n isNotSync() {\n const s = this.control.dotsValue;\n return Array.isArray(this.modelValue) ? this.modelValue.length !== s.length || this.modelValue.some((t, e) => t !== s[e]) : this.modelValue !== s[0];\n },\n /**\n * Get the drag range of the slider\n *\n * @private\n * @param {number} index slider index\n * @returns {[number, number]} range [start, end]\n * @memberof VueSlider\n */\n dragRange() {\n const s = this.dots[this.focusDotIndex - 1], t = this.dots[this.focusDotIndex + 1];\n return [s ? s.pos : -1 / 0, t ? t.pos : 1 / 0];\n }\n },\n created() {\n this.initControl();\n },\n mounted() {\n this.bindEvent();\n },\n beforeUnmount() {\n this.unbindEvent();\n },\n methods: {\n isObjectData(s) {\n return !!s && Object.prototype.toString.call(s) === \"[object Object]\";\n },\n isObjectArrayData(s) {\n return !!s && Array.isArray(s) && s.length > 0 && typeof s[0] == \"object\";\n },\n bindEvent() {\n document.addEventListener(\"touchmove\", this.dragMove, { passive: !1 }), document.addEventListener(\"touchend\", this.dragEnd, { passive: !1 }), document.addEventListener(\"mousedown\", this.blurHandle), document.addEventListener(\"mousemove\", this.dragMove, { passive: !1 }), document.addEventListener(\"mouseup\", this.dragEnd), document.addEventListener(\"mouseleave\", this.dragEnd), document.addEventListener(\"keydown\", this.keydownHandle);\n },\n unbindEvent() {\n document.removeEventListener(\"touchmove\", this.dragMove), document.removeEventListener(\"touchend\", this.dragEnd), document.removeEventListener(\"mousedown\", this.blurHandle), document.removeEventListener(\"mousemove\", this.dragMove), document.removeEventListener(\"mouseup\", this.dragEnd), document.removeEventListener(\"mouseleave\", this.dragEnd), document.removeEventListener(\"keydown\", this.keydownHandle);\n },\n setScale() {\n const s = new y(\n Math.floor(this.isHorizontal ? this.$refs.rail.offsetWidth : this.$refs.rail.offsetHeight)\n );\n this.zoom !== void 0 && s.multiply(this.zoom), s.divide(100), this.scale = s.toNumber();\n },\n initControl() {\n this.control = new et({\n value: this.modelValue,\n data: this.sliderData,\n enableCross: this.enableCross,\n fixed: this.fixed,\n max: this.max,\n min: this.min,\n interval: this.interval,\n minRange: this.minRange,\n maxRange: this.maxRange,\n order: this.order,\n marks: this.sliderMarks,\n included: this.included,\n process: this.process,\n adsorb: this.adsorb,\n dotOptions: this.dotOptions,\n onError: this.emitError\n }), this.syncValueByPos(), [\n \"data\",\n \"enableCross\",\n \"fixed\",\n \"max\",\n \"min\",\n \"interval\",\n \"minRange\",\n \"maxRange\",\n \"order\",\n \"marks\",\n \"process\",\n \"adsorb\",\n \"included\",\n \"dotOptions\"\n ].forEach((s) => {\n this.$watch(s, (t) => {\n if (s === \"data\" && Array.isArray(this.control.data) && Array.isArray(t) && this.control.data.length === t.length && t.every((e, i) => e === this.control.data[i]))\n return !1;\n switch (s) {\n case \"data\":\n case \"dataLabel\":\n case \"dataValue\":\n this.control.data = this.sliderData;\n break;\n case \"mark\":\n this.control.marks = this.sliderMarks;\n break;\n default:\n this.control[s] = t;\n }\n [\"data\", \"max\", \"min\", \"interval\"].indexOf(s) > -1 && this.control.syncDotsPos();\n });\n });\n },\n syncValueByPos() {\n const s = this.control.dotsValue;\n if (this.isDiff(s, Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue])) {\n const t = s.length === 1 ? s[0] : [...s];\n this.$emit(\"change\", t, this.focusDotIndex), this.$emit(\"update:modelValue\", t, this.focusDotIndex);\n }\n },\n isDiff(s, t) {\n return s.length !== t.length || s.some((e, i) => e !== t[i]);\n },\n emitError(s, t) {\n this.silent || console.error(`[VueSlider error]: ${t}`), this.$emit(\"error\", s, t);\n },\n dragStartOnProcess(s) {\n if (this.dragOnClick) {\n this.setScale();\n const t = this.getPosByEvent(s), e = this.control.getRecentDot(t);\n if (this.dots[e].disabled)\n return;\n this.dragStart(e), this.control.setDotPos(t, this.focusDotIndex), this.lazy || this.syncValueByPos();\n }\n },\n dragStart(s) {\n this.focusDotIndex = s, this.setScale(), this.states.add(d.Drag), this.states.add(d.Focus), this.$emit(\"drag-start\", this.focusDotIndex);\n },\n dragMove(s) {\n if (!this.states.has(d.Drag))\n return !1;\n s.preventDefault();\n const t = this.getPosByEvent(s);\n this.isCrossDot(t), this.control.setDotPos(t, this.focusDotIndex), this.lazy || this.syncValueByPos();\n const e = this.control.dotsValue;\n this.$emit(\"dragging\", e.length === 1 ? e[0] : [...e], this.focusDotIndex);\n },\n // If the component is sorted, then when the slider crosses, toggle the currently selected slider index\n isCrossDot(s) {\n if (this.canSort) {\n const t = this.focusDotIndex;\n let e = s;\n if (e > this.dragRange[1] ? (e = this.dragRange[1], this.focusDotIndex++) : e < this.dragRange[0] && (e = this.dragRange[0], this.focusDotIndex--), t !== this.focusDotIndex) {\n const i = this.$refs[`dot-${this.focusDotIndex}`];\n i && i.$el && i.$el.focus(), this.control.setDotPos(e, t);\n }\n }\n },\n dragEnd(s) {\n if (!this.states.has(d.Drag))\n return !1;\n setTimeout(() => {\n this.lazy && this.syncValueByPos(), this.included && this.isNotSync ? this.control.setValue(this.modelValue) : this.control.syncDotsPos(), this.states.delete(d.Drag), (!this.useKeyboard || \"targetTouches\" in s) && this.states.delete(d.Focus), this.$emit(\"drag-end\", this.focusDotIndex);\n });\n },\n blurHandle(s) {\n if (!this.states.has(d.Focus) || !this.$refs.container || this.$refs.container.contains(s.target))\n return !1;\n this.states.delete(d.Focus);\n },\n clickHandle(s) {\n if (!this.clickable || this.disabled)\n return !1;\n if (this.states.has(d.Drag))\n return;\n this.setScale();\n const t = this.getPosByEvent(s);\n this.setValueByPos(t);\n },\n focus(s = 0) {\n this.states.add(d.Focus), this.focusDotIndex = s;\n },\n blur() {\n this.states.delete(d.Focus);\n },\n getValue() {\n const s = this.control.dotsValue;\n return s.length === 1 ? s[0] : s;\n },\n getIndex() {\n const s = this.control.dotsIndex;\n return s.length === 1 ? s[0] : s;\n },\n setValue(s) {\n this.control.setValue(Array.isArray(s) ? [...s] : [s]), this.syncValueByPos();\n },\n setIndex(s) {\n const t = Array.isArray(s) ? s.map((e) => this.control.getValueByIndex(e)) : this.control.getValueByIndex(s);\n this.setValue(t);\n },\n setValueByPos(s) {\n const t = this.control.getRecentDot(s);\n if (this.disabled || this.dots[t].disabled)\n return !1;\n this.focusDotIndex = t, this.control.setDotPos(s, t), this.syncValueByPos(), this.useKeyboard && this.states.add(d.Focus), setTimeout(() => {\n this.included && this.isNotSync ? this.control.setValue(this.modelValue) : this.control.syncDotsPos();\n });\n },\n keydownHandle(s) {\n if (!this.useKeyboard || !this.states.has(d.Focus))\n return !1;\n const t = this.included && this.marks, e = Q(s, {\n direction: this.direction,\n max: t ? this.control.markList.length - 1 : this.control.total,\n min: 0,\n hook: this.keydownHook\n });\n if (e) {\n s.preventDefault();\n let i = -1, a = 0;\n t ? (this.control.markList.some((r, n) => r.value === this.control.dotsValue[this.focusDotIndex] ? (i = e(n), !0) : !1), i < 0 ? i = 0 : i > this.control.markList.length - 1 && (i = this.control.markList.length - 1), a = this.control.markList[i].pos) : (i = e(\n this.control.getIndexByValue(this.control.dotsValue[this.focusDotIndex])\n ), a = this.control.parseValue(this.control.getValueByIndex(i))), this.isCrossDot(a), this.control.setDotPos(a, this.focusDotIndex), this.syncValueByPos();\n }\n },\n getPosByEvent(s) {\n return J(s, this.$refs.rail, this.isReverse)[this.isHorizontal ? \"x\" : \"y\"] / this.scale;\n }\n },\n watch: {\n modelValue: {\n handler() {\n this.control && !this.states.has(d.Drag) && this.isNotSync && (this.control.setValue(this.modelValue), this.syncValueByPos());\n },\n deep: !0\n }\n }\n}, rt = {\n key: 0,\n class: \"vue-slider-marks\"\n};\nfunction at(s, t, e, i, a, r) {\n const n = L(\"VueSliderMark\"), S = L(\"VueSliderDot\");\n return u(), f(\"div\", m({\n ref: \"container\",\n class: r.containerClasses,\n style: r.containerStyles,\n onClick: t[0] || (t[0] = (...o) => r.clickHandle && r.clickHandle(...o)),\n onTouchstartPassive: t[1] || (t[1] = (...o) => r.dragStartOnProcess && r.dragStartOnProcess(...o)),\n onMousedown: t[2] || (t[2] = (...o) => r.dragStartOnProcess && r.dragStartOnProcess(...o))\n }, s.$attrs), [\n D(\"div\", {\n ref: \"rail\",\n class: \"vue-slider-rail\",\n style: p(e.railStyle)\n }, [\n (u(!0), f(P, null, R(r.processArray, (o, h) => c(s.$slots, \"process\", m({ ref_for: !0 }, { ...o }), () => [\n (u(), f(\"div\", {\n class: \"vue-slider-process\",\n key: `process-${h}`,\n style: p(o.style)\n }, null, 4))\n ])), 256)),\n r.sliderMarks ? (u(), f(\"div\", rt, [\n (u(!0), f(P, null, R(a.control.markList, (o, h) => c(s.$slots, \"mark\", m({ ref_for: !0 }, { ...o }), () => [\n (u(), U(n, {\n key: `mark-${h}`,\n mark: o,\n hideLabel: e.hideLabel,\n style: p({\n [r.isHorizontal ? \"height\" : \"width\"]: \"100%\",\n [r.isHorizontal ? \"width\" : \"height\"]: r.tailSize,\n [r.mainDirection]: `${o.pos}%`\n }),\n stepStyle: e.stepStyle,\n stepActiveStyle: e.stepActiveStyle,\n labelStyle: e.labelStyle,\n labelActiveStyle: e.labelActiveStyle,\n onPressLabel: (b) => e.clickable && r.setValueByPos(b)\n }, {\n step: A(() => [\n c(s.$slots, \"step\", m({ ref_for: !0 }, { ...o }))\n ]),\n label: A(() => [\n c(s.$slots, \"label\", m({ ref_for: !0 }, { ...o }))\n ]),\n _: 2\n }, 1032, [\"mark\", \"hideLabel\", \"style\", \"stepStyle\", \"stepActiveStyle\", \"labelStyle\", \"labelActiveStyle\", \"onPressLabel\"]))\n ])), 256))\n ])) : B(\"\", !0),\n (u(!0), f(P, null, R(r.dots, (o, h) => (u(), f(P, null, [\n _(S, m({\n ref_for: !0,\n ref: `dot-${h}`,\n value: o.value,\n disabled: o.disabled,\n focus: o.focus,\n \"dot-style\": [\n o.style,\n o.disabled ? o.disabledStyle : null,\n o.focus ? o.focusStyle : null\n ],\n tooltip: o.tooltip || e.tooltip,\n \"tooltip-style\": [\n e.tooltipStyle,\n o.tooltipStyle,\n o.disabled ? o.tooltipDisabledStyle : null,\n o.focus ? o.tooltipFocusStyle : null\n ],\n \"tooltip-formatter\": Array.isArray(r.sliderTooltipFormatter) ? r.sliderTooltipFormatter[h] : r.sliderTooltipFormatter,\n \"tooltip-placement\": r.tooltipDirections[h],\n style: [\n r.dotBaseStyle,\n {\n [r.mainDirection]: `${o.pos}%`,\n transition: `${r.mainDirection} ${r.animateTime}s`\n }\n ],\n \"onDrag-start\": () => r.dragStart(h),\n role: \"slider\",\n \"aria-valuenow\": o.value,\n \"aria-valuemin\": this.min,\n \"aria-valuemax\": this.max,\n \"aria-orientation\": this.isHorizontal ? \"horizontal\" : \"vertical\",\n tabindex: \"0\",\n nativeOnFocus: () => !o.disabled && r.focus(h),\n nativeOnBlur: () => r.blur()\n }, { ...e.dotAttrs }), {\n dot: A(() => [\n c(s.$slots, \"dot\", m({ ref_for: !0 }, { ...o }))\n ]),\n tooltip: A(() => [\n c(s.$slots, \"tooltip\", m({ ref_for: !0 }, { ...o }))\n ]),\n _: 2\n }, 1040, [\"value\", \"disabled\", \"focus\", \"dot-style\", \"tooltip\", \"tooltip-style\", \"tooltip-formatter\", \"tooltip-placement\", \"style\", \"onDrag-start\", \"aria-valuenow\", \"aria-valuemin\", \"aria-valuemax\", \"aria-orientation\", \"nativeOnFocus\", \"nativeOnBlur\"]),\n c(s.$slots, \"default\", m({ ref_for: !0 }, { value: r.getValue() }))\n ], 64))), 256))\n ], 4)\n ], 16);\n}\nconst F = /* @__PURE__ */ w(it, [[\"render\", at]]);\nF.VueSliderMark = z;\nF.VueSliderDot = M;\nexport {\n Y as ERROR_TYPE,\n M as VueSliderDot,\n z as VueSliderMark,\n F as default\n};\n","<script setup lang=\"ts\">\nimport { default as VueSlider } from 'vue-3-slider-component'\nimport { computed, type PropType, reactive } from 'vue'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport type { TooltipPositionsUnion } from '@/types/ITooltip'\nimport { McTitle } from '@/components'\nimport { useFieldErrors } from '@/composables'\nimport { TitleVariations, Weights } from '@/enums'\n\ntype RangeValue = string[] | number[] | number | string | null\n\nconst emit = defineEmits(['update:modelValue', 'dragging'])\nconst props = defineProps({\n /**\n * Значение\n */\n modelValue: {\n type: [Number, String, Array] as PropType<RangeValue>,\n required: true\n },\n /**\n * Мин. значение\n */\n min: {\n type: [String, Number] as PropType<number | string>,\n default: 0\n },\n /**\n * Макс. значение\n */\n max: {\n type: [String, Number] as PropType<number | string>,\n default: 100\n },\n /**\n * The interval between two values.\n */\n step: {\n type: [String, Number] as PropType<number | string>,\n default: 1\n },\n title: {\n type: String as PropType<string | null>,\n default: null\n },\n helpText: {\n type: String as PropType<string | null>,\n default: null\n },\n /**\n * Цвет слайдера\n */\n color: {\n type: String as () => ColorTypes,\n default: 'purple'\n },\n /**\n * Is it lazy to update the value.\n * Useful whenever you need to consume a high-loss operation\n */\n lazy: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Whether to disable the component.\n */\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Control Tooltip display.\n * 'none' | 'always' | 'hover' | 'focus' | 'active'\n */\n tooltip: {\n type: String as PropType<string>,\n default: 'hover'\n },\n /**\n * The placement of the Tooltip.\n * 'top' | 'right' | 'bottom' | 'left'\n */\n tooltipPlacement: {\n type: String as () => TooltipPositionsUnion,\n default: 'top'\n },\n coloredTooltip: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n smooth: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n showLabels: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n errors: {\n type: Array as PropType<string[]>,\n default: () => []\n }\n})\n\nconst fieldErrors = useFieldErrors(props.errors)\n\nconst tooltipFormatter = (value: string): string => {\n //@ts-ignore\n if (Number(value) !== value) return value\n return ('' + value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ')\n}\n\nconst computedValue = computed({\n get() {\n return props.modelValue\n },\n set(value) {\n handleInput(value)\n }\n})\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-range-slider': true,\n [`mc-range-slider--color-${props.color}`]: !!props.color,\n 'mc-range-slider--colored-tooltip': props.coloredTooltip\n }\n})\n\nconst styles = computed((): { [key: string]: string } => {\n return {\n '--mc-range-slider-color': Colors[props.color]\n }\n})\n\nconst sliderProps = reactive({\n style: styles.value,\n interval: +props.step,\n min: +props.min,\n max: +props.max,\n disabled: props.disabled,\n lazy: props.lazy,\n tooltip: props.tooltip,\n marks: props.showLabels,\n adsorb: !props.smooth,\n 'tooltip-placement': props.tooltipPlacement,\n 'tooltip-formatter': tooltipFormatter,\n 'dot-size': 20\n})\nconst handleInput = (value: RangeValue): void => {\n /**\n * Событие по изменению значения\n */\n emit('update:modelValue', value)\n}\n\nconst handleDrag = (value: RangeValue): void => {\n /**\n * Событие по изменению значения\n * (если нужно отслеживать value в ленивом режиме)\n */\n emit('dragging', value)\n}\n</script>\n\n<template>\n <div :class=\"classes\">\n <div class=\"mc-field-range__header\">\n <!-- @slot Слот заголовка -->\n <slot name=\"header\">\n <mc-title v-if=\"props.title\" :weight=\"Weights.Medium\">\n {{ props.title }}\n </mc-title>\n </slot>\n </div>\n <vue-slider v-model=\"computedValue\" v-bind=\"sliderProps\" @change=\"handleInput\" @dragging=\"handleDrag\" />\n <template v-if=\"(fieldErrors.errorText.value || props.helpText || $slots.footer) && props.showLabels\">\n <br />\n </template>\n <div v-if=\"fieldErrors.errorText.value || props.helpText || $slots.footer\" class=\"mc-field-range__footer\">\n <template v-if=\"fieldErrors.errorText.value\">\n <mc-title\n tag-name=\"div\"\n color=\"red\"\n :variation=\"TitleVariations.Overline\"\n class=\"mc-field-range__error-text\"\n :html-data=\"fieldErrors.errorText.value\"\n />\n <br />\n </template>\n <!-- @slot Слот доп. текста под инпутом -->\n <slot name=\"footer\">\n <mc-title\n v-if=\"props.helpText\"\n tag-name=\"div\"\n :variation=\"TitleVariations.Overline\"\n color=\"gray\"\n max-width=\"100%\"\n >\n {{ helpText }}\n </mc-title>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/box-shadows' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/font-families' as *;\n.mc-range-slider {\n $block-name: &;\n font-family: $font-family-main;\n --mc-range-slider-color: #{$color-purple};\n &__header {\n @include reset-text-indents();\n display: block;\n margin-bottom: $space-100;\n\n &:empty {\n display: none;\n }\n }\n &__footer {\n margin-top: $space-50;\n line-height: $line-height-150;\n\n &:empty {\n display: none;\n }\n }\n\n .vue-slider-dot-tooltip-inner {\n line-height: $line-height-200;\n font-size: $font-size-200;\n padding: $space-100 $space-150;\n background-color: $color-black;\n border-color: $color-black;\n }\n .vue-slider-process {\n background-color: var(--mc-range-slider-color);\n }\n\n .vue-slider-dot-handle-focus {\n box-shadow: $shadow-s;\n }\n .vue-slider-dot-handle {\n box-shadow: $shadow-s;\n &:hover {\n border: 2px solid var(--mc-range-slider-color);\n }\n &:active {\n border: 2px solid var(--mc-range-slider-color);\n }\n }\n &--colored-tooltip {\n .vue-slider-dot-tooltip-inner {\n background-color: var(--mc-range-slider-color);\n border-color: var(--mc-range-slider-color);\n padding: $space-100 $space-150;\n }\n }\n &.vue-slider {\n .vue-slider-rail {\n cursor: pointer;\n }\n &-disabled {\n .vue-slider-rail {\n cursor: auto;\n }\n }\n }\n}\n</style>\n","import { openBlock, createBlock, withKeys, withModifiers, renderSlot, createVNode, withDirectives, Fragment, renderList, toDisplayString, vShow, createCommentVNode, Transition, withCtx, createTextVNode } from 'vue';\n\nfunction isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined';\n if (str === null) str = 'null';\n if (str === false) str = 'false';\n const text = str.toString().toLowerCase();\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return search ? options\n .filter((option) => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options\n}\n\nfunction stripGroups (options) {\n return options.filter((option) => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n });\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map((group) => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`);\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel);\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x);\n\nvar multiselectMixin = {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `<select>` input.\n * @default false\n * @type {Boolean}\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Key to compare objects\n * @default 'id'\n * @type {String}\n */\n trackBy: {\n type: String\n },\n /**\n * Label to look for in option Object\n * @default 'label'\n * @type {String}\n */\n label: {\n type: String\n },\n /**\n * Enable/disable search in options\n * @default true\n * @type {Boolean}\n */\n searchable: {\n type: Boolean,\n default: true\n },\n /**\n * Clear the search input after `)\n * @default true\n * @type {Boolean}\n */\n clearOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Hide already selected options\n * @default false\n * @type {Boolean}\n */\n hideSelected: {\n type: Boolean,\n default: false\n },\n /**\n * Equivalent to the `placeholder` attribute on a `<select>` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n },\n /**\n * Prevent autofocus\n * @default false\n * @type {Boolean}\n */\n preventAutofocus: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.');\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0]);\n }\n },\n computed: {\n internalValue () {\n return this.modelValue || this.modelValue === 0\n ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]\n : []\n },\n filteredOptions () {\n const search = this.search || '';\n const normalizedSearch = search.toLowerCase().trim();\n\n let options = this.options.concat();\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel);\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options;\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options;\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({isTag: true, label: search});\n } else {\n options.unshift({isTag: true, label: search});\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map((element) => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options;\n return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue: {\n handler () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = '';\n this.$emit('update:modelValue', this.multiple ? [] : null);\n }\n },\n deep: true\n },\n search () {\n this.$emit('search-change', this.search);\n }\n },\n emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'],\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @return {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @return {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query;\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @return {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option;\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n const label = this.customLabel(option, this.label);\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option);\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id);\n this.search = '';\n if (this.closeOnSelect && !this.multiple) this.deactivate();\n } else {\n const isSelected = this.isSelected(option);\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option);\n return\n }\n\n if (this.multiple) {\n this.$emit('update:modelValue', this.internalValue.concat([option]));\n } else {\n this.$emit('update:modelValue', option);\n }\n\n this.$emit('select', option, this.id);\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = '';\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate();\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n });\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id);\n\n const groupValues = this.trackBy ? group[this.groupValues].map(val => val[this.trackBy]) : group[this.groupValues];\n const newValue = this.internalValue.filter(\n option => groupValues.indexOf(this.trackBy ? option[this.trackBy] : option) === -1\n );\n\n this.$emit('update:modelValue', newValue);\n } else {\n let optionsToAdd = group[this.groupValues].filter(\n option => !(this.isOptionDisabled(option) || this.isSelected(option))\n );\n\n // if max is defined then just select options respecting max\n if (this.max) {\n optionsToAdd.splice(this.max - this.internalValue.length);\n }\n\n this.$emit('select', optionsToAdd, this.id);\n this.$emit(\n 'update:modelValue',\n this.internalValue.concat(optionsToAdd)\n );\n }\n\n if (this.closeOnSelect) this.deactivate();\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @return {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate();\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option);\n\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1));\n this.$emit('update:modelValue', newValue);\n } else {\n this.$emit('update:modelValue', null);\n }\n this.$emit('remove', option, this.id);\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate();\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false);\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition();\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1;\n }\n\n this.isOpen = true;\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = '';\n if (!this.preventAutofocus) this.$nextTick(() => this.$refs.search && this.$refs.search.focus());\n } else if (!this.preventAutofocus) {\n if (typeof this.$el !== 'undefined') this.$el.focus();\n }\n this.$emit('open', this.id);\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false;\n /* istanbul ignore else */\n if (this.searchable) {\n if (this.$refs.search !== null && typeof this.$refs.search !== 'undefined') this.$refs.search.blur();\n } else {\n if (typeof this.$el !== 'undefined') this.$el.blur();\n }\n if (!this.preserveSearch) this.search = '';\n this.$emit('close', this.getValue(), this.id);\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate();\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top;\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom;\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight;\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below';\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight);\n } else {\n this.preferredOpenDirection = 'above';\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight);\n }\n }\n }\n};\n\nvar pointerMixin = {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust();\n },\n isOpen () {\n this.pointerDirty = false;\n },\n pointer () {\n this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString());\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n {'multiselect__option--group': selectedGroup.$isLabel}\n ]\n }\n\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n });\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n {'multiselect__option--highlight': index === this.pointer && this.showPointer},\n {'multiselect__option--group-selected': this.wholeGroupSelected(group)}\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({key} = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key);\n }\n this.pointerReset();\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++;\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight;\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward();\n }\n this.pointerDirty = true;\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--;\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition;\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward();\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward();\n }\n this.pointerDirty = true;\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0;\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0;\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0;\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward();\n }\n },\n pointerSet (index) {\n this.pointer = index;\n this.pointerDirty = true;\n }\n }\n};\n\nvar script = {\n name: 'vue-multiselect',\n mixins: [multiselectMixin, pointerMixin],\n compatConfig: {\n MODE: 3,\n ATTR_ENUMERATED_COERCION: false\n },\n props: {\n /**\n * name attribute to match optional label element\n * @default ''\n * @type {String}\n */\n name: {\n type: String,\n default: ''\n },\n /**\n * Presets the selected options value.\n * @type {Object||Array||String||Integer}\n */\n modelValue: {\n type: null,\n default () {\n return []\n }\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectLabel: {\n type: String,\n default: 'Press enter to select'\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectGroupLabel: {\n type: String,\n default: 'Press enter to select group'\n },\n /**\n * String to show next to selected option\n * @default 'Selected'\n * @type {String}\n */\n selectedLabel: {\n type: String,\n default: 'Selected'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectLabel: {\n type: String,\n default: 'Press enter to remove'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectGroupLabel: {\n type: String,\n default: 'Press enter to deselect group'\n },\n /**\n * Decide whether to show pointer labels\n * @default true\n * @type {Boolean}\n */\n showLabels: {\n type: Boolean,\n default: true\n },\n /**\n * Limit the display of selected options. The rest will be hidden within the limitText string.\n * @default 99999\n * @type {Integer}\n */\n limit: {\n type: Number,\n default: 99999\n },\n /**\n * Sets maxHeight style value of the dropdown\n * @default 300\n * @type {Integer}\n */\n maxHeight: {\n type: Number,\n default: 300\n },\n /**\n * Function that process the message shown when selected\n * elements pass the defined limit.\n * @default 'and * more'\n * @param {Int} count Number of elements more than limit\n * @type {Function}\n */\n limitText: {\n type: Function,\n default: (count) => `and ${count} more`\n },\n /**\n * Set true to trigger the loading spinner.\n * @default False\n * @type {Boolean}\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Disables the multiselect if true.\n * @default false\n * @type {Boolean}\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Enables search input's spellcheck if true.\n * @default false\n * @type {Boolean}\n */\n spellcheck: {\n type: Boolean,\n default: false\n },\n /**\n * Fixed opening direction\n * @default ''\n * @type {String}\n */\n openDirection: {\n type: String,\n default: ''\n },\n /**\n * Shows slot with message about empty options\n * @default true\n * @type {Boolean}\n */\n showNoOptions: {\n type: Boolean,\n default: true\n },\n showNoResults: {\n type: Boolean,\n default: true\n },\n tabindex: {\n type: Number,\n default: 0\n },\n required: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n hasOptionGroup () {\n return this.groupValues && this.groupLabel && this.groupSelect\n },\n isSingleLabelVisible () {\n return (\n (this.singleValue || this.singleValue === 0) &&\n (!this.isOpen || !this.searchable) &&\n !this.visibleValues.length\n )\n },\n isPlaceholderVisible () {\n return !this.internalValue.length && (!this.searchable || !this.isOpen)\n },\n visibleValues () {\n return this.multiple ? this.internalValue.slice(0, this.limit) : []\n },\n singleValue () {\n return this.internalValue[0]\n },\n deselectLabelText () {\n return this.showLabels ? this.deselectLabel : ''\n },\n deselectGroupLabelText () {\n return this.showLabels ? this.deselectGroupLabel : ''\n },\n selectLabelText () {\n return this.showLabels ? this.selectLabel : ''\n },\n selectGroupLabelText () {\n return this.showLabels ? this.selectGroupLabel : ''\n },\n selectedLabelText () {\n return this.showLabels ? this.selectedLabel : ''\n },\n inputStyle () {\n if (\n this.searchable ||\n (this.multiple && this.modelValue && this.modelValue.length)\n ) {\n // Hide input by setting the width to 0 allowing it to receive focus\n return this.isOpen\n ? {width: '100%'}\n : {width: '0', position: 'absolute', padding: '0'}\n }\n return ''\n },\n contentStyle () {\n return this.options.length\n ? {display: 'inline-block'}\n : {display: 'block'}\n },\n isAbove () {\n if (this.openDirection === 'above' || this.openDirection === 'top') {\n return true\n } else if (\n this.openDirection === 'below' ||\n this.openDirection === 'bottom'\n ) {\n return false\n } else {\n return this.preferredOpenDirection === 'above'\n }\n },\n showSearchInput () {\n return (\n this.searchable &&\n (this.hasSingleSelectedSlot &&\n (this.visibleSingleValue || this.visibleSingleValue === 0)\n ? this.isOpen\n : true)\n )\n }\n }\n};\n\nconst _hoisted_1 = {\n ref: \"tags\",\n class: \"multiselect__tags\"\n};\nconst _hoisted_2 = { class: \"multiselect__tags-wrap\" };\nconst _hoisted_3 = { class: \"multiselect__spinner\" };\nconst _hoisted_4 = { key: 0 };\nconst _hoisted_5 = { class: \"multiselect__option\" };\nconst _hoisted_6 = { class: \"multiselect__option\" };\nconst _hoisted_7 = /*#__PURE__*/createTextVNode(\"No elements found. Consider changing the search query.\");\nconst _hoisted_8 = { class: \"multiselect__option\" };\nconst _hoisted_9 = /*#__PURE__*/createTextVNode(\"List is empty.\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(\"div\", {\n tabindex: _ctx.searchable ? -1 : $props.tabindex,\n class: [{ 'multiselect--active': _ctx.isOpen, 'multiselect--disabled': $props.disabled, 'multiselect--above': $options.isAbove, 'multiselect--has-options-group': $options.hasOptionGroup }, \"multiselect\"],\n onFocus: _cache[14] || (_cache[14] = $event => (_ctx.activate())),\n onBlur: _cache[15] || (_cache[15] = $event => (_ctx.searchable ? false : _ctx.deactivate())),\n onKeydown: [\n _cache[16] || (_cache[16] = withKeys(withModifiers($event => (_ctx.pointerForward()), [\"self\",\"prevent\"]), [\"down\"])),\n _cache[17] || (_cache[17] = withKeys(withModifiers($event => (_ctx.pointerBackward()), [\"self\",\"prevent\"]), [\"up\"]))\n ],\n onKeypress: _cache[18] || (_cache[18] = withKeys(withModifiers($event => (_ctx.addPointerElement($event)), [\"stop\",\"self\"]), [\"enter\",\"tab\"])),\n onKeyup: _cache[19] || (_cache[19] = withKeys($event => (_ctx.deactivate()), [\"esc\"])),\n role: \"combobox\",\n \"aria-owns\": 'listbox-'+_ctx.id\n }, [\n renderSlot(_ctx.$slots, \"caret\", { toggle: _ctx.toggle }, () => [\n createVNode(\"div\", {\n onMousedown: _cache[1] || (_cache[1] = withModifiers($event => (_ctx.toggle()), [\"prevent\",\"stop\"])),\n class: \"multiselect__select\"\n }, null, 32 /* HYDRATE_EVENTS */)\n ]),\n renderSlot(_ctx.$slots, \"clear\", { search: _ctx.search }),\n createVNode(\"div\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"selection\", {\n search: _ctx.search,\n remove: _ctx.removeElement,\n values: $options.visibleValues,\n isOpen: _ctx.isOpen\n }, () => [\n withDirectives(createVNode(\"div\", _hoisted_2, [\n (openBlock(true), createBlock(Fragment, null, renderList($options.visibleValues, (option, index) => {\n return renderSlot(_ctx.$slots, \"tag\", {\n option: option,\n search: _ctx.search,\n remove: _ctx.removeElement\n }, () => [\n (openBlock(), createBlock(\"span\", {\n class: \"multiselect__tag\",\n key: index\n }, [\n createVNode(\"span\", {\n textContent: toDisplayString(_ctx.getOptionLabel(option))\n }, null, 8 /* PROPS */, [\"textContent\"]),\n createVNode(\"i\", {\n tabindex: \"1\",\n onKeypress: withKeys(withModifiers($event => (_ctx.removeElement(option)), [\"prevent\"]), [\"enter\"]),\n onMousedown: withModifiers($event => (_ctx.removeElement(option)), [\"prevent\"]),\n class: \"multiselect__tag-icon\"\n }, null, 40 /* PROPS, HYDRATE_EVENTS */, [\"onKeypress\", \"onMousedown\"])\n ]))\n ])\n }), 256 /* UNKEYED_FRAGMENT */))\n ], 512 /* NEED_PATCH */), [\n [vShow, $options.visibleValues.length > 0]\n ]),\n (_ctx.internalValue && _ctx.internalValue.length > $props.limit)\n ? renderSlot(_ctx.$slots, \"limit\", { key: 0 }, () => [\n createVNode(\"strong\", {\n class: \"multiselect__strong\",\n textContent: toDisplayString($props.limitText(_ctx.internalValue.length - $props.limit))\n }, null, 8 /* PROPS */, [\"textContent\"])\n ])\n : createCommentVNode(\"v-if\", true)\n ]),\n createVNode(Transition, { name: \"multiselect__loading\" }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"loading\", {}, () => [\n withDirectives(createVNode(\"div\", _hoisted_3, null, 512 /* NEED_PATCH */), [\n [vShow, $props.loading]\n ])\n ])\n ]),\n _: 3 /* FORWARDED */\n }),\n (_ctx.searchable)\n ? (openBlock(), createBlock(\"input\", {\n key: 0,\n ref: \"search\",\n name: $props.name,\n id: _ctx.id,\n type: \"text\",\n autocomplete: \"off\",\n spellcheck: $props.spellcheck,\n placeholder: _ctx.placeholder,\n required: $props.required,\n style: $options.inputStyle,\n value: _ctx.search,\n disabled: $props.disabled,\n tabindex: $props.tabindex,\n onInput: _cache[2] || (_cache[2] = $event => (_ctx.updateSearch($event.target.value))),\n onFocus: _cache[3] || (_cache[3] = withModifiers($event => (_ctx.activate()), [\"prevent\"])),\n onBlur: _cache[4] || (_cache[4] = withModifiers($event => (_ctx.deactivate()), [\"prevent\"])),\n onKeyup: _cache[5] || (_cache[5] = withKeys($event => (_ctx.deactivate()), [\"esc\"])),\n onKeydown: [\n _cache[6] || (_cache[6] = withKeys(withModifiers($event => (_ctx.pointerForward()), [\"prevent\"]), [\"down\"])),\n _cache[7] || (_cache[7] = withKeys(withModifiers($event => (_ctx.pointerBackward()), [\"prevent\"]), [\"up\"])),\n _cache[9] || (_cache[9] = withKeys(withModifiers($event => (_ctx.removeLastElement()), [\"stop\"]), [\"delete\"]))\n ],\n onKeypress: _cache[8] || (_cache[8] = withKeys(withModifiers($event => (_ctx.addPointerElement($event)), [\"prevent\",\"stop\",\"self\"]), [\"enter\"])),\n class: \"multiselect__input\",\n \"aria-controls\": 'listbox-'+_ctx.id\n }, null, 44 /* STYLE, PROPS, HYDRATE_EVENTS */, [\"name\", \"id\", \"spellcheck\", \"placeholder\", \"required\", \"value\", \"disabled\", \"tabindex\", \"aria-controls\"]))\n : createCommentVNode(\"v-if\", true),\n ($options.isSingleLabelVisible)\n ? (openBlock(), createBlock(\"span\", {\n key: 1,\n class: \"multiselect__single\",\n onMousedown: _cache[10] || (_cache[10] = withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), [\"prevent\"]))\n }, [\n renderSlot(_ctx.$slots, \"singleLabel\", { option: $options.singleValue }, () => [\n createTextVNode(toDisplayString(_ctx.currentOptionLabel), 1 /* TEXT */)\n ])\n ], 32 /* HYDRATE_EVENTS */))\n : createCommentVNode(\"v-if\", true),\n ($options.isPlaceholderVisible)\n ? (openBlock(), createBlock(\"span\", {\n key: 2,\n class: \"multiselect__placeholder\",\n onMousedown: _cache[11] || (_cache[11] = withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), [\"prevent\"]))\n }, [\n renderSlot(_ctx.$slots, \"placeholder\", {}, () => [\n createTextVNode(toDisplayString(_ctx.placeholder), 1 /* TEXT */)\n ])\n ], 32 /* HYDRATE_EVENTS */))\n : createCommentVNode(\"v-if\", true)\n ], 512 /* NEED_PATCH */),\n createVNode(Transition, { name: \"multiselect\" }, {\n default: withCtx(() => [\n withDirectives(createVNode(\"div\", {\n class: \"multiselect__content-wrapper\",\n onFocus: _cache[12] || (_cache[12] = (...args) => (_ctx.activate && _ctx.activate(...args))),\n tabindex: \"-1\",\n onMousedown: _cache[13] || (_cache[13] = withModifiers(() => {}, [\"prevent\"])),\n style: { maxHeight: _ctx.optimizedHeight + 'px' },\n ref: \"list\"\n }, [\n createVNode(\"ul\", {\n class: \"multiselect__content\",\n style: $options.contentStyle,\n role: \"listbox\",\n id: 'listbox-'+_ctx.id,\n \"aria-multiselectable\": _ctx.multiple\n }, [\n renderSlot(_ctx.$slots, \"beforeList\"),\n (_ctx.multiple && _ctx.max === _ctx.internalValue.length)\n ? (openBlock(), createBlock(\"li\", _hoisted_4, [\n createVNode(\"span\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"maxElements\", {}, () => [\n createTextVNode(\"Maximum of \" + toDisplayString(_ctx.max) + \" options selected. First remove a selected option to select another.\", 1 /* TEXT */)\n ])\n ])\n ]))\n : createCommentVNode(\"v-if\", true),\n (!_ctx.max || _ctx.internalValue.length < _ctx.max)\n ? (openBlock(true), createBlock(Fragment, { key: 1 }, renderList(_ctx.filteredOptions, (option, index) => {\n return (openBlock(), createBlock(\"li\", {\n class: \"multiselect__element\",\n key: index,\n \"aria-selected\": _ctx.isSelected(option),\n id: _ctx.id + '-' + index,\n role: !(option && (option.$isLabel || option.$isDisabled)) ? 'option' : null\n }, [\n (!(option && (option.$isLabel || option.$isDisabled)))\n ? (openBlock(), createBlock(\"span\", {\n key: 0,\n class: [_ctx.optionHighlight(index, option), \"multiselect__option\"],\n onClick: withModifiers($event => (_ctx.select(option)), [\"stop\"]),\n onMouseenter: withModifiers($event => (_ctx.pointerSet(index)), [\"self\"]),\n \"data-select\": option && option.isTag ? _ctx.tagPlaceholder : $options.selectLabelText,\n \"data-selected\": $options.selectedLabelText,\n \"data-deselect\": $options.deselectLabelText\n }, [\n renderSlot(_ctx.$slots, \"option\", {\n option: option,\n search: _ctx.search,\n index: index\n }, () => [\n createVNode(\"span\", null, toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */)\n ])\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, [\"onClick\", \"onMouseenter\", \"data-select\", \"data-selected\", \"data-deselect\"]))\n : createCommentVNode(\"v-if\", true),\n (option && (option.$isLabel || option.$isDisabled))\n ? (openBlock(), createBlock(\"span\", {\n key: 1,\n \"data-select\": _ctx.groupSelect && $options.selectGroupLabelText,\n \"data-deselect\": _ctx.groupSelect && $options.deselectGroupLabelText,\n class: [_ctx.groupHighlight(index, option), \"multiselect__option\"],\n onMouseenter: withModifiers($event => (_ctx.groupSelect && _ctx.pointerSet(index)), [\"self\"]),\n onMousedown: withModifiers($event => (_ctx.selectGroup(option)), [\"prevent\"])\n }, [\n renderSlot(_ctx.$slots, \"option\", {\n option: option,\n search: _ctx.search,\n index: index\n }, () => [\n createVNode(\"span\", null, toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */)\n ])\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, [\"data-select\", \"data-deselect\", \"onMouseenter\", \"onMousedown\"]))\n : createCommentVNode(\"v-if\", true)\n ], 8 /* PROPS */, [\"aria-selected\", \"id\", \"role\"]))\n }), 128 /* KEYED_FRAGMENT */))\n : createCommentVNode(\"v-if\", true),\n withDirectives(createVNode(\"li\", null, [\n createVNode(\"span\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"noResult\", { search: _ctx.search }, () => [\n _hoisted_7\n ])\n ])\n ], 512 /* NEED_PATCH */), [\n [vShow, $props.showNoResults && (_ctx.filteredOptions.length === 0 && _ctx.search && !$props.loading)]\n ]),\n withDirectives(createVNode(\"li\", null, [\n createVNode(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"noOptions\", {}, () => [\n _hoisted_9\n ])\n ])\n ], 512 /* NEED_PATCH */), [\n [vShow, $props.showNoOptions && ((_ctx.options.length === 0 || ($options.hasOptionGroup === true && _ctx.filteredOptions.length === 0)) && !_ctx.search && !$props.loading)]\n ]),\n renderSlot(_ctx.$slots, \"afterList\")\n ], 12 /* STYLE, PROPS */, [\"id\", \"aria-multiselectable\"])\n ], 36 /* STYLE, HYDRATE_EVENTS */), [\n [vShow, _ctx.isOpen]\n ])\n ]),\n _: 3 /* FORWARDED */\n })\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, [\"tabindex\", \"aria-owns\"]))\n}\n\nscript.render = render;\n\nexport default script;\nexport { script as Multiselect, multiselectMixin, pointerMixin };\n","<script setup lang=\"ts\">\nimport { computed, type PropType, ref, watch } from 'vue'\nimport { default as MultiSelect } from 'vue-multiselect'\nimport { McTitle, McSvgIcon, McAvatar, McTooltip, McPreview } from '@/components'\nimport type { ISelectGroupOptions, ISelectOption, ISelectOptions } from '@/types/ISelect'\nimport { type DirectionsUnion } from '@/types/IDirections'\nimport { Directions } from '@/enums/ui/Directions'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { useFieldErrors } from '@/composables'\nimport type { IconsListUnion } from '@/types/styles/Icons'\nimport { SelectGroupKeys } from '@/enums/Select'\nimport type { SelectListDirectionsUnion } from '@/types/ISelect'\nimport { PreviewSizes, TitleVariations, TooltipPositions, Weights } from '@/enums'\n\nconst emit = defineEmits<{\n (e: 'original-input', value: ISelectOptions[]): void\n (e: 'tag', value: string): void\n (e: 'search-change', value: string): void\n (e: 'update:modelValue', value: string[] | number[] | string | number | null): void\n (e: 'handle-open'): void\n (e: 'handle-close'): void\n}>()\nconst props = defineProps({\n /**\n * Значение\n */\n modelValue: {\n type: [Array, String, Number] as PropType<string[] | number[] | string | number | null>\n },\n /**\n * Заголовок поля:\n *\n */\n title: {\n type: String as PropType<string>,\n default: null\n },\n\n /**\n * Вспомогательный текст под инпутом:\n *\n */\n helpText: {\n type: String as PropType<string>,\n default: null\n },\n /**\n * Массив элементов\n * выпадающего списка\n * [\n * {\n * name: String,\n * value: String | Number,\n * text: String - доступен, если optionWithPreview=true\n * icon: String - доступен, если optionWithPreview=true\n * }\n * ]\n */\n options: {\n type: Array as PropType<ISelectOptions | ISelectGroupOptions>,\n default: () => [] as ISelectOptions\n },\n /**\n * Выполняется ли поиск из списка\n * при вводе в инпут\n */\n searchable: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Множественный выбор\n */\n multiple: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Скрывать из списка\n * выбранные элементы\n */\n hideSelected: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Допустимо ли\n * пустое значение\n */\n allowEmpty: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Отключенное состояние\n */\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Ссылка на аватар/картинку\n * в начале label\n */\n avatar: {\n type: String as PropType<string>,\n default: null\n },\n /**\n * Имя иконки\n * в начале label\n */\n icon: {\n type: String as () => IconsListUnion,\n default: null\n },\n /**\n * Цвет фона\n */\n backgroundColor: {\n type: String as () => ColorTypes,\n default: null\n },\n /**\n * placeholder\n */\n placeholder: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Направление открытия списка:\n * `above (top), below (bottom), auto`\n */\n openDirection: {\n type: String as () => SelectListDirectionsUnion,\n default: 'auto'\n },\n /**\n * Селект в режиме тэгирования, когда можно вводить свои значения и добавлять их в опции\n * */\n taggable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Помечать в списке выбранные\n * элементы\n */\n showLabels: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Поиск по опциям\n * */\n internalSearch: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Ошибки\n */\n errors: {\n type: Array as PropType<string[]>,\n default: null\n },\n /**\n * Name\n */\n name: {\n type: String as PropType<string>,\n required: true\n },\n /**\n * Если нужен тултип\n * над элементами списка\n */\n optionsTooltip: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * При группировке опций, дает возвожность выбрать сразу группу\n * */\n groupSelect: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n required: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Если айтемам в селекте нужны превью с иконками и описанием\n */\n optionWithPreview: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n tabindex: {\n type: [String, Number],\n default: null\n },\n /**\n * Если нужно ограничить максимальную высоту блока с выбранными элементами\n */\n maxHeight: {\n type: String as PropType<string>,\n default: null\n },\n /**\n * Рендерить ли выпадающий список абсолютно, что бы помещался в ограниченном пространстве\n * */\n renderAbsoluteList: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Для какого языка селект\n */\n locale: {\n type: String as PropType<string>,\n default: null\n },\n /**\n * Текст для пустого селекта, когда неичего не найдено\n */\n noResultsText: {\n type: String as PropType<string>,\n default: 'No results'\n },\n /**\n * Показывать ли состояние лоадинга\n */\n loading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n dir: {\n type: String as () => DirectionsUnion,\n default: Directions.Ltr\n },\n /**\n * На какое после смотреть что бы считать его заголовком строки\n * */\n titleField: {\n type: String as PropType<string>,\n default: 'name'\n },\n /**\n * На какое после смотреть что бы считать его значением строки\n * */\n valueField: {\n type: String as PropType<string>,\n default: 'value'\n }\n})\n\nconst fieldErrors = useFieldErrors(props.errors)\nconst searchValue = ref<string | null>(null)\nconst field_select_ref = ref<InstanceType<typeof MultiSelect> | null>(null)\nconst field_select_wrapper_ref = ref<InstanceType<typeof HTMLDivElement> | null>(null)\nconst local_options = ref<ISelectOptions>([])\n\nconst isGroupedOptions = computed((): boolean => {\n return props.options.some(\n (o) =>\n Object.prototype.hasOwnProperty.call(o, SelectGroupKeys.Label) &&\n Object.prototype.hasOwnProperty.call(o, SelectGroupKeys.Values) &&\n //@ts-ignore\n Array.isArray(o[SelectGroupKeys.Values])\n )\n})\nconst hasTitle = computed(() => {\n return !!props.title\n})\nconst hasPrepend = computed(() => {\n return props.avatar || props.icon\n})\nconst isValueMustBeArray = computed(() => {\n return props.multiple\n})\n\nconst tagBind = computed(() => {\n return {\n label: props.titleField,\n trackBy: props.valueField,\n loading: props.loading,\n options: computedOptions.value,\n searchable: props.searchable,\n showLabels: props.showLabels,\n multiple: props.multiple,\n hideSelected: props.hideSelected,\n allowEmpty: props.allowEmpty,\n openDirection: props.openDirection,\n id: props.name,\n taggable: props.taggable,\n tagPlaceholder: '',\n placeholder: props.placeholder,\n disabled: props.disabled,\n internalSearch: props.internalSearch,\n tabindex: +props.tabindex,\n groupSelect: props.groupSelect && props.multiple,\n ...(isGroupedOptions.value ? { groupLabel: SelectGroupKeys.Label } : {}),\n ...(isGroupedOptions.value ? { groupValues: SelectGroupKeys.Values } : {})\n }\n})\n\nconst computedOptions = computed((): ISelectOptions => {\n //@ts-ignore\n return !isGroupedOptions.value\n ? ([...props.options, ...local_options.value].filter(\n //@ts-ignore\n (v, i, a) => a.findIndex((afi: ISelectOption) => afi[props.valueField] === v[props.valueField]) === i\n ) as ISelectOptions)\n : props.options\n})\nconst rtl = computed((): boolean => {\n return props.dir === Directions.Rtl\n})\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-field-select': true,\n 'mc-field-select--error': !!fieldErrors.errorText.value,\n 'mc-field-select--disabled': props.disabled,\n [`mc-field-select--bg-${props.backgroundColor}`]: !!props.backgroundColor,\n 'mc-field-select--is-empty-options-list': isEmptyOptionsList.value || props.loading,\n 'mc-field-select--with-preview': props.optionWithPreview,\n 'mc-field-select--max-height': !!props.maxHeight,\n 'mc-field-select--rtl': rtl.value\n }\n})\nconst computedTitle = computed(() => {\n return `${props.title}${props.required ? ' *' : ''}`\n})\nconst styles = computed((): { [key: string]: string } => {\n const darkColors = ['gray', 'dark-gray', 'black']\n const lightColors = ['white']\n let placeHolderColor: ColorTypes = 'gray'\n let borderColor: ColorTypes = props.backgroundColor\n let backgroundColor: ColorTypes = props.backgroundColor\n let labelColor: ColorTypes = 'black'\n if (!props.backgroundColor || lightColors.includes(props.backgroundColor)) {\n borderColor = 'purple'\n }\n if (darkColors.includes(props.backgroundColor)) {\n labelColor = 'white'\n placeHolderColor = 'white'\n borderColor = 'black'\n }\n if (props.disabled && !props.backgroundColor) {\n backgroundColor = 'hover-gray'\n }\n return {\n '--mc-field-select-max-height': props.maxHeight,\n '--mc-field-select-color': backgroundColor && Colors[backgroundColor],\n '--mc-field-select-border-color': borderColor && Colors[borderColor],\n '--mc-field-select-label-color': Colors[labelColor],\n '--mc-field-select-placeholder-color': Colors[placeHolderColor]\n }\n})\n\nconst isEmptyOptionsList = computed((): boolean => {\n if ((props.hideSelected && !searchValue.value) || !props.options.length) {\n if (props.multiple) {\n if (isGroupedOptions.value) return false\n return Array.isArray(props.modelValue) && props.options.length === props.modelValue.length\n } else {\n return !!props.modelValue && computedOptions.value?.length === 1 && !searchValue.value\n }\n } else if (props.options.length === 0) return !props.options.length\n return false\n})\n\nconst computedModelValue = computed({\n get() {\n let preparedValue: any = isValueMustBeArray.value ? props.modelValue || [] : [props.modelValue].filter(Boolean)\n preparedValue = preparedValue.map((pv: string): ISelectOption => {\n //@ts-ignore\n const options = isGroupedOptions.value\n ? computedOptions.value.map((co) => co[SelectGroupKeys.Values]).flat()\n : computedOptions.value\n const item = options.find((co) => String(co[props.valueField]) === String(pv))\n return {\n [props.titleField]: item?.[props.titleField],\n [props.valueField]: item?.[props.valueField],\n text: item?.text,\n icon: item?.icon\n }\n })\n\n const [first] = preparedValue\n return isValueMustBeArray.value ? preparedValue : first\n },\n set(value) {\n let preparedValue = isValueMustBeArray.value ? (Array.isArray(value) ? value : []) : [value]\n preparedValue = preparedValue.filter(Boolean).map((v) => v[props.valueField])\n\n const [first] = preparedValue\n emitOriginalInput(value)\n emitInput(isValueMustBeArray.value ? preparedValue : first)\n }\n})\n\nconst actualizeSavedOptions = (): void => {\n //Фильтруем локальные опции и оставляем только те, значения которых выбраны в селекте\n local_options.value = local_options.value.filter((lo: ISelectOption) =>\n props.modelValue?.constructor === Array\n ? props.modelValue.map((v) => String(v)).includes(String(lo[props.valueField]))\n : String(lo[props.valueField]) === String(props.modelValue)\n )\n\n //Делаем Юник, что бы опции не повторялись\n local_options.value = local_options.value.filter(\n (v, i, a) => a.findIndex((afi) => String(afi[props.valueField]) === String(v[props.valueField])) === i\n )\n}\n\nconst handleTag = (value: string): void => {\n const preparedValue = { [props.titleField]: value, [props.valueField]: value }\n local_options.value.push(preparedValue)\n\n computedModelValue.value = isValueMustBeArray.value ? [...computedModelValue.value, preparedValue] : preparedValue\n /**\n * Событие по добавлению\n * тега в опции (по Enter)\n */\n emit('tag', value)\n}\n\nconst handleSearchChange = (value: string): void => {\n searchValue.value = value\n /**\n * Событие по вводу данных в инпут\n */\n emit('search-change', value)\n}\n\nconst emitInput = (value: number[] | string[] | number | string): void => {\n fieldErrors.toggleErrorVisible()\n /**\n * Событие инпута (выбранное значение)\n */\n emit('update:modelValue', value)\n}\nconst emitOriginalInput = (value: ISelectOptions[]): void => {\n /**\n * Истинное значение инпута\n */\n emit('original-input', value)\n}\n\nconst handleOpen = (): void => {\n emit('handle-open')\n}\nconst handleClose = (): void => {\n emit('handle-close')\n}\n\nwatch(\n () => props.options,\n (val) => {\n //Пушим все входящие опции в локальные опции\n local_options.value.push(...val)\n actualizeSavedOptions()\n },\n { immediate: true }\n)\n\nwatch(\n () => props.modelValue,\n () => {\n actualizeSavedOptions()\n },\n { immediate: true, deep: true }\n)\n</script>\n\n<template>\n <div ref=\"field_select_wrapper_ref\" :dir=\"dir\" :class=\"classes\" :style=\"styles\">\n <div class=\"mc-field-select__header\">\n <!-- @slot Слот заголовка -->\n <slot name=\"header\">\n <mc-title v-if=\"hasTitle\" max-width=\"100%\" :weight=\"Weights.Medium\">\n {{ computedTitle }}\n </mc-title>\n </slot>\n </div>\n <div class=\"mc-field-select__main\">\n <multi-select\n ref=\"field_select_ref\"\n v-model=\"computedModelValue\"\n v-bind=\"tagBind\"\n @tag=\"handleTag\"\n @search-change=\"handleSearchChange\"\n @open=\"handleOpen\"\n @close=\"handleClose\"\n >\n <template #singleLabel=\"{ option }\">\n <mc-preview v-if=\"props.optionWithPreview\" class=\"option__desc\" :size=\"PreviewSizes.L\">\n <template v-if=\"!!option.icon\" #left>\n <mc-svg-icon :name=\"option.icon\" size=\"400\" />\n </template>\n <template #top>\n <mc-title :weight=\"Weights.SemiBold\" :html-data=\"option[props.titleField]\" />\n </template>\n <!-- Слот для замены стандартной стрелки при выведенном превью -->\n <template #right>\n <!-- @slot -->\n <slot name=\"arrow\" />\n </template>\n <template v-if=\"!!option.text\" #bottom>\n <mc-title color=\"gray\">{{ option.text }}</mc-title>\n </template>\n </mc-preview>\n <div v-else class=\"mc-field-select__single-label\">\n <div v-if=\"hasPrepend\" class=\"mc-field-select__prepend\">\n <mc-avatar v-if=\"avatar\" :src=\"avatar\" />\n <mc-svg-icon v-else :name=\"props.icon\" />\n </div>\n <div\n class=\"mc-field-select__label-text\"\n :class=\"hasPrepend ? 'mc-field-select__label-text--indent-left' : ''\"\n >\n {{ option ? option[props.titleField] : placeholder }}\n </div>\n </div>\n </template>\n\n <template v-if=\"optionsTooltip || props.optionWithPreview\" #option=\"{ option }\">\n <mc-preview v-if=\"props.optionWithPreview\" class=\"option__desc\" :size=\"PreviewSizes.L\">\n <template v-if=\"!!option.icon\" #left>\n <mc-svg-icon :name=\"option.icon\" size=\"400\" />\n </template>\n <template #top>\n <mc-title :weight=\"Weights.SemiBold\" :html-data=\"option[props.titleField]\" />\n </template>\n <template v-if=\"!!option.text\" #bottom>\n <mc-title color=\"gray\">{{ option.text }}</mc-title>\n </template>\n </mc-preview>\n <mc-tooltip\n v-else\n class=\"mc-field-select__options-tooltip-target\"\n max-width=\"m\"\n color=\"black\"\n :placement=\"TooltipPositions.Top\"\n :content=\"option[props.titleField]\"\n >\n <span>{{ option[props.titleField] }}</span>\n </mc-tooltip>\n </template>\n <template #noResult>\n <!-- @slot Слот для текста, если ничего не найдено -->\n <slot name=\"noResult\">\n <span>{{ props.noResultsText }}</span>\n </slot>\n </template>\n </multi-select>\n </div>\n <div v-if=\"fieldErrors.errorText.value || props.helpText || $slots.footer\" class=\"mc-field-select__footer\">\n <mc-title\n v-if=\"fieldErrors.errorText.value\"\n tag-name=\"div\"\n color=\"red\"\n :variation=\"TitleVariations.Overline\"\n max-width=\"100%\"\n >\n {{ fieldErrors.errorText.value }}\n </mc-title>\n <br v-if=\"fieldErrors.errorText.value\" />\n <!-- @slot Слот доп. текста под инпутом -->\n <slot name=\"footer\">\n <mc-title\n v-if=\"props.helpText\"\n tag-name=\"div\"\n :variation=\"TitleVariations.Overline\"\n color=\"gray\"\n max-width=\"100%\"\n >\n {{ props.helpText }}\n </mc-title>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use 'vue-multiselect/dist/vue-multiselect.css' as *;\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/durations' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/box-shadows' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/border-radius' as *;\n.mc-field-select {\n $block-name: &;\n --mc-field-select-color: initial;\n --mc-field-select-label-color: #{$color-black};\n --mc-field-select-border-color: initial;\n --mc-field-select-max-height: initial;\n --mc-field-select-placeholder-color: #{$color-gray};\n font-family: $font-family-main;\n @include custom-scroll($space-100);\n &__header {\n @include reset-text-indents();\n display: block;\n margin-bottom: $space-100;\n\n &:empty {\n display: none;\n }\n }\n &__footer {\n margin-top: $space-50;\n line-height: $line-height-150;\n &:empty {\n display: none;\n }\n }\n &__single-label {\n @include reset-text-indents();\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n @include child-indent-right($space-50);\n }\n &__prepend {\n position: absolute;\n }\n &__label-text {\n @include ellipsis();\n font-size: $font-size-200;\n line-height: $line-height-200;\n padding-inline-start: $space-50;\n color: var(--mc-field-select-label-color);\n &--indent-left {\n margin-inline-start: $space-300;\n }\n }\n .multiselect {\n &__placeholder {\n @include ellipsis();\n color: var(--mc-field-select-placeholder-color);\n font-size: $font-size-200;\n line-height: $line-height-200;\n margin-bottom: $space-150 - 1px;\n padding-top: $space-150 - 1px;\n padding-inline-start: $space-50;\n width: 100%;\n }\n &__single {\n font-size: $font-size-200;\n line-height: $line-height-200;\n padding-inline-start: $space-50;\n margin-bottom: $space-150 - 1px;\n margin-top: $space-150 - 1px;\n background-color: transparent;\n min-height: auto;\n @include input-placeholder() {\n color: $color-gray;\n }\n }\n &__input {\n padding-inline-start: $space-50;\n margin-bottom: $space-150 - 2px;\n padding-top: $space-150 - 1px;\n font-size: $font-size-200;\n line-height: $line-height-200;\n min-height: auto;\n background-color: $color-transparent;\n @include input-placeholder() {\n color: $color-gray;\n }\n }\n &__select {\n overflow: hidden;\n height: $space-350;\n width: $space-300;\n inset-inline-end: $space-100;\n top: 6px;\n padding: 0;\n z-index: 1;\n &::before {\n direction: ltr;\n width: 0;\n height: 0;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-top: 5px solid var(--mc-field-select-label-color);\n }\n }\n &__tags {\n @include reset-text-indents();\n position: relative;\n border: 1px solid $color-outline-gray;\n border-radius: $radius-100 !important;\n padding: 0;\n padding-inline: $space-100 $space-500;\n overflow: hidden;\n text-align: start;\n &:hover {\n border-color: $color-purple;\n }\n &:before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n @include size(100%);\n background-color: var(--mc-field-select-color);\n opacity: 0.6;\n }\n }\n &__tags-wrap {\n position: relative;\n padding-top: 4px;\n padding-bottom: 3px;\n top: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: -1px;\n min-height: $size-500 - 2px;\n @include child-indent-right($space-100);\n }\n &__tag {\n display: inline-flex;\n align-items: center;\n height: $size-300;\n font-family: $font-family-main;\n margin-top: $space-50;\n margin-bottom: $space-50;\n margin-right: unset;\n background-color: $color-lighter-purple;\n color: $color-black;\n padding: $size-50 $size-50 $size-50 $size-100;\n border-radius: 100px;\n font-size: $font-size-200;\n line-height: $line-height-200;\n span {\n @include ellipsis();\n flex: 1 1 auto;\n //overflow: visible;\n }\n }\n &__tag-icon {\n @include size($size-200);\n position: relative;\n background-color: $color-purple;\n border-radius: $radius-circle;\n flex: 0 0 auto;\n margin-inline-start: $space-100;\n &:hover {\n background-color: $color-red;\n }\n &::after {\n @include align(true, true, absolute);\n top: 45%;\n color: $color-white;\n }\n }\n &__content {\n padding: $size-100;\n max-width: 100%;\n font-size: $font-size-200;\n line-height: $line-height-200;\n }\n &__content-wrapper {\n top: calc(100% + #{$size-100});\n border: none;\n border-radius: $radius-150;\n box-shadow: $shadow-s;\n transition: opacity $duration-s ease;\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 300px;\n }\n &--above {\n .multiselect__content-wrapper {\n bottom: calc(100% + #{$size-100});\n top: auto;\n }\n }\n &__option {\n min-height: $size-500;\n display: flex;\n align-items: center;\n border-radius: $radius-100;\n padding: $space-150;\n span {\n @include ellipsis();\n }\n &--highlight {\n background-color: $color-hover-gray;\n color: $color-black;\n }\n &--selected {\n background-color: $color-lighter-purple !important;\n color: $color-black !important;\n font-weight: $font-weight-medium;\n }\n &--group.multiselect__option--disabled {\n background-color: $color-white !important;\n }\n }\n\n &--active {\n .multiselect {\n &__tags {\n border-color: var(--mc-field-select-border-color);\n &:before {\n background-color: $color-transparent;\n }\n }\n &__select {\n &::before {\n border-color: $color-purple $color-transparent $color-transparent;\n }\n }\n }\n }\n &__spinner {\n &:after,\n &:before {\n border-top-color: $color-purple;\n @include size($space-300);\n top: calc(50% - 8px);\n left: calc(50% - 3px);\n }\n }\n }\n\n &--error {\n .multiselect {\n &__tags {\n border-color: $color-red !important;\n }\n }\n }\n\n &--is-empty-options-list {\n .multiselect {\n &__content-wrapper {\n display: none !important;\n }\n }\n }\n\n &--disabled {\n cursor: not-allowed;\n .multiselect--disabled {\n opacity: 1;\n background: transparent;\n .multiselect {\n &__placeholder {\n color: $color-gray;\n }\n &__single {\n & #{$block-name}__label-text {\n color: $color-gray;\n }\n }\n &__select {\n background-color: transparent;\n &::before {\n border-color: $color-outline-gray transparent transparent;\n }\n }\n }\n }\n }\n\n &--with-preview {\n .mc-preview {\n align-items: center;\n }\n .multiselect {\n &__select {\n display: none;\n }\n &__tags {\n padding: 0;\n padding-inline: $space-100;\n cursor: pointer;\n border-color: $color-outline-light;\n }\n }\n }\n\n &--max-height {\n .multiselect {\n &__tags {\n max-height: var(--mc-field-select-max-height);\n overflow-y: auto;\n position: initial;\n }\n &__spinner {\n background: transparent;\n right: calc(#{$space-50} / 2);\n top: calc(#{$space-50} / 2);\n }\n }\n }\n\n &__options-tooltip-target {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &--rtl {\n direction: rtl;\n }\n}\n</style>\n","var props = {\n // common\n mask: undefined,\n prepare: Function,\n prepareChar: Function,\n validate: Function,\n commit: Function,\n overwrite: {\n type: Boolean,\n required: false,\n default: undefined\n },\n eager: {\n required: false,\n default: undefined,\n validator: value => ['append', 'remove'].includes(value) || typeof value === 'boolean'\n },\n skipInvalid: {\n type: Boolean,\n required: false,\n default: undefined\n },\n // pattern\n placeholderChar: String,\n displayChar: String,\n lazy: {\n type: Boolean,\n required: false,\n default: undefined\n },\n definitions: Object,\n blocks: Object,\n // enum\n enum: Array,\n // range\n maxLength: Number,\n from: Number,\n to: Number,\n // date\n pattern: String,\n format: Function,\n parse: Function,\n autofix: {\n required: false,\n default: undefined,\n validator: value => value === 'pad' || typeof value === 'boolean'\n },\n // number\n radix: String,\n thousandsSeparator: String,\n mapToRadix: Array,\n scale: Number,\n normalizeZeros: {\n type: Boolean,\n required: false,\n default: undefined\n },\n padFractionalZeros: {\n type: Boolean,\n required: false,\n default: undefined\n },\n min: [Number, Date],\n max: [Number, Date],\n // dynamic\n dispatch: Function\n};\n\nexport { props as default };\n","import { isRef, ref, watch, onMounted, onUnmounted, readonly } from 'vue-demi';\nimport IMask from 'imask/esm/imask';\n\nfunction useIMask(props, _temp) {\n let {\n emit,\n onAccept,\n onComplete,\n defaultValue,\n defaultUnmaskedValue,\n defaultTypedValue\n } = _temp === void 0 ? {} : _temp;\n const _props = isRef(props) ? props : ref(props);\n const el = ref();\n const mask = ref();\n const masked = ref('');\n const unmasked = ref('');\n const typed = ref();\n let $el;\n let $lastAcceptedValue = masked.value;\n let $lastAcceptedUnmaskedValue = unmasked.value;\n let $lastAcceptedTypedValue = typed.value;\n function storeLastAcceptedValues() {\n $lastAcceptedTypedValue = typed.value = mask.value.typedValue;\n $lastAcceptedUnmaskedValue = unmasked.value = mask.value.unmaskedValue;\n $lastAcceptedValue = masked.value = mask.value.value;\n }\n function _onAccept(event) {\n storeLastAcceptedValues();\n if (emit) {\n emit('accept', masked.value, event);\n emit('accept:masked', masked.value, event);\n emit('accept:typed', typed.value, event);\n emit('accept:unmasked', unmasked.value, event);\n }\n onAccept == null || onAccept(event);\n }\n function _onComplete(event) {\n if (emit) {\n emit('complete', mask.value.value, event);\n emit('complete:masked', mask.value.value, event);\n emit('complete:typed', mask.value.typedValue, event);\n emit('complete:unmasked', mask.value.unmaskedValue, event);\n }\n onComplete == null || onComplete(event);\n }\n const updateUnmaskedValue = () => {\n if (!mask.value || unmasked.value === undefined) return;\n if ($lastAcceptedUnmaskedValue !== unmasked.value) {\n mask.value.unmaskedValue = unmasked.value;\n if (mask.value.unmaskedValue !== unmasked.value) _onAccept();\n }\n $lastAcceptedUnmaskedValue = undefined;\n };\n watch(unmasked, updateUnmaskedValue);\n const updateMaskedValue = () => {\n if (!mask.value || masked.value === undefined) return;\n if ($lastAcceptedValue !== masked.value) {\n mask.value.value = masked.value;\n if (mask.value.value !== masked.value) _onAccept();\n }\n $lastAcceptedValue = undefined;\n };\n watch(masked, updateMaskedValue);\n const updateTypedValue = () => {\n if (!mask.value || typed.value === undefined) return;\n if ($lastAcceptedTypedValue !== typed.value) {\n mask.value.typedValue = typed.value;\n if (!mask.value.masked.typedValueEquals(typed.value)) _onAccept();\n }\n $lastAcceptedTypedValue = undefined;\n };\n watch(typed, updateTypedValue);\n function _initMask() {\n $el = el.value;\n const $props = _props.value;\n if (!$el || !($props != null && $props.mask)) return;\n mask.value = IMask($el, $props);\n if (defaultValue !== undefined) masked.value = defaultValue;\n if (defaultUnmaskedValue !== undefined) unmasked.value = defaultUnmaskedValue;\n if (defaultTypedValue !== undefined) typed.value = defaultTypedValue;\n updateUnmaskedValue();\n updateMaskedValue();\n updateTypedValue();\n storeLastAcceptedValues();\n mask.value.on('accept', _onAccept).on('complete', _onComplete);\n }\n function _destroyMask() {\n var _mask$value;\n (_mask$value = mask.value) == null || _mask$value.destroy();\n mask.value = undefined;\n }\n onMounted(_initMask);\n onUnmounted(_destroyMask);\n watch([el, _props], () => {\n const $newEl = el.value;\n const $props = _props.value;\n if (!($props != null && $props.mask) || $newEl !== $el) _destroyMask();\n if ($newEl) {\n if (!mask.value) {\n _initMask();\n } else {\n mask.value.updateOptions($props);\n }\n }\n });\n return {\n el,\n mask: readonly(mask),\n masked,\n unmasked,\n typed\n };\n}\n\nexport { useIMask as default };\n","function extractOptionsFromProps(props, exclude) {\n props = {\n ...props\n };\n\n // keep only defined props\n Object.keys(props).forEach(prop => {\n if (props[prop] === undefined || exclude.includes(prop)) delete props[prop];\n });\n return props;\n}\n\nexport { extractOptionsFromProps };\n","import { defineComponent, toRef, watch, h } from 'vue-demi';\nimport props from './props.js';\nimport useIMask from './composable.js';\nimport { extractOptionsFromProps } from './utils.js';\nimport 'imask/esm/imask';\n\n// order does matter = priority\nconst VALUE_PROPS = ['typed', 'unmasked', 'value', 'modelValue'];\nvar Component3 = defineComponent({\n name: 'imask-input',\n inheritAttrs: false,\n props: {\n // plugin\n modelValue: String,\n value: String,\n unmasked: String,\n typed: {\n validator: () => true\n },\n ...props\n },\n emits: ['update:modelValue', 'update:masked', 'update:value', 'update:unmasked', 'update:typed', 'accept', 'accept:value', 'accept:masked', 'accept:unmasked', 'accept:typed', 'complete', 'complete:value', 'complete:masked', 'complete:unmasked', 'complete:typed'],\n setup(props, _ref) {\n let {\n attrs,\n emit\n } = _ref;\n const {\n el,\n mask,\n masked,\n unmasked,\n typed\n } = useIMask(extractOptionsFromProps(props, VALUE_PROPS), {\n emit,\n onAccept: event => {\n // emit more events\n const v = masked.value;\n emit('accept:value', v, event);\n emit('update:value', v, event);\n emit('update:masked', v, event);\n emit('update:modelValue', v, event);\n emit('update:unmasked', unmasked.value, event);\n emit('update:typed', typed.value, event);\n },\n onComplete: event => {\n emit('complete:value', masked.value, event);\n }\n });\n const pvalue = toRef(props, 'value');\n const pmodelValue = toRef(props, 'modelValue');\n const punmasked = toRef(props, 'unmasked');\n const ptyped = toRef(props, 'typed');\n masked.value = pmodelValue.value || pvalue.value || '';\n unmasked.value = punmasked.value || '';\n typed.value = ptyped.value;\n watch(pvalue, v => masked.value = v);\n watch(pmodelValue, v => masked.value = v);\n watch(punmasked, v => unmasked.value = v);\n watch(ptyped, v => typed.value = v);\n return () => {\n // TODO type?\n const data = {\n ...attrs,\n value: props.value != null ? props.value : props.modelValue != null ? props.modelValue : mask.value ? mask.value.displayValue : '',\n ref: el\n };\n if (!props.mask) {\n data.onInput = event => {\n emit('update:modelValue', event.target.value);\n emit('update:value', event.target.value);\n };\n }\n return h('input', data);\n };\n }\n});\n\nexport { Component3 as default };\n","import { Vue2 } from 'vue-demi';\nimport IMask from 'imask/esm/imask';\nimport props from './props.js';\nimport { extractOptionsFromProps } from './utils.js';\n\nvar Component2 = Vue2 == null ? void 0 : Vue2.extend({\n name: 'imask-input',\n data() {\n return {};\n },\n render(createElement) {\n const data = {\n domProps: {\n value: this.maskRef ? this.maskRef.value : this.value\n },\n on: {\n ...this.$listeners\n }\n };\n\n // if there is no mask use default input event\n if (!this.$props.mask) {\n data.on.input = event => this.$emit('input', event.target.value);\n } else {\n delete data.on.input;\n }\n return createElement('input', data);\n },\n mounted() {\n if (!this.$props.mask) return;\n this._initMask();\n },\n destroyed() {\n this._destroyMask();\n },\n computed: {\n maskOptions() {\n return extractOptionsFromProps(this.$props, ['value', 'unmask']);\n }\n },\n watch: {\n '$props': {\n handler(props) {\n const maskOptions = this.maskOptions;\n if (maskOptions.mask) {\n if (this.maskRef) {\n this.maskRef.updateOptions(maskOptions);\n if ('value' in props) this._updateValue();\n } else {\n this._initMask(maskOptions);\n if (props.value !== this._maskValue()) this._onAccept();\n }\n } else {\n this._destroyMask();\n if ('value' in props) this.$el.value = props.value;\n }\n },\n deep: true\n }\n },\n methods: {\n _maskValue() {\n var _this$maskRef, _this$maskRef2, _this$maskRef3;\n if (this.unmask === 'typed') return (_this$maskRef = this.maskRef) == null ? void 0 : _this$maskRef.typedValue;\n if (this.unmask) return (_this$maskRef2 = this.maskRef) == null ? void 0 : _this$maskRef2.unmaskedValue;\n return (_this$maskRef3 = this.maskRef) == null ? void 0 : _this$maskRef3.value;\n },\n _updateValue() {\n if (!this.maskRef) return;\n const value = this.value == null && this.unmask !== 'typed' ? '' : this.value;\n if (this.unmask === 'typed') this.maskRef.typedValue = value;else if (this.unmask) this.maskRef.unmaskedValue = value;else this.maskRef.value = value;\n },\n _onAccept() {\n const val = this._maskValue();\n this.$emit('input', val);\n this.$emit('accept', val);\n },\n _onComplete() {\n this.$emit('complete', this._maskValue());\n },\n _initMask(maskOptions) {\n if (!maskOptions) maskOptions = this.maskOptions;\n this.maskRef = IMask(this.$el, maskOptions).on('accept', this._onAccept.bind(this)).on('complete', this._onComplete.bind(this));\n this._updateValue();\n },\n _destroyMask() {\n if (this.maskRef) {\n this.maskRef.destroy();\n delete this.maskRef;\n }\n }\n },\n props: {\n value: {},\n unmask: {\n validator: value => value === 'typed' || typeof value === 'boolean'\n },\n ...props\n }\n});\n\nexport { Component2 as default };\n","import { isVue3 } from 'vue-demi';\nimport Component3 from './component3-composition.js';\nimport Component2 from './component2.js';\nimport './props.js';\nimport './composable.js';\nimport 'imask/esm/imask';\nimport './utils.js';\n\nvar component = isVue3 ? Component3 : Component2;\n\nexport { component as default };\n","<script setup lang=\"ts\">\nimport { IMaskComponent, IMask } from 'vue-imask'\nimport { McTitle, McButton, McSvgIcon, McTooltip } from '@/components'\nimport { Spaces } from '@/types/styles/Spaces'\nimport { computed, onMounted, type PropType, ref, useAttrs, useSlots } from 'vue'\nimport type { DirectionsUnion } from '@/types/IDirections'\nimport { Directions } from '@/enums/ui/Directions'\nimport type { InputTypesUnion, InputValue } from '@/types/IInput'\nimport { useFieldErrors } from '@/composables'\nimport { InputTypes, Autocomplete } from '@/enums/Input'\nimport type { IconsListUnion } from '@/types/styles/Icons'\nimport { type ColorTypes } from '@/types/styles/Colors'\nimport { useTextareaAutosize } from '@vueuse/core'\nimport { ButtonSize, ButtonType, HorizontalAlignment, TitleVariations, Weights } from '@/enums'\n\nconst { textarea } = useTextareaAutosize()\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void\n (e: 'keydown', value: KeyboardEvent): void\n (e: 'copy', value: string): void\n}>()\nconst slots = useSlots()\nconst attrs = useAttrs()\nconst props = defineProps({\n /**\n * Значение\n *\n */\n modelValue: {\n type: [String, Number] as PropType<InputValue>,\n default: null\n },\n /**\n * Тип:\n * `textarea, textarea-autosize и\n * нативные как text, password, email и т.д.`\n *\n * кастомный num - разрешает ввод только цифр и дробных чисел, без ислчений ввиде буквы 'E'\n * кастомный int - разрешает ввод только целочисленных значений\n * кастомный amount_format - форматирует ввод числовых данных разделяя на разряды(1 000 000)\n * date - добавляет placeholder, маску и ограничения ввода\n * uppercase\\lowercase - форматирует текст согласну значению (верхний\\нижний регистр)\n * phone_number - добавляет '+' к номеру телефона при фокусе без возможности удалить его\n */\n type: {\n type: String as () => InputTypesUnion,\n default: InputTypes.Text\n },\n\n /**\n * Заголовок поля:\n *\n */\n title: {\n type: String as PropType<string>,\n default: null\n },\n\n /**\n * Маска поля:\n *\n * tokens - https://imask.js.org/guide.html\n *\n */\n mask: {\n type: String as PropType<string>,\n default: null\n },\n\n /**\n * Вспомогательный текст под инпутом:\n *\n */\n helpText: {\n type: String as PropType<string>,\n default: null\n },\n\n /**\n * Отключенное состояние\n *\n */\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n\n /**\n * Ошибки\n *\n */\n errors: {\n type: Array as PropType<string[]>,\n default: null\n },\n\n /**\n * Placeholder\n *\n */\n placeholder: {\n type: String as PropType<string>,\n default: null\n },\n\n /**\n * Name\n *\n */\n name: {\n type: String as PropType<string>,\n required: true\n },\n /**\n * плейсхолдеры для короткого обозначения даты (для маски dd.mm.yyyy)\n * {\n * date: 'd',\n * month: 'm',\n * year: 'y',\n * }\n *\n */\n dateMaskPlaceholder: {\n type: Object,\n default: () => ({})\n },\n /**\n * Максимальная длина строки в инпуте\n *\n */\n maxLength: {\n type: Number as PropType<number>,\n default: null\n },\n\n /**\n * Состояние копирования\n *\n */\n copy: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n\n /**\n * Автокомплит введённого ранее текста: on, off\n *\n */\n autocomplete: {\n type: String as () => Autocomplete,\n default: Autocomplete.On\n },\n\n /**\n * только чтение текста\n *\n */\n readOnly: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n\n /**\n * Атрибут tabindex для главного элемента\n *\n */\n tabindex: {\n type: [String, Number]\n },\n\n /**\n * Tooltip для кнопка \"показать пароль\"\n *\n */\n passwordTooltip: {\n type: String as PropType<string>,\n default: 'Show/Hide'\n },\n\n /**\n * Tooltip для кнопка \"Скрыть пароль\", если не указывать, то будет аналогичен \"показать\"\n *\n */\n passwordHideTooltip: {\n type: String as PropType<string>,\n default: null\n },\n\n /**\n * Очищаем данные от маски на выходе\n */\n clearOutput: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n\n /**\n * Кастомные настройки для маски\n * См. https://imask.js.org/guide.html\n *\n * Например:\n * {\n * autofix: true,\n * blocks: {\n * d: {mask: IMask.MaskedRange, placeholderChar: 'd', from: 1, to: 31, maxLength: 2},\n * m: {mask: IMask.MaskedRange, placeholderChar: 'm', from: 1, to: 12, maxLength: 2},\n * Y: {mask: IMask.MaskedRange, placeholderChar: 'y', from: 1900, to: 2999, maxLength: 4}\n * }\n * }\n */\n maskOptions: {\n type: Object,\n default: null\n },\n required: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Для какого языка поле ввода\n */\n locale: {\n type: String as PropType<string>,\n default: null\n },\n /**\n * Мобильное ли разрешение\n * (Используется для триггера тултипа в кнопке с паролем)\n */\n isMobile: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Свойство на ограничение количества символов после точки для числовых типов (num || amount_format)\n */\n maxDecimals: {\n type: Number as PropType<number>,\n default: 2\n },\n dir: {\n type: String as () => DirectionsUnion,\n default: Directions.Ltr\n }\n})\n\nconst prependWidth = ref<number>(0)\nconst appendWidth = ref<number>(0)\nconst prettyType = ref<string>(props.type)\nconst fieldErrors = useFieldErrors(props.errors)\n\nconst isRtl = computed((): boolean => {\n return props.dir === Directions.Rtl\n})\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-field-text': true,\n 'mc-field-text--error': !!fieldErrors.errorText.value,\n 'mc-field-text--textarea': isTextarea.value,\n 'mc-field-text--textarea-autosize': isTextareaAutosize.value,\n 'mc-field-text--disabled': props.disabled,\n 'mc-field-text--copy': props.copy,\n 'mc-field-text--rtl': isRtl.value\n }\n})\nconst computedTitle = computed((): string => {\n return `${props.title}${props.required ? ' *' : ''}`\n})\nconst isDate = computed((): boolean => {\n return prettyType.value === InputTypes.Date\n})\nconst isMaskVisible = computed((): boolean => {\n return !!props.mask || !!props.maskOptions || isDate.value\n})\nconst isTextarea = computed((): boolean => {\n return props.type === InputTypes.Textarea\n})\nconst isTextareaAutosize = computed((): boolean => {\n return props.type === InputTypes.TextareaAutosize\n})\nconst isPassword = computed((): boolean => {\n return props.type === InputTypes.Password\n})\nconst isAmountFormat = computed((): boolean => {\n return props.type === InputTypes.AmountFormat\n})\nconst hasCharCounter = computed((): boolean => {\n return !!props.maxLength && (isTextarea.value || isTextareaAutosize.value)\n})\nconst isPasswordType = computed((): boolean => {\n return prettyType.value === InputTypes.Password\n})\nconst passwordIcon = computed((): IconsListUnion => {\n return isPasswordType.value ? 'visibility' : 'visibility_off'\n})\nconst charCounter = computed((): string | number => {\n return props.modelValue ? String(props.modelValue).length : 0\n})\nconst charCounterTitle = computed((): string => {\n return `${charCounter.value}/${props.maxLength}`\n})\nconst charCounterColor = computed((): ColorTypes => {\n return props.maxLength < +charCounter.value ? 'red' : 'dark-gray'\n})\nconst dateMask = computed((): object => {\n return {\n mask: Date,\n autofix: true,\n blocks: {\n d: {\n mask: IMask.MaskedRange,\n placeholderChar: props.dateMaskPlaceholder.date || 'd',\n from: 1,\n to: 31,\n maxLength: 2\n },\n m: {\n mask: IMask.MaskedRange,\n placeholderChar: props.dateMaskPlaceholder.month || 'm',\n from: 1,\n to: 12,\n maxLength: 2\n },\n Y: {\n mask: IMask.MaskedRange,\n placeholderChar: props.dateMaskPlaceholder.year || 'y',\n from: 1900,\n to: 2999,\n maxLength: 4\n }\n }\n }\n})\nconst maskInputAttrs = computed((): object => {\n return {\n ...inputAttrs.value,\n mask: props.mask,\n lazy: false,\n overwrite: false,\n unmask: props.clearOutput,\n definitions: {\n '#': /./\n },\n readonly: props.readOnly,\n maxlength: props.maxLength,\n type: 'tel',\n ...attrs,\n ...(props.maskOptions ?? {}),\n ...(isDate.value ? dateMask.value : {})\n }\n})\n\nconst computedValue = computed({\n get() {\n if (isAmountFormat.value && !isRtl.value) {\n return getAmountFormat(String(props.modelValue))\n } else return props.modelValue\n },\n set(value: string) {\n fieldErrors.toggleErrorVisible()\n emit('update:modelValue', value)\n }\n})\n\nconst handleInput = (e: Event): void => {\n computedValue.value = getPreparedInputValue(e) as string\n}\nconst inputAttrs = computed((): object => {\n return {\n style: inputStyles.value,\n placeholder: props.placeholder,\n disabled: props.disabled,\n name: props.name,\n id: props.name,\n autocomplete: props.autocomplete,\n tabindex: props.tabindex,\n ...attrs,\n class: ['mc-field-text__input', attrs.class || ''].join(' ')\n }\n})\nconst inputStyles = computed((): object => {\n const space = parseInt(Spaces['150'])\n let bottomStyle = {}\n if (isTextarea.value || isTextareaAutosize.value) {\n const spaceBottomToken = hasCharCounter.value ? '400' : '150'\n const spaceBottomValue = Spaces[spaceBottomToken]\n bottomStyle = { paddingBottom: `${+spaceBottomValue.replace('px', '') - 1}px` }\n }\n return {\n paddingInlineStart: prependWidth.value && `${prependWidth.value + space}px`,\n paddingInlineEnd: appendWidth.value && `${appendWidth.value + space}px`,\n ...(!isTextarea.value && !isTextareaAutosize.value ? { boxSizing: 'border-box' } : {}),\n ...bottomStyle\n }\n})\n\nonMounted(() => {\n calculatePadding()\n})\n\nconst setDecimalsLimit = (val: string): string => {\n if (val && props.maxDecimals) {\n const [integerPart, decimalPart] = val.split('.')\n if (decimalPart?.length > props.maxDecimals) {\n return `${integerPart}.${decimalPart.slice(0, props.maxDecimals)}`\n }\n }\n return val\n}\n/**\n * Remove leading zero from input if length > 1 && number isn't decimal\n * */\nconst removeLeadingZero = (val: string): string => {\n let result = val\n const [first_char] = val || []\n if (val.length > 1 && +first_char === 0 && val.indexOf('.') === -1) result = val.slice(1)\n return result\n}\nconst getPreparedInputValue = (e: Event): InputValue => {\n const target = e.target as HTMLInputElement\n let value: InputValue = isDate.value && target && target.value ? target.value?.substring(0, 10) : target.value\n let cursor_position: number = getCaretPos(target)?.start\n let prepared_value = formattedToNumber(value)\n\n switch (props.type) {\n case InputTypes.Num: {\n //eslint-disable-next-line\n let [num] = /-?\\d*[\\.]?\\d*/.exec(String(value)) || []\n num = setDecimalsLimit(num as string)\n num = removeLeadingZero(num)\n value = num\n target.value = num\n break\n }\n case InputTypes.Int: {\n let [int] = /-?\\d*/.exec(String(target.value)) || []\n int = removeLeadingZero(int as string)\n value = int\n target.value = int\n break\n }\n case InputTypes.AmountFormat: {\n value = setDecimalsLimit(value)\n value = removeLeadingZero(value)\n prepared_value = formattedToNumber(value)\n\n const float_value = parseFloat(prepared_value)\n const without_spaces_value = prepared_value.replace(/ /gm, '')\n\n value = prepared_value\n ? String(float_value) === without_spaces_value\n ? float_value\n : without_spaces_value || float_value || prepared_value\n : null\n const formatted_value = getAmountFormat(prepared_value)\n target.value = isRtl.value ? formatted_value.replace(/ /gm, '') : formatted_value\n const space_length = target.value?.slice(0, cursor_position).replace(/[^ ]/gm, '')?.length || 0\n setCaretPos(target, cursor_position + space_length, cursor_position + space_length)\n break\n }\n case InputTypes.Uppercase: {\n value = value?.toUpperCase()\n target.value = value\n setCaretPos(target, cursor_position, cursor_position)\n break\n }\n case InputTypes.Lowercase: {\n value = value?.toLowerCase()\n target.value = value\n setCaretPos(target, cursor_position, cursor_position)\n break\n }\n case InputTypes.Password:\n value = value?.replace(/ /gm, '')\n target.value = value\n setCaretPos(target, cursor_position, cursor_position)\n break\n case InputTypes.PhoneNumber:\n if (value.length === 0) value = '+'\n if (value.charAt(0) !== '+') value = '+' + value\n value = value.replace(/(?!^)\\D/g, '')\n target.value = value\n break\n }\n\n return value\n}\n\nconst prepareHandleKeyDown = (e: KeyboardEvent): void => {\n switch (props.type) {\n case InputTypes.AmountFormat:\n case InputTypes.Num: {\n if (e.key === '.' && typeof props.modelValue === 'string' && props.modelValue?.includes('.')) {\n e.preventDefault()\n }\n break\n }\n }\n emit('keydown', e)\n}\n\nconst formattedToNumber = (value: string): string => {\n if (!value) return value as string\n //eslint-disable-next-line\n const [first] = /-?\\d*[\\.]?\\d*/.exec(String(value)?.replace(/ /gm, '')?.trim()) || []\n\n return first as string\n}\n\nconst setCaretPos = (ctrl: HTMLInputElement, start: number, end: number): void => {\n if (ctrl.setSelectionRange) {\n ctrl.focus()\n ctrl.setSelectionRange(start, end)\n }\n}\n\nconst getCaretPos = (ctrl: HTMLInputElement) => {\n if (ctrl.selectionStart || ctrl.selectionStart === 0) {\n return { start: ctrl.selectionStart, end: ctrl.selectionEnd }\n } else {\n return { start: 0, end: 0 }\n }\n}\n\nconst getAmountFormat = (value: string): string => {\n const formatted_number = formattedToNumber(value)\n const has_fraction = !!String(formatted_number)?.match(/\\./)\n\n const [int, fraction] = String(formatted_number)\n //eslint-disable-next-line\n .replace(/[^\\d\\.-]/g, '')\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, ' ')\n .split('.')\n\n const formatted_values = [int, fraction?.replace(/ /gm, '') || '']\n if (has_fraction) {\n return formatted_values.join('.')\n }\n return formatted_values.filter((v) => !!v).join('.')\n}\n\nconst calculatePadding = (): void => {\n prependWidth.value = +calculateSlotPadding('prepend')\n appendWidth.value = +calculateSlotPadding('append')\n}\n\nconst calculateSlotPadding = (name: string): string => {\n const tokenSpace = parseInt(Spaces['50'])\n\n let result = slots[name]\n ? //@ts-ignore\n (slots[name] || []).reduce((acc) => {\n return acc + tokenSpace\n }, 0) + tokenSpace\n : tokenSpace\n\n if (name === 'prepend') return result\n\n /**\n * Также увеличиваем padding при наличии кнопки копирования и если тип password\n */\n\n const iconSpace = parseInt(Spaces['300'])\n\n result = result ? result + tokenSpace : tokenSpace\n props.copy && (result += iconSpace)\n isPassword.value && (result += iconSpace)\n return result\n}\n\nconst handlerCopy = (): void => {\n /**\n * Событие по кнопке копирования\n */\n emit('copy', props.modelValue as string)\n}\n\nconst togglePasswordVisibility = (): void => {\n prettyType.value = isPasswordType.value ? InputTypes.Text : InputTypes.Password\n}\n</script>\n\n<template>\n <div ref=\"field\" :dir=\"props.dir\" :class=\"classes\">\n <label :for=\"name\" class=\"mc-field-text__header\">\n <!-- @slot Слот заголовка -->\n <slot name=\"header\">\n <mc-title v-if=\"title\" max-width=\"100%\" :weight=\"Weights.Medium\">\n {{ computedTitle }}\n </mc-title>\n </slot>\n </label>\n <div class=\"mc-field-text__inner\">\n <div class=\"mc-field-text__main\">\n <div v-if=\"$slots.prepend\" class=\"mc-field-text__prepend\">\n <!-- @slot Слот в начале инпута -->\n <slot name=\"prepend\" />\n </div>\n <label class=\"mc-field-text__input-wrapper\">\n <textarea\n v-if=\"isTextarea\"\n :value=\"computedValue\"\n v-bind=\"inputAttrs\"\n :maxlength=\"maxLength\"\n rows=\"1\"\n @input=\"handleInput\"\n />\n <textarea\n v-else-if=\"isTextareaAutosize\"\n :value=\"computedValue\"\n ref=\"textarea\"\n v-bind=\"inputAttrs\"\n @input=\"handleInput\"\n />\n <template v-else>\n <!-- When possible, prefer to use input type=\"tel\" to avoid glitch on android devices -->\n <i-mask-component\n v-if=\"isMaskVisible\"\n :value=\"computedValue\"\n v-bind=\"maskInputAttrs\"\n @input=\"handleInput\"\n />\n <input\n v-else\n :value=\"computedValue\"\n ref=\"input\"\n v-bind=\"inputAttrs\"\n :type=\"prettyType\"\n :readonly=\"props.readOnly\"\n :maxlength=\"maxLength\"\n @keydown=\"prepareHandleKeyDown\"\n @input=\"handleInput\"\n />\n </template>\n </label>\n <div\n v-if=\"$slots.append || copy || isPassword\"\n class=\"mc-field-text__append\"\n :class=\"{ 'mc-field-text__append--indent-bottom': hasCharCounter }\"\n >\n <!-- @slot Слот в конце инпута -->\n <slot name=\"append\" />\n <mc-button v-if=\"copy\" variation=\"black-link\" :size=\"ButtonSize.MCompact\" @click.prevent=\"handlerCopy\">\n <template #icon-append>\n <mc-svg-icon name=\"copy\" />\n </template>\n </mc-button>\n <mc-tooltip\n v-if=\"isPassword\"\n :content=\"isPasswordType ? props.passwordTooltip : props.passwordHideTooltip || props.passwordTooltip\"\n >\n <mc-button\n variation=\"black-link\"\n :size=\"ButtonSize.MCompact\"\n tabindex=\"-1\"\n :type=\"ButtonType.Button\"\n @click.prevent=\"togglePasswordVisibility\"\n >\n <template #icon-append>\n <mc-svg-icon :name=\"passwordIcon\" />\n </template>\n </mc-button>\n </mc-tooltip>\n </div>\n <mc-title\n v-if=\"hasCharCounter\"\n class=\"mc-field-text__char-counter\"\n :variation=\"TitleVariations.Overline\"\n :text-align=\"HorizontalAlignment.Right\"\n :color=\"charCounterColor\"\n >\n {{ charCounterTitle }}\n </mc-title>\n </div>\n <div v-if=\"$slots.right\" class=\"mc-field-text__right\">\n <!-- @slot Слот справа инпута -->\n <slot name=\"right\" />\n </div>\n </div>\n <div v-if=\"fieldErrors.errorText.value || props.helpText || $slots.footer\" class=\"mc-field-text__footer\">\n <mc-title\n v-if=\"fieldErrors.errorText.value\"\n tag-name=\"div\"\n color=\"red\"\n :variation=\"TitleVariations.Overline\"\n class=\"mc-field-text__error-text\"\n :html-data=\"fieldErrors.errorText.value\"\n />\n <br v-if=\"fieldErrors.errorText.value\" />\n <!-- @slot Слот доп. текста под инпутом -->\n <slot name=\"footer\">\n <mc-title\n v-if=\"props.helpText\"\n tag-name=\"div\"\n :variation=\"TitleVariations.Overline\"\n color=\"gray\"\n max-width=\"100%\"\n >\n {{ props.helpText }}\n </mc-title>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/durations' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/border-radius' as *;\n.mc-field-text {\n $block-name: &;\n display: block;\n\n &__header {\n @include reset-text-indents();\n display: block;\n margin-bottom: $space-100;\n\n &:empty {\n display: none;\n }\n }\n\n &__inner {\n display: flex;\n align-items: center;\n }\n\n &__right {\n flex-shrink: 0;\n }\n\n &__main {\n position: relative;\n width: 100%;\n @include custom-scroll($space-50);\n }\n\n &__prepend,\n &__append {\n @include reset-text-indents();\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n\n &:empty {\n display: none;\n }\n\n @include child-indent-right($space-50);\n }\n\n &__prepend {\n inset-inline-start: 0;\n padding: $space-100 0;\n padding-inline: $space-100 $space-50;\n }\n\n &__append {\n inset-inline-end: $space-100;\n &--indent-bottom {\n padding-bottom: $space-400;\n }\n }\n\n &__char-counter {\n width: auto !important;\n position: absolute;\n inset-inline-end: $space-150;\n bottom: $space-150;\n background-color: $color-transparent;\n }\n\n &__input-wrapper {\n display: block;\n }\n\n &__input {\n font-family: $font-family-main;\n display: inline-block;\n vertical-align: middle;\n width: 100%;\n height: $size-500;\n margin: 0;\n border: 1px solid $color-outline-gray;\n border-radius: $radius-100;\n padding: $space-150 - 1px $space-150;\n line-height: $line-height-200;\n font-size: $font-size-200;\n background-color: $color-white;\n -moz-appearance: textfield;\n transition:\n background-color $duration-s ease,\n border-color $duration-s ease;\n color: $color-black;\n\n &:focus,\n &:hover {\n outline: 0;\n border-color: $color-purple;\n }\n\n &::-webkit-search-cancel-button,\n &::-webkit-search-decoration,\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n }\n\n @include input-placeholder() {\n color: $color-gray;\n }\n }\n\n &__footer {\n margin-top: $space-50;\n line-height: $line-height-150;\n\n &:empty {\n display: none;\n }\n }\n\n &--error {\n #{$block-name} {\n &__input {\n border-color: $color-red;\n }\n }\n }\n\n &--textarea {\n #{$block-name} {\n &__append,\n &__prepend {\n align-items: flex-start;\n }\n\n &__input {\n height: auto;\n min-height: 92px;\n resize: vertical;\n }\n }\n }\n\n &--textarea-autosize {\n #{$block-name} {\n &__input {\n height: auto;\n resize: vertical;\n }\n }\n }\n\n &--disabled {\n #{$block-name} {\n &__input {\n color: $color-gray;\n cursor: not-allowed;\n background-color: $color-hover-gray;\n border-color: $color-outline-gray;\n }\n }\n }\n\n &--copy {\n #{$block-name} {\n &__input {\n color: $color-dark-gray;\n background-color: $color-hover-gray;\n border-color: $color-outline-gray;\n }\n }\n }\n\n &--rtl {\n direction: rtl;\n input {\n direction: rtl;\n }\n }\n\n &__empty-tooltip {\n display: contents;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McTitle } from '@/components'\nimport { useFieldErrors } from '@/composables'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { computed, type PropType } from 'vue'\nimport type { HorizontalAlignmentUnion } from '@/types/styles/Alignment'\nimport type { HorizontalAlignment } from '@/enums/ui/Alignment'\nimport { TitleVariations } from '@/enums'\n\nconst emit = defineEmits(['update:modelValue'])\nconst props = defineProps({\n /**\n * Значение\n *\n */\n modelValue: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: null\n },\n /**\n * Выбранное значение\n */\n checkedValue: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: true\n },\n /**\n * Невыбранное значение\n */\n uncheckedValue: {\n type: [Boolean, String, Number] as PropType<boolean | string | number>,\n default: false\n },\n /**\n * Изменение цвета текста\n * при переключении\n */\n coloredText: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Отключенное состояние\n */\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Позиция текста\n * относительно переключателя\n */\n textPosition: {\n type: String as () => HorizontalAlignmentUnion,\n default: 'left'\n },\n /**\n * Активный цвет\n */\n color: {\n type: String as () => ColorTypes,\n default: 'purple' as ColorTypes\n },\n /**\n * Ошибки\n *\n */\n errors: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n /**\n * Атрибут tabindex для главного элемента\n */\n tabindex: {\n type: [String, Number] as PropType<string | number>\n }\n})\n\nconst fieldErrors = useFieldErrors(props.errors)\n\nconst _value = computed((): boolean => {\n return props.modelValue === props.checkedValue\n})\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-field-toggle': true,\n 'mc-field-toggle--checked': _value.value,\n 'mc-field-toggle--disabled': props.disabled,\n 'mc-field-toggle--colored-text': props.coloredText,\n [`mc-field-toggle--text-position-${props.textPosition as HorizontalAlignment}`]: !!props.textPosition\n }\n})\n\nconst styles = computed((): { [key: string]: string | undefined } => {\n let disabledColor: ColorTypes\n let saturateValue: string = 'initial'\n switch (props.color) {\n case 'purple' as ColorTypes: {\n disabledColor = 'light-purple' as ColorTypes\n break\n }\n default: {\n disabledColor = props.color\n saturateValue = '50%'\n }\n }\n return {\n '--mc-field-toggle-color': props.color && Colors[props.color],\n '--mc-field-toggle-disabled-color': disabledColor && Colors[disabledColor],\n '--mc-field-toggle-saturate-value': saturateValue\n }\n})\nconst inputProps = computed<object>(() => {\n return {\n checked: _value.value,\n disabled: props.disabled,\n tabindex: props.tabindex,\n class: 'mc-field-toggle__field',\n type: 'checkbox'\n }\n})\n\nconst change = (e: Event): void => {\n const target = e.target as HTMLInputElement\n const checked: boolean = target.checked\n fieldErrors.toggleErrorVisible()\n /**\n * Событие тоггла\n */\n emit('update:modelValue', checked ? props.checkedValue : props.uncheckedValue)\n}\n</script>\n\n<template>\n <div class=\"mc-field-toggle__content\">\n <label :class=\"classes\" :style=\"styles\">\n <span class=\"mc-field-toggle__text\">\n <!-- @slot Слот для тайтла тогглера -->\n <slot />\n </span>\n <span class=\"mc-field-toggle__wrapper\">\n <input v-bind=\"inputProps\" @input=\"change\" />\n <span class=\"mc-field-toggle__slider\"></span>\n </span>\n </label>\n <mc-title\n v-if=\"fieldErrors.errorText.value\"\n tag-name=\"div\"\n color=\"red\"\n :variation=\"TitleVariations.Overline\"\n max-width=\"100%\"\n >\n {{ fieldErrors.errorText.value }}\n </mc-title>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/durations' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/border-radius' as *;\n.mc-field-toggle {\n $block-name: &;\n $toggle-indent: calc(#{$space-50} / 2);\n font-family: $font-family-main;\n --mc-field-toggle-color: initial;\n --mc-field-disabled-color: initial;\n --mc-field-toggle-saturate-value: initial;\n display: flex;\n align-items: center;\n cursor: pointer;\n\n &__text {\n color: $color-black;\n transition: color $duration-m;\n line-height: $line-height-200;\n font-size: $font-size-200;\n margin-inline-end: $space-100;\n text-align: right;\n\n &:empty {\n margin-inline-end: 0;\n }\n }\n\n &--colored-text {\n #{$block-name}__text {\n color: $color-gray;\n }\n\n @at-root #{$block-name}--checked#{$block-name}--colored-text {\n #{$block-name}__text {\n color: $color-purple;\n }\n }\n @at-root #{$block-name}--disabled#{$block-name}--colored-text {\n #{$block-name}__text {\n color: $color-outline-gray;\n }\n }\n @at-root #{$block-name}--checked#{$block-name}--disabled#{$block-name}--colored-text {\n #{$block-name}__text {\n color: $color-light-purple;\n }\n }\n }\n\n &--text-position-right {\n #{$block-name}__text {\n order: 2;\n margin-inline: $space-100 0;\n text-align: left;\n }\n }\n &__content {\n @include child-indent-bottom($space-50);\n }\n\n &__wrapper {\n position: relative;\n display: inline-block;\n @include size($size-550, $size-250);\n flex-shrink: 0;\n & > #{$block-name}__field {\n opacity: 0;\n @include size(0);\n\n &:checked + #{$block-name}__slider {\n background-color: $color-purple;\n\n &:before {\n inset-inline-start: calc(#{$space-300} + #{$toggle-indent});\n }\n }\n }\n\n #{$block-name}__slider {\n @include position(absolute, 0 0 0 0);\n background-color: $color-gray;\n transition: $duration-m;\n border-radius: 100px;\n\n &::before {\n @include pseudo();\n @include size($size-200);\n @include position(null, null null $toggle-indent $toggle-indent);\n background-color: $color-white;\n transition: $duration-m;\n border-radius: $radius-circle;\n }\n }\n }\n\n &--disabled {\n cursor: auto;\n #{$block-name}__slider {\n background-color: $color-outline-gray !important;\n &::before {\n background-color: $color-hover-gray;\n }\n }\n }\n #{$block-name}__wrapper > #{$block-name}__field:checked + #{$block-name}__slider {\n background-color: var(--mc-field-toggle-color);\n }\n &#{$block-name}--disabled {\n &#{$block-name}--checked #{$block-name}__slider {\n background-color: var(--mc-field-toggle-disabled-color) !important;\n filter: saturate(var(--mc-field-toggle-saturate-value));\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, watch, ref, onBeforeUnmount } from 'vue'\n\nconst emit = defineEmits(['loading', 'hide'])\nconst props = defineProps({\n /**\n * За какое расстояние(px) инициировать loading event\n * **/\n overlap: {\n type: Number,\n default: 100,\n },\n /**\n * Активен ли триггер\n * */\n active: {\n type: Boolean,\n default: false,\n },\n /**\n * Компонент в котором происходит скролл, указывается для большей точности\n * Дефолтно используется область видимости браузера для отслеживания появления компопнента\n * **/\n root: {\n type: String,\n default: null,\n },\n})\nconst observer = ref<IntersectionObserver | null>()\nconst el = ref<HTMLElement | null>()\nconst id = ref<string>(`indicator_${Date.now()}`)\n\nonMounted(() => {\n setObserver()\n})\n\nonBeforeUnmount(() => {\n clearAllListeners()\n})\n\nconst setObserver = (): void => {\n el.value = document.getElementById(id.value)\n // создаем IntersectionObserver - смотрит за тем когда элемент попадает во viewport\n observer.value = new IntersectionObserver(\n ([entry]) => {\n // если попадает во viewport делаем $emit\n if ((entry.intersectionRatio === 1 || entry.isIntersecting) && props.active) {\n return emit('loading')\n } else {\n return emit('hide')\n }\n },\n {\n ...(props.root ? { root: el.value?.closest(props.root) } : {}),\n rootMargin: `${props.overlap}px`,\n threshold: 0.1,\n },\n )\n // назначаем слушателя на observer\n el.value && observer.value.observe(el.value)\n}\n\nconst clearAllListeners = (): void => {\n observer.value && observer.value.disconnect()\n observer.value = null\n}\n\nwatch(() => props.active, (value): void => {\n clearAllListeners()\n if (value) {\n setObserver()\n }\n})\n</script>\n\n<template>\n <section class=\"el-infinity-loading__wrapper\">\n <div :id=\"id\" class=\"el-infinity-loading\"></div>\n </section>\n</template>\n\n<style lang=\"scss\">\n.el-infinity-loading {\n $block-name: &;\n height: 1px;\n width: 100%;\n z-index: 999999;\n user-select: none;\n pointer-events: none;\n background-color: transparent;\n &__wrapper {\n position: relative;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McTitle, McSvgIcon, McButton } from '@/components'\nimport { computed, type PropType } from 'vue'\nimport { HorizontalAlignment, TitleVariations, Weights } from '@/enums'\nimport type { IconsListUnion } from '@/types'\n\n//@ts-ignore\nimport { default as noTableDataImg } from '@/assets/img/no_table_data.png'\n\nconst emit = defineEmits<{\n (e: 'click'): void\n}>()\n\nconst props = defineProps({\n img: {\n type: String as PropType<string>,\n default: noTableDataImg\n },\n icon: {\n type: String as () => IconsListUnion,\n default: null\n },\n title: {\n type: String as PropType<string>,\n default: ''\n },\n text: {\n type: String as PropType<string>,\n default: ''\n },\n href: {\n type: String as PropType<string>,\n default: ''\n },\n btnName: {\n type: String as PropType<string>,\n default: ''\n },\n noAction: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n loading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Вариант блока\n * small - стандартный, небольшие отступы\n * large - большие отступы (напр. для табов в админке) + немного меняются дефолтные шрифты тайтла\n * */\n variation: {\n type: String as PropType<'small' | 'large'>,\n default: 'small'\n }\n})\n\nconst btnAttrs = computed((): { [key: string]: boolean | string } => {\n return {\n class: 'mt-200',\n loading: props.loading,\n ...(props.href ? { href: props.href } : {})\n }\n})\n\nconst btnListeners = computed((): { [key: string]: Function } => {\n return !props.href\n ? {\n click: () => handleClick()\n }\n : {}\n})\n\nconst titleExtraProps = computed((): { [key: string]: string } => {\n return props.variation === 'large'\n ? {\n variation: TitleVariations.Subtitle,\n weight: Weights.SemiBold\n }\n : {}\n})\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-no-data': true,\n [`mc-no-data--variation-${props.variation}`]: !!props.variation\n }\n})\n\nconst handleClick = (): void => {\n emit('click')\n}\n</script>\n\n<template>\n <div class=\"mc-no-data__wrapper\">\n <section :class=\"classes\">\n <mc-svg-icon v-if=\"props.icon\" :weight=\"0.5\" :name=\"props.icon\" size=\"1000\" color=\"outline-gray\" />\n <img v-if=\"props.img\" :src=\"props.img\" alt=\"no_entity\" />\n <slot v-if=\"title || $slots.title\" name=\"title\">\n <mc-title\n v-if=\"props.title\"\n v-bind=\"titleExtraProps\"\n color=\"gray\"\n :text-align=\"HorizontalAlignment.Center\"\n :html-data=\"props.title\"\n />\n </slot>\n <div v-if=\"text || $slots.text\" class=\"mc-no-data__text\">\n <slot name=\"text\">\n <mc-title\n color=\"gray\"\n :variation=\"TitleVariations.Article\"\n :text-align=\"HorizontalAlignment.Center\"\n :html-data=\"text\"\n />\n </slot>\n </div>\n <div v-if=\"(btnName && !noAction) || $slots.action\" class=\"mc-no-data__actions\">\n <slot name=\"action\">\n <mc-button v-bind=\"btnAttrs\" v-on=\"btnListeners\">\n {{ btnName }}\n </mc-button>\n </slot>\n </div>\n </section>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/media-queries' as *;\n.mc-no-data {\n min-width: 100px;\n max-width: 100%;\n padding: 0 $space-200;\n width: 98%;\n text-align: center;\n @include child-indent-bottom($space-100);\n\n img {\n max-width: $size-1000;\n width: 100%;\n min-width: 0;\n margin-bottom: $space-150 !important;\n user-select: none;\n }\n\n &__text {\n a {\n color: $color-purple;\n text-decoration: none;\n }\n }\n\n &__wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n padding: $space-200;\n width: 100%;\n height: 100%;\n @include align(true, true, absolute);\n\n @media #{$media-query-l} {\n padding: $space-300 $space-300 $space-400;\n }\n .mc-no-data {\n position: static;\n transform: none;\n }\n }\n\n &__actions {\n margin-top: $space-200;\n }\n\n &--variation {\n &-large {\n padding: $space-400;\n @include child-indent-bottom($space-150);\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McTitle, McSvgIcon, McButton, McPreview } from '@/components'\nimport { computed, type PropType } from 'vue'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport type { IconsListUnion } from '@/types/styles/Icons'\nimport { Weights } from '@/enums/ui/Weights'\n\n\nconst emit = defineEmits(['click'])\nconst props = defineProps({\n /**\n * Дизайн:\n * purple, red, orange и т.д.\n */\n variation: {\n type: String as () => ColorTypes,\n default: 'purple' as ColorTypes,\n },\n /**\n * Заголовок блока\n */\n title: {\n type: String as PropType<string>,\n },\n /**\n * Содержимое блока\n */\n content: {\n type: String as PropType<string>,\n default: null,\n },\n /**\n * Отобразить кнопку внтури блока\n */\n buttonVisible: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n /**\n * Текст кнопки\n */\n buttonText: {\n type: String as PropType<string>,\n default: '',\n },\n /**\n * Название иконки\n */\n iconName: {\n type: String as () => IconsListUnion,\n default: 'info' as IconsListUnion,\n },\n /**\n * Отображать иконку\n */\n iconVisible: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n})\n\nconst styles = computed((): { [key: string]: string } => {\n return {\n '--mc-notification-color': Colors[props.variation],\n }\n})\n\nconst handleClick = (e: Event):void => {\n /**\n * Событие клика по кнопке\n */\n emit('click', e)\n}\n</script>\n\n<template>\n <div class=\"mc-notification\" :style=\"styles\">\n <div class=\"mc-notification__inner\">\n <mc-preview>\n <template v-if=\"props.iconVisible && ($slots.left || props.iconName)\" #left>\n <!-- @slot Слот для иконки -->\n <slot name=\"left\">\n <mc-svg-icon :name=\"props.iconName\" size=\"300\" />\n </slot>\n </template>\n\n <template v-if=\"$slots.header || props.title\" #top>\n <!-- @slot Слот заголовка -->\n <slot name=\"header\">\n <mc-title\n v-if=\"props.title\"\n :color=\"props.variation\"\n :weight=\"Weights.SemiBold\"\n class=\"mc-notification__title\"\n >\n {{ props.title }}\n </mc-title>\n </slot>\n </template>\n\n <template v-if=\"props.content || $slots.default\" #bottom>\n <div class=\"mc-notification__text\">\n <!-- @slot Слот для контента -->\n <slot>\n <mc-title :color=\"props.variation\">{{ props.content }}</mc-title>\n </slot>\n </div>\n </template>\n\n <template v-if=\"$slots.right || props.buttonVisible\" #right>\n <!-- @slot Слот для кнопок -->\n <slot name=\"right\">\n <mc-button\n v-if=\"props.buttonVisible\"\n :variation=\"props.variation\"\n class=\"mc-notification__button\"\n @click=\"handleClick\"\n >\n {{ props.buttonText }}\n </mc-button>\n </slot>\n </template>\n </mc-preview>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/media-queries' as *;\n@use '../../../assets/tokens/border-radius' as *;\n.mc-notification {\n $block-name: &;\n --mc-notification-color: #{$color-orange};\n position: relative;\n background-color: $color-white;\n border-radius: $radius-150;\n overflow: hidden;\n &:before {\n content: '';\n @include position(absolute, 0 null null 0);\n display: block;\n height: 100%;\n width: $size-50;\n background-color: var(--mc-notification-color);\n }\n\n &__text {\n font-size: $font-size-200;\n line-height: $line-height-200;\n }\n\n #{$block-name}__text,\n #{$block-name}__title {\n filter: contrast(59%);\n }\n\n &__inner {\n padding: $space-100 $space-150 $space-100 $space-200;\n min-height: $size-700;\n display: flex;\n align-items: center;\n position: relative;\n color: var(--mc-notification-color);\n &:before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: var(--mc-notification-color);\n opacity: 0.1;\n }\n\n .mc-preview {\n width: 100%;\n z-index: 1;\n &__top {\n margin-bottom: $space-50;\n }\n &__left {\n display: flex;\n align-items: center;\n margin-inline-end: $size-150;\n }\n &__right {\n display: flex;\n align-items: center;\n margin-inline-start: auto;\n padding-inline-start: $space-100;\n }\n }\n\n @media #{$media-query-m-down} {\n .mc-preview {\n flex-wrap: wrap;\n\n &__center {\n flex: 1;\n }\n &__right {\n width: 100%;\n padding-top: $space-100;\n padding-inline-start: $size-400 - 2;\n }\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, type PropType } from 'vue'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { useFieldErrors } from '@/composables'\n\nconst props = defineProps({\n /**\n * Процент\n *\n */\n percent: {\n type: Number as PropType<number>,\n default: 0\n },\n /**\n * Число для отображения, если не укказано, используется процент\n *\n */\n amount: {\n type: [String, Number, Boolean] as PropType<string | number | boolean>,\n default: null\n },\n /**\n * Цвет\n *\n */\n color: {\n type: String as () => ColorTypes,\n default: 'dark-gray'\n },\n /**\n * Цвет текста\n *\n */\n helpTextColor: {\n type: String as () => ColorTypes,\n default: 'gray'\n },\n /**\n * Вспомогательный текст\n */\n helpText: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Ошибки\n */\n errors: {\n type: Array as PropType<string[]>,\n default: () => []\n },\n /**\n * Поменять местами подписи\n */\n reverseHeaders: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Использовать моноширинный шрифт для percent и amount\n */\n monospaceNumbers: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n})\n\nconst fieldErrors = useFieldErrors(props.errors)\nconst wrapperClasses = computed(() => ({\n 'mc-progress': true,\n 'mc-progress--error': fieldErrors.errorText.value\n}))\nconst topClasses = computed(() => ({\n 'mc-progress__top': true,\n 'mc-progress__top--reverse-headers': props.reverseHeaders\n}))\nconst percentClasses = computed(() => ({\n 'mc-progress__percent': true,\n 'mc-progress__percent--monospace': props.monospaceNumbers\n}))\nconst lineClasses = computed(() => ({\n 'mc-progress__line': true\n}))\nconst styles = computed((): { [key: string]: string } => {\n return {\n '--mc-progress-color': Colors[props.color]\n }\n})\nconst helpTextStyles = computed(() => {\n return {\n '--mc-progress-help-text-color': Colors[props.helpTextColor]\n }\n})\nconst lineStyles = computed(() => {\n return {\n width: `${fieldErrors.errorText.value ? 2 : Math.sign(props.percent) > 0 ? props.percent : 0}%`\n }\n})\nconst percentValue = computed(() => {\n if (fieldErrors.errorText.value) return 0\n return props.amount ?? `${props.percent}%`\n})\n</script>\n\n<template>\n <div :class=\"wrapperClasses\" :style=\"styles\">\n <div :class=\"topClasses\">\n <div :class=\"percentClasses\">\n {{ percentValue }}\n </div>\n <div v-if=\"props.helpText\" class=\"mc-progress__help-text\" :style=\"helpTextStyles\">\n {{ props.helpText }}\n </div>\n </div>\n <div class=\"mc-progress__wrapper-line\">\n <div :class=\"lineClasses\" :style=\"lineStyles\"></div>\n </div>\n <div v-if=\"fieldErrors.errorText.value\" class=\"mc-progress__errors-container\">\n {{ fieldErrors.errorText.value }}\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/tokens/border-radius' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/sizes' as *;\n.mc-progress {\n $block-name: &;\n --mc-progress-color: #{$color-dark-gray};\n --mc-progress-help-text-color: #{$color-gray};\n position: relative;\n width: 100%;\n font-family: $font-family-main;\n line-height: $line-height-200;\n font-size: $font-size-200;\n &__percent {\n flex-shrink: 0;\n color: var(--mc-progress-color);\n &--monospace {\n font-feature-settings: 'tnum';\n font-variant-numeric: tabular-nums;\n }\n }\n &--error {\n #{$block-name} {\n &__percent {\n color: $color-red;\n }\n &__line {\n background-color: $color-red;\n }\n }\n }\n\n &__top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: $space-100;\n &--reverse-headers {\n flex-direction: row-reverse;\n }\n }\n\n &__help-text {\n color: var(--mc-progress-help-text-color);\n }\n\n &__wrapper-line {\n height: $size-100;\n border-radius: $radius-100;\n background-color: $color-hover-gray;\n width: 100%;\n }\n\n &__line {\n height: 100%;\n border-radius: $radius-100;\n max-width: 100%;\n background-color: var(--mc-progress-color);\n }\n\n &__errors-container {\n margin-top: $space-150;\n color: $color-red;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, type PropType } from 'vue'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { Spaces, type SpaceTypes } from '@/types/styles/Spaces'\nimport type { ColorsUnion } from '@/types/styles/Colors'\nimport type { SpacesUnion } from '@/types/styles/Spaces'\n\nconst props = defineProps({\n /**\n * Толщина `s, m`\n */\n weight: {\n type: String as PropType<'s' | 'm'>,\n default: 's',\n },\n /**\n * Цвет (токены)\n */\n color: {\n type: String as () => ColorTypes,\n default: 'outline-gray',\n },\n /**\n * Отступ слева и справа: 50, 200... ...1000\n */\n indentX: {\n type: String as () => SpaceTypes,\n default: '',\n },\n /**\n * Отступ сверху и снизу: 50, 200... ...1000\n */\n indentY: {\n type: String as () => SpaceTypes,\n default: '',\n },\n /**\n * Отступ сверху: 50, 200... ...1000\n */\n indentTop: {\n type: String as () => SpaceTypes,\n default: '',\n },\n /**\n * Отступ снизу: 50, 200... ...1000\n */\n indentBottom: {\n type: String as () => SpaceTypes,\n default: '',\n },\n /**\n * Отступ слева: 50, 200... ...1000\n */\n indentLeft: {\n type: String as () => SpaceTypes,\n default: '',\n },\n /**\n * Отступ справа: 50, 200... ...1000\n */\n indentRight: {\n type: String as () => SpaceTypes,\n default: '',\n },\n})\n\nconst indents = computed((): { [key: string]: SpaceTypes } => ({\n top: props.indentTop || props.indentY,\n bottom: props.indentBottom || props.indentY,\n left: props.indentLeft || props.indentX,\n right: props.indentRight || props.indentX,\n}))\n\nconst classes = computed((): { [key: string]: boolean } => ({\n 'mc-separator': true,\n}))\n\nconst styles = computed((): { [key: string]: ColorsUnion | SpacesUnion | string } => {\n let style = {} as { [key: string]: ColorsUnion | SpacesUnion | string }\n if (props.color) style['--mc-separator-color'] = Colors[props.color]\n if (indents.value.top) style['--mc-separator-indent-top'] = Spaces[indents.value.top]\n if (indents.value.bottom) style['--mc-separator-indent-bottom'] = Spaces[indents.value.bottom]\n if (indents.value.left) style['--mc-separator-indent-left'] = Spaces[indents.value.left]\n if (indents.value.right) style['--mc-separator-indent-right'] = Spaces[indents.value.right]\n\n let weight: string | undefined\n switch (props.weight) {\n case 's': {\n weight = '1px'\n break\n }\n case 'm': {\n weight = '2px'\n }\n }\n if (weight) style['--mc-separator-weight'] = weight\n\n return style\n})\n</script>\n\n<template>\n <div :class=\"classes\" :style=\"styles\">\n <div class=\"mc-separator__wrapper\">\n <slot />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n.mc-separator {\n $block-name: &;\n --mc-separator-color: initial;\n --mc-separator-indent-top: initial;\n --mc-separator-indent-bottom: initial;\n --mc-separator-indent-left: initial;\n --mc-separator-indent-right: initial;\n --mc-separator-weight: initial;\n width: 100%;\n margin-top: var(--mc-separator-indent-top);\n margin-bottom: var(--mc-separator-indent-bottom);\n margin-inline-start: var(--mc-separator-indent-left);\n margin-inline-end: var(--mc-separator-indent-right);\n height: var(--mc-separator-weight);\n &__wrapper {\n @include size(100%);\n background-color: var(--mc-separator-color);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, type PropType, ref, watch } from 'vue'\n\ninterface animationPayload {\n contentHeight: string | number\n}\n\nconst emit = defineEmits<{\n (e: 'slide-open-start', value: boolean): void\n (e: 'slide-close-start', value: boolean): void\n (e: 'slide-open-end', value: boolean): void\n (e: 'slide-close-end', value: boolean): void\n}>()\n\nconst props = defineProps({\n /*\n * Состояние\n */\n active: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /*\n * Продолжительность тоггла\n */\n duration: {\n type: Number as PropType<number>,\n default: 300\n },\n type: {\n type: String as PropType<string>,\n default: 'ease-out'\n },\n /*\n * Если нужен другой тег\n */\n tag: {\n type: String as PropType<string>,\n default: 'div'\n },\n /*\n * Применять ли атрибут hidden\n * к элементы при закрытии\n */\n useHidden: {\n type: Boolean as PropType<boolean>,\n default: true\n }\n})\n\nconst open = ref<boolean>(props.active)\nconst animation_in_progress = ref<boolean>(false)\nconst animation = ref<Animation | null>(null)\nconst container = ref<HTMLDivElement>()\n\nonMounted((): void => {\n init()\n})\n\nconst init = (): void => {\n if (container.value && !open.value) {\n container.value.style.height = '0'\n }\n}\n\nconst animate = (): void => {\n if (!container.value || animation_in_progress.value) return\n animation_in_progress.value = true\n // Получаем фактическую высоту содержимого\n const contentHeight = container.value.scrollHeight\n\n const payload = {\n contentHeight\n } as animationPayload\n\n // Отменяем предыдущую анимацию, если она была\n if (animation.value) {\n animation.value.cancel()\n }\n open.value ? handleClose(payload) : handleOpen(payload)\n}\n\nconst toggleOpenValue = (): void => {\n open.value = !open.value\n}\n\nconst handleClose = ({ contentHeight }: animationPayload) => {\n emit('slide-close-start', open.value)\n\n if (container.value) {\n animation.value = container.value.animate([{ height: `${contentHeight}px` }, { height: '0' }], {\n duration: props.duration,\n easing: props.type,\n fill: 'forwards'\n })\n animation.value.onfinish = () => {\n emit('slide-close-end', open.value)\n animation_in_progress.value = false\n toggleOpenValue()\n }\n }\n}\n\nconst handleOpen = ({ contentHeight }: animationPayload) => {\n emit('slide-open-start', open.value)\n\n if (container.value) {\n animation.value = container.value.animate([{ height: '0' }, { height: `${contentHeight}px` }], {\n duration: props.duration,\n easing: props.type,\n fill: 'forwards'\n })\n\n animation.value.onfinish = () => {\n emit('slide-open-end', open.value)\n animation_in_progress.value = false\n toggleOpenValue()\n }\n }\n}\n\nwatch(\n () => props.active,\n (): void => {\n animate()\n }\n)\n</script>\n\n<template>\n <component ref=\"container\" :is=\"props.tag\" class=\"mc-slide-up-down\">\n <slot />\n </component>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/tokens/font-families' as *;\n.mc-slide-up-down {\n overflow: hidden;\n font-family: $font-family-main;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted, computed, h, useSlots, createApp, type PropType } from 'vue'\nimport { Spaces } from '@/types'\n\nconst props = defineProps({\n visibleCount: {\n type: Number as PropType<number>,\n default: Infinity\n },\n collapsed: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n})\n\nconst slots = useSlots()\nconst container = ref<HTMLElement | null>(null)\nconst children =\n (slots.default && slots.default()[0].children?.length\n ? slots.default()[0].children\n : //@ts-ignore\n slots.default()) || []\n\n//@ts-ignore\nconst visibleChildren = ref<any[]>(children || [])\nconst hiddenCount = ref<number>(0)\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-stack': true,\n 'mc-stack--collapsed': props.collapsed\n }\n})\n\nonMounted(() => {\n const resizeObserver = new ResizeObserver(updateChildrenVisible)\n if (container.value) resizeObserver.observe(container.value)\n\n updateChildrenVisible()\n\n onUnmounted(() => {\n resizeObserver.disconnect()\n })\n})\n\nconst updateChildrenVisible = (): void => {\n if (!container.value) return\n\n let totalWidth = 0\n const visibleItems = []\n let itemCount = 0\n hiddenCount.value = 0\n\n const tempContainer = document.createElement('div')\n tempContainer.style.position = 'absolute'\n tempContainer.style.visibility = 'hidden'\n tempContainer.style.whiteSpace = 'nowrap'\n document.body.appendChild(tempContainer)\n\n //@ts-ignore\n for (const item of children) {\n const vnode = h(item)\n const itemNode = document.createElement('div')\n tempContainer.appendChild(itemNode)\n\n const app = createApp({ render: () => vnode })\n app.mount(itemNode)\n\n const itemWidth = props.collapsed\n ? itemNode.getBoundingClientRect().width + 6\n : itemNode.getBoundingClientRect().width\n app.unmount()\n itemNode.remove()\n\n const moreContentWidth = +Spaces['300'].replace('px', '')\n const itemIndent = props.collapsed ? -Spaces['200'].replace('px', '') : +Spaces['150'].replace('px', '')\n\n if (\n totalWidth + (itemWidth + itemIndent) <= container.value.clientWidth - moreContentWidth &&\n itemCount < props.visibleCount\n ) {\n totalWidth += itemWidth + itemIndent\n visibleItems.push(item)\n itemCount++\n } else {\n //@ts-ignore\n hiddenCount.value = children.length - visibleItems.length\n break\n }\n }\n document.body.removeChild(tempContainer)\n visibleChildren.value = visibleItems\n}\n</script>\n\n<template>\n <div ref=\"container\" :class=\"classes\">\n <div ref=\"content\" class=\"mc-stack__content\">\n <template v-for=\"(child, i) in visibleChildren\" :key=\"`mc-stack-item-${i}`\">\n <component :is=\"child\" />\n </template>\n <span v-if=\"hiddenCount > 0\" class=\"mc-stack__more-label\">+{{ hiddenCount }}</span>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/styles/mixins' as *;\n.mc-stack {\n $block-name: &;\n overflow: hidden;\n white-space: nowrap;\n &__content {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n @include child-indent-right($space-150);\n }\n &--collapsed {\n #{$block-name}__content {\n @include child-indent-right(-#{$space-200});\n & > *:not(#{$block-name}__more-label) {\n border: 2px solid $color-white;\n }\n }\n #{$block-name}__more-label {\n margin-inline-start: $space-250;\n }\n }\n &__more-label {\n margin-inline-start: $space-50;\n white-space: nowrap;\n font-size: $font-size-200;\n line-height: $line-height-200;\n color: $color-gray;\n font-weight: $font-weight-semi-bold;\n font-family: $font-family-main;\n width: $space-300;\n }\n}\n</style>\n","<script setup lang=\"ts\">\n//@ts-ignore\nimport { default as iconsSpriteIcon } from '@/assets/iconsSprite.svg'\nimport { Sizes, type SizeTypes } from '@/types/styles/Sizes'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { computed, type PropType } from 'vue'\nimport type { DirectionsUnion } from '@/types/IDirections'\nimport { type IconsListUnion } from '@/types/styles/Icons'\nimport { Directions } from '@/enums/ui/Directions'\n\nconst props = defineProps({\n /**\n * Путь к спрайту с иконками\n * */\n spritePath: {\n type: String,\n default: iconsSpriteIcon,\n validator(value: string): boolean {\n return !!value\n }\n },\n /**\n * Имя иконки\n */\n name: {\n type: String as () => IconsListUnion,\n required: true\n },\n /**\n * Цвет иконки\n * (по токенам)\n */\n color: {\n type: String as () => ColorTypes,\n default: ''\n },\n /**\n * Размер\n */\n size: {\n type: String as () => SizeTypes,\n default: '250'\n },\n /**\n * Толщина линий 0-5 если нужно больше, нужно дописать список в стилях\n * stroke-width\n */\n weight: {\n type: Number as PropType<number>,\n default: 1.5\n },\n /**\n * Отображение иконки,\n * если не найдена по имени\n * в 'name'\n */\n defaultName: {\n type: String as PropType<string>,\n default: ''\n },\n dir: {\n type: String as () => DirectionsUnion,\n default: Directions.Ltr\n }\n})\n\nconst classes = computed((): { [key: string]: boolean } => ({\n 'mc-svg-icon': true,\n [`mc-svg-icon--dir-${props.dir}`]: !!props.dir\n}))\n\nconst styles = computed((): { [key: string]: string } => ({\n ['--mc-svg-icon-size']: Sizes[props.size],\n ['--mc-svg-icon-weight']: String(props.weight)?.replace('.', '')?.split('')?.join('.'),\n ['--mc-svg-icon-color']: props.color && Colors[props.color]\n}))\n</script>\n\n<template>\n <svg :class=\"classes\" :style=\"styles\">\n <use :xlink:href=\"`${props.spritePath}#${props.name}`\"></use>\n </svg>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/sizes' as *;\n.mc-svg-icon {\n --mc-svg-icon-size: #{$size-250};\n --mc-svg-icon-weight: 1.5;\n --mc-svg-icon-color: initial;\n @include reset();\n @include reset-text-indents();\n\n @include size(inherit);\n width: var(--mc-svg-icon-size);\n height: var(--mc-svg-icon-size);\n min-width: var(--mc-svg-icon-size);\n min-height: var(--mc-svg-icon-size);\n stroke-width: var(--mc-svg-icon-weight);\n color: var(--mc-svg-icon-color);\n use {\n stroke-width: var(--mc-svg-icon-weight);\n }\n &--dir {\n &-rtl {\n transform: scale(-1, 1);\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { default as DOMPurify } from 'isomorphic-dompurify'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport { type HorizontalAlignmentUnion } from '@/types/styles/Alignment'\nimport { LineHeights, type LineHeightTypes } from '@/types/styles/LineHeights'\nimport { type WeightsUnion } from '@/types/styles/Weights'\n\nimport { computed, type PropType, useAttrs } from 'vue'\nimport { FontWeights } from '@/types/styles/FontWeights'\nimport { adaptiveAdditionalProps, adaptivePropsParams, adaptivePropsSizes } from '@/utils/mcTitleAdaptiveProps'\nimport type { TitleVariationsUnion } from '@/types/ITitle'\nimport { useHelper } from '@/composables'\n\nconst helper = useHelper()\nconst attrs = useAttrs()\nconst props = defineProps({\n ...adaptiveAdditionalProps,\n /**\n * Уровень: `h1`, `h2`, `h3`, `h4`, `subtitle`, `body`, `overline`, `article`, 'info'.\n */\n variation: {\n type: String as () => TitleVariationsUnion,\n default: 'body'\n },\n /**\n * В одну строку с точками в конце, если не вмещается\n */\n ellipsis: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Если нужен другой тэг\n */\n tagName: {\n type: String as PropType<string>,\n default: 'div'\n },\n /**\n * Заглавные буквы\n */\n uppercase: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Цвет\n */\n color: {\n type: String as () => ColorTypes,\n default: 'black'\n },\n /**\n * Позиция текста:\n * `left, center, right`\n */\n textAlign: {\n type: String as () => HorizontalAlignmentUnion,\n default: 'left'\n },\n /**\n * Если нужна иная высота строки: `100`, `200`, `300` и т.д.\n */\n lineHeight: {\n type: String as () => LineHeightTypes,\n default: ''\n },\n /**\n * Толщина текста:\n * normal, medium, semi-bold\n */\n weight: {\n type: String as () => WeightsUnion,\n default: ''\n },\n /**\n * Если нужно указать свою\n * максимальную ширину\n */\n maxWidth: {\n type: String as PropType<string>,\n default: '100%'\n },\n preLine: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n nowrap: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n plainText: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * ** Analog v-html, component use DOMPurify**\n * */\n htmlData: {\n type: String as PropType<string>,\n default: ''\n }\n})\n\nconst id = computed(() => {\n return attrs.id as string\n})\n\nconst responsivePropsClasses = computed((): { [key: string]: boolean } => {\n const result: { [key: string]: any } = {}\n result[`mc-title--variation-${props.variation}`] = !!props.variation\n adaptivePropsParams.forEach((value) => {\n adaptivePropsSizes.forEach((size) => {\n //@ts-ignore\n const sizeValue: string | undefined | unknown = props[`${value}${helper.upperFirst(size)}`]\n result[`mc-title--${value}-${size}-${sizeValue}`] = !!sizeValue\n })\n })\n\n return result\n})\n\nconst classes = computed((): { [key: string]: boolean } => ({\n 'mc-title': true,\n ['mc-title--ellipsis']: props.ellipsis,\n [`mc-title--text-align-${props.textAlign}`]: !!props.textAlign,\n [`mc-title--pre-line`]: props.preLine,\n [`mc-title--nowrap`]: props.nowrap,\n 'mc-title--uppercase': props.uppercase,\n 'mc-title--line-height': !!props.lineHeight,\n 'mc-title--weight': !!props.weight,\n 'mc-title--plain-text': props.plainText,\n ...responsivePropsClasses.value\n}))\nconst style = computed((): { [key: string]: string } => {\n let style: { [key: string]: string } = {}\n if (props.color) style['--mc-title-color'] = Colors[props.color]\n if (props.weight) style['--mc-title-weight'] = FontWeights[props.weight]\n if (props.lineHeight) style['--mc-title-line-height'] = LineHeights[props.lineHeight]\n\n return style\n})\n\nconst contentStyle = computed((): { [key: string]: string } => ({\n 'max-width': props.maxWidth\n}))\n</script>\n\n<template>\n <div :class=\"classes\" :style=\"style\" :id=\"id\">\n <!-- @slot -->\n <slot name=\"icon-prepend\" />\n <div\n v-if=\"props.htmlData\"\n class=\"mc-title__text\"\n :style=\"contentStyle\"\n v-html=\"DOMPurify.sanitize(props.htmlData)\"\n />\n <div v-else class=\"mc-title__text\" :style=\"contentStyle\"><slot /></div>\n\n <!-- @slot -->\n <slot name=\"icon-append\" />\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/letter-spacings' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/media-queries' as *;\n.mc-title {\n $block-name: &;\n --mc-title-color: initial;\n --mc-title-weight: initial;\n --mc-title-line-height: initial;\n color: var(--mc-title-color);\n font-family: $font-family-main;\n @mixin variations() {\n &-h1 {\n font-size: $font-size-700;\n line-height: $line-height-600;\n font-weight: $font-weight-semi-bold;\n #{$block-name}__text {\n max-width: 920px;\n }\n }\n &-h2 {\n font-size: $font-size-600;\n line-height: $line-height-500;\n font-weight: $font-weight-semi-bold;\n #{$block-name}__text {\n max-width: 820px;\n }\n }\n &-h3 {\n font-size: $font-size-500;\n line-height: $line-height-400;\n font-weight: $font-weight-semi-bold;\n #{$block-name}__text {\n max-width: 720px;\n }\n }\n &-h4 {\n font-size: $font-size-400;\n line-height: $line-height-300;\n font-weight: $font-weight-bold;\n #{$block-name}__text {\n max-width: 700px;\n }\n }\n\n &-subtitle {\n font-size: $font-size-300;\n line-height: $line-height-250;\n #{$block-name}__text {\n max-width: 640px;\n }\n }\n &-article {\n font-size: $font-size-200;\n line-height: $line-height-250;\n #{$block-name}__text {\n max-width: 536px;\n }\n }\n &-info {\n font-size: $font-size-300;\n line-height: $line-height-300;\n }\n &-body {\n font-size: $font-size-200;\n line-height: $line-height-200;\n #{$block-name}__text {\n max-width: 330px;\n }\n }\n &-overline {\n font-size: $font-size-100;\n line-height: $line-height-150;\n font-weight: $font-weight-medium;\n #{$block-name}__text {\n max-width: 330px;\n }\n }\n }\n\n margin-top: 0;\n margin-bottom: 0;\n display: inline-flex;\n max-width: 100%;\n width: 100%;\n text-decoration: none;\n //@include child-indent-right($space-50);\n\n &__text {\n padding-bottom: 1px; // fix overflow\n margin-bottom: -1px; // fix overflow\n }\n\n > *:not(:empty):not(:last-child) {\n margin-inline-end: $space-50;\n }\n\n .mc-svg-icon,\n .mc-button {\n @include reset-text-indents();\n }\n\n &--pre-line {\n #{$block-name}__text {\n white-space: pre-line !important;\n word-break: normal;\n }\n }\n\n &--nowrap {\n #{$block-name}__text {\n white-space: nowrap;\n }\n }\n\n &--variation {\n @include variations;\n }\n\n &--ellipsis {\n align-items: center;\n\n #{$block-name} {\n &__text {\n @include ellipsis($display: inline-block);\n @include layout-flex-fix();\n }\n }\n }\n\n &--uppercase {\n text-transform: uppercase;\n letter-spacing: $letter-spacing-m;\n }\n &--plain-text {\n #{$block-name} {\n &__text {\n unicode-bidi: plaintext;\n }\n }\n }\n\n &--text-align {\n &-left {\n justify-content: flex-start;\n text-align: start;\n }\n &-center {\n justify-content: center;\n text-align: center;\n }\n &-right {\n justify-content: flex-end;\n text-align: end;\n }\n }\n &--line-height {\n line-height: var(--mc-title-line-height);\n }\n &--weight {\n font-weight: var(--mc-title-weight);\n }\n @each $media, $value in $token-media-queries {\n @media #{$value} {\n &--variation-#{$media} {\n @include variations;\n }\n &--weight-#{$media} {\n &-normal {\n font-weight: $font-weight-normal;\n }\n &-medium {\n font-weight: $font-weight-medium;\n }\n &-semi-bold {\n font-weight: $font-weight-semi-bold;\n }\n &-bold {\n font-weight: $font-weight-bold;\n }\n }\n }\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-weight: inherit;\n font-style: inherit;\n font-size: inherit;\n line-height: inherit;\n margin-block-start: 0;\n margin-block-end: 0;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport type { TooltipPositionsUnion, TooltipSizesUnion } from '@/types/ITooltip'\nimport { useTooltip } from '@/composables'\nimport { computed, type PropType } from 'vue'\nimport type { ITooltip } from '@/types/ITooltip'\nimport { TooltipPositions, TooltipSizes } from '@/enums/Tooltip'\n\nconst vTooltip = useTooltip()\n\nconst props = defineProps({\n /**\n * Текст подсказки:\n */\n content: {\n type: String as PropType<string>,\n required: true,\n },\n /**\n * Расположение:\n */\n placement: {\n type: String as () => TooltipPositionsUnion,\n default: TooltipPositions.Top,\n },\n /**\n * Цвет:\n */\n color: {\n type: String as () => ColorTypes,\n default: Colors.black,\n },\n /**\n * Цвет текста:\n */\n textColor: {\n type: String as () => ColorTypes,\n default: Colors.white,\n },\n /**\n * Максимальный размер\n */\n size: {\n type: String as () => TooltipSizesUnion,\n default: TooltipSizes.S,\n },\n /**\n * Всключить стрелку\n */\n arrowVisible: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n})\n\nconst tooltipProps = computed<ITooltip>((): ITooltip => {\n return {\n content: props.content,\n size: props.size,\n placement: props.placement,\n arrow: props.arrowVisible,\n color: props.color,\n textColor: props.textColor,\n } as ITooltip\n})\n</script>\n\n<template>\n <div v-tooltip=\"tooltipProps\" class=\"mc-tooltip-target\">\n <!-- @slot Слот для элемента, у которого будет всплывать тултип -->\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/tooltip' as *;\n@use '../../../assets/tokens/font-families' as *;\n\n.mc-tooltip-target {\n $block-name: &;\n max-width: 100%;\n width: max-content;\n font-family: $font-family-main;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { type PropType, provide, ref } from 'vue'\nimport type { ICollapse, ICollapseEmitPayload } from '@/types/ICollapse'\nimport { useDebounceFn } from '@vueuse/core'\n\n/**\n * Работает с дочерними mc-collapse\n */\n\nconst debounceFn = useDebounceFn((method) => {\n method()\n}, 50)\n\nconst props = defineProps({\n isSingleOpen: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n defaultOpenIndex: {\n type: Number as PropType<number>\n }\n})\nconst collapses = ref<ICollapse[]>([])\n\nconst recalculateCollapses = ({ value, component }: ICollapseEmitPayload) => {\n if (!value) return\n\n collapses.value.forEach(collapse => {\n if (collapse.id !== component.id) {\n collapse.close()\n }\n })\n}\n\nconst handleTrigger = (event: string, { value, component }: ICollapseEmitPayload): void => {\n if (props.isSingleOpen) recalculateCollapses({ value, component })\n}\n\nconst selfRegisterCollapseMethod = (payload: ICollapse): void => {\n collapses.value.push(payload)\n const openIndex = props.defaultOpenIndex\n debounceFn(() => {\n if ((openIndex || openIndex === 0) && !!collapses.value[openIndex]) {\n collapses.value[openIndex].open()\n }\n })\n}\nprovide('selfRegisterCollapseMethod', selfRegisterCollapseMethod)\nprovide('accordionTriggerMethod', handleTrigger)\n</script>\n\n<template>\n <div class=\"mc-accordion\">\n <!-- @slot Слот для дочерних mc-collapse -->\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/tokens/font-families' as *;\n.mc-accordion {\n $block-name: &;\n font-family: $font-family-main;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McTitle } from '@/components'\nimport { computed, type PropType } from 'vue'\nimport { CellSizes } from '@/enums/Cell'\nimport type { CellSizesUnion } from '@/types/ICell'\nimport { TitleVariations } from '@/enums/Title'\nconst props = defineProps({\n /**\n * Заголовок\n */\n title: {\n type: String as PropType<string>,\n default: '',\n },\n /**\n * Размеры отступов: 's, m, l'\n */\n size: {\n type: String as () => CellSizesUnion,\n default: CellSizes.M,\n },\n /**\n * Заглавные буквы заголовка\n */\n uppercase: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n /**\n * Три точки\n */\n ellipsis: {\n type: Boolean as PropType<boolean>,\n default: true,\n }\n})\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n [`mc-cell--size-${props.size}`]: !!props.size\n }\n})\n</script>\n\n<template>\n <section class=\"mc-cell\" :class=\"classes\">\n <div class=\"mc-cell__title\">\n <!-- @slot Слот заголовка -->\n <slot name=\"title\">\n <mc-title :variation=\"TitleVariations.Overline\" :uppercase=\"props.uppercase\" :ellipsis=\"props.ellipsis\">\n {{ props.title }}\n </mc-title>\n </slot>\n </div>\n <div class=\"mc-cell__content\">\n <!-- @slot Слот контента -->\n <slot />\n </div>\n </section>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/font-families' as *;\n.mc-cell {\n $block-name: &;\n font-family: $font-family-main;\n\n &--size {\n &-s {\n #{$block-name}__content {\n margin-top: 0;\n }\n }\n\n &-m {\n #{$block-name}__content {\n margin-top: $space-50;\n }\n }\n\n &-l {\n #{$block-name}__content {\n margin-top: $space-100;\n }\n }\n }\n\n &__content {\n display: inline-flex;\n flex-direction: column;\n width: 100%;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McSvgIcon, McSlideUpDown } from '@/components'\nimport { computed, type PropType, ref, useSlots, watch, inject, onMounted } from 'vue'\nimport type { ICollapse, ICollapseEmitPayload } from '@/types/ICollapse'\nimport { useRandomNumber } from '@/composables'\n\nconst randomNumber = useRandomNumber()\nconst selfRegisterCollapseMethod: Function = inject('selfRegisterCollapseMethod', () => {})\nconst accordionTriggerMethod: Function = inject('accordionTriggerMethod', () => {})\n\nconst slots = useSlots()\nconst emit = defineEmits<{\n (e: 'toggle', value: ICollapseEmitPayload): void\n (e: 'open', value: ICollapseEmitPayload): void\n (e: 'close', value: ICollapseEmitPayload): void\n (e: 'collapse-open-start', value: ICollapseEmitPayload): void\n (e: 'collapse-open-end', value: ICollapseEmitPayload): void\n (e: 'collapse-close-start', value: ICollapseEmitPayload): void\n (e: 'collapse-close-end', value: ICollapseEmitPayload): void\n}>()\nconst props = defineProps({\n /*\n * Если нужно\n * отключённое состояние\n */\n isDisabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /*\n * Если нужен бордер\n */\n border: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Иконка состояния коллапса\n *\n */\n icon: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n})\n\nconst id = ref<number>(randomNumber.timestamp(5))\nconst isCollapsed = ref<boolean>(false)\nconst animated = ref<boolean>(false)\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-collapse--is-open': isCollapsed.value,\n 'mc-collapse--is-disabled': props.isDisabled,\n 'mc-collapse--is-empty': isEmpty.value,\n 'mc-collapse--has-icon': props.icon,\n 'mc-collapse--border': props.border\n }\n})\nconst isEmpty = computed((): boolean => {\n return !slots.body\n})\n\nconst iCollapseParams = computed((): ICollapse => {\n return {\n isDisabled: props.isDisabled,\n border: props.border,\n icon: props.icon,\n id: id.value,\n isCollapsed: isCollapsed.value,\n open: open,\n close: close,\n toggle: toggle\n }\n})\n\nonMounted((): void => {\n if (selfRegisterCollapseMethod) {\n const payload: ICollapse = iCollapseParams.value\n\n selfRegisterCollapseMethod(payload)\n }\n})\n\nwatch(\n () => isCollapsed.value,\n (value: boolean): void => {\n /**\n * Событие тоггла\n */\n const payload: ICollapseEmitPayload = { value, component: iCollapseParams.value }\n emit('toggle', payload)\n value ? emit('open', payload) : emit('close', payload)\n if (accordionTriggerMethod) {\n accordionTriggerMethod(value ? 'open' : 'close', payload)\n }\n }\n)\nconst open = (): void => {\n if (props.isDisabled || animated.value) return\n isCollapsed.value = true\n}\nconst close = (): void => {\n if (props.isDisabled || animated.value) return\n isCollapsed.value = false\n}\nconst toggle = (): void => {\n if (props.isDisabled || animated.value) return\n isCollapsed.value = !isCollapsed.value\n}\nconst slideOpenStart = (value: boolean): void => {\n animated.value = true\n const payload: ICollapseEmitPayload = { value, component: iCollapseParams.value }\n /**\n * Событие перед началом открытия\n */\n emit('collapse-open-start', payload)\n}\nconst slideOpenEnd = (value: boolean): void => {\n animated.value = false\n const payload: ICollapseEmitPayload = { value, component: iCollapseParams.value }\n /**\n * Событие после открытия\n */\n emit('collapse-open-end', payload)\n}\nconst slideCloseStart = (value: boolean): void => {\n animated.value = true\n const payload: ICollapseEmitPayload = { value, component: iCollapseParams.value }\n /**\n * Событие перед началом закрытия\n */\n emit('collapse-close-start', payload)\n}\nconst slideCloseEnd = (value: boolean): void => {\n animated.value = false\n const payload: ICollapseEmitPayload = { value, component: iCollapseParams.value }\n /**\n * Событие после закрытия\n */\n emit('collapse-close-end', payload)\n}\n</script>\n\n<template>\n <section class=\"mc-collapse\" :class=\"classes\">\n <div class=\"mc-collapse__header\" tabindex=\"0\" @keyup.esc=\"close\">\n <mc-svg-icon\n v-if=\"icon && !isEmpty\"\n class=\"mc-collapse__icon\"\n name=\"arrow_drop_down\"\n :color=\"isDisabled ? 'outline-gray' : 'black'\"\n />\n <!-- @slot Слот для элемента по которому будет меняться состояние компонента -->\n <div v-if=\"slots.activator\" @click=\"toggle\">\n <slot name=\"activator\" />\n </div>\n <a v-if=\"slots.body\" class=\"mc-collapse__link\" href=\"#\" @click.prevent=\"toggle\" />\n </div>\n <mc-slide-up-down\n class=\"mc-collapse__body\"\n :active=\"isCollapsed\"\n :duration=\"300\"\n @slide-open-start=\"slideOpenStart\"\n @slide-open-end=\"slideOpenEnd\"\n @slide-close-start=\"slideCloseStart\"\n @slide-close-end=\"slideCloseEnd\"\n >\n <div class=\"mc-collapse__body-inner\">\n <!-- @slot Слот контента -->\n <slot name=\"body\" />\n </div>\n </mc-slide-up-down>\n <div v-if=\"slots.bottom\" class=\"mc-collapse__bottom\">\n <!-- @slot Общий нижний слот -->\n <slot name=\"bottom\" />\n </div>\n </section>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/durations' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/border-radius' as *;\n.mc-collapse {\n $block-name: &;\n\n &--border {\n border-radius: $radius-100;\n border: 1px solid $color-outline-gray;\n\n #{$block-name} {\n &__header {\n display: flex;\n padding: $space-100 $space-200;\n }\n }\n }\n\n &__link {\n display: block;\n @include position(absolute, 0);\n z-index: 1;\n }\n\n &__header {\n display: inline-flex;\n align-items: center;\n outline: none;\n cursor: pointer;\n position: relative;\n }\n\n &__icon {\n transition: all $duration-s;\n margin-inline: $space-50 $space-50;\n }\n\n &__body {\n #{$block-name} {\n border: none;\n border-radius: 0;\n border-bottom: 1px solid $color-outline-gray;\n\n &__header {\n padding-inline: $space-400 $space-200;\n }\n\n &__body {\n #{$block-name} {\n &__header {\n padding-inline-start: $space-800;\n }\n }\n }\n\n &:first-child {\n border-top: 1px solid $color-outline-gray;\n }\n\n &:last-child {\n border-bottom: none;\n }\n }\n }\n\n &__bottom {\n position: relative;\n }\n\n &--is-open {\n > #{$block-name} {\n &__header {\n #{$block-name} {\n &__icon {\n transform: rotate(180deg);\n }\n }\n }\n }\n }\n\n &--is-empty {\n #{$block-name} {\n &__header {\n cursor: default;\n &:hover {\n color: inherit;\n }\n }\n &__link {\n cursor: default;\n }\n }\n }\n\n &--is-disabled {\n #{$block-name} {\n &__header {\n cursor: not-allowed;\n color: $color-outline-gray;\n &:hover {\n color: $color-outline-gray;\n }\n }\n &__link {\n cursor: not-allowed;\n }\n }\n }\n\n &--has-icon {\n &#{$block-name}--is-empty {\n #{$block-name}__header {\n padding-inline-start: $space-400;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, onMounted, type PropType, ref, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { useThrottleFn } from '@vueuse/core'\nimport { McDropdownPanel } from '@/components'\nimport type { DropdownListPositionsUnion, DropdownPositionsUnion } from '@/types/IDropdown'\nimport { DropdownListPositions, DropdownPositions } from '@/enums/Dropdown'\n\nconst throttle = useThrottleFn((method) => {\n method()\n}, 200)\n\nconst id = 'dropdown-element-id'\nconst localList_position = ref<string | null>(null)\nconst local_position = ref<string | null>(null)\nconst dropdown_body = ref<HTMLElement | null>(null)\nconst activator = ref<HTMLElement | null>(null)\nconst is_open = ref<boolean>(false)\nconst route = useRoute()\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void\n (e: 'select', value: any): void\n}>()\n\nconst props = defineProps({\n /**\n * Состояние видимости контента\n */\n modelValue: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n items: {\n type: Array as PropType<any[]>,\n default: () => []\n },\n /**\n * Выравнивание\n * контента: 'left', 'right', 'auto'\n */\n position: {\n type: String as () => DropdownPositionsUnion,\n default: DropdownPositions.Left\n },\n /**\n * Направление отображения\n * контента: 'top', 'bottom', 'auto'\n */\n listPosition: {\n type: String as () => DropdownListPositionsUnion,\n default: DropdownListPositions.Bottom\n },\n /**\n * Минимальная ширина выпадаюзего списка\n */\n listMinWidth: {\n type: String as PropType<string>,\n default: 'inherit'\n },\n /**\n * Минимальная ширина выпадаюзего списка\n */\n listMaxHeight: {\n type: Number as PropType<number>,\n default: 300\n },\n hideOnSelect: {\n type: Boolean as PropType<boolean>,\n default: true\n }\n})\n\nconst dropdownClasses = computed((): { [key: string]: boolean } => {\n return {\n [`mc-dropdown--position-${local_position.value}`]: !!local_position.value,\n [`mc-dropdown--list-position-${localList_position.value}`]: !!localList_position.value,\n ['mc-dropdown--is-open']: is_open.value\n }\n})\n\nconst dropdownStyles = computed((): { [key: string]: string | number } => {\n return {\n '--dropdown-body-min-width': props.listMinWidth\n }\n})\n\nonMounted((): void => {\n window.addEventListener('resize', throttledCalculateDropdownPosition)\n window.addEventListener('transitionrun', throttledCalculateDropdownPosition)\n})\n\nonBeforeUnmount((): void => {\n window.removeEventListener('resize', throttledCalculateDropdownPosition)\n window.removeEventListener('transitionrun', throttledCalculateDropdownPosition)\n})\n\nconst toggleDropdown = (): void => {\n setOpenState(!is_open.value)\n}\n\nconst handleClickOutside = (e: Event): void => {\n const target = e.target as HTMLElement\n if (is_open.value && !target.closest(`#${id}`)) closeDropdown()\n}\n\nconst closeDropdown = (): void => {\n setOpenState(false)\n}\n\nconst setOpenState = (payload: boolean): void => {\n is_open.value = payload\n emit('update:modelValue', payload)\n\n if (is_open.value) document.addEventListener('click', handleClickOutside)\n else document.removeEventListener('click', handleClickOutside)\n}\n\nconst handleItemClick = (payload: any): void => {\n emit('select', payload)\n if (props.hideOnSelect) closeDropdown()\n}\n\nconst calculateDropdownPosition = (): void => {\n if (!dropdown_body.value) return\n const rect = activator.value?.getBoundingClientRect()\n if (!rect) return\n const space_below: number = window.innerHeight - rect.bottom\n const space_left: number = window.innerWidth - rect.left\n const { offsetHeight: dropdown_height, offsetWidth: dropdown_width } = dropdown_body.value\n // Определяем направление отображения списка\n const auto_list_position: string =\n space_below < dropdown_height ? DropdownListPositions.Top : DropdownListPositions.Bottom\n const auto_position: string = space_left > dropdown_width ? DropdownPositions.Left : DropdownPositions.Right\n // Устанавливаем значения в зависимости от position\n localList_position.value = props.listPosition === DropdownListPositions.Auto ? auto_list_position : props.listPosition\n local_position.value = props.position === DropdownPositions.Auto ? auto_position : props.position\n}\n\nconst throttledCalculateDropdownPosition = () => throttle(() => calculateDropdownPosition())\n\nwatch(() => route, closeDropdown)\nwatch(\n () => props.modelValue,\n (val: boolean): void => {\n if (is_open.value !== val) setOpenState(val)\n\n nextTick((): void => {\n calculateDropdownPosition()\n })\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <div class=\"mc-dropdown\" :id=\"id\" :class=\"dropdownClasses\" :style=\"dropdownStyles\">\n <div\n class=\"mc-dropdown__toggle\"\n ref=\"activator\"\n tabindex=\"0\"\n @keyup.esc=\"closeDropdown\"\n @click.prevent.stop=\"toggleDropdown\"\n >\n <!-- @slot активатора переключения состояния -->\n <slot name=\"activator\" />\n </div>\n <div ref=\"dropdown_body\" class=\"mc-dropdown__body\">\n <!-- @slot контента -->\n <mc-dropdown-panel :max-height=\"listMaxHeight\">\n <slot>\n <div\n v-for=\"(item, index) in items\"\n :key=\"`dropdown-list-item-${item.id || item.key || index}`\"\n class=\"mc-dropdown-panel__item\"\n @click=\"handleItemClick(item)\"\n >\n <slot name=\"item\" :item=\"item\"></slot>\n </div>\n </slot>\n </mc-dropdown-panel>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/z-indexes' as *;\n@use '../../../assets/tokens/durations' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use 'sass:color' as sasscolor;\n.mc-dropdown {\n $block-name: &;\n --dropdown-body-min-width: inherit;\n\n position: relative;\n display: inline-block;\n\n &__toggle {\n outline: none;\n @include reset-text-indents();\n .mc-svg-icon {\n transition: all $duration-s;\n }\n }\n\n &__body {\n @include position(absolute, null null null 0);\n z-index: $z-index-dropdown;\n height: 0;\n overflow: hidden;\n margin: 0;\n background-color: transparent;\n opacity: 0;\n visibility: hidden;\n min-width: var(--dropdown-body-min-width);\n transition:\n opacity $duration-s,\n transform $duration-s;\n\n .mc-button {\n &:not(.nuxt-link-active):not(.mc-button--is-active):not(.mc-button--variation-red-flat) {\n &:hover {\n background-color: sasscolor.scale($color-purple, $lightness: 90%);\n .mc-button__background {\n opacity: 0 !important;\n }\n }\n }\n }\n }\n\n &--list-position-top {\n #{$block-name} {\n &__body {\n bottom: 100%;\n margin-bottom: $space-100;\n }\n }\n }\n\n &--list-position-bottom {\n #{$block-name} {\n &__body {\n top: 100%;\n margin-top: $space-100;\n }\n }\n }\n\n &--is-open {\n #{$block-name} {\n &__body {\n height: auto;\n visibility: visible;\n overflow: visible;\n opacity: 1;\n }\n }\n\n #{$block-name} {\n &__toggle--rotate-icon {\n .rotate {\n position: relative;\n transform: rotate(180deg);\n }\n }\n }\n }\n\n &--position-right {\n #{$block-name} {\n &__body {\n inset-inline-start: auto;\n inset-inline-end: 0;\n }\n }\n }\n\n &--position-left {\n #{$block-name} {\n &__body {\n inset-inline-start: 0;\n inset-inline-end: auto;\n }\n }\n }\n .mc-dropdown-panel {\n &__item {\n & > * {\n width: 100%;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, type PropType } from 'vue'\n\nconst props = defineProps({\n maxHeight: {\n type: Number as PropType<number>,\n default: 300\n }\n})\n\nconst panelStyles = computed((): { [key: string]: string } => {\n return {\n '--panel-max-height': `${props.maxHeight}px`\n }\n})\n</script>\n\n<template>\n <section class=\"mc-dropdown-panel\" :style=\"panelStyles\">\n <!-- @slot Слот контента -->\n <slot />\n </section>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/box-shadows' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/border-radius' as *;\n.mc-dropdown-panel {\n $block-name: &;\n --panel-max-height: 300px;\n\n font-family: $font-family-main;\n box-shadow: $shadow-s;\n border-radius: $radius-150;\n background-color: $color-white;\n padding: $space-100;\n max-width: 320px;\n max-height: var(--panel-max-height);\n display: flex;\n flex-direction: column;\n align-items: stretch;\n overflow-y: auto;\n @include hide-scrollbar();\n\n &:empty {\n display: none;\n }\n\n .mc-button {\n &--size-m {\n font-weight: $font-weight-medium;\n padding: $space-100;\n .mc-svg-icon {\n @include size($size-300);\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { Teleport } from 'vue'\nimport {\n McSvgIcon,\n McButton,\n McTitle,\n McFieldSelect,\n McFieldText,\n McTooltip,\n McFilterTags,\n McFilterTypeRange,\n McFilterTypeDate,\n McFilterTypeText,\n McFilterTypeRelation,\n McChip\n} from '@/components'\nimport { defaultPlaceholders } from '@/mocks/filterMocks'\n\nimport { computed, onBeforeUnmount, onMounted, type PropType, reactive, ref, watch, nextTick } from 'vue'\nimport type {\n ButtonVariationUnion,\n FilterConditionName,\n FilterConditionValue,\n IFastFilter,\n IFilter,\n IFilterCondition,\n IFilterParsedValue,\n IFilterParsedValueFilter,\n IFilterParsedValueFilterName,\n IFilterPlaceholders,\n IFilterPreset,\n IFilterValue,\n ISelectOption,\n FilterRelationValue,\n FilterRelationName,\n IFilterRelationTag,\n IFilterRangeValue,\n IFilterTag,\n IRelationFilter,\n IFilterDateValue,\n IBaseFilter,\n FilterTextValue,\n IRangeFilter\n} from '@/types'\nimport { useHelper, UseEncodeDecode } from '@/composables'\nimport { ButtonSize, ChipSize, FilterRelations, FilterTypes, TooltipPositions, TooltipSizes } from '@/enums'\nimport { useLocalStorage } from '@vueuse/core'\n\nconst helper = useHelper()\nconst emit = defineEmits<{\n (e: 'error', value: string): void\n (e: 'clear', value: string): void\n (e: 'delete-preset', value: string): void\n (e: 'update:modelValue', value: IFilterValue): void\n (e: 'confirm', value: IFilterValue): void\n}>()\nconst props = defineProps({\n /**\n * Имя фильтра\n * (для записи данных в стор)\n */\n name: {\n type: String as PropType<string>,\n required: true\n },\n /**\n * Значение фильтра\n */\n modelValue: {\n type: Object as PropType<IFilterValue>,\n required: true,\n default: () => ({ filter: null, filter_name: null })\n },\n /**\n * Типы фильтров\n */\n filters: {\n type: Array as PropType<IFilter[]>,\n required: true,\n default: () => []\n },\n /**\n * Лоадинг кнопки применить фильтр\n */\n buttonConfirmIsLoading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Использовать ли teleport (для рендеринга вне компонента)\n * Если да то необходимо создать блок с id=\"filterTeleportTarget\" в который будет рендериться тело фильтра\n */\n useTeleport: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Доступен ли фильтр для открытия\n */\n disabledOpen: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Нужно ли учитывать часовой пояс при работе с фильтром типа Date\n * */\n useTimezone: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Переводы плейсхолеров и текстов\n */\n placeholders: {\n type: Object as PropType<Partial<IFilterPlaceholders>>,\n default: () => ({})\n }\n})\n\nconst isOpen = ref<boolean>(false)\n\n// текущие значения фильтра filter / filter_name\nconst currentValues = ref<IFilterParsedValueFilter>({})\nconst currentValuesName = ref<IFilterParsedValueFilterName>({})\n\n//временные значения, до нажатия на кнопку применить фильтр\nconst temporaryFilter = ref<IFilterParsedValueFilter>({})\nconst temporaryFilterName = ref<IFilterParsedValueFilterName>({})\n\n// текущие выбранные значения в типе фильтра\nconst currentCondition = ref<FilterConditionValue>({})\nconst currentConditionName = ref<FilterConditionName>({})\n\n// значение выбранного фильтра из списка фильтров\nconst selectedOptionFilter = ref<string | null>(null)\n\nconst activeTag = ref<IFilterRelationTag | null>(null)\n\nconst placeholders = reactive<IFilterPlaceholders>(helper.deepMerge(defaultPlaceholders, props.placeholders))\n\nconst isDisableConfirmButton = computed(() => {\n return helper.isEqual(computedModelValue.value.filter, currentValues.value)\n})\n\nconst newPresetName = ref<string>('')\nconst activePreset = ref<IFilterPreset | null>(null)\nconst temporaryActivePreset = ref<IFilterPreset | null>(null)\nconst filterLocalStorage = useLocalStorage<Record<string, IFilterPreset[]>>('mcFilterPresets', {})\nconst presets = ref<IFilterPreset[]>([])\n\nconst computedModelValue = computed({\n get(): IFilterParsedValue {\n const { filter = null, filter_name = null } = props.modelValue || {}\n\n return {\n filter: filter,\n filter_name: UseEncodeDecode.decode(filter_name)\n } as IFilterParsedValue\n },\n set(val: IFilterParsedValue) {\n const { filter = null, filter_name = {} } = val || {}\n\n const payload: IFilterValue = {\n filter: filter,\n filter_name: UseEncodeDecode.encode(filter_name)\n } as IFilterValue\n emit('update:modelValue', payload)\n }\n})\n\n// выбранный фильтр из списка фильтров\nconst currentFilter = computed((): IFilter => {\n return props.filters.find((f) => String(f.value) === String(selectedOptionFilter.value)) || ({} as IFilter)\n})\nconst isCurrentComponentIsRelation = computed((): boolean => {\n return currentFilter.value?.type === FilterTypes.Relation\n})\nconst isCurrentComponentIsDate = computed((): boolean => {\n return currentFilter.value?.type === FilterTypes.Date\n})\nconst isCurrentComponentIsText = computed((): boolean => {\n return currentFilter.value?.type === FilterTypes.Text\n})\nconst isCurrentComponentIsRange = computed((): boolean => {\n return currentFilter.value?.type === FilterTypes.Range\n})\n\n// отфильтрованные быстрые фильтры\nconst fastFilters = computed((): IFastFilter[] => {\n const selected = (currentValues.value && Object.keys(currentValues.value)) || []\n return props.filters.filter((f) => f.type === FilterTypes.Fast && !selected.includes(f.value)) as IFastFilter[]\n})\n\n// отфильтрованные фильтры кроме быстрых\nconst regularFilters = computed((): ISelectOption[] => {\n return props.filters.filter((f) => f.type !== FilterTypes.Fast)\n})\n\nconst visibilityToggleVariation = computed((): ButtonVariationUnion => {\n return isOpen.value || !isDisableConfirmButton.value ? 'purple-invert' : 'black-flat'\n})\n\n// видна ли кнопка добавить фильтр\nconst hasButtonAdd = computed((): boolean => {\n return (\n !helper.isEmpty(currentCondition.value) && !!currentFilter.value && currentFilter.value.type !== FilterTypes.Fast\n )\n})\n\n// задизэйблена ли кнопка создать, для пресетов\nconst buttonCreateIsDisable = computed((): boolean => {\n return !newPresetName.value.trim()\n})\n\nonMounted((): void => {\n updatePresets()\n window.addEventListener('storage', updatePresets)\n\n init()\n})\n\nonBeforeUnmount((): void => {\n window.removeEventListener('storage', updatePresets)\n})\n\nconst init = () => {\n temporaryFilter.value = computedModelValue.value.filter\n temporaryFilterName.value = computedModelValue.value.filter_name\n\n currentValues.value = computedModelValue.value.filter\n currentValuesName.value = computedModelValue.value.filter_name\n}\n\nconst updatePresets = (): void => {\n presets.value = filterLocalStorage.value[props.name] || ([] as IFilterPreset[])\n}\n\nconst handlerSetFastFilter = (tag: IFastFilter): void => {\n const { relation, value } = tag\n\n const filterValue = relation ? { [relation]: tag.default } : tag.default\n\n selectedOptionFilter.value = value\n handleConditionChange({ value: filterValue, valueName: tag.name })\n handleStoreTag()\n}\n\nconst handleConditionChange = ({ value, valueName }: IFilterCondition): void => {\n currentCondition.value = value\n currentConditionName.value = valueName || ''\n}\n\nconst handleStoreTag = (): void => {\n activeTag.value ? editTag() : addTag()\n}\n\nconst editTag = (): void => {\n switch (currentFilter.value?.type) {\n case FilterTypes.Relation: {\n editRelationValue()\n break\n }\n default: {\n addSimpleValue()\n break\n }\n }\n activeTag.value = null\n}\n\nconst addTag = (): void => {\n switch (currentFilter.value?.type) {\n case FilterTypes.Relation: {\n addRelationValue()\n break\n }\n default: {\n addSimpleValue()\n break\n }\n }\n activeTag.value = null\n}\n\nconst editRelationValue = (): void => {\n if (activeTag.value) {\n const tagRelationValue = activeTag.value.relationKey === FilterRelations.Exists ? [0] : [activeTag.value.value]\n const tagRelation = {\n [activeTag.value.category]: {\n [activeTag.value.relationKey as FilterRelations]: tagRelationValue\n }\n }\n\n const selectedRelation: IFilterParsedValueFilter = {\n [selectedOptionFilter.value as string]: helper.cloneDeep(currentCondition.value)\n }\n if (helper.isEqual(selectedRelation, tagRelation)) {\n /**\n * Событие по возникшей ошибке\n */\n emit('error', placeholders.messages.same_filter)\n return\n }\n }\n const { category, categoryName }: { category: FilterRelationValue; categoryName: FilterRelationName } =\n getCategoriesWithNewRelation()\n\n if (activeTag.value) {\n if (activeTag.value.relationKey === FilterRelations.Exists) {\n delete category[activeTag.value.relationKey]\n delete categoryName[activeTag.value.relationKey]\n } else {\n const numerableValues = category[activeTag.value.relationKey]\n const index = numerableValues?.indexOf(String(activeTag.value.value)) ?? -1\n if (index !== -1) {\n category?.[activeTag.value.relationKey]?.splice(index, 1)\n helper.isEmpty(category[activeTag.value.relationKey]) && delete category[activeTag.value.relationKey]\n delete categoryName?.[activeTag.value.relationKey]?.[activeTag.value.value]\n helper.isEmpty(categoryName[activeTag.value.relationKey]) && delete categoryName[activeTag.value.relationKey]\n }\n }\n }\n\n setFilterValues(category, categoryName)\n}\n\nconst addRelationValue = (): void => {\n const { category, categoryName } = getCategoriesWithNewRelation()\n setFilterValues(category, categoryName)\n}\n\nconst getCategoriesWithNewRelation = (): { category: FilterRelationValue; categoryName: FilterRelationName } => {\n const relationKeys = Object.keys(currentCondition.value) as FilterRelations[]\n const values = helper.cloneDeep(currentValues.value)\n const valuesName = helper.cloneDeep(currentValuesName.value)\n const selectedCategory: FilterRelationValue = values[selectedOptionFilter.value as string]\n const selectedCategoryName: FilterRelationName = valuesName[selectedOptionFilter.value as string]\n\n selectedCategory &&\n relationKeys.forEach((k) => {\n if (k === FilterRelations.Exists) {\n selectedCategory[FilterRelations.Exists] = 0\n selectedCategoryName[FilterRelations.Exists] = null\n } else {\n //@ts-ignore\n const conditionValue = currentCondition.value[k]\n //@ts-ignore\n const conditionName = currentConditionName.value[k]\n\n if (k in selectedCategory) {\n //@ts-ignore\n selectedCategory[k] = helper.uniqWith([...selectedCategory[k], ...conditionValue], helper.isEqual)\n selectedCategoryName[k] = {\n ...selectedCategoryName[k],\n ...conditionName\n }\n } else {\n selectedCategory[k] = conditionValue\n selectedCategoryName[k] = conditionName\n }\n }\n })\n return { category: selectedCategory, categoryName: selectedCategoryName }\n}\n\nconst setFilterValues = (val: FilterConditionValue, valName: FilterConditionName): void => {\n const newVal: IFilterParsedValueFilter = {\n ...currentValues.value,\n [selectedOptionFilter.value as string]: val || currentCondition.value\n }\n if (helper.isEqual(currentValues.value, newVal)) {\n /**\n * Событие по возникшей ошибке\n */\n emit('error', placeholders.messages.same_filter)\n return\n }\n currentValues.value = newVal\n currentValuesName.value = {\n ...currentValuesName.value,\n [selectedOptionFilter.value as string]: valName || currentConditionName.value\n }\n\n setEmptyCondition()\n}\n\nconst setEmptyCondition = (): void => {\n switch (currentFilter.value?.type) {\n case FilterTypes.Text:\n case FilterTypes.Relation:\n handleConditionChange({ value: '' })\n break\n case FilterTypes.Range:\n case FilterTypes.Date:\n handleConditionChange({ value: {} })\n break\n default:\n break\n }\n}\n\nconst addSimpleValue = (): void => {\n if (currentFilter.value?.type === FilterTypes.Range && Object.keys(currentCondition.value || {}).length === 2) {\n const _currentCondition = currentCondition.value as IFilterRangeValue\n if (_currentCondition.more && _currentCondition.less && _currentCondition.more > _currentCondition.less) {\n /**\n * Событие по возникшей ошибке\n */\n emit('error', placeholders.messages.more_than)\n return\n }\n }\n setFilterValues(currentCondition.value, currentCondition.value as FilterConditionName)\n}\n\nconst onTagsChange = (val: IFilterParsedValueFilterName): void => {\n activeTag.value = null\n if (helper.isEmpty(val)) {\n currentValues.value = {}\n currentValuesName.value = {}\n return\n }\n currentValuesName.value = helper.cloneDeep(val)\n setRelationsToArrayFormat(val)\n}\n\nconst handleClearAllTags = (): void => {\n temporaryFilter.value = {}\n temporaryFilterName.value = {}\n\n currentValues.value = {}\n currentValuesName.value = {}\n /**\n * Событие по очистке выбранных фильтров из поля\n */\n emit('clear', placeholders.messages.accidentally_cleared)\n}\n\nconst setRelationsToArrayFormat = (obj: IFilterParsedValueFilterName): void => {\n const newObj = helper.cloneDeep(obj)\n const relationKeys = [FilterRelations.Is, FilterRelations.IsNot]\n for (let [categoryKey, categoryVal] of Object.entries(obj)) {\n if (categoryVal.constructor === Object) {\n for (let [key, val] of Object.entries(categoryVal)) {\n if (relationKeys.includes(key as FilterRelations) && val?.constructor === Object) {\n newObj[categoryKey][key] = [...Object.keys(val)]\n }\n }\n }\n }\n currentValues.value = newObj\n}\n\nconst onTagClick = (tag: IFilterTag): void => {\n activeTag.value = (helper.isEqual(activeTag.value, tag) ? null : tag) as IFilterRelationTag\n if (!activeTag.value) {\n setEmptyCondition()\n return\n }\n let condition = null\n let conditionName = null\n if (tag.relationKey) {\n condition = {\n [tag.relationKey]: tag.relationKey === FilterRelations.Exists ? [0] : [String(tag.value)]\n }\n conditionName = {\n [tag.relationKey]: tag.relationKey === FilterRelations.Exists ? [0] : { [tag.value]: tag.title }\n }\n } else {\n condition = tag.value?.constructor === Object ? tag.value : String(tag.value)\n conditionName = tag.value\n }\n\n selectedOptionFilter.value = tag.category\n nextTick(() => {\n currentCondition.value = condition\n currentConditionName.value = conditionName\n })\n}\n\nconst handleConfirm = (): void => {\n /**\n * Событие по изменению значения фильтра\n */\n computedModelValue.value = {\n filter: currentValues.value,\n filter_name: currentValuesName.value\n } as IFilterParsedValue\n\n const payload: IFilterValue = {\n filter: currentValues.value,\n filter_name: UseEncodeDecode.encode(currentValuesName.value)\n } as IFilterValue\n\n emit('confirm', payload)\n}\n\n/**\n * PRESETS BELOW\n * */\n\nconst handlePresetMouseUp = (preset: IFilterPreset) => {\n if (activePreset.value && activePreset.value.name === preset.name) {\n activePreset.value = null\n currentValues.value = {}\n currentValuesName.value = {}\n } else {\n activePreset.value = preset\n currentValues.value = helper.cloneDeep(preset.filter)\n currentValuesName.value = helper.cloneDeep(preset.filter_name)\n }\n if (!isOpen.value) {\n handleConfirm()\n }\n}\n\nconst handleDeletePreset = (preset: IFilterPreset | null): void => {\n const filteredPresets = filterLocalStorage.value[props.name]?.filter((p) => preset && p.name !== preset.name)\n filterLocalStorage.value[props.name] = [...filteredPresets]\n temporaryActivePreset.value = helper.cloneDeep(activePreset.value)\n activePreset.value = null\n currentValues.value = {}\n currentValuesName.value = {}\n /**\n * Событие по удалению пресета\n */\n emit('delete-preset', placeholders.messages.accidentally_deleted)\n}\n\nconst handleCreatePreset = (): void => {\n if (\n filterLocalStorage.value[props.name] &&\n filterLocalStorage.value[props.name].find((p) => p.name?.trim() === newPresetName.value?.trim())\n ) {\n emit('error', placeholders.messages.same_preset_name)\n return\n }\n const preset: IFilterPreset = {\n name: newPresetName.value?.trim(),\n filter: helper.cloneDeep(currentValues.value),\n filter_name: helper.cloneDeep(currentValuesName.value)\n }\n\n const currentPreset = filterLocalStorage.value[props.name]\n if (currentPreset) {\n filterLocalStorage.value[props.name] = [preset, ...currentPreset]\n } else {\n filterLocalStorage.value[props.name] = [preset]\n }\n\n newPresetName.value = ''\n activePreset.value = { ...preset }\n}\n\nconst getPresetButtonVariation = (preset: IFilterPreset): ButtonVariationUnion => {\n return activePreset.value && activePreset.value.name === preset.name ? 'purple-invert' : 'gray-outline'\n}\n\nwatch(\n () => props.modelValue,\n (val: IFilterValue): void => {\n const filter_value: IFilterValue = val || {\n filter: null,\n filter_name: null\n }\n currentValues.value = { ...filter_value.filter }\n if (filter_value.filter_name) {\n try {\n currentValuesName.value = UseEncodeDecode.decode(filter_value.filter_name)\n } catch (e) {\n console.error(`Can't parse filters`)\n }\n }\n },\n { deep: true }\n)\n\nwatch(\n () => currentFilter.value,\n (): void => {\n handleConditionChange({ value: '' })\n },\n { deep: true }\n)\n\nwatch(\n () => currentValues.value,\n (): void => {\n if (activePreset.value) {\n const mappedPresets = filterLocalStorage.value[props.name].map((p) => {\n if (activePreset.value && p.name === activePreset.value.name) {\n return {\n name: p.name,\n filter: helper.cloneDeep(currentValues.value),\n filter_name: helper.cloneDeep(currentValuesName.value)\n }\n }\n return p\n })\n filterLocalStorage.value[props.name] = [...mappedPresets]\n }\n }\n)\n</script>\n\n<template>\n <div class=\"mc-filter\">\n <div class=\"mc-filter__header\">\n <mc-tooltip :content=\"placeholders.main_tooltip\" :placement=\"TooltipPositions.Top\" :size=\"TooltipSizes.S\">\n <mc-button\n :variation=\"visibilityToggleVariation\"\n :disabled=\"disabledOpen\"\n :bg-flat=\"isOpen\"\n :size=\"ButtonSize.MCompact\"\n @click=\"isOpen = !isOpen\"\n >\n <template #icon-prepend>\n <mc-svg-icon name=\"filter_list\" />\n </template>\n </mc-button>\n </mc-tooltip>\n <div v-if=\"presets\" class=\"mc-filter__presets\">\n <div class=\"mc-filter__presets-inner\">\n <mc-button\n v-for=\"preset in presets\"\n :key=\"preset.name\"\n :variation=\"getPresetButtonVariation(preset)\"\n secondary-color=\"purple\"\n @mouseup=\"() => handlePresetMouseUp(preset)\"\n >\n {{ preset.name }}\n </mc-button>\n </div>\n </div>\n </div>\n <component v-if=\"isOpen\" :is=\"useTeleport ? Teleport : 'div'\" to=\"#filterTeleportTarget\">\n <div class=\"mc-filter__body\">\n <div class=\"mc-filter__body-top\">\n <div class=\"mc-filter__body-top-left\">\n <mc-field-select\n v-model=\"selectedOptionFilter\"\n :title=\"placeholders.value\"\n :options=\"regularFilters\"\n :placeholder=\"placeholders.choose\"\n :hide-selected=\"false\"\n class=\"mc-filter__main-select\"\n name=\"filter_value_name\"\n />\n <template v-if=\"currentFilter\">\n <mc-filter-type-relation\n v-if=\"isCurrentComponentIsRelation\"\n :model-value=\"currentCondition as FilterRelationValue\"\n :filter=\"currentFilter as IRelationFilter\"\n :placeholders=\"placeholders\"\n :current-values=\"!activeTag ? currentValues : {}\"\n :use-timezone=\"props.useTimezone\"\n @update:modelValue=\"handleConditionChange\"\n />\n <mc-filter-type-date\n v-else-if=\"isCurrentComponentIsDate\"\n :model-value=\"currentCondition as IFilterDateValue\"\n :filter=\"currentFilter as IBaseFilter\"\n :placeholders=\"placeholders\"\n :current-values=\"!activeTag ? currentValues : {}\"\n :use-timezone=\"props.useTimezone\"\n @update:modelValue=\"handleConditionChange\"\n />\n <mc-filter-type-text\n v-else-if=\"isCurrentComponentIsText\"\n :model-value=\"currentCondition as FilterTextValue\"\n :filter=\"currentFilter as IBaseFilter\"\n :placeholders=\"placeholders\"\n :current-values=\"!activeTag ? currentValues : {}\"\n :use-timezone=\"props.useTimezone\"\n @update:modelValue=\"handleConditionChange\"\n />\n <mc-filter-type-range\n v-else-if=\"isCurrentComponentIsRange\"\n :model-value=\"currentCondition as IFilterRangeValue\"\n :filter=\"currentFilter as IRangeFilter\"\n :placeholders=\"placeholders\"\n :current-values=\"!activeTag ? currentValues : {}\"\n :use-timezone=\"props.useTimezone\"\n @update:modelValue=\"handleConditionChange\"\n />\n <mc-button v-if=\"hasButtonAdd\" variation=\"purple-outline\" @click=\"handleStoreTag\">\n {{ placeholders.actions[activeTag ? 'save' : 'add'] }}\n </mc-button>\n </template>\n </div>\n </div>\n <mc-filter-tags\n :model-value=\"currentValuesName\"\n :filters=\"filters\"\n :placeholders=\"placeholders\"\n :active-tag=\"activeTag\"\n :use-timezone=\"props.useTimezone\"\n @tag-change=\"(payload: IFilterParsedValueFilterName) => onTagsChange(payload)\"\n @tag-click=\"(payload: IFilterTag) => onTagClick(payload)\"\n @clear=\"handleClearAllTags\"\n />\n <section class=\"mc-filter__body-fast-tags-wrapper\">\n <mc-tooltip\n v-for=\"(tag, i) in fastFilters\"\n :key=\"i\"\n :content=\"tag.description || ''\"\n :placement=\"TooltipPositions.Top\"\n :size=\"TooltipSizes.S\"\n >\n <mc-chip variation=\"gray-outline\" text-color=\"black\" :size=\"ChipSize.S\" @click=\"handlerSetFastFilter(tag)\">\n {{ tag.name }}\n </mc-chip>\n </mc-tooltip>\n </section>\n <div class=\"mc-filter__body-bottom\">\n <div class=\"mc-filter__body-bottom-left\">\n <mc-button\n :disabled=\"isDisableConfirmButton\"\n :loading=\"buttonConfirmIsLoading\"\n :size=\"ButtonSize.S\"\n @click=\"handleConfirm\"\n >\n {{ placeholders.actions.confirm }}\n </mc-button>\n <mc-button\n v-if=\"activePreset\"\n variation=\"red-outline\"\n :size=\"ButtonSize.S\"\n @click=\"() => handleDeletePreset(activePreset)\"\n >\n {{ placeholders.actions.delete_preset }}\n <template #icon-append>\n <mc-svg-icon name=\"delete\" size=\"250\" color=\"red\" />\n </template>\n </mc-button>\n </div>\n <div class=\"mc-filter__body-bottom-right\">\n <mc-title class=\"mc-filter__preset-input-title\">\n {{ placeholders.create_preset }}\n <template #icon-append>\n <mc-tooltip\n :content=\"placeholders.enter_preset_tooltip\"\n :placement=\"TooltipPositions.Top\"\n :size=\"TooltipSizes.S\"\n >\n <mc-svg-icon name=\"help_solid\" size=\"250\" color=\"outline-gray\" />\n </mc-tooltip>\n </template>\n </mc-title>\n <mc-field-text\n v-model=\"newPresetName\"\n :placeholder=\"placeholders.enter_preset_name\"\n :max-length=\"20\"\n class=\"mc-filter__preset-input\"\n name=\"preset_name\"\n />\n <mc-button\n :disabled=\"buttonCreateIsDisable\"\n variation=\"purple-outline\"\n :size=\"ButtonSize.S\"\n @click=\"handleCreatePreset\"\n >\n {{ placeholders.actions.create }}\n </mc-button>\n </div>\n </div>\n </div>\n </component>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use 'sass:color' as sasscolor;\n\n.mc-filter {\n $block-name: &;\n flex-grow: 1;\n min-width: 0;\n &__header {\n display: flex;\n @include child-indent-right($space-100);\n }\n\n &__presets {\n position: relative;\n flex-grow: 1;\n min-width: 0;\n &::after {\n @include pseudo();\n @include position(null, 0 0 0 null);\n width: $size-1000;\n background: linear-gradient(90deg, hsla(0, 0%, 100%, 0) 0, $color-white);\n pointer-events: none;\n }\n\n &-inner {\n display: flex;\n flex-wrap: nowrap;\n overflow-x: auto;\n height: calc(#{$space-500} + 2px);\n @include child-indent-right($space-100);\n & {\n @include hide-scrollbar();\n }\n &::after {\n @include pseudo(block, static);\n min-width: $space-300;\n }\n }\n }\n\n &__body {\n padding: $space-200 $space-200 $space-300 $space-200;\n background-color: $color-hover-gray;\n @include child-indent-bottom($space-200);\n &-top {\n display: flex;\n @include child-indent-right($space-400);\n\n &-left,\n &-right {\n @include child-indent-right($space-100);\n }\n &-left {\n display: flex;\n align-items: flex-end;\n }\n }\n &-bottom {\n display: flex;\n align-items: center;\n justify-content: space-between;\n @include child-indent-right($space-400);\n\n &-left {\n > *:not(:first-child) {\n margin-inline-start: $space-200;\n }\n }\n &-right {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n @include child-indent-right($space-100);\n .mc-title,\n .mc-tooltip-target {\n display: inline-flex;\n align-items: center;\n }\n }\n .mc-button {\n &--disabled {\n opacity: 1;\n background-color: sasscolor.scale($color-dark-gray, $lightness: 80%);\n color: $color-dark-gray;\n border-color: sasscolor.scale($color-dark-gray, $lightness: 100%);\n .mc-button__background {\n display: none;\n }\n }\n }\n }\n &-fast-tags-wrapper {\n margin: -($space-50);\n & > .mc-tooltip-target {\n .mc-chip {\n cursor: pointer;\n margin: calc(#{$space-100} / 2) calc(#{$space-50} / 2);\n &:hover {\n background-color: $color-outline-gray;\n }\n }\n }\n }\n }\n &__main-select,\n &__preset-input {\n width: 270px;\n }\n &__preset-input-title {\n width: auto;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McTitle, McChip } from '@/components'\nimport { computed, type PropType } from 'vue'\nimport type { ChipVariationUnion } from '@/types'\nimport { ChipSize, Weights } from '@/enums'\nimport { type IFilterTag } from '@/types/IFilter'\n\nconst emit = defineEmits<{\n (e: 'close'): void\n}>()\n\nconst props = defineProps({\n /**\n * Объект тэга\n */\n tag: {\n type: Object as PropType<IFilterTag>,\n required: true\n },\n /**\n * Закрывающийся\n */\n closable: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Активный\n */\n isActive: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n})\n\nconst computedCategory = computed((): string => {\n const append = props.tag.title ? ':' : ''\n return `${props.tag.categoryName}${append}`\n})\n\nconst computedVariation = computed((): ChipVariationUnion => {\n return props.closable ? 'purple-invert' : 'hover-gray'\n})\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-filter-chip': true,\n 'mc-filter-chip--closable': props.closable,\n 'mc-filter-chip--is-active': props.isActive\n }\n})\n\nconst handleChipClick = (e: Event): void => {\n e.stopPropagation()\n /**\n * Событие по закрытию тэга\n */\n emit('close')\n}\n</script>\n\n<template>\n <mc-chip\n :closable=\"closable\"\n :variation=\"computedVariation\"\n :class=\"classes\"\n :size=\"ChipSize.S\"\n @close=\"handleChipClick\"\n >\n <mc-title v-if=\"tag.categoryName\" :weight=\"Weights.SemiBold\">{{ computedCategory }}</mc-title\n >&nbsp;\n <mc-title v-if=\"tag.title\">{{ tag.title }}</mc-title>\n </mc-chip>\n</template>\n\n<style lang=\"scss\">\n@use 'sass:color' as sasscolor;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/colors' as *;\n.mc-filter-chip {\n $block-name: &;\n border-radius: $space-50;\n &--closable {\n border-radius: $space-150;\n &:hover {\n cursor: pointer;\n background-color: sasscolor.scale($color-purple, $lightness: 60%);\n }\n }\n &--is-active {\n background-color: sasscolor.scale($color-purple, $lightness: 60%);\n }\n .mc-title {\n width: auto;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { dayjs } from '@/utils/dayjs'\n\nimport { McButton, McTooltip, McTitle, McGridRow, McGridCol, McFilterChip } from '@/components'\nimport { computed, type PropType, ref, watch } from 'vue'\nimport { useRandomNumber, useHelper } from '@/composables'\nimport { TooltipPositions, TooltipSizes } from '@/enums'\nimport { FilterRelations, FilterTypes } from '@/enums/Filter'\nimport type {\n FilterConditionName,\n IFilter,\n IFilterTag,\n IFilterPlaceholders,\n IFilterParsedValueFilterName,\n FilterMoreLessConditionName,\n RangeFilterValue,\n DateFilterValue\n} from '@/types/IFilter'\n\nconst helper = useHelper()\nconst randomNumber = useRandomNumber()\n\nconst emit = defineEmits<{\n (e: 'tag-click', value: IFilterTag): void\n (e: 'tag-change', value: IFilterParsedValueFilterName): void\n (e: 'clear'): void\n}>()\nconst props = defineProps({\n /**\n * Данные фильтра\n */\n modelValue: {\n type: Object as PropType<IFilterParsedValueFilterName>,\n default: () => ({})\n },\n /**\n * Типы фильтров\n */\n filters: {\n type: Array as PropType<IFilter[]>,\n required: true,\n default: () => []\n },\n /**\n * Переводы локализаций\n */\n placeholders: {\n type: Object as PropType<IFilterPlaceholders>,\n required: true\n },\n /**\n * Активный тэг\n */\n activeTag: {\n type: Object as PropType<IFilterTag | null>,\n default: () => ({})\n },\n useTimezone: {\n type: Boolean as PropType<boolean>,\n default: true\n }\n})\n\nconst simpleValues = ref<IFilterParsedValueFilterName>({})\nconst relationValues = ref<IFilterParsedValueFilterName>({})\nconst prettyActiveTag = ref<IFilterTag | null>(null)\n\nconst fastFilterTags = computed((): IFilterTag[] => {\n return simpleTags.value.filter((st) => st && st.type === FilterTypes.Fast)\n})\n\nconst tagsWithoutFast = computed(() => {\n return simpleTags.value.filter((st) => st && st.type !== FilterTypes.Fast)\n})\n\nconst simpleTags = computed((): IFilterTag[] => {\n const tags: IFilterTag[] = []\n !helper.isEmpty(simpleValues.value) &&\n Object.entries(simpleValues.value).forEach(([key, value]) => {\n const _key = key as string\n let _value = value as FilterConditionName\n\n const filter: IFilter = props.filters.find((f) => f.value === _key) || ({} as IFilter)\n if (filter && filter.type === FilterTypes.Fast) {\n tags.push({\n id: randomNumber.timestamp(5),\n categoryName: filter?.name,\n category: _key,\n type: FilterTypes.Fast\n } as IFilterTag)\n } else if (filter) {\n _value = value as FilterMoreLessConditionName\n const from = _value.more ? `${props.placeholders.from} ${getFormattedVal(_value.more, filter)}` : ''\n\n const to = _value.less\n ? `${props.placeholders.to} ${getFormattedVal(\n filter.type === FilterTypes.Date\n ? props.useTimezone\n ? dayjs(_value.less).subtract(1, 'days').format()\n : dayjs(_value.less).format()\n : _value.less,\n filter\n )}`\n : ''\n const space = from && to ? ' ' : ''\n const title = typeof value === 'object' ? `${from}${space}${to}`.toLowerCase() : value\n tags.push({\n id: randomNumber.timestamp(5),\n categoryName: filter?.name,\n title,\n value,\n category: _key\n } as IFilterTag)\n }\n })\n return tags\n})\n\nconst relationRows = computed((): IFilterTag[][] => {\n let tags: IFilterTag[][] = []\n\n if (!helper.isEmpty(relationValues.value)) {\n tags = Object.entries(relationValues.value).map(([relationKey, relationVal]) => {\n const _relationKey = relationKey as string\n const _relationVal = relationVal as IFilterParsedValueFilterName\n\n if (relationKey === FilterRelations.Exists) {\n const empties: IFilterTag[] = Object.keys(_relationVal).map((key) => {\n const filter = props.filters.find((f) => f.value === key)\n return {\n id: randomNumber.timestamp(5),\n categoryName: filter?.name,\n value: key,\n category: key,\n relationKey,\n closable: true\n } as IFilterTag\n })\n const head = {\n id: randomNumber.timestamp(5),\n categoryName: props.placeholders.actions.empty,\n relationKey: FilterRelations.Exists\n } as IFilterTag\n\n return [head, ...empties]\n }\n const values: IFilterTag[] = []\n Object.entries(_relationVal).forEach(([categoryKey, categoryVal]) => {\n const _categoryKey = categoryKey as string\n const _categoryVal = categoryVal as FilterConditionName\n\n const filter: IFilter = props.filters.find((f) => f.value === _categoryKey) || ({} as IFilter)\n Object.entries(_categoryVal).forEach(([key, val]) => {\n values.push({\n id: randomNumber.timestamp(5),\n categoryName: filter?.name,\n title: val,\n value: key,\n category: _categoryKey,\n relationKey,\n closable: true\n } as IFilterTag)\n })\n })\n const head = {\n id: randomNumber.timestamp(5),\n //@ts-ignore\n categoryName: props.placeholders.actions?.[_relationKey],\n relationKey\n } as IFilterTag\n\n return [head, ...values]\n })\n }\n return tags.filter((t) => t.length > 1)\n})\n\nconst hasButtonClear = computed(() => {\n return relationRows.value.length || simpleTags.value.length\n})\n\nconst splitTags = (value: FilterConditionName) => {\n simpleValues.value = {}\n relationValues.value = {}\n if (helper.isEmpty(value)) return\n addInitTags(value)\n}\n\nconst addInitTags = (parentVal: FilterConditionName, parentKey?: string) => {\n const relationKeys = [FilterRelations.Is, FilterRelations.IsNot, FilterRelations.Exists]\n\n for (let [key, val] of Object.entries(parentVal)) {\n if (relationKeys.includes(key as FilterRelations)) {\n relationValues.value[key] = {\n ...((relationValues.value[key] || {}) as object),\n ...(parentKey ? { [parentKey]: val } : {})\n } as FilterConditionName\n continue\n }\n if (val.constructor !== Object && parentKey) {\n simpleValues.value[parentKey] = parentVal\n continue\n }\n const filter = props.filters.find((f) => f.value === key)\n if (filter && filter.type === FilterTypes.Fast) {\n simpleValues.value[key] = { value: key } as FilterConditionName\n continue\n }\n val && addInitTags(val, key)\n }\n}\n\nconst onTagClick = (tag: IFilterTag) => {\n prettyActiveTag.value = helper.isEqual(prettyActiveTag.value, tag) ? null : tag\n /**\n * Событие по клику на тэг\n */\n emit('tag-click', tag)\n}\nconst onTagClose = (tag: IFilterTag, relationKey?: FilterRelations) => {\n const value = helper.cloneDeep(props.modelValue)\n switch (relationKey) {\n case FilterRelations.Exists:\n delete value[tag.category][relationKey]\n break\n case FilterRelations.Is:\n case FilterRelations.IsNot:\n //@ts-ignore\n delete value[tag.category][relationKey][tag.value]\n if (helper.isEmpty(value[tag.category][relationKey])) {\n delete value[tag.category][relationKey]\n }\n break\n default:\n delete value[tag.category]\n break\n }\n\n if (helper.isEmpty(value[tag.category])) {\n delete value[tag.category]\n }\n /**\n * Событие по изменению набора тэгов\n */\n emit('tag-change', value as IFilterParsedValueFilterName)\n}\n\nconst handleClear = () => {\n /**\n * Событие по очистке всех тэгов\n */\n emit('clear')\n}\n\nconst getFormattedVal = (val: RangeFilterValue | DateFilterValue, filter: IFilter) => {\n switch (filter.type) {\n case FilterTypes.Date:\n return dayjs(val).format('DD.MM.YYYY')\n case FilterTypes.Range:\n return getFormattedNum(val)\n default:\n return val\n }\n}\n\nconst getFormattedNum = (num: RangeFilterValue) => {\n return num\n}\n\nconst checkTagIsActive = (tag: IFilterTag) => {\n return helper.isEqual(prettyActiveTag.value, tag)\n}\n\nwatch(\n () => props.modelValue,\n (val) => {\n splitTags(val)\n },\n { deep: true, immediate: true }\n)\n\nwatch(\n () => props.activeTag,\n (val) => {\n prettyActiveTag.value = val\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <div class=\"mc-filter-tags\">\n <mc-title>{{ props.placeholders.added_filters }}</mc-title>\n <div class=\"mc-filter-tags__body\">\n <div class=\"mc-filter-tags__body-left\">\n <mc-grid-row v-if=\"tagsWithoutFast.length\" :gutter-x=\"4\" :gutter-y=\"8\">\n <mc-grid-col v-for=\"tag in tagsWithoutFast\" :key=\"tag.id\">\n <mc-filter-chip\n :tag=\"tag\"\n :is-active=\"checkTagIsActive(tag)\"\n closable\n @click=\"() => onTagClick(tag)\"\n @close=\"() => onTagClose(tag)\"\n />\n </mc-grid-col>\n </mc-grid-row>\n <template v-if=\"relationRows.length\">\n <mc-grid-row v-for=\"(row, index) in relationRows\" :key=\"index\" :gutter-x=\"4\" :gutter-y=\"8\">\n <mc-grid-col v-for=\"tag in row\" :key=\"tag.id\">\n <mc-filter-chip\n :tag=\"tag\"\n :is-active=\"checkTagIsActive(tag)\"\n :closable=\"tag.closable\"\n @click=\"() => onTagClick(tag)\"\n @close=\"() => onTagClose(tag, row[0].relationKey)\"\n />\n </mc-grid-col>\n </mc-grid-row>\n </template>\n <mc-grid-row v-if=\"fastFilterTags.length\" :gutter-x=\"4\" :gutter-y=\"8\">\n <mc-grid-col v-for=\"tag in fastFilterTags\" :key=\"tag.id\">\n <mc-tooltip :content=\"tag.description || ''\" :placement=\"TooltipPositions.Top\" :size=\"TooltipSizes.S\">\n <mc-filter-chip :tag=\"tag\" closable @close=\"() => onTagClose(tag)\" />\n </mc-tooltip>\n </mc-grid-col>\n </mc-grid-row>\n </div>\n <div class=\"mc-filter-tags__body-right\">\n <mc-button v-if=\"hasButtonClear\" variation=\"dark-gray-outline\" @click=\"handleClear\">\n {{ placeholders.actions.clear }}\n </mc-button>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/colors' as *;\n@use '../../../../assets/tokens/border-radius' as *;\n.mc-filter-tags {\n $block-name: &;\n @include child-indent-bottom($space-100);\n &__body {\n display: flex;\n justify-content: space-between;\n padding: $space-100;\n border: 1px solid $color-outline-gray;\n border-radius: $radius-100;\n background-color: $color-white;\n min-height: $space-500;\n &-left {\n flex-grow: 1;\n }\n &-right {\n margin-inline-start: $space-100;\n .mc-button {\n padding: $space-50 $space-150;\n height: $space-300;\n }\n }\n .mc-grid-row {\n &:not(:last-child) {\n margin-bottom: $space-50 !important;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport McDatepicker from '@/components/elements/McDatepicker/McDatepicker.vue'\nimport { computed, type PropType } from 'vue'\nimport type { IBaseFilter, IFilterCondition, IFilterDateValue } from '@/types/IFilter'\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: IFilterCondition): void\n}>()\nconst props = defineProps({\n /**\n * Значение\n */\n modelValue: {\n type: Object as PropType<IFilterDateValue>,\n default: () => ({}) as IFilterDateValue\n },\n /**\n * Объект выбранного\n * фильтра\n */\n filter: {\n type: Object as PropType<IBaseFilter>,\n default: () => ({})\n },\n /**\n * Переводы локализаций\n */\n placeholders: {\n type: Object,\n required: true\n },\n useTimezone: {\n type: Boolean as PropType<boolean>,\n default: true\n }\n})\n\nconst period = computed({\n get() {\n return props.modelValue ? [props.modelValue.more, props.modelValue.less] : []\n },\n set(val) {\n const period: IFilterDateValue = { more: val?.[0], less: val?.[1] }\n /**\n * Событие по изменению периода\n */\n emit('update:modelValue', { value: period })\n }\n})\n</script>\n\n<template>\n <mc-datepicker\n v-model=\"period\"\n :placeholders=\"placeholders.calendar\"\n :placeholder=\"filter.placeholder || placeholders.choose\"\n :use-timezone=\"props.useTimezone\"\n name=\"condition_dates\"\n class=\"mc-filter-type-date\"\n range\n />\n</template>\n\n<style lang=\"scss\">\n.mc-filter-type-date {\n $block-name: &;\n width: 300px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McFieldText } from '@/components'\nimport type { IFilterCondition, IFilterPlaceholders, IFilterRangeValue, IRangeFilter } from '@/types/IFilter.js'\nimport { computed, type PropType, ref, watch } from 'vue'\nimport { InputTypes } from '@/enums'\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: IFilterCondition): void\n}>()\nconst props = defineProps({\n /**\n * Значение\n */\n modelValue: {\n type: Object as PropType<IFilterRangeValue>,\n default: () => ({\n more: null,\n less: null\n } as IFilterRangeValue)\n },\n /**\n * Объект выбранного\n * фильтра\n */\n filter: {\n type: Object as PropType<IRangeFilter>,\n default: () => ({})\n },\n /**\n * Переводы локализаций\n */\n placeholders: {\n type: Object as PropType<IFilterPlaceholders>,\n required: true\n }\n})\n\nconst currentMore = ref<string | number | null>(null)\nconst currentLess = ref<string | number | null>(null)\n\nconst more = computed<string | number | null>({\n get() {\n return props.modelValue?.more\n },\n set(val) {\n currentMore.value = val || null\n emitValue()\n }\n})\n\nconst less = computed<string | number | null>({\n get() {\n return props.modelValue?.less\n },\n set(val) {\n currentLess.value = val || null\n emitValue()\n }\n})\n\nwatch(\n () => props.modelValue,\n (val: IFilterRangeValue): void => {\n if (val) {\n currentMore.value = props.modelValue.more || null\n currentLess.value = props.modelValue.less || null\n }\n },\n { deep: true }\n)\n\nconst hasValue = (val: string | number | null) => {\n return val || Number.isInteger(val)\n}\n\nconst emitValue = () => {\n const hasMore = hasValue(currentMore.value)\n const hasLess = hasValue(currentLess.value)\n const hasMin = props.filter.min && hasValue(props.filter.min)\n const hasMax = props.filter.max && hasValue(props.filter.max)\n\n let more = hasMore ? Number(currentMore.value) : null\n let less = hasLess ? Number(currentLess.value) : null\n\n if (props.filter.min && more && more < props.filter.min && hasMin) {\n more = props.filter.min\n }\n if (props.filter.max && less && less > props.filter.max && hasMax) {\n less = props.filter.max\n }\n if (props.filter.max && more && more > props.filter.max && hasMax) {\n more = props.filter.max\n }\n if (props.filter.min && less && less < props.filter.min && hasMin) {\n less = props.filter.min\n }\n const result: IFilterRangeValue = {\n more: more || null,\n less: less || null\n }\n currentLess.value = less\n currentMore.value = more\n\n /**\n * Событие по изменению интервала\n */\n emit('update:modelValue', { value: result })\n}\n</script>\n\n<template>\n <div class=\"mc-filter-type-range\">\n <mc-field-text\n v-model=\"more\"\n :placeholder=\"placeholders.from.toLowerCase()\"\n :type=\"InputTypes.AmountFormat\"\n name=\"range_more\"\n />\n <mc-field-text\n v-model=\"less\"\n :placeholder=\"placeholders.to.toLowerCase()\"\n :type=\"InputTypes.AmountFormat\"\n name=\"range_less\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/spacings' as *;\n.mc-filter-type-range {\n $block-name: &;\n display: flex;\n @include child-indent-right($space-100);\n .mc-field-text {\n width: 146px;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McButton, McTitle, McFieldSelect, McFieldText } from '@/components'\nimport { computed, type PropType, ref, watch, nextTick } from 'vue'\nimport type {\n IFilterPlaceholders,\n FilterRelationValue,\n IRelationFilter,\n FilterOption,\n IFilterParsedValueFilter,\n FilterConditionValue,\n FilterRelationName,\n IFilterCondition\n} from '@/types'\nimport { FilterRelations } from '@/enums'\nimport { useHelper } from '@/composables'\nimport { useDebounceFn } from '@vueuse/core'\n\nconst helper = useHelper()\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: IFilterCondition): void\n}>()\nconst props = defineProps({\n /**\n * Значение\n */\n modelValue: {\n type: Object as PropType<FilterRelationValue>,\n default: () => ({})\n },\n /**\n * Объект выбранного\n * фильтра\n */\n filter: {\n type: Object as PropType<IRelationFilter>,\n default: () => ({})\n },\n /**\n * Переводы локализаций\n */\n placeholders: {\n type: Object as PropType<IFilterPlaceholders>,\n required: true\n },\n /**\n * Текущее значение\n * добавленных фильтров\n */\n currentValues: {\n type: Object as PropType<IFilterParsedValueFilter>,\n default: () => ({})\n }\n})\nconst debounce = useDebounceFn((method) => {\n method()\n}, 100)\nconst relations = ref<FilterRelations[]>(Object.values(FilterRelations))\nconst relationType = ref<FilterRelations>(FilterRelations.Is)\nconst ajaxOptions = ref<FilterOption[]>([])\nconst loading = ref<boolean>(false)\n\nconst component = computed(() => {\n return props.filter.is_text ? McFieldText : McFieldSelect\n})\n\nconst computedPlaceholder = computed(() => {\n return props.filter.placeholder || props.filter.is_text ? props.placeholders.enter : props.placeholders.choose\n})\n\nconst isAjax = computed((): boolean => {\n return props.filter.getAjaxOptions?.constructor === Function\n})\n\nconst computedOptions = computed(() => {\n let options: FilterOption[] = isAjax.value ? ajaxOptions.value : props.filter.options || []\n\n if (props.currentValues[props.filter.value]) {\n const category: FilterConditionValue = props.currentValues[props.filter.value] || ({} as FilterRelationValue)\n\n let selected: FilterConditionValue[] = []\n for (let [key, val] of Object.entries(category)) {\n if (key === FilterRelations.Exists) {\n return []\n }\n selected = [...selected, ...(Array.isArray(val) ? val : [[val]])]\n }\n\n options = options.filter((o) => !selected.includes(String(o.value)))\n }\n\n return options\n})\n\nconst selectedOptionValue = computed<FilterRelationValue>({\n get() {\n let val: FilterConditionValue = props.modelValue\n if (val) {\n for (let [relationKey, relationVal] of Object.entries(props.modelValue)) {\n let _relationKey = relationKey as string\n let _relationVal = relationVal as string\n\n if (_relationKey === FilterRelations.Exists) {\n val = ''\n } else {\n val = _relationVal?.[0] || ''\n }\n }\n if (isAjax.value && val) {\n addAjaxOption(val as FilterRelationValue)\n }\n }\n return val as FilterRelationValue\n },\n set(val: FilterRelationValue) {\n if (relationType.value === FilterRelations.Exists) return\n setValue(val)\n }\n})\n\nconst changeRelationType = (relation: FilterRelations): void => {\n if (relationType.value === relation) return\n relationType.value = relation\n setValue(selectedOptionValue.value)\n}\nconst setAjaxOptions = async (value: string): Promise<void> => {\n loading.value = true\n ajaxOptions.value = props.filter.getAjaxOptions && (await props.filter.getAjaxOptions(value))\n loading.value = false\n}\n\nconst addAjaxOption = async (value: FilterRelationValue): Promise<void> => {\n const option = props.filter.getAjaxOne && (await props.filter.getAjaxOne(value))\n ajaxOptions.value = helper.uniqWith([...ajaxOptions.value, option], helper.isEqual)\n}\n\nconst handleSearchChange = (value: string | unknown): void => {\n if (!isAjax.value || !value) return\n debounce(() => setAjaxOptions(value as string))\n}\n\nconst setValue = (value: FilterRelationValue): void => {\n let currentValue: FilterRelationValue | null = null\n let currentValueName: FilterRelationName | null = null\n const hasVal = value || Number.isInteger(value)\n if (relationType.value !== FilterRelations.Exists && hasVal) {\n const name = props.filter.is_text\n ? value\n : computedOptions.value.find((o) => String(o.value) === String(value))?.name\n currentValue = { [relationType.value]: [String(value)] }\n currentValueName = { [relationType.value]: { [String(value)]: name } }\n }\n\n if (relationType.value === FilterRelations.Exists && !props.currentValues[props.filter.value]) {\n currentValue = { [FilterRelations.Exists]: 0 }\n currentValueName = { [FilterRelations.Exists]: null }\n }\n /**\n * Событие по изменению значения\n */\n\n const payload: IFilterCondition = {\n value: currentValue as FilterRelationValue,\n valueName: currentValueName as FilterRelationName\n }\n emit('update:modelValue', payload)\n}\n\nwatch(\n () => props.modelValue,\n (val): void => {\n if (val) {\n for (let relationKey of Object.keys(val)) {\n relationType.value = relationKey as FilterRelations\n }\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.filter,\n (): void => {\n relationType.value = FilterRelations.Is\n nextTick(() => (ajaxOptions.value = []))\n }\n)\n</script>\n\n<template>\n <component\n :is=\"component\"\n v-model=\"selectedOptionValue as string\"\n :options=\"computedOptions\"\n :internal-search=\"!isAjax\"\n :placeholder=\"computedPlaceholder\"\n :loading=\"loading\"\n :disabled=\"relationType === FilterRelations.Exists\"\n hide-selected\n class=\"mc-filter-type-relation\"\n :name=\"`relation_${props.filter.type}`\"\n @search-change=\"handleSearchChange\"\n >\n <template #header>\n <div class=\"mc-filter-type-relation__header\">\n <mc-title>{{ placeholders.condition }}</mc-title>\n <div class=\"mc-filter-type-relation__buttons\">\n <mc-button\n v-for=\"relation in relations\"\n :key=\"relation\"\n :variation=\"relationType === relation ? 'purple' : 'dark-gray-outline'\"\n @click=\"() => changeRelationType(relation)\"\n >\n {{ placeholders.actions[`${relation === FilterRelations.Exists ? 'empty' : relation}`] }}\n </mc-button>\n </div>\n </div>\n </template>\n </component>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/sizes' as *;\n.mc-filter-type-relation {\n $block-name: &;\n width: 300px;\n &__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: -$space-50;\n margin-top: -$space-50;\n }\n &__buttons {\n display: flex;\n @include child-indent-right($space-50);\n .mc-button {\n height: $size-300;\n padding: $space-50 $space-150;\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McFieldText } from '@/components'\nimport { computed, type PropType } from 'vue'\nimport type { FilterTextValue, IBaseFilter, IFilterCondition, IFilterPlaceholders } from '@/types'\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: IFilterCondition): void\n}>()\nconst props = defineProps({\n /**\n * Значение\n */\n modelValue: {\n type: [String, Number] as PropType<FilterTextValue>,\n default: null\n },\n /**\n * Объект выбранного\n * фильтра\n */\n filter: {\n type: Object as PropType<IBaseFilter>,\n default: () => ({})\n },\n /**\n * Переводы локализаций\n */\n placeholders: {\n type: Object as PropType<IFilterPlaceholders>,\n required: true\n }\n})\n\nconst text = computed({\n get(): FilterTextValue {\n return props.modelValue\n },\n set(val: FilterTextValue) {\n /**\n * Событие по изменению значения\n */\n emit('update:modelValue', { value: val })\n }\n})\n</script>\n\n<template>\n <mc-field-text\n v-model=\"text\"\n :placeholder=\"filter.placeholder || placeholders.enter\"\n class=\"mc-filter-type-text\"\n name=\"mc_filter_type_text\"\n />\n</template>\n\n<style lang=\"scss\">\n.mc-filter-type-text {\n $block-name: &;\n width: 300px;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { adaptiveAdditionalProps, adaptivePropsParams, adaptivePropsSizes } from '@/utils/mcGridColAdaptiveProps'\nimport { computed, inject } from 'vue'\nimport type { IGridGutters } from '@/types/IGrid'\nimport type { ColumnSpanUnion } from '@/types/styles/Grid'\nimport { useHelper } from '@/composables'\n\nconst helper = useHelper()\nconst provideData = inject('provideData', { gutterX: 0, gutterY: 0 } as IGridGutters)\n\nconst props = defineProps({\n ...adaptiveAdditionalProps,\n /**\n * Кол-во колонок (всего 12)\n */\n span: { type: [String as () => ColumnSpanUnion] },\n\n /**\n * Очерёдность\n */\n order: { type: Number },\n\n /**\n * Отступ (margin-left)\n */\n offset: { type: Number },\n\n /**\n * Отступ (left)\n */\n push: { type: Number },\n\n /**\n * Отступ (right)\n */\n pull: { type: Number },\n /**\n * Автоматически тянущаяся колонка\n * на всё свободное пространство\n */\n stretchSelf: {\n type: Boolean,\n default: false\n },\n\n /**\n * Основа флекса, которая является начальным размером элемента\n * (указывать с единицами измерения: px, %...)\n */\n basis: {\n type: String,\n default: 'auto'\n }\n})\n\nconst classes = computed((): { [key: string]: boolean } => {\n const list = {} as { [key: string]: boolean }\n adaptivePropsParams.forEach((value) => {\n //@ts-ignore\n list[`mc-grid-col--${value}-${props[value]}`] = !!props[value]\n adaptivePropsSizes.forEach((size) => {\n //@ts-ignore\n const sizeValue = props[`${value}${helper.upperFirst(size)}`]\n list[`mc-grid-col--${value}-${size}-${sizeValue}`] = !!sizeValue\n })\n })\n return list\n})\n\nconst styles = computed((): { [key: string]: string | number } => {\n let colStyle = {} as { [key: string]: string | number }\n\n if (provideData.gutterX !== 0) {\n colStyle['padding-left'] = `${provideData.gutterX / 2}px`\n colStyle['padding-right'] = `${provideData.gutterX / 2}px`\n }\n\n if (provideData.gutterY !== 0) {\n colStyle['padding-top'] = `${provideData.gutterY / 2}px`\n colStyle['padding-bottom'] = `${provideData.gutterY / 2}px`\n }\n\n if (props.stretchSelf) {\n colStyle['flex'] = `1 0 ${props.basis}`\n } else if (props.basis !== 'auto') {\n colStyle['flex'] = `0 0 ${props.basis}`\n }\n\n return props.order ? { ...colStyle, order: props.order } : colStyle\n})\n</script>\n\n<template>\n <div :class=\"classes\" :style=\"styles\" class=\"mc-grid-col\">\n <!-- @slot Слот контента -->\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '@/assets/styles/mixins' as *;\n@use '@/assets/tokens/media-queries' as *;\n.mc-grid-col {\n $block-name: &;\n box-sizing: border-box;\n $cols: 12;\n\n display: block;\n position: relative;\n max-width: 100%;\n\n @mixin generate-col($viewport: '') {\n @for $i from 1 through $cols {\n &--span#{$viewport}-#{$i} {\n flex: 0 0 calc((#{$i} / #{$cols}) * 100%);\n max-width: calc((#{$i} / #{$cols}) * 100%);\n }\n\n &--push#{$viewport}-#{$i} {\n inset-inline-start: calc((#{$i} / #{$cols}) * 100%);\n }\n\n &--pull#{$viewport}-#{$i} {\n inset-inline-end: calc((#{$i} / #{$cols}) * 100%);\n }\n\n &--offset#{$viewport}-#{$i} {\n margin-inline-start: calc((#{$i} / #{$cols}) * 100%);\n }\n\n &--order#{$viewport}-#{$i} {\n order: #{$i};\n }\n }\n }\n\n @include generate-col('');\n\n @media #{$media-query-xs} {\n @include generate-col('-xs');\n }\n\n @media #{$media-query-s} {\n @include generate-col('-s');\n }\n\n @media #{$media-query-m} {\n @include generate-col('-m');\n }\n\n @media #{$media-query-l} {\n @include generate-col('-l');\n }\n\n @media #{$media-query-xl} {\n @include generate-col('-xl');\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, provide } from 'vue'\nimport type { IGridGutters } from '@/types/IGrid'\nimport { ColumnAlignment, ColumnJustifyAlignment } from '@/enums/Grid'\nimport type { ColumnAlignmentUnion, ColumnJustifyAlignmentUnion } from '@/types/styles/Grid'\n\nconst props = defineProps({\n /**\n * Расстояние между колонками по горизонтали\n */\n gutterX: {\n type: Number,\n default: 0\n },\n\n /**\n * Расстояние между колонками по вертикали\n */\n gutterY: {\n type: Number,\n default: 0\n },\n\n /**\n * Выравнивание по горизонтали\n */\n justify: {\n type: String as () => ColumnJustifyAlignmentUnion,\n default: ColumnJustifyAlignment.Left\n },\n\n /**\n * Выравнивание по вертикали\n */\n align: {\n type: String as () => ColumnAlignmentUnion,\n default: ColumnAlignment.Top\n },\n\n /**\n * Автоматически тянущиеся колонки\n */\n stretch: {\n type: Boolean,\n default: false\n },\n\n /**\n * Перенос колонок\n */\n wrap: {\n type: Boolean,\n default: true\n }\n})\n\nprovide('provideData', { gutterX: props.gutterX, gutterY: props.gutterY } as IGridGutters)\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n [`mc-grid-row--justify-${props.justify}`]: !!props.justify,\n [`mc-grid-row--align-${props.align}`]: !!props.align,\n ['mc-grid-row--stretch']: !!props.stretch\n }\n})\n\nconst styles = computed((): { [key: string]: string | number } => {\n let result = {} as { [key: string]: string | number }\n\n if (props.gutterX !== 0) {\n result['margin-left'] = `${-props.gutterX / 2}px`\n result['margin-right'] = `${-props.gutterX / 2}px`\n }\n\n if (props.gutterY !== 0) {\n result['margin-top'] = `${-props.gutterY / 2}px`\n result['margin-bottom'] = `${-props.gutterY / 2}px`\n }\n\n if (props.wrap) {\n result['flex-wrap'] = 'wrap'\n }\n let justify\n switch (props.justify) {\n case 'left':\n justify = 'flex-start'\n break\n case 'right':\n justify = 'flex-end'\n break\n case 'center':\n justify = 'center'\n break\n case 'around':\n justify = 'space-around'\n break\n case 'between':\n justify = 'space-between'\n break\n }\n let align\n switch (props.align) {\n case 'top':\n align = 'flex-start'\n break\n case 'middle':\n align = 'center'\n break\n case 'bottom':\n align = 'flex-end'\n break\n case 'stretch':\n align = 'stretch'\n break\n }\n if (align) result['--mc-grid-row-align'] = align\n if (justify) result['--mc-grid-row-justify'] = justify\n\n return result\n})\n</script>\n\n<template>\n <div class=\"mc-grid-row\" :class=\"classes\" :style=\"styles\">\n <!-- @slot Слот для дочерних mc-grid-col -->\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\">\n.mc-grid-row {\n $block-name: &;\n display: flex;\n flex-direction: row;\n justify-content: var(--mc-grid-row-justify);\n align-items: var(--mc-grid-row-align);\n &--stretch {\n > .mc-grid-col {\n flex: 1;\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { Colors, type ColorTypes, Sizes, type SizeTypes } from '@/types'\nimport { computed } from 'vue'\n\nconst props = defineProps({\n size: {\n type: String as () => SizeTypes,\n default: '500'\n },\n backgroundColor: {\n type: String as () => ColorTypes,\n default: 'white'\n }\n})\nconst styles = computed((): { [key: string]: string } => {\n return {\n '--mc-overlay-color': props.backgroundColor && Colors[props.backgroundColor],\n '--mc-overlay-spinner-size': props.size && Sizes[props.size]\n }\n})\n</script>\n\n<template>\n <section ref=\"overlay\" class=\"mc-overlay\" :style=\"styles\">\n <div class=\"mc-overlay__background\" />\n <section class=\"mc-overlay__spinner\" />\n </section>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/tokens/z-indexes' as *;\n@use '../../../assets/tokens/colors' as *;\n.mc-overlay {\n $block-name: &;\n --mc-overlay-spinner-size: initial;\n --mc-overlay-color: initial;\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: $z-index-overlay;\n &__background {\n position: absolute;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n background-color: var(--mc-overlay-color);\n opacity: 0.85;\n }\n &__spinner {\n display: block;\n border: 2px solid $color-purple;\n border-inline-start-color: transparent;\n border-radius: 50%;\n animation: rotate 1.5s infinite linear;\n\n width: var(--mc-overlay-spinner-size);\n min-width: var(--mc-overlay-spinner-size);\n height: var(--mc-overlay-spinner-size);\n min-height: var(--mc-overlay-spinner-size);\n\n @keyframes rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport type { PreviewSizesUnion } from '@/types/IPreview'\n\nconst props = defineProps({\n /**\n * Размеры:\n * `s, m, l`\n */\n size: {\n type: String as () => PreviewSizesUnion,\n default: 'm'\n }\n})\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-preview': true,\n [`mc-preview--size-${props.size}`]: !!props.size\n }\n})\n</script>\n\n<template>\n <section :class=\"classes\">\n <div v-if=\"$slots.left\" class=\"mc-preview__left\">\n <!-- @slot Слот слева -->\n <slot name=\"left\" />\n </div>\n <div class=\"mc-preview__center\">\n <div class=\"mc-preview__top\">\n <!-- @slot Слот сверху -->\n <slot name=\"top\" />\n </div>\n <div v-if=\"$slots.bottom\" class=\"mc-preview__bottom\">\n <!-- @slot Слот внизу -->\n <slot name=\"bottom\" />\n </div>\n </div>\n <div v-if=\"$slots.right\" class=\"mc-preview__right\">\n <!-- @slot Слот справа -->\n <slot name=\"right\" />\n </div>\n </section>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/spacings' as *;\n.mc-preview {\n $block-name: &;\n display: flex;\n flex-wrap: nowrap;\n max-width: 100%;\n &__left {\n flex: 0 0 auto;\n &:empty {\n display: none;\n }\n }\n &__center {\n @include layout-flex-fix();\n flex: 1 1 auto;\n align-self: center;\n }\n &__top {\n &:empty {\n display: none;\n }\n }\n &__bottom {\n &:empty {\n display: none;\n }\n }\n &__right {\n flex: 0 0 auto;\n &:empty {\n display: none;\n }\n }\n @mixin previewIndents($indent, $bottom: '') {\n #{$block-name}__left {\n margin-inline-end: $indent;\n }\n #{$block-name}__right {\n margin-inline-start: $indent;\n }\n @if $bottom {\n #{$block-name}__bottom {\n margin-top: $bottom;\n }\n }\n }\n &--size {\n &-s {\n @include previewIndents($space-50);\n }\n &-m {\n @include previewIndents($space-100);\n }\n &-l {\n @include previewIndents($space-150, $space-50);\n }\n &-xl {\n @include previewIndents($space-200, $space-50);\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, onMounted, type PropType, provide, reactive, ref, watch } from 'vue'\nimport { McSideBarTop, McSideBarCenter, McSideBarBottom } from '@/components'\n\nimport type {\n IconsListUnion,\n ISideBarApp,\n ISideBarChatra,\n ISideBarMenuItem,\n ISidebarThemeConfig,\n ISidebarThemeConfigProvide,\n TitleVariationsUnion\n} from '@/types'\nimport { defaultThemes } from '@/mocks/sidebar'\nimport { SidebarTheme, TitleVariations } from '@/enums'\n\nconst emit = defineEmits<{\n (e: 'absolute-mode', value: boolean): void\n (e: 'hidden-mode', value: boolean): void\n (e: 'compact', value: boolean): void\n (e: 'chatraClick'): void\n}>()\nconst props = defineProps({\n /**\n * Название сервиса\n *\n */\n logoTitle: {\n type: String as PropType<string>,\n default: 'Dashboard'\n },\n /**\n * Размер текста названия сервиса\n *\n */\n logoTitleVariation: {\n type: String as () => TitleVariationsUnion,\n default: TitleVariations.Subtitle\n },\n /**\n * Путь до изображения\n *\n */\n logoSrc: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Имя иконки\n * заголовка\n */\n logoIcon: {\n type: String as () => IconsListUnion,\n default: ''\n },\n /**\n * Заголовок\n * центрального блока\n */\n menuMainTitle: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Центральное меню\n *\n */\n menuMain: {\n type: Array as PropType<ISideBarMenuItem[]>,\n default: () => []\n },\n /**\n * Каунты для пунктов меню\n * вставляются в пункты с ключем 'count_key'\n *\n */\n counts: {\n type: Object as PropType<Record<string, number | null>>,\n default: () => ({})\n },\n /**\n * Меню приложений\n *\n */\n menuApps: {\n type: Array as PropType<ISideBarApp[]>,\n default: () => []\n },\n /**\n * Config чатры\n *\n */\n chatraConfig: {\n type: Object as PropType<ISideBarChatra>,\n default: () => ({})\n },\n /**\n * Текст кнопки\n * сворачивания меню\n */\n hideText: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Компактный вид\n */\n compact: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Цветовая схема\n */\n variable: {\n type: String as PropType<SidebarTheme>,\n default: SidebarTheme.Black\n },\n /**\n * Ширина сайдбара\n */\n width: {\n type: String as PropType<string>,\n default: '216px'\n },\n /**\n * Ширина компактного сайдбара\n */\n compactWidth: {\n type: String as PropType<string>,\n default: '56px'\n },\n /**\n * Брейкпоинт после которого\n * сайдбар становится абсолютным и появляется затемненный бэкдроп\n */\n absoluteBreakpoint: {\n type: Number as PropType<number>,\n default: null\n },\n /**\n * Брейкпоинт после которого\n * сайдбар полностью прячется\n */\n hiddenBreakpoint: {\n type: Number as PropType<number>,\n default: null\n }\n})\n\nconst is_hidden = ref<boolean>(false)\nconst pretty_compact = ref<boolean>(props.compact)\nconst has_compact_class = ref<boolean>(props.compact)\nconst window_width = ref<number>(0)\n\nconst sideBarClasses = computed((): { [key: string]: boolean } => {\n return {\n 'mc-side-bar--compact': has_compact_class.value,\n [currentThemeConfig.value.className]: true\n }\n})\n\nconst sideBarStyles = computed((): { [key: string]: string } => {\n return {\n overflow: `${is_hidden.value ? 'hidden' : 'visible'}`,\n width: has_compact_class.value ? props.compactWidth : props.width\n }\n})\n\nconst wrapperStyles = computed((): { [key: string]: string | undefined } => {\n const position =\n hiddenMode.value && has_compact_class.value\n ? {\n position: 'absolute',\n left: `-${props.compactWidth}`\n }\n : {}\n\n let width = {\n width: has_compact_class.value ? props.compactWidth : props.width\n }\n if (absoluteMode.value) {\n width.width = props.compactWidth\n }\n if (hiddenMode.value) {\n width.width = '0px'\n }\n return {\n ...width,\n ...position\n }\n})\n\nconst backdropClasses = computed((): { [key: string]: boolean } => {\n return {\n 'mc-side-bar-wrapper__backdrop--full-width':\n !has_compact_class.value && window_width.value < props.absoluteBreakpoint\n }\n})\n\nconst absoluteMode = computed((): boolean => {\n return !!props.absoluteBreakpoint && window_width.value < props.absoluteBreakpoint\n})\n\nconst hiddenMode = computed((): boolean => {\n return !!props.hiddenBreakpoint && window_width.value < props.hiddenBreakpoint\n})\n\nconst currentThemeConfig = computed((): ISidebarThemeConfig => {\n return sidebarThemeConfig.value[props.variable] || sidebarThemeConfig.value[SidebarTheme.Black]\n})\n\nconst sidebarThemeConfig = computed((): Record<SidebarTheme, ISidebarThemeConfig> => {\n return {\n black: defaultThemes.black,\n white: defaultThemes.white\n }\n})\n\nonMounted((): void => {\n if (props.absoluteBreakpoint || (props.hiddenBreakpoint && window)) {\n resize()\n window.addEventListener('resize', resize)\n }\n})\n\nonBeforeUnmount((): void => {\n window.removeEventListener('resize', resize)\n})\n\nconst handleToggleSize = (): void => {\n has_compact_class.value = !has_compact_class.value\n emit('compact', has_compact_class.value)\n}\n\nconst openSideBar = (): void => {\n has_compact_class.value = false\n emit('compact', has_compact_class.value)\n}\n\nconst resize = (): void => {\n window_width.value = window.innerWidth\n}\n\nwatch(\n () => has_compact_class.value,\n (value: boolean): void => {\n if (value) {\n setTimeout((): void => {\n pretty_compact.value = value\n }, 280)\n } else {\n pretty_compact.value = value\n }\n is_hidden.value = true\n setTimeout((): void => {\n is_hidden.value = false\n }, 280)\n }\n)\n\nwatch(\n () => props.compact,\n (value: boolean): void => {\n has_compact_class.value = value\n }\n)\n\nwatch(\n () => absoluteMode.value,\n (value: boolean): void => {\n emit('absolute-mode', value)\n },\n { immediate: true }\n)\n\nwatch(\n () => hiddenMode.value,\n (value: boolean): void => {\n emit('hidden-mode', value)\n },\n { immediate: true }\n)\n\nprovide('provideData', reactive<ISidebarThemeConfigProvide>({ currentThemeConfig: currentThemeConfig.value }))\n</script>\n\n<template>\n <article ref=\"sidebar-wrapper\" class=\"mc-side-bar-wrapper\" :style=\"wrapperStyles\">\n <section class=\"mc-side-bar-wrapper__backdrop\" :class=\"backdropClasses\" @click.stop.prevent=\"handleToggleSize\">\n <div ref=\"sidebar\" class=\"mc-side-bar\" :class=\"sideBarClasses\" :style=\"sideBarStyles\" @click.stop>\n <mc-side-bar-top\n :logo-title=\"logoTitle\"\n :logo-title-variation=\"logoTitleVariation\"\n :logo-src=\"logoSrc\"\n :logo-icon=\"logoIcon\"\n :compact=\"pretty_compact\"\n :menu-apps=\"menuApps\"\n >\n <template #title-append>\n <slot name=\"title-append\" />\n </template>\n </mc-side-bar-top>\n <section class=\"mc-side-bar__scrollable-container\">\n <mc-side-bar-center\n :title=\"menuMainTitle\"\n :menu-main=\"menuMain\"\n :counts=\"counts\"\n :chatra-config=\"chatraConfig\"\n :compact=\"pretty_compact\"\n @handlerChatraClick=\"emit('chatraClick')\"\n @open-side-bar=\"openSideBar\"\n />\n <mc-side-bar-bottom\n :hide-text=\"hideText\"\n :compact=\"pretty_compact\"\n :hidden-mode=\"hiddenMode\"\n :sidebar-width=\"width\"\n @toggle-size=\"handleToggleSize\"\n >\n <template #bottom-message>\n <slot name=\"bottom-message\" />\n </template>\n </mc-side-bar-bottom>\n </section>\n </div>\n </section>\n </article>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/colors' as *;\n.mc-side-bar {\n $block-name: &;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n padding: $space-250 $space-100 $space-400;\n transition: width 300ms ease;\n overflow-x: hidden;\n overflow-y: auto;\n @include child-indent-bottom($space-400);\n &--color-theme-black {\n background-color: $color-black;\n }\n &--color-theme-white {\n background-color: $color-white;\n border-inline-end: 1px solid $color-hover-gray;\n }\n &__scrollable-container {\n overflow-y: auto;\n overflow-x: hidden;\n height: 100%;\n display: flex;\n flex-direction: column;\n @include hide-scrollbar;\n }\n &-wrapper {\n height: 100%;\n transition: width 300ms ease;\n &__backdrop {\n position: absolute;\n background-color: rgba($color-black, 0.6);\n z-index: 25;\n height: inherit;\n .mc-side-bar {\n height: inherit;\n }\n &--full-width {\n width: 100%;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McSideBarButton } from '@/components'\nimport { computed, inject, type PropType } from 'vue'\nimport type { ButtonVariationUnion, ColorTypes, ISidebarThemeConfigProvide } from '@/types'\nimport { defaultThemes } from '@/mocks/sidebar'\nimport { SidebarTheme } from '@/enums'\n\nconst provideData = inject<ISidebarThemeConfigProvide>('provideData', {} as ISidebarThemeConfigProvide)\nconst emit = defineEmits<{\n (e: 'toggle-size', value: boolean): void\n}>()\nconst props = defineProps({\n /**\n * Текст кнопки\n * сворачивания меню\n */\n hideText: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Компактный вид\n */\n compact: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n hiddenMode: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n sidebarWidth: {\n type: String as PropType<string>,\n default: null\n }\n})\n\nconst themeConfig = computed(() => {\n return provideData.currentThemeConfig || defaultThemes[SidebarTheme.Black]\n})\n\nconst closeButtonProps = computed((): { variable: ButtonVariationUnion; secondaryColor: ColorTypes } => {\n return themeConfig.value?.closeButton\n})\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-side-bar-bottom--compact': props.compact\n }\n})\n\nconst messageStyles = computed((): { [key: string]: string } => {\n return {\n minWidth: props.sidebarWidth\n }\n})\n\nconst handleClick = (): void => {\n emit('toggle-size', !props.compact)\n}\n</script>\n\n<template>\n <div class=\"mc-side-bar-bottom\" :class=\"classes\">\n <div v-if=\"!compact && $slots['bottom-message']\" class=\"mc-side-bar-bottom__slot-message\" :style=\"messageStyles\">\n <slot name=\"bottom-message\" />\n </div>\n <mc-side-bar-button\n v-if=\"!hiddenMode\"\n class=\"mc-side-bar-bottom__hide-button\"\n icon=\"arrow_backward\"\n :title=\"hideText\"\n :compact=\"compact\"\n :variation=\"closeButtonProps.variable\"\n :secondary-color=\"closeButtonProps.secondaryColor\"\n @click.stop.prevent=\"handleClick\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/tokens/durations' as *;\n@use '../../../../assets/tokens/spacings' as *;\n.mc-side-bar-bottom {\n $block-name: &;\n\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n justify-content: flex-end;\n min-height: max-content;\n\n &__hide-button {\n .mc-side-bar-button__icon {\n transition: transform $duration-s;\n }\n }\n\n &--compact {\n #{$block-name}__hide-button {\n .mc-side-bar-button__icon {\n transform: rotate(180deg);\n }\n }\n }\n &__slot-message {\n margin-inline-start: -$space-100;\n margin-inline-end: -$space-100;\n padding-inline-start: $space-100;\n padding-inline-end: $space-100;\n & + * {\n margin-top: $space-500;\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McButton, McSvgIcon, McChip } from '@/components'\nimport type { ButtonVariationUnion, ColorTypes, IconsListUnion, ISidebarThemeConfigProvide } from '@/types'\nimport { computed, inject, type PropType, useAttrs } from 'vue'\nimport { ButtonSize, HorizontalAlignment, SidebarTheme, TooltipPositions } from '@/enums'\nimport { defaultThemes } from '@/mocks/sidebar'\n\nconst attrs = useAttrs()\nconst provideData = inject<ISidebarThemeConfigProvide>('provideData', {} as ISidebarThemeConfigProvide)\nconst props = defineProps({\n /**\n * Если нужна ссылка внутри приложения:\n */\n to: {\n type: Object as PropType<string>,\n default: null\n },\n /**\n * Если нужна обычная ссылка:\n * `https://mcpay.io/`\n */\n href: {\n type: String as PropType<string>,\n default: null\n },\n /**\n * Если нужна иконка\n */\n icon: {\n type: String as () => IconsListUnion,\n default: ''\n },\n /**\n * Если нужен конкретный\n * цвет иконки\n */\n iconColor: {\n type: String as () => ColorTypes,\n default: 'currentColor'\n },\n /**\n * Тайтл кнопки\n */\n title: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Compact size\n */\n compact: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Дизайн:\n * `purple, red, purple-outline, purple-invert, purple-flat и т.д.`\n */\n variation: {\n type: String as () => ButtonVariationUnion\n },\n /**\n * Если нужен другой цвет при взаимодействии\n */\n secondaryColor: {\n type: String as () => ColorTypes\n },\n withTooltip: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n withIndicator: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n isActive: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Additional info\n */\n info: {\n type: [String, Number] as PropType<string | number | null>,\n default: ''\n },\n /**\n * Exact\n *\n */\n exact: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Отключенное состояние\n *\n */\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n})\n\nconst themeConfig = computed(() => {\n return provideData.currentThemeConfig || defaultThemes[SidebarTheme.Black]\n})\n\nconst classes = computed(() => {\n return {\n 'mc-side-bar-button': true,\n [`mc-side-bar--${themeConfig.value.mode || 'black'}__button`]: true,\n 'purple-hover': !props.secondaryColor && themeConfig.value.mainMenuLinks.variable === 'black-flat',\n //@ts-ignore\n [attrs.class]: !!attrs.class\n }\n})\n\nconst btnAttrs = computed(() => {\n return {\n ...attrs,\n variation: props.variation || themeConfig.value.mainMenuLinks.variable,\n secondaryColor: props.secondaryColor || themeConfig.value.mainMenuLinks.secondaryColor,\n textAlign: HorizontalAlignment.Left,\n fullWidth: true,\n size: props.compact ? ButtonSize.SCompact : ButtonSize.S,\n href: props.href,\n to: props.to,\n exact: props.exact,\n disabled: props.disabled,\n isActive: props.isActive,\n tooltip: props.compact && props.withTooltip ? props.title : '',\n tooltipPlacement: TooltipPositions.Right\n }\n})\n</script>\n\n<template>\n <mc-button v-bind=\"btnAttrs\" :class=\"classes\">\n <template #icon-prepend>\n <mc-svg-icon v-if=\"icon\" :fill=\"iconColor\" class=\"mc-side-bar-button__icon\" :name=\"icon\" />\n <span v-if=\"icon && compact && (info || withIndicator)\" class=\"mc-side-bar-button__dot\" />\n </template>\n <template v-if=\"!compact\">{{ title }}</template>\n <template v-if=\"!compact\" #icon-append>\n <mc-chip\n v-if=\"info || withIndicator\"\n variation=\"purple\"\n class=\"mc-side-bar-button__chip\"\n :class=\"{ indicator: withIndicator }\"\n >\n {{ withIndicator ? '' : info }}\n </mc-chip>\n </template>\n </mc-button>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/colors' as *;\n@use '../../../../assets/tokens/sizes' as *;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/border-radius' as *;\n.mc-side-bar-button {\n $block-name: &;\n &__tooltip {\n width: 100%;\n }\n &__dot {\n @include position(absolute, $space-100 6px null null);\n @include size($size-100);\n background-color: $color-purple;\n border-radius: $radius-circle;\n }\n &__chip {\n &.indicator {\n margin: 6px;\n padding: 0 !important;\n width: $size-150;\n min-height: $size-150;\n }\n }\n &.mc-button {\n padding: $space-100;\n opacity: 1;\n height: auto;\n border-radius: $space-50;\n justify-content: flex-start;\n .mc-svg-icon {\n @include size($size-300);\n }\n &.purple-hover:hover {\n background-color: $color-lighter-purple;\n }\n\n .mc-button__text {\n margin-inline-end: $space-100;\n }\n .mc-button__prepend {\n margin-inline-end: $space-100;\n }\n .mc-button__append {\n margin-inline-start: auto;\n }\n .mc-chip {\n height: auto;\n padding: $space-50 $space-100;\n font-variant-numeric: tabular-nums;\n }\n }\n}\n.mc-side-bar {\n &--black__button {\n &.mc-button--is-active,\n &.mc-button.nuxt-link-active {\n color: $color-white;\n background-color: rgba(92, 102, 112, 0.4);\n pointer-events: auto;\n }\n }\n &--white__button {\n &.mc-button--is-active,\n &.mc-button.nuxt-link-active {\n color: $color-purple;\n background-color: $color-lighter-purple;\n pointer-events: auto;\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McTitle, McSideBarButton, McSeparator, McButton, McSvgIcon } from '@/components'\nimport { useRandomNumber } from '@/composables'\nimport { computed, inject, nextTick, onBeforeMount, type PropType, ref, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport type { ISideBarChatra, ISideBarMenuItem, ISideBarMenuItemEnrichment, ISidebarThemeConfigProvide } from '@/types'\nimport { ButtonSize, SidebarTheme } from '@/enums'\nimport McSlideUpDown from '@/components/elements/McSlideUpDown/McSlideUpDown.vue'\nimport { defaultThemes } from '@/mocks/sidebar'\n\nconst route = useRoute()\nconst randomNumber = useRandomNumber()\nconst provideData = inject<ISidebarThemeConfigProvide>('provideData', {} as ISidebarThemeConfigProvide)\nconst emit = defineEmits<{\n (e: 'open-side-bar'): void\n (e: 'handlerChatraClick'): void\n}>()\nconst props = defineProps({\n /**\n * Заголовок\n */\n title: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Центральное меню\n */\n menuMain: {\n type: Array as PropType<ISideBarMenuItem[]>,\n default: () => []\n },\n /**\n * Каунты для пунктов меню\n * вставляются в пункты с ключем 'count_key'\n *\n */\n counts: {\n type: Object as PropType<Record<string, number | null>>,\n default: () => ({})\n },\n /**\n * Id чатры\n *\n */\n chatraConfig: {\n type: Object as PropType<ISideBarChatra>,\n default: () => ({})\n },\n /**\n * Компактный вид\n */\n compact: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n})\n\nconst loading = ref<boolean>(true)\nconst preparedMainMenu = ref<ISideBarMenuItemEnrichment[]>([])\n\nconst themeConfig = computed(() => {\n return provideData.currentThemeConfig || defaultThemes[SidebarTheme.Black]\n})\n\nonBeforeMount((): void => {\n setMainMenu()\n})\n\nwatch(\n () => props.menuMain,\n (): void => {\n setMainMenu()\n },\n { deep: true }\n)\nwatch(\n () => props.compact,\n (): void => {\n setMainMenu()\n }\n)\n\n// если переходим на роут с вложенным меню, открываем вложенное меню\nwatch(\n () => route,\n (newRoute, oldRoute): void => {\n loading.value = true\n if (oldRoute.path !== newRoute.path) {\n const target_route = preparedMainMenu.value.find(\n (r) => r.to === newRoute.path || r.menu?.find((childRoute) => childRoute.to === newRoute.path)\n )\n target_route?.menu && !props.compact && (target_route.open = true)\n }\n nextTick(() => {\n preparedMainMenu.value.forEach((mi) => {\n const exact_route = mi.to === newRoute.path\n const route_menu_match_new_route =\n mi.menu && mi.menu.some((mim) => mim.to?.match(newRoute?.path) || newRoute.path?.match(mim.to as string))\n if (!(exact_route || route_menu_match_new_route)) mi.open = false\n })\n loading.value = false\n })\n }\n)\n\nconst getMenuItemHeadClasses = (menuMainItem: ISideBarMenuItemEnrichment) => {\n return {\n open: menuMainItem.open,\n active: menuMainItem.active(),\n 'with-submenu': menuMainItem.menu && menuMainItem.menu.length,\n [`mc-side-bar--${themeConfig.value.mode || 'black'}__button`]: true,\n 'purple-hover': themeConfig.value.mainMenuLinks.variable === 'black-flat',\n [`mc-button--variation-${themeConfig.value.mainMenuLinks.variable}`]: !!themeConfig.value.mainMenuLinks.variable,\n ['mc-side-bar--black__button mc-button nuxt-link-active']:\n menuMainItem.menu && menuMainItem.menu.length && !menuMainItem.open && menuMainItem.active()\n }\n}\n\nconst handlerSidebarItemClick = () => {\n props.compact && emit('open-side-bar')\n}\n\n// заранее формируем меню один раз, так как компьютед излишен и во вторых нужна переменная \"open\" что бы ее тогглить\nconst setMainMenu = (): void => {\n loading.value = true\n preparedMainMenu.value = props.menuMain.map((i: ISideBarMenuItem) => {\n const active = () => {\n return (i.menu && i.menu.some((r) => route?.path?.match(r.to as string))) || !!route?.path?.match(i.to as string)\n }\n\n return {\n id: randomNumber.timestamp(5),\n ...i,\n active,\n indicator: () => i.menu && i.menu.some((r) => !!props.counts?.[r.count_key]),\n open: !props.compact && active()\n } as ISideBarMenuItemEnrichment\n })\n loading.value = false\n}\n</script>\n\n<template>\n <div class=\"mc-side-bar-center\">\n <mc-title v-if=\"title\" class=\"mc-side-bar-center__title\" :color=\"compact ? 'transparent' : 'dark-gray'\">\n {{ title }}\n </mc-title>\n <!-- v-show hides jumping with child menu opening after locale switch -->\n <div v-show=\"!loading\" v-if=\"preparedMainMenu && preparedMainMenu.length\" class=\"mc-side-bar-center__content\">\n <div\n v-for=\"menuMainItem in preparedMainMenu\"\n :key=\"menuMainItem.id\"\n :class=\"{ 'item-active': menuMainItem.active() }\"\n class=\"mc-side-bar-center__content-item item\"\n >\n <div class=\"item__head\" :class=\"getMenuItemHeadClasses(menuMainItem)\" @click=\"handlerSidebarItemClick\">\n <!-- TODO refactor info -->\n <mc-side-bar-button\n :info=\"\n !(menuMainItem.menu && !!menuMainItem.menu.length)\n ? menuMainItem.info || props.counts[menuMainItem.count_key] || null\n : null\n \"\n :href=\"menuMainItem.href\"\n :to=\"menuMainItem.to\"\n :icon=\"menuMainItem.icon\"\n :icon-color=\"menuMainItem.iconColor\"\n :title=\"menuMainItem.name\"\n :compact=\"compact\"\n :is-active=\"menuMainItem.active()\"\n :with-submenu=\"menuMainItem.menu && !!menuMainItem.menu.length\"\n :with-indicator=\"menuMainItem.indicator() && !menuMainItem.open\"\n with-tooltip\n class=\"item__head-button--no-hover\"\n />\n <mc-button\n v-if=\"menuMainItem.menu && menuMainItem.menu.length && !compact\"\n :variation=\"menuMainItem.active() ? 'white-link' : 'gray-link'\"\n :size=\"ButtonSize.MCompact\"\n class=\"item__head-arrow\"\n :class=\"{\n rotate: menuMainItem.active() ? menuMainItem.active() && menuMainItem.open : menuMainItem.open\n }\"\n @click=\"menuMainItem.open = !menuMainItem.open\"\n >\n <template #icon-prepend>\n <mc-svg-icon name=\"arrow_forward\" />\n </template>\n </mc-button>\n </div>\n <mc-slide-up-down\n v-if=\"menuMainItem.menu && menuMainItem.menu.length\"\n class=\"item__submenu\"\n :active=\"menuMainItem.active() ? menuMainItem.active() && menuMainItem.open : menuMainItem.open\"\n >\n <mc-side-bar-button\n v-for=\"(menuItem, i) in menuMainItem.menu\"\n :key=\"i\"\n :info=\"counts[menuItem.count_key]\"\n :href=\"menuItem.href\"\n :to=\"menuItem.to\"\n :icon=\"menuItem.icon\"\n :icon-color=\"menuItem.iconColor\"\n :title=\"menuItem.name\"\n :compact=\"compact\"\n with-tooltip\n />\n </mc-slide-up-down>\n </div>\n </div>\n <mc-separator\n v-if=\"chatraConfig.title\"\n color=\"dark-gray\"\n indent-top=\"150\"\n indent-bottom=\"150\"\n :indent-left=\"compact ? '50' : '100'\"\n :indent-right=\"compact ? '50' : '100'\"\n />\n <mc-side-bar-button\n v-if=\"chatraConfig.title\"\n icon=\"chat_messages\"\n :title=\"chatraConfig.title\"\n :compact=\"compact\"\n with-tooltip\n @click=\"emit('handlerChatraClick')\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/colors' as *;\n.mc-side-bar-center {\n $block-name: &;\n margin-bottom: $space-150;\n &__title {\n margin: $space-100;\n }\n\n &__content {\n @include child-indent-bottom($space-50);\n .item {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n @include child-indent-bottom($space-50);\n &-active {\n .item__head.active:not(.with-submenu),\n .nuxt-link-exact-active {\n pointer-events: none;\n }\n }\n .with-submenu {\n pointer-events: all !important;\n .item__head {\n &-button--no-hover {\n .mc-button {\n background: none;\n }\n }\n }\n .mc-side-bar-button {\n &__tooltip {\n width: calc(100% - #{$space-250});\n .mc-button {\n &__text {\n margin-inline-end: $space-zero;\n }\n }\n }\n }\n }\n &__head {\n display: flex;\n align-items: center;\n border-radius: 4px;\n\n .mc-button {\n &__background {\n display: none;\n }\n }\n &:hover {\n background-color: rgba($color-gray, 0.1);\n }\n &-arrow {\n &.rotate {\n .mc-svg-icon {\n transform: rotate(90deg);\n }\n }\n .mc-svg-icon {\n transition: all 0.3s ease;\n }\n }\n &-button {\n &--no-hover {\n .mc-button {\n &:hover {\n background-color: unset;\n }\n }\n .mc-side-bar-button__with-submenu {\n background-color: unset;\n }\n &:hover {\n background-color: unset;\n }\n }\n }\n &.active {\n padding: 0;\n border-radius: 4px;\n border: none;\n &.open {\n background-color: unset;\n }\n }\n }\n &__submenu {\n overflow: hidden;\n transition: all 0.3s ease;\n @include child-indent-bottom($space-50);\n .mc-side-bar-button {\n padding-inline-start: $space-500;\n height: 42px;\n }\n &.open {\n max-height: 230px;\n }\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McDropdown, McButton, McSvgIcon, McPreview, McTitle } from '@/components'\nimport { computed, inject, type PropType, ref } from 'vue'\nimport { useHelper } from '@/composables'\nimport { ButtonSize, DropdownPositions, HorizontalAlignment, SidebarTheme, TitleVariations, Weights } from '@/enums'\nimport type {\n ButtonVariationUnion,\n DropdownPositionsUnion,\n IconsListUnion,\n ISideBarApp,\n ISidebarThemeConfig,\n ISidebarThemeConfigProvide,\n TitleVariationsUnion\n} from '@/types'\nimport { defaultThemes } from '@/mocks/sidebar'\n\nconst helper = useHelper()\nconst provideData = inject<ISidebarThemeConfigProvide>('provideData', {} as ISidebarThemeConfigProvide)\nconst props = defineProps({\n /**\n * Меню приложений\n *\n */\n menuApps: {\n type: Array as PropType<ISideBarApp[]>,\n default: () => []\n },\n /**\n * Название сервиса\n *\n */\n logoTitle: {\n type: String as PropType<string>,\n default: 'Dashboard'\n },\n /**\n * Размер текста названия сервиса\n *\n */\n logoTitleVariation: {\n type: String as () => TitleVariationsUnion,\n default: TitleVariations.Subtitle\n },\n /**\n * Путь до изображения\n */\n logoSrc: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Имя иконки\n * заголовка\n */\n logoIcon: {\n type: String as () => IconsListUnion,\n default: ''\n },\n dropdownPosition: {\n type: String as () => DropdownPositionsUnion,\n default: DropdownPositions.Left\n },\n /**\n * Компактный вид\n */\n compact: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n})\n\nconst dropIsOpen = ref<boolean>(false)\n\nconst themeConfig = computed((): ISidebarThemeConfig => {\n return provideData.currentThemeConfig || defaultThemes[SidebarTheme.Black]\n})\n\nconst computedMenuApps = computed((): ISideBarApp[] | null => {\n if (helper.isEmpty(props.menuApps)) return null\n return props.menuApps.filter((app) => !Object.prototype.hasOwnProperty.call(app, 'isVisible') || app.isVisible)\n})\n</script>\n\n<template>\n <div class=\"mc-side-bar-top\" :class=\"`mc-side-bar-top--theme-${themeConfig.dropdownActivator}`\">\n <mc-preview v-if=\"!computedMenuApps\">\n <template v-if=\"logoSrc\" #left>\n <img class=\"mc-side-bar-top__img\" :src=\"logoSrc\" width=\"24\" height=\"24\" :alt=\"logoTitle\" />\n </template>\n <template #top>\n <mc-title v-if=\"!compact\" :weight=\"Weights.SemiBold\" :variation=\"logoTitleVariation\">\n {{ logoTitle }}\n <template #icon-append>\n <slot name=\"title-append\" />\n </template>\n </mc-title>\n </template>\n </mc-preview>\n <mc-dropdown v-else v-model=\"dropIsOpen\" :position=\"dropdownPosition\" :items=\"computedMenuApps\">\n <template #activator>\n <mc-preview>\n <template #left>\n <img v-if=\"logoSrc\" class=\"mc-side-bar-top__img\" :src=\"logoSrc\" width=\"24\" height=\"24\" :alt=\"logoTitle\" />\n <mc-svg-icon v-else-if=\"logoIcon\" class=\"rotate\" :name=\"logoIcon\" />\n </template>\n <template #top>\n <mc-button\n :variation=\"`${themeConfig.dropdownActivator}-link` as ButtonVariationUnion\"\n :size=\"compact ? ButtonSize.LCompact : ButtonSize.L\"\n class=\"mc-side-bar-top__activator-btn\"\n >\n <mc-title v-if=\"!compact\" :weight=\"Weights.SemiBold\" :variation=\"logoTitleVariation\">\n {{ logoTitle }}\n <template #icon-append>\n <slot name=\"title-append\" />\n </template>\n </mc-title>\n <template #icon-append>\n <mc-svg-icon class=\"rotate\" name=\"arrow_drop_down\" color=\"gray\" />\n </template>\n </mc-button>\n </template>\n </mc-preview>\n </template>\n <template #item=\"{ item }\">\n <mc-button\n full-width\n :text-align=\"HorizontalAlignment.Left\"\n variation=\"black-flat\"\n :href=\"item.href\"\n :to=\"item.to\"\n :target=\"item.target\"\n :is-active=\"item.isActive\"\n :exact=\"item.exact\"\n >\n <template #icon-prepend>\n <mc-svg-icon v-if=\"item.icon\" :name=\"item.icon\" />\n <img v-else-if=\"item.image\" :src=\"item.image\" width=\"24\" height=\"24\" alt=\"service image\" />\n </template>\n {{ item.name }}\n </mc-button>\n </template>\n </mc-dropdown>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/colors' as *;\n@use '../../../../assets/tokens/line-heights' as *;\n@use '../../../../assets/tokens/sizes' as *;\n@use '../../../../assets/tokens/font-sizes' as *;\n.mc-side-bar-top {\n $block-name: &;\n @include reset-text-indents();\n position: sticky;\n top: -($space-250);\n padding: $space-250 $space-100;\n background: $color-white;\n margin: -($space-250) (-($space-100)) $space-150 !important;\n z-index: 2;\n .mc-dropdown__toggle {\n &:hover {\n cursor: pointer;\n }\n .mc-preview__left {\n margin-inline-end: 0;\n }\n .mc-button {\n line-height: $line-height-250;\n &__text {\n margin-inline-start: $space-100;\n }\n &__append {\n margin-inline-start: 0;\n }\n .rotate {\n @include size($size-200);\n }\n }\n }\n &__img {\n margin-inline-start: $space-100;\n }\n &__activator-btn {\n font-size: $font-size-400;\n line-height: $line-height-300;\n }\n &--theme-white {\n background: $color-black;\n .mc-preview__top {\n .mc-title {\n color: $color-white;\n }\n }\n }\n &--theme-black {\n background: $color-white;\n .mc-preview__top {\n .mc-title {\n color: $color-black;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, type PropType, ref, inject, onMounted, useAttrs } from 'vue'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport type { ITab } from '@/types/ITabs'\nimport type { IRoute } from '@/types/IRoute'\nimport { type IconsListUnion } from '@/types/styles/Icons'\n\nconst selfRegisterTabToMcTabs: Function = inject('selfRegisterTabMethod', () => {})\nconst attrs = useAttrs()\nconst props = defineProps({\n /**\n * Если нужен иной фрагмент в url после #\n * (по умолчанию берётся из 'name')\n */\n id: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Имя таба (unique)\n */\n name: {\n type: String as PropType<string>,\n required: true,\n default: ''\n },\n /**\n * Вставка в начало имени таба\n * (не влияет на значение вставленное в url)\n */\n prefix: {\n type: String as PropType<string>,\n default: ''\n },\n /**\n * Вставка в конец имени таба\n * (не влияет на значение вставленное в url)\n */\n suffix: {\n type: String as PropType<string>,\n default: ''\n },\n appendCount: {\n type: Number as PropType<number>,\n default: null\n },\n appendCountColor: {\n type: String as () => ColorTypes,\n default: 'black'\n },\n /**\n * Отключенное состояние\n */\n isDisabled: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Виден ли таб\n */\n visible: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Классы иконки в начале\n */\n iconPrepend: {\n type: String as () => IconsListUnion,\n default: ''\n },\n /**\n * Классы иконки в конце\n */\n iconAppend: {\n type: String as () => IconsListUnion,\n default: ''\n },\n /**\n * Цвет иконки в начале\n */\n iconPrependColor: {\n type: String as () => ColorTypes,\n default: ''\n },\n /**\n * Цвет иконки в конце\n */\n iconAppendColor: {\n type: String as () => ColorTypes,\n default: ''\n },\n /**\n * Если нужна ссылка внутри приложения:\n * `{name: 'test', params: { id: test.id }}`\n */\n to: {\n type: Object as PropType<IRoute>,\n default: null\n },\n /**\n * Если нужна обычная ссылка:\n * `https://mediacube.agency/`\n */\n href: {\n type: String as PropType<string>,\n default: ''\n }\n})\n\nconst isActive = ref<boolean>(false)\nconst isVisible = ref<boolean>(true)\n\nconst computedId = computed((): string => {\n return props.id ? props.id : props.name.toLowerCase().replace(/ /g, '-')\n})\n\nconst hash = computed((): string => {\n return props.isDisabled ? '#' : `#${computedId.value}`\n})\n\nconst hasAppendCount = computed((): boolean => {\n return !!props.appendCount || props.appendCount === 0\n})\n\nconst appendCountStyles = computed((): string => {\n return `--mc-tab-append-count-color: ${Colors[props.appendCountColor]}`\n})\n\nconst computedTabName = computed((): string => {\n return [props.prefix, props.name, props.suffix].filter(Boolean).join('')\n})\n\nconst header = computed(() => {\n return props.visible ? computedTabName.value : ''\n})\n\nonMounted(() => {\n if (selfRegisterTabToMcTabs) {\n const payload: Partial<ITab> = {\n isActive: isActive.value,\n isVisible: isVisible.value,\n computedId: computedId.value,\n hash: hash.value,\n hasAppendCount: hasAppendCount.value,\n appendCountStyles: appendCountStyles.value,\n header: header.value,\n id: props.id,\n name: props.name,\n to: props.to,\n href: props.href,\n iconAppendColor: props.iconAppendColor,\n iconPrependColor: props.iconPrependColor,\n iconAppend: props.iconAppend,\n iconPrepend: props.iconPrepend,\n visible: props.visible,\n isDisabled: props.isDisabled,\n appendCountColor: props.appendCountColor,\n appendCount: props.appendCount,\n suffix: props.suffix,\n prefix: props.prefix,\n showTab,\n hideTab,\n onClick: attrs.onClick,\n ...attrs\n }\n selfRegisterTabToMcTabs(payload)\n }\n})\n\nconst showTab = () => {\n isActive.value = true\n}\nconst hideTab = () => {\n isActive.value = false\n}\n</script>\n\n<template>\n <section\n v-show=\"isActive\"\n :id=\"id\"\n :aria-hidden=\"!isActive\"\n class=\"tabs-component-panel\"\n role=\"tabpanel\"\n :href=\"href\"\n :to=\"to\"\n >\n <!-- @slot контента -->\n <slot v-if=\"visible\" />\n </section>\n</template>\n\n<style lang=\"scss\">\n.tabs-component-panel {\n $block-name: &;\n}\n.tabs-component-tab {\n &__tab {\n &-name-append-count {\n color: var(--mc-tab-append-count-color);\n }\n }\n a:empty {\n margin: 0;\n padding: 0;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McGridRow } from '@/components'\nimport { computed, onBeforeUnmount, onMounted, type PropType, reactive, ref } from 'vue'\nimport { Spaces, type SpaceTypes } from '@/types/styles/Spaces'\nimport type { SpacesUnion } from '@/types/styles/Spaces'\nimport type { ColumnJustifyAlignmentUnion } from '@/types/styles/Grid'\nimport { ColumnAlignment, ColumnJustifyAlignment } from '@/enums/Grid'\n\nconst emit = defineEmits(['content-scrolled'])\nconst props = defineProps({\n wrap: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n gutterY: {\n type: Number as PropType<number>,\n default: 0\n },\n gutterX: {\n type: Number as PropType<number>,\n default: 0\n },\n justify: {\n type: String as () => ColumnJustifyAlignmentUnion,\n default: ColumnJustifyAlignment.Left\n },\n scrollable: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n gutterBottom: {\n type: String as () => SpaceTypes,\n default: null\n },\n hasScroll: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n withBlur: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n moreSpace: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n rtl: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n scrollSpeed: {\n type: Number as PropType<number>,\n default: 1\n },\n tagName: {\n type: String as PropType<string>,\n default: 'div'\n }\n})\n\nconst drag_options = reactive({\n scroll_pos: 0,\n start_client_pos: 0,\n distance: 0,\n is_drag: false,\n mouse_is_down: false\n})\n\nconst show_left_blur = ref<boolean>(false)\nconst show_right_blur = ref<boolean>(false)\nconst observer = ref<MutationObserver | null>(null)\nconst scrollContainer = ref<HTMLElement | null>(null)\n\nconst containerProps = computed((): { [key: string]: string | number | boolean } => {\n return {\n wrap: props.wrap,\n align: ColumnAlignment.Top,\n gutterY: props.gutterY,\n gutterX: props.gutterX,\n justify: props.justify\n }\n})\n\nconst containerClasses = computed((): { [key: string]: boolean } => {\n return {\n 'mc-wrap-scroll': true,\n 'mc-wrap-scroll--scrollable': props.scrollable,\n 'mc-wrap-scroll--no-scrollbar': !props.hasScroll,\n 'mc-wrap-scroll--more-space': props.moreSpace\n }\n})\n\nconst containerStyles = computed((): { [key: string]: SpacesUnion } => {\n return {\n '--mc-wrap-scroll-bottom': Spaces[props.gutterBottom]\n }\n})\n\nconst wrapperClasses = computed(() => {\n return {\n [`mc-wrap-scroll__wrapper--left-blur`]: props.withBlur && show_left_blur.value,\n [`mc-wrap-scroll__wrapper--right-blur`]: props.withBlur && show_right_blur.value,\n [`mc-wrap-scroll__wrapper--more-space`]: props.moreSpace\n }\n})\n\nonMounted(() => {\n window.addEventListener('mousemove', onMouseMove)\n window.addEventListener('mouseup', onMouseUp)\n init()\n setTimeout(() => handlerScroll(), 10)\n})\n\nonBeforeUnmount(() => {\n window.removeEventListener('mousemove', onMouseMove)\n window.removeEventListener('mouseup', onMouseUp)\n scrollContainer.value && scrollContainer.value.removeEventListener('scroll', handlerScroll)\n observer.value && observer.value.disconnect()\n})\n\nconst init = () => {\n if (scrollContainer.value) {\n scrollContainer.value.addEventListener('scroll', handlerScroll)\n if (props.withBlur) createMutationObserver()\n }\n}\nconst handlerScroll = () => {\n emit('content-scrolled')\n if (!props.withBlur) return\n if (scrollContainer.value) {\n try {\n const container_width = Math.ceil(scrollContainer.value.getBoundingClientRect()?.width)\n const scroll_width = Math.ceil(scrollContainer.value.scrollWidth)\n const scroll_left = Math.ceil(scrollContainer.value.scrollLeft)\n // Левый блюр\n show_left_blur.value = props.rtl\n ? scroll_width > container_width && scroll_width - 10 > Math.abs(scroll_left) + container_width\n : !!scroll_left\n // Правый блюр\n show_right_blur.value = props.rtl\n ? Math.abs(scroll_left) > 1\n : scroll_width > container_width && scroll_width > Math.abs(scroll_left) + container_width\n } catch (e) {\n show_left_blur.value = false\n show_right_blur.value = false\n }\n }\n}\n\nconst createMutationObserver = () => {\n if (scrollContainer.value) {\n try {\n observer.value = new MutationObserver(handlerScroll)\n\n const config = {\n attributes: true,\n childList: true,\n subtree: true\n }\n observer.value.observe(scrollContainer.value, config)\n } catch (e) {\n console.error('Error when try to create observer in McWrapScroll')\n }\n } else console.error('Error when try to create observer in McWrapScroll')\n}\n\nconst onMouseDown = (e: MouseEvent) => {\n if (scrollContainer.value) {\n const dragOptions = drag_options\n dragOptions.start_client_pos = e.clientX\n dragOptions.mouse_is_down = true\n dragOptions.scroll_pos = scrollContainer.value.scrollLeft\n // // Удалить все выделения на странице, иначе скролл \"лагает\" если где то на странице есть выделение\n if (window.getSelection) {\n let sel = window.getSelection()\n sel?.removeAllRanges()\n }\n }\n}\n\nconst onMouseMove = (e: MouseEvent) => {\n if (scrollContainer.value) {\n const dragOptions = drag_options\n if (!dragOptions.mouse_is_down) return\n dragOptions.distance = e.clientX - dragOptions.start_client_pos\n if (Math.abs(dragOptions.distance) > 2 && !dragOptions.is_drag) {\n dragOptions.is_drag = true\n }\n if (dragOptions.is_drag) {\n scrollContainer.value.scrollTo({\n left: dragOptions.scroll_pos - dragOptions.distance * props.scrollSpeed\n })\n }\n // Math.abs(dragOptions.scroll_pos) && (dragOptions.scroll_pos = 0)\n }\n}\n\nconst onMouseUp = () => {\n drag_options.is_drag && (drag_options.is_drag = false)\n drag_options.mouse_is_down = false\n}\n</script>\n\n<template>\n <component :is=\"props.tagName\" :class=\"wrapperClasses\" class=\"mc-wrap-scroll__wrapper\">\n <div ref=\"scrollContainer\" :class=\"containerClasses\" :style=\"containerStyles\" @mousedown=\"onMouseDown\">\n <mc-grid-row\n v-bind=\"containerProps\"\n :style=\"{ 'pointer-events': drag_options.is_drag ? 'none' : 'auto' }\"\n class=\"mc-wrap-scroll__row\"\n >\n <slot />\n </mc-grid-row>\n </div>\n </component>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/font-families' as *;\n.mc-wrap-scroll {\n $block-name: &;\n $more-space-indent: $space-200;\n --mc-wrap-scroll-bottom: #{$space-zero};\n padding-bottom: var(--mc-wrap-scroll-bottom);\n margin-bottom: -(var(--mc-wrap-scroll-bottom));\n font-family: $font-family-main;\n &.mc-wrap-scroll--scrollable {\n overflow-x: auto;\n overflow-y: hidden;\n }\n &--more-space {\n padding: $more-space-indent;\n margin: -(#{$more-space-indent});\n }\n &.mc-wrap-scroll--no-scrollbar {\n @include hide-scrollbar();\n }\n &__wrapper {\n position: relative;\n overflow-x: hidden;\n @mixin blur-common-styles {\n @include pseudo();\n top: 0;\n bottom: 0;\n width: $space-500;\n z-index: 2;\n pointer-events: none;\n user-select: none;\n }\n @mixin right-blur {\n background: linear-gradient(to left, #{$color-bg-gray}, rgba($color-bg-gray, 0));\n }\n @mixin left-blur {\n background: linear-gradient(to right, #{$color-bg-gray}, rgba($color-bg-gray, 0));\n }\n &--more-space {\n padding: $more-space-indent;\n margin: -(#{$more-space-indent});\n &#{$block-name}__wrapper {\n &--left-blur {\n #{$block-name} {\n padding-inline-start: 0;\n margin-inline-start: 0;\n }\n &::before {\n top: $more-space-indent;\n bottom: $more-space-indent;\n inset-inline-start: $more-space-indent;\n @include left-blur;\n }\n }\n &--right-blur {\n #{$block-name} {\n padding-right: 0;\n margin-right: 0;\n }\n &::after {\n top: $more-space-indent;\n bottom: $more-space-indent;\n inset-inline-end: $more-space-indent;\n @include right-blur;\n }\n }\n }\n }\n &--left-blur {\n &::before {\n @include blur-common-styles;\n @include left-blur;\n inset-inline-start: 0;\n }\n }\n &--right-blur {\n &::after {\n @include blur-common-styles;\n @include right-blur;\n inset-inline-end: 0;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onMounted, onUpdated, type PropType, ref, watch, provide, nextTick } from 'vue'\nimport { Colors, type ColorTypes } from '@/types/styles/Colors'\nimport type { ColorsUnion } from '@/types/styles/Colors'\nimport { useRouter } from 'vue-router'\nimport McWrapScroll from '@/components/patterns/McWrapScroll/McWrapScroll.vue'\nimport type { ITab } from '@/types/ITabs'\nimport { type TabVariationUnion } from '@/types/ITabs'\nimport { TabVariations } from '@/enums/Tab'\nimport { McSvgIcon } from '@/components'\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: string): void\n (e: 'tab-changed', value: { tab: ITab }): void\n (e: 'clicked', value: { tab: ITab }): void\n}>()\nconst router = useRouter()\nconst props = defineProps({\n modelValue: {\n type: String as PropType<string | null>,\n default: null\n },\n /**\n * Размеры табов:\n * `body, caption, overline`\n */\n tabVariation: {\n type: String as PropType<TabVariationUnion>,\n default: TabVariations.Captions\n },\n /**\n * Цвет текста табов\n */\n color: {\n type: String as () => ColorTypes,\n default: 'black'\n },\n /**\n * Цвет линии активного таба\n */\n accentColor: {\n type: String as () => ColorTypes,\n default: 'purple'\n },\n /**\n * Заглавные буквы\n * табов\n */\n uppercase: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Передаваемое состояние загрузки\n *\n * Нужно для метода switchingDisableTab\n * в случае, если состояние табов (active/disable)\n * задается динамически\n */\n loading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Закрепленные табы\n *\n * Добавляет верхнее расстояние\n * для табов для правильного отображения\n */\n sticky: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n})\n\nconst tabs = ref<ITab[]>([])\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-tabs': true,\n [`mc-tabs--tab-variation-${props.tabVariation}`]: !!props.tabVariation,\n 'mc-tabs--uppercase': !!props.uppercase,\n 'mc-tabs--sticky': !!props.sticky\n }\n})\n\nconst styles = computed((): { [key: string]: ColorsUnion } => {\n return {\n '--mc-tabs-color': Colors[props.color],\n '--mc-tabs-accent-color': Colors[props.accentColor]\n }\n})\n\nconst computedValue = computed<{ get: () => string | null; set: (val: string) => void }>({\n // @ts-ignore\n get(): string | null {\n return props.modelValue\n },\n set(value: string): void {\n emit('update:modelValue', value)\n }\n})\nconst activeVisibleTabs = computed((): ITab[] => {\n return tabs.value.filter((tab) => tab.visible && !tab.isDisabled)\n})\n\nonMounted(() => {\n handleCheckInitTab()\n})\nonUpdated(() => {\n setTimeout(() => {\n watchDisableTab()\n }, 10)\n})\n\nconst updateTabsState = (payload: string): void => {\n tabs.value.forEach((tab: ITab) => {\n tab.isActive = tab.computedId === payload\n tab.isActive ? tab.showTab() : tab.hideTab()\n })\n}\n\nconst selfRegisterTabMethod = (payload: ITab): void => {\n tabs.value.push(payload)\n}\n\nconst handleCheckInitTab = (): void => {\n let [tab]: ITab[] = activeVisibleTabs.value\n const preselectedTab: ITab | undefined = tabs.value.find((tab: ITab) => tab.computedId === props.modelValue)\n if (preselectedTab && !preselectedTab.isDisabled) {\n tab = preselectedTab\n }\n if (!tab) return\n\n handleSelectTab(tab)\n}\n\nconst handleEmitChange = (tab: ITab): void => {\n emit('tab-changed', { tab } as { tab: ITab })\n}\n\nconst watchDisableTab = (): void => {\n if (props.loading) return\n const activeTab: ITab | undefined = tabs.value?.find((tab) => tab.isActive)\n if (!activeTab?.isDisabled) return\n const [tab]: ITab[] = activeVisibleTabs.value\n handleSelectTab(tab)\n}\n\nconst handleSelectTab = (tab: ITab, event?: Event): void | undefined => {\n event?.preventDefault()\n if (tab.isDisabled) return\n if (tab.onClick && typeof tab.onClick === 'function') return tab.onClick(tab)\n if (tab.href) {\n window.open(tab.href, '_blank')\n return\n }\n if (tab.to && router) {\n router.push(tab.to)\n return\n }\n handleEmitChange(tab)\n updateTabsState(tab.computedId)\n //@ts-ignore\n computedValue.value = tab.computedId\n}\n\nwatch(\n () => props.loading,\n (val, oldVal): void => {\n if (!val && oldVal)\n nextTick(() => {\n handleCheckInitTab()\n })\n }\n)\nprovide('selfRegisterTabMethod', selfRegisterTabMethod)\n</script>\n\n<template>\n <div :class=\"classes\" :style=\"styles\">\n <div class=\"tabs-component\">\n <mc-wrap-scroll tag-name=\"ul\" role=\"tablist\" scrollable class=\"tabs-component-tabs\">\n <li\n v-for=\"(tab, i) in tabs\"\n v-show=\"tab.isVisible\"\n :key=\"i\"\n :class=\"{ 'is-active': tab.isActive, 'is-disabled': tab.isDisabled }\"\n class=\"tabs-component-tab\"\n role=\"presentation\"\n >\n <a\n :aria-controls=\"tab.hash\"\n :aria-selected=\"tab.isActive\"\n :href=\"tab.href || tab.hash || 'javascript:void(0)'\"\n class=\"tabs-component-tab-a\"\n role=\"tab\"\n @click=\"(e) => handleSelectTab(tab, e)\"\n >\n <span class=\"tabs-component-tab__tab-name\">\n <mc-svg-icon v-if=\"tab.iconPrepend\" :name=\"tab.iconPrepend\" :color=\"tab.iconPrependColor\" />\n <span>{{ tab.header }}</span>\n <mc-svg-icon v-if=\"tab.iconAppend\" :name=\"tab.iconAppend\" :color=\"tab.iconAppendColor\" />\n </span>\n </a>\n </li>\n </mc-wrap-scroll>\n <div class=\"tabs-component-panels\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/z-indexes' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/spacings' as *;\n.mc-tabs {\n $block-name: &;\n\n @mixin border() {\n &::before {\n @include pseudo();\n @include position(absolute, auto 0 0 0);\n height: 1px;\n background-color: $color-hover-gray;\n }\n }\n\n &--tab-variation {\n &-body {\n .tabs-component-tab-a {\n font-size: $font-size-300;\n line-height: $line-height-250;\n }\n }\n &-caption {\n .tabs-component-tab-a {\n font-size: $font-size-200;\n line-height: $line-height-200;\n }\n }\n &-overline {\n .tabs-component-tab-a {\n font-size: $font-size-100;\n line-height: $line-height-150;\n font-weight: $font-weight-medium;\n }\n }\n }\n .tabs-component-tab-a {\n color: var(--mc-tabs-color);\n }\n\n .tabs-component-tab-a {\n &::after {\n background-color: var(--mc-tabs-accent-color);\n }\n &:hover {\n color: var(--mc-tabs-accent-color);\n }\n }\n .tabs-component-tab.is-active {\n .tabs-component-tab-a {\n color: var(--mc-tabs-accent-color);\n font-weight: $font-weight-semi-bold;\n }\n }\n\n &--uppercase {\n .tabs-component-tabs {\n text-transform: uppercase;\n }\n }\n\n &--sticky {\n overflow: scroll;\n\n .tabs-component-tabs {\n position: sticky !important;\n top: 0;\n z-index: $z-index-sticky;\n background-color: $color-white;\n }\n }\n\n .tabs-component-tabs {\n @include reset-text-indents();\n position: relative;\n padding-left: 0;\n margin-top: 0;\n list-style-type: none;\n height: $space-350;\n @include border();\n }\n\n .tabs-component-tab {\n position: relative;\n flex: 0 0 auto;\n &:first-child {\n .tabs-component-tab-a {\n margin-left: 0;\n }\n }\n &:last-child {\n .tabs-component-tab-a {\n margin-right: 0;\n }\n }\n\n &.is-active {\n .tabs-component-tab-a {\n &::after {\n left: 0;\n right: 0;\n opacity: 1;\n }\n }\n }\n &.is-disabled {\n .tabs-component-tab-a {\n cursor: not-allowed;\n color: $color-outline-gray;\n }\n }\n\n &__tab-name {\n display: flex;\n align-items: center;\n @include child-indent-right($space-50);\n &::after {\n display: block;\n content: attr(data-name);\n font-weight: $font-weight-semi-bold;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n }\n }\n &__icon {\n &-prepend {\n color: var(--mc-tab-icon-prepend-color);\n }\n &-append {\n color: var(--mc-tab-icon-append-color);\n }\n }\n }\n\n .tabs-component-tab-a {\n position: relative;\n display: inline-flex;\n font-family: $font-family-main;\n text-decoration: none;\n padding-bottom: $space-150;\n margin: 0 $space-150;\n cursor: pointer;\n\n @include child-indent-right($space-50);\n @include border();\n .las,\n .la {\n display: flex;\n align-items: center;\n }\n\n &::after {\n @include pseudo();\n @include position(null, null 50% 0 50%);\n opacity: 0;\n height: 2px;\n z-index: 1;\n transition:\n left 0.2s ease,\n right 0.2s ease,\n opacity 0.2s ease,\n color 0.2s ease;\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { TransitionPresets, useTransition } from '@vueuse/core'\nimport { computed, type PropType, ref, watch } from 'vue'\nimport { McSvgIcon } from '@/components'\nimport type { IconsListUnion } from '@/types/styles/Icons'\nimport type { DrawerPositionsUnion } from '@/types/IDrawer'\nimport { DrawerPositions } from '@/enums/Drawer'\n\nconst emit = defineEmits<{\n (e: 'toggle', value: boolean): void\n (e: 'open'): void\n (e: 'close'): void\n (e: 'update:modelValue', value: boolean): void\n}>()\nconst props = defineProps({\n modelValue: {\n type: Boolean,\n default: false\n },\n duration: {\n type: Number as PropType<number>,\n default: 300\n },\n position: {\n type: String as () => DrawerPositionsUnion,\n default: DrawerPositions.Right\n },\n /**\n * Нужна ли кнопка\n * закрытия в шапке\n */\n closeVisible: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n showOverlay: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Тип иконки\n * закрытия в шапке\n */\n iconClose: {\n type: String as () => IconsListUnion,\n default: 'close'\n },\n width: {\n type: Number as PropType<number>,\n default: 300\n }\n})\n\nconst overlayStartAnimationPosition = ref<number>(0)\nconst overlayEndAnimationPosition = ref<number>(100)\nconst isRightDrawerPosition = computed((): boolean => {\n return props.position === DrawerPositions.Right\n})\nconst drawerStartAnimationPosition = computed((): number => {\n return isRightDrawerPosition.value ? 100 : -100\n})\nconst drawerStartStaticPosition = computed((): { [key: string]: number } => {\n return {\n [isRightDrawerPosition.value ? DrawerPositions.Right : DrawerPositions.Left]: 0\n }\n})\n\nconst overlayStateNumber = ref<number>(overlayStartAnimationPosition.value)\nconst drawerStateNumber = ref<number>(drawerStartAnimationPosition.value)\n\nconst drawerNumber = useTransition(drawerStateNumber, {\n duration: props.duration,\n transition: TransitionPresets.easeOutQuart\n})\n\nconst drawerOverlayNumber = useTransition(overlayStateNumber, {\n duration: props.duration,\n transition: TransitionPresets.easeOutQuart\n})\n\nconst overlayStyle = computed((): { [key: string]: number | string } => {\n return {\n visibility: drawerOverlayNumber.value ? 'visible' : 'hidden',\n zIndex: drawerOverlayNumber.value ? 1 : -1\n }\n})\n\nconst drawerStyle = computed((): { [key: string]: number | string } => {\n return {\n transform: `translateX(${drawerNumber.value}%)`,\n width: `${props.width}px`,\n [props.position]: 0,\n ...drawerStartStaticPosition.value\n }\n})\n\nconst overlayClasses = computed((): { [key: string]: boolean } => {\n return {\n 'mc-drawer__overlay': true,\n 'mc-drawer__overlay--hidden': !props.showOverlay\n }\n})\n\nconst openDrawer = () => {\n overlayStateNumber.value = overlayEndAnimationPosition.value\n drawerStateNumber.value = overlayStateNumber.value === 0 ? 100 : 0\n if (!props.modelValue) {\n emit('update:modelValue', true)\n emit('open')\n }\n}\nconst closeDrawer = () => {\n overlayStateNumber.value = overlayStartAnimationPosition.value\n drawerStateNumber.value = overlayStateNumber.value === 0 ? (isRightDrawerPosition.value ? 100 : -100) : 0\n if (props.modelValue) {\n emit('update:modelValue', false)\n emit('close')\n }\n}\n\nconst handleOverlayClick = () => {\n if (!props.showOverlay) return\n closeDrawer()\n}\n\nwatch(\n () => props.modelValue,\n (value) => {\n value ? openDrawer() : closeDrawer()\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <div class=\"mc-drawer__wrapper\" :style=\"overlayStyle\">\n <div :class=\"overlayClasses\" :style=\"overlayStyle\" @click.stop=\"handleOverlayClick\" />\n <div class=\"mc-drawer\" :style=\"drawerStyle\" @click.stop>\n <slot />\n <button v-if=\"closeVisible\" type=\"button\" class=\"mc-drawer__btn-close\" @click.prevent=\"closeDrawer\">\n <mc-svg-icon class=\"mc-drawer__icon-close\" :name=\"iconClose\" />\n <mc-svg-icon class=\"mc-drawer__icon-close--small\" :name=\"iconClose\" size=\"200\" />\n </button>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/tokens/box-shadows' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/media-queries' as *;\n@use '../../../assets/styles/mixins' as *;\n.mc-drawer {\n $block-name: &;\n position: absolute;\n top: 0;\n bottom: 0;\n background: white;\n height: 100%;\n box-shadow: $shadow-s;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n z-index: 2;\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.15);\n display: flex;\n justify-content: flex-start;\n &--hidden {\n background: transparent;\n }\n }\n &__wrapper {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n overflow: hidden;\n }\n &__btn-close {\n z-index: 1;\n padding: $space-100 !important;\n & {\n @include close-link();\n }\n & {\n @include position(absolute, $space-100 $space-100 null null);\n }\n & {\n @include reset-btn();\n }\n }\n &__icon-close {\n @include size($size-300);\n &--small {\n display: none;\n }\n }\n @media #{$media-query-m-down} {\n #{$block-name}__icon-close {\n display: none;\n &--small {\n display: block;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { TitleVariations } from '@/enums/Title'\nimport { Weights } from '@/enums/ui/Weights'\nimport { McTitle } from '@/components'\nimport type { PropType } from 'vue'\n\nconst props = defineProps({\n /**\n * Заголовок\n */\n title: {\n type: String as PropType<string>,\n default: ''\n },\n titleEllipsis: {\n type: Boolean as PropType<boolean>,\n default: false\n }\n})\n</script>\n\n<template>\n <div class=\"mc-drawer-content-template\">\n <div v-if=\"$slots.title || props.title\" class=\"mc-drawer-content-template__header\">\n <!-- @slot Слот заголовка -->\n <slot name=\"title\">\n <mc-title :variation=\"TitleVariations.Subtitle\" :ellipsis=\"props.titleEllipsis\" :weight=\"Weights.SemiBold\">\n {{ props.title }}\n </mc-title>\n </slot>\n </div>\n <div class=\"mc-drawer-content-template__body\">\n <div class=\"mc-drawer-content-template__tint\"></div>\n <div class=\"mc-drawer-content-template__body-inner\">\n <!-- @slot Слот контента -->\n <slot />\n </div>\n </div>\n <div v-if=\"$slots.footer\" class=\"mc-drawer-content-template__footer\">\n <!-- @slot Слот футера -->\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/sizes' as *;\n@use '../../../../assets/tokens/colors' as *;\n@use '../../../../assets/tokens/font-families' as *;\n.mc-drawer-content-template {\n font-family: $font-family-main;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n &__header {\n padding: 18px $space-600 18px $space-200;\n border-bottom: 1px solid $color-hover-gray;\n }\n\n &__body {\n position: relative;\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n height: 100%;\n &-inner {\n max-height: 100%;\n height: 100%;\n overflow-y: auto;\n padding: $space-400 $space-200;\n box-sizing: border-box;\n }\n }\n &__footer {\n border-top: 1px solid $color-hover-gray;\n padding: $space-200 $space-200;\n }\n\n &__tint {\n @include position(absolute, 0 5px null 0);\n height: $size-400;\n background: linear-gradient(180deg, $color-white 0%, rgba(255, 255, 255, 0) 100%);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McSvgIcon } from '@/components'\nimport { computed, nextTick, type PropType, reactive, ref, watch } from 'vue'\nimport { LineHeights, type LineHeightTypes, Sizes, type SizeTypes, Spaces, type SpaceTypes } from '@/types'\nimport { HorizontalAlignment } from '@/enums'\nimport { TransitionPresets, useTransition } from '@vueuse/core'\nimport { ModalVariation } from '@/enums/Modal'\n\nconst emit = defineEmits<{\n (e: 'before-open'): void\n (e: 'before-close'): void\n (e: 'opened'): void\n (e: 'closed'): void\n (e: 'back', value: Event): void\n (e: 'update:modelValue', value: boolean): void\n}>()\n\nconst props = defineProps({\n modelValue: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n name: {\n type: String as PropType<string>\n },\n /**\n * Максимальная ширина модального окна\n * */\n maxWidth: {\n type: Number as PropType<number>,\n default: 510\n },\n /**\n * Скорость анимации\n * */\n duration: {\n type: Number as PropType<number>,\n default: 200\n },\n /**\n * Показывать кнопку закрытия модали\n * */\n closeVisible: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n showOverlay: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Нужно ли закрывать попап\n * кликом вне окна\n */\n clickBackdropToClose: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Стрелка в хедере\n */\n arrowVisible: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Кастомное модальное окно\n */\n secondaryModal: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Должен ли контент внутри модалки скроллится с фиксированной шапкой и футером\n * Отключать, когда внутри есть селекты\n * */\n scrollableContent: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Показывать сепараторы у хедера и футера при скролле.\n */\n separators: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Выравнивание заголовка в шапке,\n * если centered добавляются отступы слева и справа, чтобы текст не наезжал на кнопки\n * centered || left || right\n * */\n headerAlign: {\n type: String as PropType<HorizontalAlignment>,\n default: 'center'\n },\n /**\n * Отступ от верхнего края модального окна до контента.\n * Для \"красивой\" обрезки картинки при скролле в ситуациях, когда нет хедера\n */\n topPadding: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Вариация модалки default || info\n * info модалки имеют меньшие размеры паддингов\n * */\n variation: {\n type: String as () => ModalVariation,\n default: 'default'\n }\n})\n\nconst modalTransitionState = ref<number>(0)\nconst modalTransition = useTransition(modalTransitionState, {\n duration: props.duration || 300,\n transition: TransitionPresets.easeOutQuart\n})\n\nconst mcModalBody = ref<HTMLElement | null>(null)\nconst modalInner = ref<HTMLElement | null>(null)\n\nconst data = reactive({\n scrolled_top: false,\n scrolled_bottom: false,\n resize_observer: {} as ResizeObserver,\n small_indents: false,\n can_shorten_modal: false,\n modal_params: {} as { [key: string]: string | number },\n indent: {\n regular: '400',\n small: '150'\n } as { [key: string]: SpaceTypes },\n footer: {\n button: {\n regular: '600',\n small: '500'\n } as { [key: string]: SizeTypes }\n },\n header: {\n title: {\n line_height: {\n regular: '300',\n small: '250'\n } as { [key: string]: LineHeightTypes }\n }\n }\n})\n\nconst classes = computed((): { [key: string]: boolean } => {\n return {\n 'mc-modal--arrow-visible': props.arrowVisible,\n 'mc-modal--scrolled-top': data.scrolled_top,\n 'mc-modal--scrolled-bottom': data.scrolled_bottom,\n 'mc-modal--scrollable': props.scrollableContent,\n 'mc-modal--top-padding': props.topPadding,\n 'mc-modal--small-indents': data.small_indents,\n [`mc-modal--variation-${props.variation}`]: !!props.variation,\n [`mc-modal--header-align-${props.headerAlign}`]: (props.closeVisible || props.arrowVisible) && !!props.headerAlign\n }\n})\n\nconst styles = computed((): { [key: string]: string | number } => {\n return {\n '--mc-modal-padding': Spaces[data.indent.regular],\n '--mc-modal-padding-small': Spaces[data.indent.small],\n '--mc-modal-header-line-height': LineHeights[data.header.title.line_height.regular],\n '--mc-modal-header-line-height-small': LineHeights[data.header.title.line_height.small],\n '--mc-modal-button-height': Sizes[data.footer.button.regular],\n '--mc-modal-button-height-small': Sizes[data.footer.button.small],\n '--mc-modal-max-width': `${props.maxWidth + 24}px`,\n '--mc-modal-state-number': modalTransition.value\n }\n})\n\n/**\n * Устанавливаем сепараторы, если есть скролл\n * @param {Boolean} scrolled - если метод вызван скроллом\n */\nconst calculateSeparators = (scrolled: boolean = true): void => {\n if (!scrolled) {\n data.scrolled_top = false\n data.scrolled_bottom = false\n data.small_indents = false\n }\n\n setTimeout(\n () => {\n if (mcModalBody.value) {\n const { scrollTop, scrollHeight, clientHeight } = mcModalBody.value\n // Сепаратор появится если высота скролла будет > 2px\n const offset = 2\n data.scrolled_top = scrollTop > offset\n data.small_indents = data.scrolled_top && data.can_shorten_modal\n data.scrolled_bottom = scrollTop + clientHeight < scrollHeight - offset\n }\n },\n scrolled ? 0 : 300\n )\n}\n\nconst handleBeforeClose = (): void => {\n /**\n * Событие перед закрытием\n * @property {Object}\n */\n emit('before-close')\n if (mcModalBody.value) {\n data.resize_observer && data.resize_observer.unobserve(mcModalBody.value)\n mcModalBody.value.removeEventListener('scroll', () => calculateSeparators())\n }\n}\n\nconst handleOpened = (): void => {\n if (props.separators) {\n getParams()\n if (mcModalBody.value) {\n mcModalBody.value.addEventListener('scroll', () => calculateSeparators(), {\n passive: true\n })\n data.resize_observer = new ResizeObserver(() => resizeHandler())\n data.resize_observer.observe(mcModalBody.value)\n }\n calculateSeparators()\n }\n\n /**\n * Событие после открытия\n * @property {Object}\n */\n emit('opened')\n}\n\nconst handleBack = (event: Event): void => {\n emit('back', event)\n}\n\nconst getParams = (): void => {\n try {\n if (modalInner.value) {\n Object.keys(styles.value).forEach((attr) => {\n //@ts-ignore\n const param = parseInt(getComputedStyle(modalInner.value)?.getPropertyValue(attr))\n param && (data.modal_params[attr] = param)\n })\n }\n } catch (e) {\n console.error(e)\n }\n}\n\nconst calculateIndents = (): void => {\n /* Если шапка уже маленькая, то отключаем при отключении сепаратора\n * Иначе смотрим, чтобы отступ был > чем убираемые отступы, т.к. нет смысла сжимать шапку, если <\n */\n const indentDifferences =\n (+data.modal_params?.['--mc-modal-padding'] - +data.modal_params?.['--mc-modal-padding-small']) * 3 +\n +data.modal_params?.['--mc-modal-padding-small']\n const lineHeightDifferences =\n +data.modal_params?.['--mc-modal-header-line-height'] - +data.modal_params?.['--mc-modal-header-line-height-small']\n const buttonDifferences =\n +data.modal_params?.['--mc-modal-button-height'] - +data.modal_params?.['--mc-modal-button-height-small']\n const sizeDifferences = indentDifferences + lineHeightDifferences + buttonDifferences\n if (!data.small_indents && mcModalBody.value) {\n data.can_shorten_modal = mcModalBody.value?.scrollHeight - mcModalBody.value?.clientHeight > sizeDifferences\n }\n}\n\nconst resizeHandler = (): void => {\n calculateIndents()\n calculateSeparators()\n}\n\nconst openModal = (): void => {\n modalTransitionState.value = 1\n emit('before-open')\n emit('update:modelValue', true)\n nextTick(() => handleOpened())\n}\nconst closeModal = (): void => {\n modalTransitionState.value = 0\n setTimeout(() => {\n handleBeforeClose()\n emit('update:modelValue', false)\n emit('closed')\n }, props.duration || 300)\n}\n\nconst handleOverlayClick = (): void => {\n if (!props.clickBackdropToClose) return\n closeModal()\n}\n\nwatch(\n () => props.modelValue,\n (value): void => {\n value ? openModal() : closeModal()\n },\n { immediate: true }\n)\n</script>\n\n<template>\n <div v-if=\"props.modelValue\" class=\"mc-modal__wrapper\">\n <div v-if=\"props.showOverlay\" class=\"mc-modal__overlay\" @click.stop=\"handleOverlayClick\" />\n <div class=\"mc-modal\" :class=\"classes\" :style=\"styles\">\n <div ref=\"modalInner\" class=\"mc-modal__inner\">\n <div v-if=\"$slots.title\" class=\"mc-modal__header\">\n <div class=\"mc-modal__title\">\n <!-- @slot Слот заголовка -->\n <slot name=\"title\" />\n </div>\n </div>\n <div ref=\"mcModalBody\" class=\"mc-modal__body\">\n <!-- @slot Слот контента -->\n <slot />\n </div>\n <!-- @slot Слот футера -->\n <div class=\"mc-modal__control\">\n <slot name=\"footer\" />\n <!-- Блок для телепорта в футер <Teleport to=\"#mcModalFooter\"> -->\n <div id=\"mcModalFooter\" />\n </div>\n </div>\n <button v-if=\"arrowVisible\" type=\"button\" class=\"mc-modal__btn-back\" @click.prevent=\"handleBack\">\n <mc-svg-icon name=\"arrow_leftward\" class=\"mc-modal__icon-back\" />\n </button>\n <button v-if=\"closeVisible\" type=\"button\" class=\"mc-modal__btn-close\" @click.prevent=\"closeModal\">\n <mc-svg-icon class=\"mc-modal__icon-close\" width=\"24\" height=\"24\" name=\"close\" />\n </button>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/z-indexes' as *;\n@use '../../../assets/tokens/durations' as *;\n@use '../../../assets/tokens/font-families' as *;\n@use '../../../assets/tokens/font-weights' as *;\n@use '../../../assets/tokens/font-sizes' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/sizes' as *;\n@use '../../../assets/tokens/line-heights' as *;\n@use '../../../assets/tokens/colors' as *;\n@use '../../../assets/tokens/media-queries' as *;\n@use '../../../assets/tokens/border-radius' as *;\n@use '../../../assets/tokens/box-shadows' as *;\n@use 'sass:color' as sasscolor;\n\n.mc-modal {\n $block-name: &;\n $border-color: #dee1e9;\n $box-shadow-color: #20008c28;\n $border-color: $color-hover-gray;\n --mc-modal-padding: #{$space-400};\n --mc-modal-padding-small: #{$space-150};\n --mc-modal-header-line-height: #{$line-height-300};\n --mc-modal-header-line-height-small: #{$line-height-250};\n --mc-modal-button-height: #{$size-600};\n --mc-modal-button-height-small: #{$size-500};\n --mc-modal-max-width: 510px;\n --mc-modal-state-number: 0;\n\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n opacity: var(--mc-modal-state-number);\n z-index: 2;\n\n @media #{$media-query-s} {\n --modal-scale: calc(var(--mc-modal-state-number) * 0.1 + 0.9);\n padding: 12px 0;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%) scale(var(--modal-scale));\n height: auto;\n max-height: 80%;\n max-width: var(--mc-modal-max-width);\n }\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba($color-black, 0.5);\n display: flex;\n justify-content: flex-start;\n &--hidden {\n background: transparent;\n }\n }\n &__wrapper {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n overflow: hidden;\n }\n &__btn-close,\n &__btn-back {\n transition: $duration-s all;\n @include reset-btn();\n @include close-link();\n }\n &__btn-close {\n @include position(absolute, var(--mc-modal-padding) $space-200 null null);\n @media #{$media-query-s} {\n @include position(absolute, var(--mc-modal-padding) $space-600 null null);\n }\n }\n &__btn-back {\n @include position(absolute, var(--mc-modal-padding) null null $space-200);\n @media #{$media-query-s} {\n @include position(absolute, var(--mc-modal-padding) null null $space-600);\n }\n }\n &__icon-close {\n @include size($size-300);\n transition: color $duration-s;\n }\n &.overlay-fade-enter-active,\n &.overlay-fade-leave-active {\n .mc-modal__inner {\n transition: all $duration-s;\n transform: translate3d(0, 0, 0);\n }\n }\n &.overlay-fade-enter,\n &.overlay-fade-leave-active {\n .mc-modal__inner {\n transform: translate3d(0, -20px, 0);\n }\n }\n &.mc-modal--secondary {\n .mc-modal {\n &__inner {\n border-radius: $radius-400;\n box-shadow: 0 15px 30px $box-shadow-color;\n padding: $space-400;\n }\n &__btn-close,\n &__btn-back {\n top: 27px;\n }\n &__btn-close {\n inset-inline-end: $space-400;\n }\n &__btn-back {\n inset-inline-start: $space-400;\n }\n &__header {\n padding-bottom: 9px;\n border-bottom: 2px solid $border-color;\n margin-bottom: var(--mc-modal-padding);\n }\n &__control {\n display: flex;\n justify-content: space-between;\n align-items: center;\n .mc-button {\n border-radius: $radius-150;\n }\n }\n }\n }\n\n &__header {\n flex-shrink: 0;\n transition: $duration-s all;\n padding: var(--mc-modal-padding) $space-200 $space-350;\n border-color: $border-color;\n @media #{$media-query-s} {\n padding: $space-350;\n .mc-title {\n transition: $duration-s all;\n line-height: var(--mc-modal-header-line-height);\n }\n }\n &:has(#{$block-name}__title:empty) {\n display: none;\n & + #{$block-name}__body {\n padding-top: $space-400;\n }\n }\n }\n\n &__title {\n margin-top: 0;\n margin-bottom: 0;\n color: hsl(0, 0%, 13%);\n font-family: $font-family-main;\n }\n\n &__body {\n padding: $space-50 $space-200 $space-200;\n flex-grow: 1;\n min-height: 0;\n overflow-x: hidden;\n > *:only-child {\n min-height: 100%;\n }\n @media #{$media-query-s} {\n padding: $space-50 $space-400 $space-200;\n overflow: visible;\n }\n }\n &__inner {\n box-shadow: $shadow-s;\n background-color: $color-white;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100% !important;\n > *:first-child {\n padding-top: var(--mc-modal-padding);\n }\n > *:last-child {\n padding-bottom: var(--mc-modal-padding);\n }\n @media #{$media-query-s} {\n overflow: visible;\n /* прячет рандомный скроллбар при включении модалки */\n -ms-overflow-style: none;\n scrollbar-width: none;\n border-radius: $radius-100;\n margin: 0 $space-150;\n &::-webkit-scrollbar {\n display: none;\n }\n }\n }\n &--scrollable {\n overflow: hidden !important;\n #{$block-name} {\n &__body {\n overflow-y: auto;\n overflow-x: hidden;\n }\n &__inner {\n overflow-x: hidden;\n @media #{$media-query-s} {\n max-height: 80vh;\n }\n }\n }\n }\n &--header-align {\n &-center {\n #{$block-name} {\n &__header {\n padding-inline: $space-500;\n text-align: center;\n @media #{$media-query-s} {\n padding-inline: $space-700;\n }\n }\n }\n }\n &-left {\n #{$block-name} {\n &__header {\n padding-bottom: $space-150;\n }\n }\n }\n }\n &--small-indents {\n @media #{$media-query-s} {\n #{$block-name} {\n &__control {\n padding-block: var(--mc-modal-padding-small) !important;\n .mc-button {\n height: var(--mc-modal-button-height-small);\n }\n }\n &__header {\n padding-block: var(--mc-modal-padding-small) !important;\n .mc-title {\n font-weight: $font-weight-semi-bold;\n font-size: $font-size-300;\n line-height: var(--mc-modal-header-line-height-small);\n align-items: center;\n }\n }\n &__body {\n padding-bottom: $space-50;\n }\n &__btn {\n &-back,\n &-close {\n top: var(--mc-modal-padding-small) !important;\n }\n }\n }\n }\n }\n\n &--scrolled {\n $separator-border: 1px solid $border-color;\n &-top {\n #{$block-name} {\n &__header {\n border-bottom: $separator-border;\n }\n }\n }\n &-bottom {\n #{$block-name} {\n &__control:not(:empty) {\n border-top: $separator-border;\n }\n }\n }\n }\n &--top-padding {\n #{$block-name}__inner:before {\n content: '';\n height: $space-400;\n min-height: $space-400;\n }\n }\n &__control {\n flex-shrink: 0;\n display: flex;\n justify-content: center;\n padding: $space-200 $space-200 $space-400;\n transition: $duration-s all;\n @media #{$media-query-s} {\n padding: $space-200 $space-300 $space-400;\n }\n .mc-button {\n width: 100%;\n }\n @media #{$media-query-s} {\n .mc-button {\n min-width: 100px;\n height: var(--mc-modal-button-height);\n transition: $duration-s all;\n width: unset;\n }\n }\n &:empty {\n position: relative;\n padding: $space-350 0 0;\n }\n &:not(:empty) {\n border-color: $border-color;\n }\n }\n &:has(&__control:empty) {\n #{$block-name} {\n &__body {\n padding-bottom: $space-50;\n }\n }\n }\n &--variation {\n &-info {\n #{$block-name} {\n &__header {\n @media #{$media-query-s} {\n padding: $space-300 $space-300 $space-150;\n }\n }\n &__btn-close {\n @media #{$media-query-s} {\n top: $space-300;\n }\n }\n &__inner {\n & > *:first-child {\n @media #{$media-query-s} {\n padding-top: $space-300;\n }\n }\n & > *:last-child {\n @media #{$media-query-s} {\n padding-bottom: $space-300;\n }\n }\n }\n &__body {\n padding-bottom: $space-50;\n @media #{$media-query-s} {\n padding-inline: $space-300;\n }\n }\n &__control {\n padding-top: $space-250;\n @media #{$media-query-s} {\n padding-top: $space-150;\n }\n }\n }\n }\n }\n @at-root {\n html[dir='rtl'] {\n #{$block-name} {\n &__btn-back {\n transform: rotate(180deg);\n }\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, onMounted, type PropType, reactive, ref, useSlots } from 'vue'\nimport { useHelper } from '@/composables'\nimport { ChipSize, Weights } from '@/enums'\nimport {\n type ITableColumn,\n type ITableColumnEnriched,\n type ITableData,\n type ITableSort,\n type ITableTotals,\n type ITablePlaceholders,\n type TableCardState,\n type ITableCardProps\n} from '@/types/ITable'\nimport { TABLE } from '@/consts/table'\nimport {\n McInfinityLoadingTrigger,\n McTitle,\n McChip,\n McTableSort,\n McTableSkeletonLoading,\n McNoData,\n McBottomLoader,\n McOverlay\n} from '@/components'\nimport { useThrottleFn } from '@vueuse/core'\nimport type { IconsListUnion } from '@/types'\n//@ts-ignore\nimport { default as noTableDataImg } from '@/assets/img/no_table_data.png'\n\nconst defaultPlaceholders = {\n no_data: 'No data',\n loading: 'Loading...',\n all_loaded: 'All loaded',\n total: 'Total'\n} as ITablePlaceholders\n\nconst emit = defineEmits<{\n (e: 'loading'): void\n (e: 'row-click', value: any): void\n (e: 'sort', value: ITableSort): void\n (e: 'table-card-opened', value: TableCardState): void\n}>()\n\n/**\n * Слоты\n *\n * #header-cell - Заголовок колонки, каждая колонка\n * #`{column.field}-header-right` - Справа от заголовка колонки, именной слот, работает по имени колонки, что бы добавлять в конкретную колонку\n * #`{column.field}-total` - Тотал колонки, именной слот, работает по имени колонки, что бы добавлять в конкретную колонку\n * #column.field - Тело ячейки таблицы. Если не использовать слот, просто будут выводиться данные по названию поля\n * #`{column.field}-right` - Справа от контента колонки, именной слот, работает по имени колонки, что бы добавлять в конкретную колонку\n * №footer-cell - тотал колонки (строка внизу таблицы), каждая колонка\n * */\n\nconst helper = useHelper()\nconst slots = useSlots()\nconst props = defineProps({\n columns: {\n type: Array as PropType<ITableColumn[]>,\n required: true,\n default: () => [] as ITableColumn[]\n },\n data: {\n type: Array as PropType<ITableData>,\n required: true,\n default: () => []\n },\n /**\n * Тоталы таблицы (отображаются в футере), обьект ключи которого = поле field из массива колонок\n * */\n totals: {\n type: Object as PropType<ITableTotals<ITableColumn>>,\n default: () => ({})\n },\n sort: {\n type: Object as PropType<ITableSort>,\n default: () => ({})\n },\n /**\n * Фиксировать ли первую колонку таблицы\n * */\n fixedFirstColumn: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n /**\n * Фиксировать ли последнюю колонку таблицы\n * */\n fixedLastColumn: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Есть ли у таблицы еще данные, если true, при полном пролистывании таблицы вниз, будет вызываться метод @loading\n * */\n hasLoadMore: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n height: {\n type: [Number, String] as PropType<number | 'auto'>,\n default: 'auto'\n },\n /**\n * Высота строки в шапке\n * */\n headerRowHeight: {\n type: Number as PropType<number>,\n default: TABLE.defaultHeaderHeight\n },\n /**\n * Высота строки в теле таблицы\n * */\n rowHeight: {\n type: Number as PropType<number>,\n default: TABLE.defaultRowHeight\n },\n /**\n * Высота строки в подвале (строка с тоталами)\n * */\n footerRowHeight: {\n type: Number as PropType<number>,\n default: TABLE.defaultFooterRowHeight\n },\n /**\n * Отрисовка всей таблицы и полоса загрузки в каждой ячейке (скелетная загрузка)\n */\n skeletonLoading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Лоадинг внизу таблицы\n * */\n bottomLoading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Оверлей с затемнение на всю таблицу\n * */\n loading: {\n type: Boolean as PropType<boolean>,\n default: false\n },\n /**\n * Переводы плейсхолеров и текстов\n */\n placeholders: {\n type: Object as PropType<Partial<ITablePlaceholders>>,\n default: () => ({})\n },\n noDataIcon: {\n type: String as () => IconsListUnion,\n default: null\n },\n noDataImg: {\n type: String as PropType<string>,\n default: noTableDataImg\n },\n /**\n * Любые данные что бы передать их в карточку из таблицы\n * */\n toTableCardProps: {\n type: Object as PropType<Record<any, any>>,\n default: () => ({})\n }\n})\n\nconst openCardState = ref<TableCardState>({ state: false })\n\nconst mcTable = ref<null | HTMLElement>(null)\n\nconst hasData = computed((): boolean => {\n return !helper.isEmpty(props.data)\n})\nconst hasTotals = computed((): boolean => {\n return !helper.isEmpty(props.totals)\n})\nconst hasFixedColumn = computed((): boolean => {\n return props.fixedFirstColumn || props.fixedLastColumn\n})\nconst placeholders = reactive<ITablePlaceholders>(helper.deepMerge(defaultPlaceholders, props.placeholders))\n\nconst shadows = reactive({\n firstColHasShadow: false,\n lastColHasShadow: false\n})\n\nconst computedColumns = computed((): ITableColumnEnriched[] => {\n const [first] = props.columns\n return (openCardState.value.state ? [first] : props.columns).map((column, index) => {\n const fixedFirst = props.fixedFirstColumn && index === 0\n const fixedLast = props.fixedLastColumn && index === props.columns.length - 1\n\n return {\n ...column,\n fixedFirst,\n fixedLast,\n style: {\n ...(column.width\n ? {\n '--mc-table-cell-width': `${column.width}px`,\n '--mc-table-cell-max-width': `${column.width}px`,\n '--mc-table-cell-min-width': `${column.width}px`\n }\n : {\n '--mc-table-cell-min-width': column.minWidth && `${column.minWidth}px`,\n '--mc-table-cell-width': '100%'\n })\n }\n }\n })\n})\n\nconst computedHeaderColumns = computed((): ITableColumnEnriched[] => {\n return computedColumns.value.map((column) => ({\n ...column,\n class: {\n 'mc-table__table_header-cell': true,\n 'mc-table__table_header-cell--fixed-first': column.fixedFirst,\n 'mc-table__table_header-cell--fixed-last': column.fixedLast,\n 'mc-table__table_header-cell--shadow-first': column.fixedFirst && shadows.firstColHasShadow,\n 'mc-table__table_header-cell--shadow-last': column.fixedLast && shadows.lastColHasShadow\n }\n }))\n})\n\nconst computedBodyColumns = computed((): ITableColumnEnriched[] => {\n return computedColumns.value.map((column) => ({\n ...column,\n class: {\n 'mc-table__table_body-cell': true,\n 'mc-table__table_body-cell--fixed-first': column.fixedFirst,\n 'mc-table__table_body-cell--fixed-last': column.fixedLast,\n 'mc-table__table_body-cell--shadow-first': column.fixedFirst && shadows.firstColHasShadow,\n 'mc-table__table_body-cell--shadow-last': column.fixedLast && shadows.lastColHasShadow\n }\n }))\n})\n\nconst computedFooterColumns = computed((): ITableColumnEnriched[] => {\n return computedColumns.value.map((column) => ({\n ...column,\n class: {\n 'mc-table__table_footer-cell': true,\n 'mc-table__table_footer-cell--fixed-first': column.fixedFirst,\n 'mc-table__table_footer-cell--fixed-last': column.fixedLast,\n 'mc-table__table_footer-cell--shadow-first': column.fixedFirst && shadows.firstColHasShadow,\n 'mc-table__table_footer-cell--shadow-last': column.fixedLast && shadows.lastColHasShadow\n }\n }))\n})\n\nconst containerStyle = computed((): { [key: string]: string } => {\n return {\n '--mc-table-height': typeof props.height === 'number' ? `${props.height}px` : props.height,\n '--mc-table-header-row-height': helper.isNumber(props.headerRowHeight) ? `${props.headerRowHeight}px` : '40px',\n '--mc-table-row-height': helper.isNumber(props.rowHeight) ? `${props.rowHeight}px` : '40px',\n '--mc-table-footer-row-height': helper.isNumber(props.footerRowHeight) ? `${props.footerRowHeight}px` : '40px'\n }\n})\n\nconst computedTableCardProps = computed((): ITableCardProps => {\n return {\n tableColumns: props.columns,\n tableData: props.data,\n tableTotals: props.totals,\n tableSort: props.sort,\n tableHeaderRowHeight: props.headerRowHeight,\n tableFooterRowHeight: props.footerRowHeight,\n tableFixedFirstColumn: props.fixedFirstColumn,\n tableCardProps: props.toTableCardProps\n }\n})\n\nonMounted((): void => {\n addListeners()\n})\nonBeforeUnmount((): void => {\n removeListeners()\n})\n\nconst onBodyScroll = useThrottleFn((): void => {\n if (mcTable.value) {\n const { scrollLeft, scrollWidth, clientWidth } = mcTable.value\n const firstColShadow = props.fixedFirstColumn && scrollLeft > 0\n const lastColShadow = props.fixedLastColumn && scrollLeft + clientWidth < scrollWidth\n\n if (shadows.firstColHasShadow !== firstColShadow) shadows.firstColHasShadow = firstColShadow\n if (shadows.lastColHasShadow !== lastColShadow) shadows.lastColHasShadow = lastColShadow\n }\n}, 10)\n\nconst addListeners = (): void => {\n if (hasFixedColumn.value && mcTable.value) {\n onBodyScroll()\n mcTable.value.addEventListener('scroll', onBodyScroll)\n }\n}\nconst removeListeners = (): void => {\n if (hasFixedColumn.value && mcTable.value) mcTable.value.removeEventListener('scroll', onBodyScroll)\n}\n\nconst handleRowClick = (row: any): void => {\n emit('row-click', row)\n}\n\nconst handleSetCardState = (payload: TableCardState) => {\n openCardState.value = payload\n emit('table-card-opened', payload)\n}\n</script>\n\n<template>\n <div class=\"mc-table__container\" :style=\"containerStyle\">\n <div ref=\"mcTable\" class=\"mc-table\">\n <div class=\"mc-table__table\">\n <!-- HEADER -->\n <div class=\"mc-table__table_header\">\n <div class=\"mc-table__table_header-row\">\n <div v-for=\"(column, cI) in computedHeaderColumns\" :key=\"cI\" :class=\"column.class\" :style=\"column.style\">\n <div class=\"mc-table__table_header-cell_content\">\n <div class=\"mc-table__table_header-cell_content-left\">\n <mc-table-sort\n v-if=\"column.sortable\"\n :column=\"column.field\"\n :sort=\"sort\"\n @change=\"(val) => emit('sort', val)\"\n />\n <!-- slot для колонки хедера -->\n <slot name=\"header-cell\" :column=\"column\" :cellIndex=\"cI\">\n <mc-title :text-align=\"column.align\" :weight=\"Weights.SemiBold\" pre-line\n >{{ column.header }}\n </mc-title>\n </slot>\n </div>\n <div class=\"mc-table__table_header-cell_content-right\">\n <!-- slot справа от хедера колонки -->\n <slot :name=\"`${column.field}-header-right`\" :column=\"column\" :cellIndex=\"cI\" />\n <!-- slot для тотала (выводится в chip) -->\n <slot :name=\"`${column.field}-total`\" :column=\"column\" :cellIndex=\"cI\">\n <mc-chip\n v-if=\"column.total\"\n :title=\"column.total\"\n variation=\"hover-gray\"\n text-color=\"gray\"\n :size=\"ChipSize.S\"\n />\n </slot>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- BODY -->\n <div class=\"mc-table__table_body\">\n <!-- Отображение скелетной загрузки -->\n <mc-table-skeleton-loading v-if=\"props.skeletonLoading\" :columns=\"computedBodyColumns\" />\n <template v-if=\"hasData\">\n <div\n v-for=\"(row, rI) in data\"\n :key=\"rI\"\n class=\"mc-table__table_body-row\"\n :class=\"{ 'mc-table__table_body-row--active': String(openCardState.id) === String(row.id) }\"\n @click=\"() => handleRowClick(row)\"\n >\n <div v-for=\"(column, cI) in computedBodyColumns\" :key=\"cI\" :class=\"column.class\" :style=\"column.style\">\n <div class=\"mc-table__table_body-cell_content\">\n <div class=\"mc-table__table_body-cell_content-left\">\n <!-- slot для контента (по именем колонки) -->\n <slot\n :name=\"column.field\"\n :row=\"row\"\n :rowIndex=\"rI\"\n :column=\"column\"\n :cellIndex=\"cI\"\n :cellValue=\"row[column.field]\"\n >\n <mc-title :text-align=\"column.align\" ellipsis>{{ row[column.field] }}</mc-title>\n </slot>\n </div>\n <!-- slot срава от контента (по именем колонки + '-right') -->\n <div v-if=\"slots[`${column.field}-right`]\" class=\"mc-table__table_body-cell_content-right\">\n <slot :name=\"`${column.field}-right`\" />\n </div>\n </div>\n </div>\n </div>\n </template>\n <mc-infinity-loading-trigger :active=\"props.hasLoadMore\" @loading=\"emit('loading')\" />\n </div>\n\n <!-- FOOTER -->\n <div v-if=\"hasTotals\" class=\"mc-table__table_footer\">\n <div class=\"mc-table__table_footer-row\">\n <div v-for=\"(column, cI) in computedFooterColumns\" :key=\"cI\" :class=\"column.class\" :style=\"column.style\">\n <slot name=\"footer-cell\" :column=\"column\" :cellIndex=\"cI\" :cellValue=\"totals[column.field]\">\n <mc-title :text-align=\"column.align\" :weight=\"Weights.SemiBold\">\n {{ totals[column.field] }}\n </mc-title>\n </slot>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- slot для карточки, по дефолту будет вывлдить карточку из вложенного роута -->\n <slot v-bind=\"computedTableCardProps\" @setTableCardState=\"handleSetCardState\">\n <!-- место для рендера карточки, когда она находится по вложенному роуту -->\n <router-view v-bind=\"computedTableCardProps\" @setTableCardState=\"handleSetCardState\" />\n </slot>\n <mc-bottom-loader v-if=\"bottomLoading\" />\n <mc-overlay v-if=\"loading\" />\n <mc-no-data\n v-if=\"!hasData\"\n variation=\"small\"\n :title=\"placeholders.no_data\"\n :img=\"props.noDataImg\"\n :icon=\"props.noDataIcon\"\n />\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/colors' as *;\n@use '../../../../assets/tokens/font-families' as *;\n@use '../../../../assets/tokens/font-weights' as *;\n@use '../../../../assets/tokens/font-sizes' as *;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/sizes' as *;\n@use '../../../../assets/tokens/box-shadows' as *;\n@use '../../../../assets/tokens/z-indexes' as *;\n@use '../../../../assets/tokens/media-queries' as *;\n@mixin fixed-first {\n left: 0;\n z-index: $z-index-notification;\n border-right: var(--border-style);\n background-color: $color-white;\n}\n@mixin fixed-last {\n right: 0;\n z-index: $z-index-notification;\n background-color: $color-white;\n}\n@mixin fixed-classes {\n &--fixed-first {\n @include fixed-first;\n }\n &--fixed-last {\n @include fixed-last;\n }\n}\n@mixin shadow-classes {\n &--shadow-first {\n @include shadow-first;\n }\n &--shadow-last {\n @include shadow-last;\n }\n}\n@mixin shadow-first {\n border-right-color: $color-transparent;\n &::after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n background: none;\n width: 1px;\n height: 100%;\n box-shadow: 5px 0 8px $color-black;\n pointer-events: none;\n }\n}\n@mixin shadow-last {\n border-left-color: $color-transparent;\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n background: none;\n width: 1px;\n height: 100%;\n box-shadow: -5px 0 8px $color-black;\n pointer-events: none;\n }\n}\n@mixin grow {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n}\n@mixin cell-alignment {\n display: flex;\n align-items: center;\n padding: 0 $space-200;\n}\n.mc-table {\n font-family: $font-family-main;\n overflow-y: auto;\n max-height: 100%;\n @include grow;\n * {\n box-sizing: border-box;\n }\n &__container {\n --border-style: 1px solid #{$color-hover-gray};\n --table-row-hover-background-color: #{$color-hover-gray};\n position: relative;\n overflow: hidden;\n font-size: $font-size-200;\n height: var(--mc-table-height);\n border: var(--border-style);\n @include grow;\n }\n &__table {\n @include grow;\n &_header {\n position: sticky;\n top: 0;\n z-index: $z-index-overlay;\n &-row {\n display: flex;\n flex-wrap: nowrap;\n height: var(--mc-table-header-row-height);\n }\n &-cell {\n position: sticky;\n text-align: left;\n top: 0;\n z-index: 10;\n width: var(--mc-table-cell-width);\n max-width: var(--mc-table-cell-max-width);\n min-width: var(--mc-table-cell-min-width);\n background-color: $color-white;\n border-bottom: var(--border-style);\n @include cell-alignment;\n @include fixed-classes;\n @include shadow-classes;\n &_content {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n &-left {\n display: flex;\n align-items: center;\n @include child-indent-right($space-50);\n }\n &-right {\n display: flex;\n align-items: center;\n @include child-indent-right($space-50);\n }\n }\n }\n }\n &_body {\n @include grow;\n $body: &;\n &-row {\n display: flex;\n flex-wrap: nowrap;\n height: var(--mc-table-row-height);\n cursor: pointer;\n &--active {\n #{$body}-cell {\n background-color: var(--table-row-hover-background-color);\n }\n }\n &:hover {\n #{$body}-cell {\n background-color: var(--table-row-hover-background-color);\n &_content-right {\n display: flex;\n }\n }\n }\n @media #{$media-mobile} {\n #{$body}-cell {\n &_content-right {\n display: flex;\n }\n }\n }\n }\n &-cell {\n position: sticky;\n z-index: 15;\n text-align: left;\n width: var(--mc-table-cell-width);\n max-width: var(--mc-table-cell-max-width);\n min-width: var(--mc-table-cell-min-width);\n @include cell-alignment;\n @include fixed-classes;\n @include shadow-classes;\n &_content {\n width: 100%;\n &-right {\n position: absolute;\n display: none;\n top: 0;\n right: 0;\n padding-right: $space-200;\n padding-left: $space-200;\n height: var(--mc-table-row-height);\n align-items: center;\n background: linear-gradient(90deg, rgba($color-hover-gray, 0.2) 0%, $color-hover-gray 60%);\n z-index: $z-index-notification;\n @include child-indent-right($space-50);\n }\n &-left {\n display: flex;\n align-items: center;\n @include child-indent-right($space-50);\n }\n }\n }\n }\n &_footer {\n position: sticky;\n bottom: 0;\n z-index: $z-index-notification;\n &-row {\n display: flex;\n flex-wrap: nowrap;\n height: var(--mc-table-footer-row-height);\n }\n &-cell {\n position: sticky;\n z-index: 15;\n text-align: left;\n width: var(--mc-table-cell-width);\n max-width: var(--mc-table-cell-max-width);\n min-width: var(--mc-table-cell-min-width);\n background-color: $color-white;\n border-top: var(--border-style);\n @include cell-alignment;\n @include fixed-classes;\n @include shadow-classes;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McButton, McSvgIcon } from '@/components'\nimport { ButtonSize } from '@/enums'\nimport type { PropType } from 'vue'\n\nconst props = defineProps({\n buttonBackText: {\n type: String as PropType<string>,\n default: 'Back'\n },\n backTo: {\n type: String as PropType<string>,\n default: null\n }\n})\n</script>\n\n<template>\n <section class=\"mc-table-card-header\">\n <div class=\"mc-table-card-header__left\">\n <!-- @slot Слот контента -->\n <slot>\n <mc-button :to=\"props.backTo\" exact variation=\"purple-link\" :size=\"ButtonSize.Xs\">\n <template #icon-prepend>\n <mc-svg-icon name=\"arrow_backward\" />\n </template>\n {{ props.buttonBackText }}\n </mc-button>\n </slot>\n </div>\n <div class=\"mc-table-card-header__right\">\n <!-- @slot right -->\n <slot name=\"right\" />\n </div>\n </section>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../../assets/styles/mixins' as *;\n@use '../../../../../assets/tokens/colors' as *;\n@use '../../../../../assets/tokens/spacings' as *;\n.mc-table-card-header {\n $block-name: &;\n\n display: flex;\n flex-wrap: nowrap;\n background-color: $color-white;\n padding: 0;\n padding-inline: $space-150 $space-200;\n align-items: center;\n height: 100%;\n\n &__left,\n &__right {\n @include layout-flex-fix();\n display: flex;\n flex-wrap: nowrap;\n @include child-indent-right($space-200);\n\n &:empty {\n display: none;\n }\n }\n\n &__left {\n margin-inline-end: auto;\n }\n\n &__right {\n margin-inline-start: auto;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, onMounted, type PropType, ref, useSlots, watch } from 'vue'\nimport {\n type ITableColumn,\n type ITableColumnWidth,\n type ITableData,\n type ITableSort,\n type ITableTotals,\n type TableCardState\n} from '@/types/ITable'\nimport { TABLE } from '@/consts/table'\nimport { useHelper } from '@/composables'\n\nconst slots = useSlots()\nconst emit = defineEmits<{\n (e: 'set-table-card-state', value: TableCardState): void\n (e: 'card-id-updated', value: TableCardState): void\n}>()\n\n/**\n * Если карточка исползуется как отдельная страница!\n * 1. Если карточка используется как рутовый узел страницы, то компонент McTableCard, автоматически получит все пропсы от таблицы\n * 2. Если карточка используется НЕ как рутовый узел, нужно принять в компоненте все пропсы как в карточке, и передать их в компонент McTableCard\n *\n * При использовании как описано в п1. Автоматически получит все пропсы от таблицы, так же будут доступны через slot-scope в дефолтном слоте.\n * */\nconst props = defineProps({\n /**\n * Обязательно что бы таблица правильно подсвечивала выбранную строку. Проверка будет по полю id\n * Если карточка используется как рутовый узел страницы, будет автоматически приходить router.params.id\n * */\n id: {\n type: [String, Number] as PropType<string | number>\n },\n tableColumns: {\n type: Array as PropType<ITableColumnWidth[]>,\n default: () => []\n },\n tableData: {\n type: Array as PropType<ITableData>,\n default: () => []\n },\n tableTotals: {\n type: Object as PropType<ITableTotals<ITableColumn>>,\n default: () => ({})\n },\n tableSort: {\n type: Object as PropType<ITableSort>,\n default: () => ({})\n },\n tableFixedFirstColumn: {\n type: Boolean as PropType<boolean>,\n default: true\n },\n tableHeaderRowHeight: {\n type: Number as PropType<number>,\n default: TABLE.defaultHeaderHeight\n },\n tableFooterRowHeight: {\n type: Number as PropType<number>,\n default: TABLE.defaultFooterRowHeight\n },\n tableCardProps: {\n type: Object as PropType<Record<any, any>>,\n default: () => ({})\n },\n footerBlur: {\n type: Boolean,\n default: false\n }\n})\n\nconst helper = useHelper()\n\nconst tableFirstColWidth = computed((): number => {\n const [first] = props.tableColumns\n return first?.width ? first.width : TABLE.defaultTableFirstColWidth\n})\n\nconst bodyEl = ref<HTMLElement | null>(null)\nconst body_scrolled_to_bottom = ref(true)\n\nconst computedFooterClasses = computed((): { [key: string]: boolean } => {\n return {\n 'mc-table-card__footer': !!slots.footer,\n 'mc-table-card__footer--with-blur': props.footerBlur && !body_scrolled_to_bottom.value\n }\n})\n\nconst cardStyle = computed((): { [key: string]: string } => {\n const borderCompensations = -1\n return {\n '--table-card-header-height': helper.isNumber(props.tableHeaderRowHeight)\n ? `${props.tableHeaderRowHeight + borderCompensations}px`\n : `${TABLE.defaultHeaderHeight}px`,\n '--table-card-footer-height': helper.isNumber(props.tableFooterRowHeight)\n ? `${props.tableFooterRowHeight + borderCompensations}px`\n : `${TABLE.defaultFooterRowHeight}px`,\n marginLeft: `${tableFirstColWidth.value}px`\n }\n})\n\nonMounted(() => {\n if (props.footerBlur) {\n initBlur()\n }\n handleEmitTableCardState({ state: true, id: props.id })\n})\n\nonBeforeUnmount(() => {\n bodyEl.value && bodyEl.value.removeEventListener('scroll', handlerScroll)\n handleEmitTableCardState({ state: false })\n})\n\nconst initBlur = () => {\n try {\n body_scrolled_to_bottom.value = false\n bodyEl.value && bodyEl.value.addEventListener('scroll', handlerScroll)\n } catch (e) {\n console.error(e)\n }\n}\n\nconst handlerScroll = () => {\n try {\n if (bodyEl.value) {\n const { offsetHeight, scrollTop, scrollHeight } = bodyEl.value\n body_scrolled_to_bottom.value = offsetHeight + scrollTop === scrollHeight\n }\n } catch (e) {\n body_scrolled_to_bottom.value = true\n console.error(e)\n }\n}\n\nconst handleEmitTableCardState = (payload: TableCardState) => {\n emit('set-table-card-state', payload)\n}\n\nwatch(\n () => props.footerBlur,\n (val) => {\n if (val) {\n initBlur()\n } else {\n bodyEl.value && bodyEl.value.removeEventListener('scroll', handlerScroll)\n }\n }\n)\nwatch(\n () => props.id,\n (id) => {\n const state: TableCardState = { state: true, id }\n handleEmitTableCardState(state)\n emit('card-id-updated', state)\n }\n)\n</script>\n\n<template>\n <div class=\"mc-table-card\" :style=\"cardStyle\">\n <div v-if=\"$slots.header\" class=\"mc-table-card__header\">\n <!-- @slot Слот заголовка -->\n <slot name=\"header\" />\n </div>\n <div ref=\"bodyEl\" class=\"mc-table-card__body\">\n <!-- @slot Слот контента -->\n <slot v-bind=\"props\" />\n </div>\n <div v-if=\"$slots.footer || footerBlur\" :class=\"computedFooterClasses\">\n <!-- @slot Слот футера -->\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/colors' as *;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/sizes' as *;\n@use '../../../../assets/tokens/z-indexes' as *;\n.mc-table-card {\n $block-name: &;\n\n --table-card-header-height: $size-500;\n --table-card-footer-height: $size-500;\n @include position(absolute, 0);\n z-index: $z-index-overlay;\n background-color: $color-white;\n border-inline-start: 1px solid $color-hover-gray;\n display: flex;\n flex-direction: column;\n @include custom-scroll();\n\n &__header {\n height: var(--table-card-header-height);\n border-bottom: 1px solid $color-hover-gray;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n }\n\n &__body {\n position: relative;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow-y: auto;\n }\n\n &__footer {\n border-top: 1px solid $color-hover-gray;\n height: var(--table-card-footer-height);\n flex-shrink: 0;\n padding: 0 $space-200;\n display: flex;\n align-items: center;\n @include child-indent-right($space-150);\n &:empty {\n display: none;\n }\n &--with-blur {\n position: relative;\n &::after {\n @include pseudo;\n height: $space-900;\n background: linear-gradient(to top, $color-white, transparent);\n position: absolute;\n width: 100%;\n inset-inline-start: 0;\n bottom: 100%;\n pointer-events: none;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, type PropType } from 'vue'\nimport type { ITableColumnEnriched } from '@/types'\n\nconst props = defineProps({\n columns: {\n type: Array as PropType<ITableColumnEnriched[]>,\n required: true,\n default: () => [] as ITableColumnEnriched[]\n }\n})\n\nconst firstColsWidth = computed(() => {\n const [firstColumn] = props.columns\n return firstColumn.width\n})\n</script>\n\n<template>\n <section class=\"mc-table-skeleton-loading skeleton-load-wrapper\">\n <div\n v-for=\"(column, i) in props.columns\"\n :style=\"column.style\"\n class=\"mc-table-skeleton-loading__col\"\n :key=\"`skeleton-col__${i}`\"\n >\n <div v-for=\"(cell, cellI) in 36\" :key=\"`skeleton-cell-${cellI}`\" class=\"mc-table-skeleton-loading__cell\">\n <div v-if=\"!cellI\" class=\"mc-table-skeleton-loading__loader mc-table-skeleton-loading__loader--more-height\">\n <div class=\"mc-table-skeleton-loading__loader_line\"></div>\n </div>\n <div v-if=\"!i\" class=\"mc-table-skeleton-loading__loader\" :style=\"{ minWidth: `${firstColsWidth}px` }\">\n <div class=\"mc-table-skeleton-loading__loader_avatar\"></div>\n <div class=\"mc-table-skeleton-loading__loader_preview-content\">\n <div class=\"mc-table-skeleton-loading__loader_line\"></div>\n <div class=\"mc-table-skeleton-loading__loader_line\"></div>\n </div>\n </div>\n <div v-else class=\"mc-table-skeleton-loading__loader\">\n <div class=\"mc-table-skeleton-loading__loader_line\"></div>\n </div>\n </div>\n </div>\n </section>\n</template>\n\n<style lang=\"scss\">\n@use '../../../../assets/styles/mixins' as *;\n@use '../../../../assets/tokens/z-indexes' as *;\n@use '../../../../assets/tokens/colors' as *;\n@use '../../../../assets/tokens/spacings' as *;\n@use '../../../../assets/tokens/sizes' as *;\n@mixin gradient() {\n background: $color-hover-gray;\n background-image: -webkit-gradient(\n linear,\n left center,\n right center,\n from($color-hover-gray),\n color-stop(0.2, rgba($color-white, 0.5)),\n color-stop(0.4, $color-hover-gray),\n to($color-hover-gray)\n );\n background-image: -webkit-linear-gradient(\n left,\n $color-hover-gray 0%,\n rgba($color-white, 0.5) 20%,\n $color-hover-gray 40%,\n $color-hover-gray 100%\n );\n background-repeat: no-repeat;\n background-size: 800px 100%;\n animation: placeHolderShimmer 1s linear infinite forwards;\n border-radius: 10px;\n > * {\n background: transparent;\n position: relative;\n margin: 0 auto;\n width: 100%;\n overflow: hidden;\n &:after {\n content: '';\n position: absolute;\n border: 500px solid $color-white;\n width: 100%;\n }\n }\n}\n\n.mc-table-skeleton-loading {\n display: flex;\n overflow: hidden;\n max-width: 100%;\n width: 100%;\n position: absolute;\n height: 100%;\n z-index: $z-index-overlay;\n background-color: $color-white;\n user-select: none;\n //margin-top: calc(var(--mc-table-header-row-height) * -1);\n &__col {\n width: var(--mc-table-cell-width);\n max-width: var(--mc-table-cell-max-width);\n min-width: var(--mc-table-cell-min-width);\n }\n &__cell {\n height: var(--mc-table-row-height);\n }\n &__loader {\n width: 100%;\n display: flex;\n align-items: center;\n height: $space-500;\n padding: $space-100 $space-200;\n &_avatar {\n display: block;\n float: left;\n position: relative;\n height: $size-300;\n width: $size-300;\n min-width: $size-300;\n margin-inline-end: $space-50;\n @include gradient();\n }\n &_preview-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n @include child-indent-bottom($space-50);\n }\n &_line {\n display: block;\n position: relative;\n height: $size-100;\n width: 100%;\n @include gradient();\n }\n &--more-height {\n .line {\n height: $size-150;\n width: 75%;\n min-width: 150px;\n }\n }\n\n @keyframes placeHolderShimmer {\n 0% {\n background-position: -468px 0;\n }\n 100% {\n background-position: 468px 0;\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McSvgIcon } from '@/components'\nimport { computed, type PropType } from 'vue'\nimport type { ITableSort, ITableSortState } from '@/types/ITable'\n\nconst emit = defineEmits<{\n (e: 'change', value: ITableSort): void\n}>()\n\nconst props = defineProps({\n sort: {\n type: Object as PropType<ITableSort>,\n default: () => ({})\n },\n column: {\n type: String as PropType<string>,\n default: null\n }\n})\n\nconst isActive = computed((): boolean => {\n return props.column === props.sort.sort_column\n})\n\nconst sortState = computed((): ITableSortState => {\n switch (true) {\n case props.sort.sort_direction === 'asc' && isActive.value:\n return {\n direction: 'asc',\n next_direction: 'desc',\n icon: 'arrow_downward'\n }\n case props.sort.sort_direction === 'desc' && isActive.value:\n return {\n direction: 'desc',\n next_direction: 'asc',\n icon: 'arrow_upward'\n }\n default:\n return {\n direction: null,\n next_direction: 'asc',\n icon: 'arrow_up_down'\n }\n }\n})\n\nconst handleSortChange = () => {\n emit('change', {\n sort_column: props.column,\n sort_direction: sortState.value.next_direction\n })\n}\n</script>\n\n<template>\n <div class=\"mc-table-sort\" @click=\"handleSortChange\">\n <mc-svg-icon size=\"200\" :name=\"sortState.icon\" :color=\"isActive ? 'black' : 'gray'\" />\n </div>\n</template>\n\n<style lang=\"scss\">\n.mc-table-sort {\n cursor: pointer;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { McAvatar, McButton, McSvgIcon, McSeparator, McDropdown } from '@/components'\nimport { type PropType, ref } from 'vue'\nimport { ButtonSize, DropdownPositions, HorizontalAlignment } from '@/enums'\nimport type { IconsListUnion } from '@/types'\n\nconst props = defineProps({\n /**\n * Данные пользователя\n *\n */\n user: {\n type: Object as PropType<Record<string, any>>,\n default: () => ({})\n },\n /**\n * Меню языков\n *\n */\n menuLangs: {\n type: Array,\n default: () => []\n },\n /**\n * Локализация или текст по умолчанию\n *\n */\n defaultLang: {\n type: String as PropType<string>,\n default: 'Выберите язык'\n },\n /**\n * Текущая локализация\n *\n */\n currentLang: {\n type: String as PropType<string>,\n default: null\n }\n})\n\nconst menuLangsDD = ref<HTMLElement | null>(null)\nconst localesDropdownOpen = ref(false)\nconst userDropdownOpen = ref(false)\n</script>\n\n<template>\n <div class=\"mc-top-bar\">\n <div class=\"mc-top-bar__inner\">\n <div v-if=\"$slots.left\" class=\"mc-top-bar__left\">\n <slot name=\"left\" />\n </div>\n <div class=\"mc-top-bar__right\">\n <slot name=\"right\" />\n <mc-dropdown\n v-if=\"menuLangs && menuLangs.length\"\n ref=\"menuLangsDD\"\n :items=\"menuLangs\"\n v-model=\"localesDropdownOpen\"\n list-min-width=\"auto\"\n class=\"mc-top-bar__menu-langs\"\n >\n <template #activator>\n <mc-button variation=\"black-link\" uppercase>\n {{ currentLang || defaultLang }}\n <template #icon-append>\n <mc-svg-icon class=\"rotate\" name=\"arrow_drop_down\" />\n </template>\n </mc-button>\n </template>\n <template #item=\"{ item }\">\n <mc-button\n :to=\"item.to || item.href\"\n :exact=\"item.exact\"\n variation=\"black-flat\"\n :text-align=\"HorizontalAlignment.Left\"\n full-width\n >\n <template #icon-prepend>\n <mc-svg-icon :name=\"`flag_${item.name.toLowerCase()}` as IconsListUnion\" />\n </template>\n {{ item.name }}\n </mc-button>\n </template>\n </mc-dropdown>\n <slot name=\"user\">\n <mc-dropdown v-if=\"props.user\" v-model=\"userDropdownOpen\" :position=\"DropdownPositions.Right\">\n <template #activator>\n <mc-button variation=\"white-flat\" :size=\"ButtonSize.MCompact\">\n <template #icon-prepend>\n <mc-avatar :src=\"props.user.avatar\" rounded size=\"400\" />\n </template>\n </mc-button>\n </template>\n <slot name=\"user-dropdown-panel\" />\n </mc-dropdown>\n </slot>\n </div>\n </div>\n <mc-separator color=\"hover-gray\" indent-top=\"100\" />\n <slot name=\"bottom\" />\n </div>\n</template>\n\n<style lang=\"scss\">\n@use '../../../assets/styles/mixins' as *;\n@use '../../../assets/tokens/spacings' as *;\n@use '../../../assets/tokens/colors' as *;\n.mc-top-bar {\n $block-name: &;\n\n width: 100%;\n\n &__inner {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: $space-100 $space-150 0 $space-150;\n @include child-indent-right($space-100);\n }\n\n &__left,\n &__right {\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n @include child-indent-right($space-100);\n }\n\n &__right {\n min-width: 0;\n flex: 1 1 auto;\n justify-content: flex-end;\n }\n &__menu-langs {\n .mc-svg-icon {\n svg {\n rect {\n stroke: $color-hover-gray;\n }\n }\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { ref, onMounted, nextTick, watch, type PropType, computed } from 'vue'\n\ninterface VisibleItem {\n key: number\n data: any\n index: number\n top: number\n}\n\nconst props = defineProps({\n /**\n * Массив данных для рендеринга\n * */\n items: {\n type: Array as PropType<any[]>,\n default: () => [],\n required: true\n },\n /**\n * Высота контейнера скролла\n * */\n containerHeight: {\n type: Number as PropType<number>,\n required: true\n },\n /**\n * Высота 1 элемента списка\n * */\n itemHeight: {\n type: Number as PropType<number>,\n default: 20,\n required: true\n },\n /**\n * Буфер для подгрузки дополнительных элементов вне видимой области\n * */\n buffer: {\n type: Number as PropType<number>,\n default: 1\n }\n})\n\nconst containerRef = ref<HTMLDivElement | null>(null)\nconst scrollTop = ref<number>(0)\nconst visibleItems = ref<VisibleItem[]>([])\nconst totalHeight = ref<number>(0)\n\nconst styles = computed((): { [key: string]: string } => {\n return {\n height: `${props.containerHeight}px`,\n overflowY: 'auto',\n position: 'relative'\n }\n})\n\nonMounted((): void => {\n calculateTotalHeight()\n nextTick(calculateVisibleItems)\n})\n\nconst calculateTotalHeight = (): void => {\n totalHeight.value = props.items.length * props.itemHeight\n}\n\nconst calculateVisibleItems = (): void => {\n const containerHeight = containerRef.value?.clientHeight || 0\n const startIndex = Math.floor(scrollTop.value / props.itemHeight)\n const endIndex = Math.min(props.items.length - 1, Math.floor((scrollTop.value + containerHeight) / props.itemHeight))\n const buffer = props.buffer || 5\n\n const result: VisibleItem[] = []\n for (let i = Math.max(0, startIndex - buffer); i <= Math.min(endIndex + buffer, props.items.length - 1); i++) {\n result.push({\n key: i,\n data: props.items[i],\n index: i,\n top: i * props.itemHeight\n } as VisibleItem)\n }\n visibleItems.value = result\n}\n\nconst onScroll = (): void => {\n scrollTop.value = containerRef.value?.scrollTop || 0\n requestAnimationFrame(calculateVisibleItems)\n}\n\nwatch(\n () => props.items,\n (): void => {\n calculateTotalHeight()\n nextTick(calculateVisibleItems)\n }\n)\n</script>\n\n<template>\n <div class=\"mc-virtual-scroll\" ref=\"containerRef\" @scroll=\"onScroll\" :style=\"styles\">\n <div\n v-for=\"item in visibleItems\"\n :key=\"`mc-virtual-scroll__item-${item.key}`\"\n class=\"mc-virtual-scroll__item\"\n :style=\"{ top: `${item.top}px` }\"\n >\n <slot name=\"item\" :item=\"item.data\" :index=\"item.index\"></slot>\n </div>\n\n <!-- Пустое пространство для скролла -->\n <div :style=\"{ height: `${totalHeight}px` }\"></div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.mc-virtual-scroll {\n position: relative;\n overflow-y: auto;\n &__item {\n position: absolute;\n transition: all 0.3s ease;\n width: 100%;\n }\n}\n</style>\n"],"names":["unref","ref","watch","computed","pausableWatch","jn","T","K","ye","G","ut","o","Ia","ra","al","Te","Zn","el","tl","yn","gn","Kt","Ot","_t","ft","ht","Bt","pe","De","pn","At","it","La","hn","xn","st","jt","Qt","J","ne","Vt","at","nl","bn","kn","rt","Le","We","ua","ie","Ne","Ee","be","tt","Z","ct","Ue","Kn","xe","we","Wt","Re","na","la","$e","ke","Gn","Ze","Nt","Ve","wn","oa","ll","Pt","Qe","Dn","rl","ia","ol","sl","$t","tn","nn","ul","il","an","h","Qn","xa","dl","cl","qn","Xn","en","Jn","onMounted","x","y","u","f","g","c","D","p","I","B","L","m","P","R","U","A","_","onUnmounted","defineComponent","toRef","style","nextTick","head","period","more","less","McFieldText","McFieldSelect","adaptivePropsParams","adaptivePropsSizes","tab"],"mappings":"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","x_google_ignoreList":[5,6,9,15,17,19,20,21,22,23,24]}