@7pmlabs/design-system 0.7.0 → 0.8.1
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.
- package/dist/design-system10.mjs +8 -8
- package/dist/design-system10.mjs.map +1 -1
- package/dist/design-system101.mjs.map +1 -1
- package/dist/design-system102.mjs +16 -16
- package/dist/design-system105.mjs +9 -9
- package/dist/design-system106.mjs.map +1 -1
- package/dist/design-system107.mjs.map +1 -1
- package/dist/design-system108.mjs +16 -16
- package/dist/design-system109.mjs +16 -16
- package/dist/design-system11.mjs.map +1 -1
- package/dist/design-system111.mjs +16 -16
- package/dist/design-system111.mjs.map +1 -1
- package/dist/design-system112.mjs.map +1 -1
- package/dist/design-system114.mjs.map +1 -1
- package/dist/design-system116.mjs +1 -1
- package/dist/design-system117.mjs +1 -1
- package/dist/design-system118.mjs +5 -5
- package/dist/design-system118.mjs.map +1 -1
- package/dist/design-system12.mjs.map +1 -1
- package/dist/design-system123.mjs.map +1 -1
- package/dist/design-system125.mjs +7 -4
- package/dist/design-system125.mjs.map +1 -1
- package/dist/design-system126.mjs +5 -8
- package/dist/design-system126.mjs.map +1 -1
- package/dist/design-system127.mjs +6 -6
- package/dist/design-system127.mjs.map +1 -1
- package/dist/design-system13.mjs.map +1 -1
- package/dist/design-system14.mjs.map +1 -1
- package/dist/design-system15.mjs.map +1 -1
- package/dist/design-system16.mjs.map +1 -1
- package/dist/design-system17.mjs +170 -146
- package/dist/design-system17.mjs.map +1 -1
- package/dist/design-system18.mjs.map +1 -1
- package/dist/design-system19.mjs +64 -64
- package/dist/design-system19.mjs.map +1 -1
- package/dist/design-system20.mjs +78 -78
- package/dist/design-system20.mjs.map +1 -1
- package/dist/design-system21.mjs.map +1 -1
- package/dist/design-system22.mjs.map +1 -1
- package/dist/design-system23.mjs.map +1 -1
- package/dist/design-system24.mjs.map +1 -1
- package/dist/design-system25.mjs.map +1 -1
- package/dist/design-system40.mjs +46 -46
- package/dist/design-system40.mjs.map +1 -1
- package/dist/design-system43.mjs +10 -10
- package/dist/design-system45.mjs.map +1 -1
- package/dist/design-system49.mjs +2 -2
- package/dist/design-system49.mjs.map +1 -1
- package/dist/design-system51.mjs +68 -68
- package/dist/design-system51.mjs.map +1 -1
- package/dist/design-system54.mjs.map +1 -1
- package/dist/design-system57.mjs.map +1 -1
- package/dist/design-system64.mjs +10 -10
- package/dist/design-system64.mjs.map +1 -1
- package/dist/design-system66.mjs.map +1 -1
- package/dist/design-system72.mjs.map +1 -1
- package/dist/design-system76.mjs.map +1 -1
- package/dist/design-system79.mjs.map +1 -1
- package/dist/design-system83.mjs +43 -43
- package/dist/design-system83.mjs.map +1 -1
- package/dist/design-system85.mjs +75 -75
- package/dist/design-system85.mjs.map +1 -1
- package/dist/design-system88.mjs.map +1 -1
- package/dist/design-system90.mjs.map +1 -1
- package/dist/design-system95.mjs +42 -42
- package/dist/design-system95.mjs.map +1 -1
- package/dist/design-system96.mjs +2 -2
- package/dist/design-system96.mjs.map +1 -1
- package/dist/design-system97.mjs +1 -1
- package/dist/design-system97.mjs.map +1 -1
- package/dist/design-system98.mjs +12 -12
- package/dist/design-system98.mjs.map +1 -1
- package/dist/design-system99.mjs.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/components/BBreadcrumb/BBreadcrumb.vue.d.ts +4 -4
- package/dist/types/components/BBreadcrumb/BBreadcrumbSeparator.vue.d.ts +1 -1
- package/dist/types/components/BButton.vue.d.ts +4 -4
- package/dist/types/components/BCarousel/BCarousel.vue.d.ts +6 -6
- package/dist/types/components/BCarousel/BCarouselItem.vue.d.ts +1 -1
- package/dist/types/components/BCheckbox.vue.d.ts +5 -5
- package/dist/types/components/BCollapse.vue.d.ts +3 -3
- package/dist/types/components/BCurrencyField.vue.d.ts +6 -6
- package/dist/types/components/BDatePicker/BDatePicker.vue.d.ts +6 -6
- package/dist/types/components/BDatePicker/BDatePickerButtonNext.vue.d.ts +1 -1
- package/dist/types/components/BDatePicker/BDatePickerButtonPrevious.vue.d.ts +1 -1
- package/dist/types/components/BDatePicker/BDatePickerGridDate.vue.d.ts +3 -3
- package/dist/types/components/BDatePicker/BDatePickerGridDateRange.vue.d.ts +3 -3
- package/dist/types/components/BDatePicker/BDatePickerGridMonth.vue.d.ts +3 -3
- package/dist/types/components/BDatePicker/BDatePickerGridYear.vue.d.ts +3 -3
- package/dist/types/components/BDatePicker/BDatePickerHeading.vue.d.ts +1 -1
- package/dist/types/components/BDatePicker/BDatePickerIcon.vue.d.ts +1 -1
- package/dist/types/components/BDropdown/BDropdown.vue.d.ts +5 -5
- package/dist/types/components/BDropdown/BDropdownContent.vue.d.ts +1 -1
- package/dist/types/components/BDropdown/BDropdownItem.vue.d.ts +4 -4
- package/dist/types/components/BErrorMessage.vue.d.ts +4 -4
- package/dist/types/components/BImagePicker/BImagePicker.vue.d.ts +7 -7
- package/dist/types/components/BImagePicker/BImagePickerCloseButton.vue.d.ts +1 -1
- package/dist/types/components/BImagePicker/BImagePreview.vue.d.ts +3 -3
- package/dist/types/components/BLabel.vue.d.ts +5 -5
- package/dist/types/components/BLoadingBar.vue.d.ts +4 -4
- package/dist/types/components/BLoadingOverlay.vue.d.ts +4 -4
- package/dist/types/components/BModal/BModal.vue.d.ts +5 -5
- package/dist/types/components/BModal/BModalBody.vue.d.ts +1 -1
- package/dist/types/components/BModal/BModalContainer.vue.d.ts +5 -5
- package/dist/types/components/BModal/BModalFooter.vue.d.ts +1 -1
- package/dist/types/components/BModal/BModalHeader.vue.d.ts +1 -1
- package/dist/types/components/BMultiSelect.vue.d.ts +9 -9
- package/dist/types/components/BOtpField/BOtpField.vue.d.ts +7 -7
- package/dist/types/components/BOtpField/BOtpFieldBox.vue.d.ts +7 -7
- package/dist/types/components/BOverlay.vue.d.ts +1 -1
- package/dist/types/components/BPagination.vue.d.ts +5 -5
- package/dist/types/components/BRadio.vue.d.ts +6 -6
- package/dist/types/components/BSelect.vue.d.ts +9 -9
- package/dist/types/components/BStepper.vue.d.ts +3 -3
- package/dist/types/components/BSwitch.vue.d.ts +5 -5
- package/dist/types/components/BTabs/BTab.vue.d.ts +1 -1
- package/dist/types/components/BTabs/BTabs.vue.d.ts +5 -5
- package/dist/types/components/BTextField.vue.d.ts +8 -8
- package/dist/types/components/BTextarea.vue.d.ts +7 -7
- package/dist/types/components/BTimeline/BTimeline.vue.d.ts +1 -1
- package/dist/types/components/BTimeline/BTimelineItem.vue.d.ts +1 -1
- package/dist/types/components/BToast/BToast.vue.d.ts +3 -3
- package/dist/types/components/BToast/BToastItem.vue.d.ts +6 -6
- package/dist/types/components/BTooltip.vue.d.ts +6 -6
- package/dist/types/composables/Validation.d.ts +6 -1
- package/dist/types/constants/Common.d.ts +2 -2
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system20.mjs","sources":["../src/components/BSelect.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, vShow as _vShow, withDirectives as _withDirectives, unref as _unref } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\" }, null, -1)\nconst _hoisted_2 = [\n _hoisted_1\n]\nconst _hoisted_3 = [\"id\", \"disabled\"]\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 1,\n class: \"ds-text-black/[0.4]\"\n}\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\" }, null, -1)\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = [\"id\", \"data-cy\", \"data-ut\"]\nconst _hoisted_9 = { class: \"ds-max-h-72 ds-overflow-y-auto ds-rounded-lg ds-bg-white ds-shadow\" }\nconst _hoisted_10 = { class: \"ds-py-1 ds-text-sm ds-text-black/[0.85]\" }\nconst _hoisted_11 = [\"onClick\"]\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport {\n ensureVisiblePosition,\n lockScrollBody,\n resetPosition,\n unlockScrollBody,\n} from '@/helpers/ComponentHelper';\nimport type { DisplayItem } from '@/types';\nimport { v4 as uuid } from 'uuid';\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\nimport BTextField from './BTextField.vue';\n\n//#region Props\nexport interface BSelectProps {\n inputId?: string;\n modelValue: string | number;\n label?: string;\n items: DisplayItem[];\n disabled?: boolean;\n placeholder?: string;\n valueCssClass?: string;\n menuCssClass?: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n requiredErrorMessage?: string;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n /**\n * Allow to type to search.\n */\n allowInput?: boolean;\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BSelect',\n props: {\n inputId: { default: '' },\n modelValue: {},\n label: { default: '' },\n items: {},\n disabled: { type: Boolean, default: false },\n placeholder: { default: '' },\n valueCssClass: { default: '' },\n menuCssClass: { default: '' },\n validationRules: { default: undefined },\n required: { type: Boolean, default: false },\n requiredErrorMessage: { default: '' },\n hideDetails: { type: Boolean, default: false },\n allowInput: { type: Boolean, default: false }\n },\n emits: [\"change\", \"open\", \"close\", \"change:input\", \"update:modelValue\"],\n setup(__props: any, { expose: __expose, emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nconst selectEl = ref<HTMLElement | null>(null);\nconst inputRef = ref<InstanceType<typeof BTextField> | null>(null);\nconst selectMenuEl = ref<HTMLElement | null>(null);\nconst selectMenu = ref(false);\nconst { t } = useI18n();\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst inputText = ref('');\nconst selectedItem = ref<DisplayItem>();\nconst id = computed(() => props.inputId || `id-${uuid()}`);\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\nconst btnCssClass = computed(() => {\n let result = `ds-border ds-drop-shadow-light ds-text-sm ds-h-[40px] ds-px-3 ds-rounded-lg ds-block ds-w-full ds-inline-flex ds-items-center ds-justify-between `;\n result += props.disabled\n ? `ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/[0.4] `\n : `ds-bg-white ds-text-black/[0.85] `;\n result += !validationResult.value.valid\n ? `ds-border-error focus:ds-ring-1 focus:ds-ring-error `\n : `ds-border-black/10 focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus `;\n\n return result;\n});\nconst vRules = computed(() => {\n let result: ValidationRule[] = [];\n\n if (props.required) {\n result.push(validateRequired);\n }\n if (props.validationRules) {\n result = result.concat(props.validationRules);\n }\n\n return result.length ? result : undefined;\n});\n\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n//#endregion\n\n//#region Watchers\nwatch(selectMenu, (val) => {\n if (val) {\n lockScrollBody();\n ensureMenuPosition();\n emit('open');\n } else {\n unlockScrollBody();\n resetMenuPosition();\n emit('close');\n }\n});\nwatch(value, () => {\n ensureSelectedItem();\n ensureInputText();\n});\nwatch(\n () => props.items,\n () => {\n if (value.value && !selectedItem.value?.value) {\n ensureSelectedItem();\n ensureInputText();\n }\n },\n {\n deep: true,\n },\n);\n//#endregion\n\n//#region Methods\nconst ensureSelectedItem = () => {\n selectedItem.value = props.items?.find((i) => i.value === value.value);\n};\nconst ensureInputText = () => {\n if (props.allowInput) {\n inputText.value = selectedItem.value?.text || '';\n }\n};\nconst initPressEscapeEventListener = () => {\n document.addEventListener('keydown', closeOnEscapePressed);\n};\nconst closeOnEscapePressed = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeSelectMenu();\n }\n};\nconst initClickOutsideEventListener = () => {\n document.addEventListener('click', closeOnClickOutside);\n};\nconst closeOnClickOutside = (event: any) => {\n const refs = [selectEl.value, selectMenuEl.value];\n const withinBoundaries = refs.some((r) => event.composedPath().includes(r));\n if (!withinBoundaries) {\n closeSelectMenu();\n }\n};\nconst onClickItem = (item: DisplayItem) => {\n value.value = item.value;\n closeSelectMenu();\n emit('change', item.value);\n nextTick(() => {\n validate();\n });\n};\nconst ensureMenuWidth = (parentEl: HTMLElement, menuEl: HTMLElement) => {\n menuEl.style.width = `${parentEl.offsetWidth}px`;\n};\nconst ensureMenuPosition = () => {\n nextTick(() => {\n ensureVisiblePosition(selectEl.value!, selectMenuEl.value!);\n ensureMenuWidth(selectEl.value!, selectMenuEl.value!);\n });\n};\nconst resetMenuPosition = () => {\n resetPosition(selectEl.value!, selectMenuEl.value!);\n};\nconst onChangeInputText = (text: string) => {\n emit('change:input', text);\n};\nconst closeSelectMenu = () => {\n selectMenu.value = false;\n inputRef.value?.blur();\n ensureInputText();\n};\nconst init = () => {\n ensureSelectedItem();\n ensureInputText();\n};\ninit();\n//#endregion\n\n//#region Lifecycle Hooks\nonMounted(() => {\n initPressEscapeEventListener();\n initClickOutsideEventListener();\n});\nonBeforeUnmount(() => {\n document.removeEventListener('keydown', closeOnEscapePressed);\n document.removeEventListener('click', closeOnClickOutside);\n unlockScrollBody();\n // Make sure dropdown menu unmounted with itself\n resetMenuPosition();\n});\n//#endregion\n\n__expose({ validate, selectMenu });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", {\n ref_key: \"selectEl\",\n ref: selectEl\n }, [\n _createVNode(BLabel, {\n id: id.value,\n label: _ctx.label,\n required: _ctx.required\n }, null, 8, [\"id\", \"label\", \"required\"]),\n (props.allowInput)\n ? (_openBlock(), _createBlock(BTextField, {\n key: 0,\n id: id.value,\n ref_key: \"inputRef\",\n ref: inputRef,\n modelValue: inputText.value,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event: any) => ((inputText).value = $event)),\n onChangeInputText\n ],\n disabled: props.disabled,\n placeholder: props.placeholder,\n \"hide-details\": \"\",\n onFocus: _cache[1] || (_cache[1] = ($event: any) => (selectMenu.value = true)),\n \"onClick:append\": _cache[2] || (_cache[2] = ($event: any) => (inputRef.value?.focus()))\n }, {\n appendIcon: _withCtx(() => [\n (_openBlock(), _createElementBlock(\"svg\", {\n class: _normalizeClass([[selectMenu.value ? 'ds-rotate-180' : ''], \"ds-h-4 ds-w-4 ds-transition-transform\"]),\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _hoisted_2, 2))\n ]),\n _: 1\n }, 8, [\"id\", \"modelValue\", \"disabled\", \"placeholder\"]))\n : (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n id: id.value,\n class: _normalizeClass(btnCssClass.value),\n disabled: props.disabled,\n type: \"button\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (selectMenu.value = !selectMenu.value))\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([_ctx.valueCssClass, \"ds-truncate\"])\n }, [\n (selectedItem.value?.text)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(selectedItem.value?.text), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(props.placeholder), 1))\n ], 2),\n _createTextVNode(\" \"),\n (_openBlock(), _createElementBlock(\"svg\", {\n class: _normalizeClass([[selectMenu.value ? 'ds-rotate-180' : ''], \"ds-h-4 ds-w-4 ds-transition-transform\"]),\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _hoisted_7, 2))\n ], 10, _hoisted_3)),\n _withDirectives(_createElementVNode(\"div\", {\n id: `${id.value}Menu`,\n ref_key: \"selectMenuEl\",\n ref: selectMenuEl,\n class: _normalizeClass([_ctx.menuCssClass, \"ds-absolute ds-z-50 ds-min-w-[8rem] ds-py-1\"]),\n \"data-cy\": _ctx.$attrs['data-cy'] ? `${_ctx.$attrs['data-cy']}Menu` : undefined,\n \"data-ut\": _ctx.$attrs['data-ut'] ? `${_ctx.$attrs['data-ut']}Menu` : undefined\n }, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"ul\", _hoisted_10, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: `item${index}`,\n class: \"ds-cursor-pointer\",\n onClick: ($event: any) => (onClickItem(item))\n }, [\n _createElementVNode(\"a\", {\n class: _normalizeClass([\n item.cssClass +\n `${item.value === value.value ? ' ds-bg-gray-150' : ''}`\n , \"ds-block ds-px-4 ds-py-2 hover:ds-bg-gray-150\"])\n }, _toDisplayString(item?.text), 3)\n ], 8, _hoisted_11))\n }), 128))\n ])\n ])\n ], 10, _hoisted_8), [\n [_vShow, selectMenu.value]\n ])\n ], 512),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_sfc_main","_defineComponent","__props","__expose","__emit","props","emit","selectEl","ref","inputRef","selectMenuEl","selectMenu","t","useI18n","validateRequired","val","inputText","selectedItem","id","computed","uuid","value","btnCssClass","result","validationResult","vRules","validate","useValidationField","watch","lockScrollBody","ensureMenuPosition","unlockScrollBody","resetMenuPosition","ensureSelectedItem","ensureInputText","_a","i","initPressEscapeEventListener","closeOnEscapePressed","event","closeSelectMenu","initClickOutsideEventListener","closeOnClickOutside","r","onClickItem","item","nextTick","ensureMenuWidth","parentEl","menuEl","ensureVisiblePosition","resetPosition","onChangeInputText","text","onMounted","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_createVNode","BLabel","_createBlock","BTextField","$event","_withCtx","_normalizeClass","_toDisplayString","_b","_createTextVNode","_withDirectives","_Fragment","_renderList","index","_vShow","_createCommentVNode","BErrorMessage","_unref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"design-system20.mjs","sources":["../src/components/BSelect.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, vShow as _vShow, withDirectives as _withDirectives, unref as _unref } from \"vue\"\n\nconst _hoisted_1 = [\"id\", \"disabled\"]\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = {\n key: 1,\n class: \"ds-text-black/[0.4]\"\n}\nconst _hoisted_4 = [\"id\", \"data-cy\", \"data-ut\"]\nconst _hoisted_5 = { class: \"ds-max-h-72 ds-overflow-y-auto ds-rounded-lg ds-bg-white ds-shadow\" }\nconst _hoisted_6 = { class: \"ds-py-1 ds-text-sm ds-text-black/[0.85]\" }\nconst _hoisted_7 = [\"onClick\"]\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport {\n ensureVisiblePosition,\n lockScrollBody,\n resetPosition,\n unlockScrollBody,\n} from '@/helpers/ComponentHelper';\nimport type { DisplayItem } from '@/types';\nimport { v4 as uuid } from 'uuid';\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\nimport BTextField from './BTextField.vue';\n\n//#region Props\nexport interface BSelectProps {\n inputId?: string;\n modelValue: string | number;\n label?: string;\n items: DisplayItem[];\n disabled?: boolean;\n placeholder?: string;\n valueCssClass?: string;\n menuCssClass?: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n requiredErrorMessage?: string;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n /**\n * Allow to type to search.\n */\n allowInput?: boolean;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BSelect',\n props: {\n inputId: { default: '' },\n modelValue: {},\n label: { default: '' },\n items: {},\n disabled: { type: Boolean, default: false },\n placeholder: { default: '' },\n valueCssClass: { default: '' },\n menuCssClass: { default: '' },\n validationRules: { default: undefined },\n required: { type: Boolean, default: false },\n requiredErrorMessage: { default: '' },\n hideDetails: { type: Boolean, default: false },\n allowInput: { type: Boolean, default: false }\n },\n emits: [\"change\", \"open\", \"close\", \"change:input\", \"update:modelValue\"],\n setup(__props: any, { expose: __expose, emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nconst selectEl = ref<HTMLElement | null>(null);\nconst inputRef = ref<InstanceType<typeof BTextField> | null>(null);\nconst selectMenuEl = ref<HTMLElement | null>(null);\nconst selectMenu = ref(false);\nconst { t } = useI18n();\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst inputText = ref('');\nconst selectedItem = ref<DisplayItem>();\nconst id = computed(() => props.inputId || `id-${uuid()}`);\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\nconst btnCssClass = computed(() => {\n let result = `ds-border ds-drop-shadow-light ds-text-sm ds-h-[40px] ds-px-3 ds-rounded-lg ds-block ds-w-full ds-inline-flex ds-items-center ds-justify-between `;\n result += props.disabled\n ? `ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/[0.4] `\n : `ds-bg-white ds-text-black/[0.85] `;\n result += !validationResult.value.valid\n ? `ds-border-error focus:ds-ring-1 focus:ds-ring-error `\n : `ds-border-black/10 focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus `;\n\n return result;\n});\nconst vRules = computed(() => {\n let result: ValidationRule[] = [];\n\n if (props.required) {\n result.push(validateRequired);\n }\n if (props.validationRules) {\n result = result.concat(props.validationRules);\n }\n\n return result.length ? result : undefined;\n});\n\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n//#endregion\n\n//#region Watchers\nwatch(selectMenu, (val) => {\n if (val) {\n lockScrollBody();\n ensureMenuPosition();\n emit('open');\n } else {\n unlockScrollBody();\n resetMenuPosition();\n emit('close');\n }\n});\nwatch(value, () => {\n ensureSelectedItem();\n ensureInputText();\n});\nwatch(\n () => props.items,\n () => {\n if (value.value && !selectedItem.value?.value) {\n ensureSelectedItem();\n ensureInputText();\n }\n },\n {\n deep: true,\n },\n);\n//#endregion\n\n//#region Methods\nconst ensureSelectedItem = () => {\n selectedItem.value = props.items?.find((i) => i.value === value.value);\n};\nconst ensureInputText = () => {\n if (props.allowInput) {\n inputText.value = selectedItem.value?.text || '';\n }\n};\nconst initPressEscapeEventListener = () => {\n document.addEventListener('keydown', closeOnEscapePressed);\n};\nconst closeOnEscapePressed = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeSelectMenu();\n }\n};\nconst initClickOutsideEventListener = () => {\n document.addEventListener('click', closeOnClickOutside);\n};\nconst closeOnClickOutside = (event: any) => {\n const refs = [selectEl.value, selectMenuEl.value];\n const withinBoundaries = refs.some((r) => event.composedPath().includes(r));\n if (!withinBoundaries) {\n closeSelectMenu();\n }\n};\nconst onClickItem = (item: DisplayItem) => {\n value.value = item.value;\n closeSelectMenu();\n emit('change', item.value);\n nextTick(() => {\n validate();\n });\n};\nconst ensureMenuWidth = (parentEl: HTMLElement, menuEl: HTMLElement) => {\n menuEl.style.width = `${parentEl.offsetWidth}px`;\n};\nconst ensureMenuPosition = () => {\n nextTick(() => {\n ensureVisiblePosition(selectEl.value!, selectMenuEl.value!);\n ensureMenuWidth(selectEl.value!, selectMenuEl.value!);\n });\n};\nconst resetMenuPosition = () => {\n resetPosition(selectEl.value!, selectMenuEl.value!);\n};\nconst onChangeInputText = (text: string) => {\n emit('change:input', text);\n};\nconst closeSelectMenu = () => {\n selectMenu.value = false;\n inputRef.value?.blur();\n ensureInputText();\n};\nconst init = () => {\n ensureSelectedItem();\n ensureInputText();\n};\ninit();\n//#endregion\n\n//#region Lifecycle Hooks\nonMounted(() => {\n initPressEscapeEventListener();\n initClickOutsideEventListener();\n});\nonBeforeUnmount(() => {\n document.removeEventListener('keydown', closeOnEscapePressed);\n document.removeEventListener('click', closeOnClickOutside);\n unlockScrollBody();\n // Make sure dropdown menu unmounted with itself\n resetMenuPosition();\n});\n//#endregion\n\n__expose({ validate, selectMenu });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", {\n ref_key: \"selectEl\",\n ref: selectEl\n }, [\n _createVNode(BLabel, {\n id: id.value,\n label: _ctx.label,\n required: _ctx.required\n }, null, 8, [\"id\", \"label\", \"required\"]),\n (props.allowInput)\n ? (_openBlock(), _createBlock(BTextField, {\n key: 0,\n id: id.value,\n ref_key: \"inputRef\",\n ref: inputRef,\n modelValue: inputText.value,\n \"onUpdate:modelValue\": [\n _cache[0] || (_cache[0] = ($event: any) => ((inputText).value = $event)),\n onChangeInputText\n ],\n disabled: props.disabled,\n placeholder: props.placeholder,\n \"hide-details\": \"\",\n onFocus: _cache[1] || (_cache[1] = ($event: any) => (selectMenu.value = true)),\n \"onClick:append\": _cache[2] || (_cache[2] = ($event: any) => (inputRef.value?.focus()))\n }, {\n appendIcon: _withCtx(() => [\n (_openBlock(), _createElementBlock(\"svg\", {\n class: _normalizeClass([[selectMenu.value ? 'ds-rotate-180' : ''], \"ds-h-4 ds-w-4 ds-transition-transform\"]),\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _cache[4] || (_cache[4] = [\n _createElementVNode(\"path\", { d: \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\" }, null, -1)\n ]), 2))\n ]),\n _: 1\n }, 8, [\"id\", \"modelValue\", \"disabled\", \"placeholder\"]))\n : (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n id: id.value,\n class: _normalizeClass(btnCssClass.value),\n disabled: props.disabled,\n type: \"button\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (selectMenu.value = !selectMenu.value))\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([_ctx.valueCssClass, \"ds-truncate\"])\n }, [\n (selectedItem.value?.text)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(selectedItem.value?.text), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(props.placeholder), 1))\n ], 2),\n _cache[6] || (_cache[6] = _createTextVNode(\" \")),\n (_openBlock(), _createElementBlock(\"svg\", {\n class: _normalizeClass([[selectMenu.value ? 'ds-rotate-180' : ''], \"ds-h-4 ds-w-4 ds-transition-transform\"]),\n viewBox: \"0 0 320 512\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _cache[5] || (_cache[5] = [\n _createElementVNode(\"path\", { d: \"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\" }, null, -1)\n ]), 2))\n ], 10, _hoisted_1)),\n _withDirectives(_createElementVNode(\"div\", {\n id: `${id.value}Menu`,\n ref_key: \"selectMenuEl\",\n ref: selectMenuEl,\n class: _normalizeClass([_ctx.menuCssClass, \"ds-absolute ds-z-50 ds-min-w-[8rem] ds-py-1\"]),\n \"data-cy\": _ctx.$attrs['data-cy'] ? `${_ctx.$attrs['data-cy']}Menu` : undefined,\n \"data-ut\": _ctx.$attrs['data-ut'] ? `${_ctx.$attrs['data-ut']}Menu` : undefined\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.items, (item, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: `item${index}`,\n class: \"ds-cursor-pointer\",\n onClick: ($event: any) => (onClickItem(item))\n }, [\n _createElementVNode(\"a\", {\n class: _normalizeClass([\n item.cssClass +\n `${item.value === value.value ? ' ds-bg-gray-150' : ''}`\n , \"ds-block ds-px-4 ds-py-2 hover:ds-bg-gray-150\"])\n }, _toDisplayString(item?.text), 3)\n ], 8, _hoisted_7))\n }), 128))\n ])\n ])\n ], 10, _hoisted_4), [\n [_vShow, selectMenu.value]\n ])\n ], 512),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_sfc_main","_defineComponent","__props","__expose","__emit","props","emit","selectEl","ref","inputRef","selectMenuEl","selectMenu","t","useI18n","validateRequired","val","inputText","selectedItem","id","computed","uuid","value","btnCssClass","result","validationResult","vRules","validate","useValidationField","watch","lockScrollBody","ensureMenuPosition","unlockScrollBody","resetMenuPosition","ensureSelectedItem","ensureInputText","_a","i","initPressEscapeEventListener","closeOnEscapePressed","event","closeSelectMenu","initClickOutsideEventListener","closeOnClickOutside","r","onClickItem","item","nextTick","ensureMenuWidth","parentEl","menuEl","ensureVisiblePosition","resetPosition","onChangeInputText","text","onMounted","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_createVNode","BLabel","_createBlock","BTextField","$event","_withCtx","_normalizeClass","_toDisplayString","_b","_createTextVNode","_withDirectives","_Fragment","_renderList","index","_vShow","_createCommentVNode","BErrorMessage","_unref"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system21.mjs","sources":["../src/components/BTextarea.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withDirectives as _withDirectives, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"id\", \"autocomplete\", \"disabled\", \"placeholder\", \"readonly\", \"rows\"]\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { v4 as uuid } from 'uuid';\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\n\n//#region Props\nexport interface BTextareaProps {\n inputId?: string;\n inputCssClass?: string;\n modelValue: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n label?: string;\n placeholder?: string;\n autocomplete?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n /**\n * Number of rows.\n */\n rows?: number;\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n requiredErrorMessage?: string;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n}\n\n\nexport default
|
|
1
|
+
{"version":3,"file":"design-system21.mjs","sources":["../src/components/BTextarea.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, vModelText as _vModelText, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withDirectives as _withDirectives, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"id\", \"autocomplete\", \"disabled\", \"placeholder\", \"readonly\", \"rows\"]\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { v4 as uuid } from 'uuid';\nimport { computed } from 'vue';\nimport { useI18n } from 'vue-i18n';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\n\n//#region Props\nexport interface BTextareaProps {\n inputId?: string;\n inputCssClass?: string;\n modelValue: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n label?: string;\n placeholder?: string;\n autocomplete?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n /**\n * Number of rows.\n */\n rows?: number;\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n requiredErrorMessage?: string;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BTextarea',\n props: {\n inputId: { default: '' },\n inputCssClass: { default: '' },\n modelValue: {},\n validationRules: { default: undefined },\n label: { default: '' },\n placeholder: { default: '' },\n autocomplete: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n rows: { default: 3 },\n required: { type: Boolean, default: false },\n requiredErrorMessage: { default: '' },\n hideDetails: { type: Boolean, default: false }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { expose: __expose, emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nconst { t } = useI18n();\nconst validateRequired: ValidationRule = {\n validateRule: (val: string | number) => {\n if (typeof val === 'number') {\n return !!val;\n }\n return !!(val && val?.trim());\n },\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst id = computed(() => props.inputId || `id-${uuid()}`);\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\nconst inputCssClassValue = computed(() => [\n {\n 'ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/40': props.disabled,\n 'ds-text-black/[0.85]': !props.disabled,\n 'ds-border-error focus:ds-ring-1 focus:ds-ring-error':\n !validationResult.value.valid,\n 'ds-border-black/[0.1] focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus':\n validationResult.value.valid,\n },\n props.inputCssClass,\n]);\nconst vRules = computed(() => {\n let result: ValidationRule[] = [];\n\n if (props.required) {\n result.push(validateRequired);\n }\n if (props.validationRules) {\n result = result.concat(props.validationRules);\n }\n\n return result.length ? result : undefined;\n});\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n//#endregion\n\n__expose({ validate });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(BLabel, {\n id: id.value,\n label: _ctx.label,\n required: _ctx.required\n }, null, 8, [\"id\", \"label\", \"required\"]),\n _withDirectives(_createElementVNode(\"textarea\", {\n id: id.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((value).value = $event)),\n autocomplete: props.autocomplete ? 'on' : 'off',\n class: _normalizeClass([inputCssClassValue.value, \"ds-block ds-w-full ds-rounded-lg ds-border ds-px-3 ds-py-1 ds-text-sm ds-drop-shadow-light\"]),\n disabled: props.disabled,\n placeholder: props.placeholder,\n readonly: props.readonly,\n rows: props.rows\n }, null, 10, _hoisted_1), [\n [_vModelText, value.value]\n ]),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_sfc_main","_defineComponent","__props","__expose","__emit","props","emit","t","useI18n","validateRequired","val","id","computed","uuid","value","inputCssClassValue","validationResult","vRules","result","validate","useValidationField","_ctx","_cache","_openBlock","_createElementBlock","_createVNode","BLabel","_withDirectives","_createElementVNode","$event","_normalizeClass","_vModelText","_createCommentVNode","_createBlock","BErrorMessage","_unref"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system22.mjs","sources":["../src/components/BToast/BToast.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, TransitionGroup as _TransitionGroup, withCtx as _withCtx, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-fixed ds-right-4 ds-top-4 ds-z-[110]\" }\n\nimport type { BToastItemModel } from '@/types';\nimport { computed } from 'vue';\nimport BToastItem from './BToastItem.vue';\n\n//#region Props\nexport interface Props {\n modelValue: BToastItemModel[];\n}\n\n\nexport default
|
|
1
|
+
{"version":3,"file":"design-system22.mjs","sources":["../src/components/BToast/BToast.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, TransitionGroup as _TransitionGroup, withCtx as _withCtx, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-fixed ds-right-4 ds-top-4 ds-z-[110]\" }\n\nimport type { BToastItemModel } from '@/types';\nimport { computed } from 'vue';\nimport BToastItem from './BToastItem.vue';\n\n//#region Props\nexport interface Props {\n modelValue: BToastItemModel[];\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BToast',\n props: {\n modelValue: {}\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Data\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Methods\nconst onCloseToastItem = (i: number) => {\n value.value.splice(i, 1);\n};\n//#endregion\n\nreturn (_ctx: any,_cache: any) => {\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_TransitionGroup, {\n \"enter-active-class\": \"ds-transition-all ds-duration-300 ds-ease-in-out\",\n \"enter-from-class\": \"ds-opacity-0\",\n \"enter-to-class\": \"ds-opacity-1\",\n \"leave-active-class\": \"ds-transition-all ds-duration-300 ds-ease-in-out\",\n \"leave-from-class\": \"ds-opacity-1\",\n \"leave-to-class\": \"ds-opacity-0\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(value.value, (toastItem, index) => {\n return (_openBlock(), _createBlock(BToastItem, {\n key: `toastItem${index}`,\n icon: toastItem.icon,\n text: toastItem.text,\n type: toastItem.type,\n class: \"ds-my-2\",\n onClose: ($event: any) => (onCloseToastItem(index))\n }, null, 8, [\"icon\", \"text\", \"type\", \"onClose\"]))\n }), 128))\n ]),\n _: 1\n })\n ], 512)), [\n [_vShow, value.value.length > 0]\n ])\n}\n}\n\n})"],"names":["_hoisted_1","_sfc_main","_defineComponent","__props","__emit","props","value","computed","val","emit","onCloseToastItem","i","_ctx","_cache","_withDirectives","_openBlock","_createElementBlock","_createVNode","_TransitionGroup","_withCtx","_Fragment","_renderList","toastItem","index","_createBlock","BToastItem","$event","_vShow"],"mappings":";;AAGA,MAAMA,IAAa,EAAE,OAAO,6CAYAC,IAAiBC,gBAAAA,EAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,YAAY,CAAC;AAAA,EACf;AAAA,EACA,OAAO,CAAC,mBAAmB;AAAA,EAC3B,MAAMC,GAAc,EAAE,MAAMC,KAAU;AAExC,UAAMC,IAAQF,GAIRG,IAAQC,EAAS;AAAA,MACrB,MAAM;AACJ,eAAOF,EAAM;AAAA,MACf;AAAA,MACA,IAAIG,GAAK;AACP,QAAAC,EAAK,qBAAqBD,CAAG;AAAA,MAC/B;AAAA,IAAA,CACD,GAIKC,IAAOL,GAIPM,IAAmB,CAACC,MAAc;AAChC,MAAAL,EAAA,MAAM,OAAOK,GAAG,CAAC;AAAA,IAAA;AAIlB,WAAA,CAACC,GAAUC,MACTC,GAAiBC,EAAA,GAAcC,EAAoB,OAAOhB,GAAY;AAAA,MAC3EiB,EAAaC,GAAkB;AAAA,QAC7B,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QACpB,kBAAkB;AAAA,QAClB,sBAAsB;AAAA,QACtB,oBAAoB;AAAA,QACpB,kBAAkB;AAAA,MAAA,GACjB;AAAA,QACD,SAASC,EAAS,MAAM;AAAA,WACrBJ,EAAW,EAAI,GAAGC,EAAoBI,GAAW,MAAMC,EAAYf,EAAM,OAAO,CAACgB,GAAWC,OACnFR,EAAA,GAAcS,EAAaC,GAAY;AAAA,YAC7C,KAAK,YAAYF,CAAK;AAAA,YACtB,MAAMD,EAAU;AAAA,YAChB,MAAMA,EAAU;AAAA,YAChB,MAAMA,EAAU;AAAA,YAChB,OAAO;AAAA,YACP,SAAS,CAACI,MAAiBhB,EAAiBa,CAAK;AAAA,UAAA,GAChD,MAAM,GAAG,CAAC,QAAQ,QAAQ,QAAQ,SAAS,CAAC,EAChD,GAAG,GAAG;AAAA,QAAA,CACR;AAAA,QACD,GAAG;AAAA,MAAA,CACJ;AAAA,IACH,GAAG,GAAG,IAAI;AAAA,MACR,CAACI,GAAQrB,EAAM,MAAM,SAAS,CAAC;AAAA,IAAA,CAChC;AAAA,EAEH;AAEA,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system23.mjs","sources":["../src/components/BStepper.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-flex\" }\nconst _hoisted_2 = [\"onClick\"]\n\nimport type { BStepperHeader } from '@/types';\nimport { computed } from 'vue';\n\n//#region Props\ninterface Props {\n /**\n * Array of header objects.\n */\n headers: BStepperHeader[];\n /**\n * Index of step.\n */\n modelValue: number;\n}\n\n\nexport default
|
|
1
|
+
{"version":3,"file":"design-system23.mjs","sources":["../src/components/BStepper.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-flex\" }\nconst _hoisted_2 = [\"onClick\"]\n\nimport type { BStepperHeader } from '@/types';\nimport { computed } from 'vue';\n\n//#region Props\ninterface Props {\n /**\n * Array of header objects.\n */\n headers: BStepperHeader[];\n /**\n * Index of step.\n */\n modelValue: number;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BStepper',\n props: {\n headers: {},\n modelValue: {}\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n//#region\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\n//#region\n\n//#region Methods\nconst onClickStepperHeader = (header: BStepperHeader, index: number) => {\n if (!header.clickable) {\n return;\n }\n value.value = index;\n};\n//#region\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"ul\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(props.headers, (header, i) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: header.text,\n class: _normalizeClass([{\n 'ds-cursor-pointer': header.clickable,\n 'ds-pointer-events-none ds-text-black/40': header.disabled,\n 'ds-text-primary-t': i < value.value,\n 'after:ds-border-1 after:content-[``] ds-flex-auto after:ds-mx-3 after:ds-h-1 after:ds-w-full after:ds-border-b after:ds-border-gray-200':\n i < _ctx.headers.length - 1,\n }, \"ds-flex ds-items-center ds-whitespace-nowrap ds-text-sm ds-font-medium\"]),\n onClick: ($event: any) => (onClickStepperHeader(header, i))\n }, [\n _renderSlot(_ctx.$slots, `step-header-${i}`, {\n text: header.text\n }, () => [\n _createTextVNode(_toDisplayString(header.text), 1)\n ])\n ], 10, _hoisted_2))\n }), 128))\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.headers, (step, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: step.text,\n class: _normalizeClass({\n 'ds-hidden': value.value !== i,\n })\n }, [\n _renderSlot(_ctx.$slots, `step-content-${i}`)\n ], 2))\n }), 128))\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_sfc_main","_defineComponent","__props","__emit","props","emit","value","computed","val","onClickStepperHeader","header","index","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","i","_normalizeClass","$event","_renderSlot","_createTextVNode","_toDisplayString","step"],"mappings":";AAGA,MAAMA,IAAa,EAAE,OAAO,aACtBC,IAAa,CAAC,SAAS,GAkBDC,IAAiBC,gBAAAA,EAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,EACf;AAAA,EACA,OAAO,CAAC,mBAAmB;AAAA,EAC3B,MAAMC,GAAc,EAAE,MAAMC,KAAU;AAExC,UAAMC,IAAQF,GAIRG,IAAOF,GAIPG,IAAQC,EAAS;AAAA,MACrB,MAAM;AACJ,eAAOH,EAAM;AAAA,MACf;AAAA,MACA,IAAII,GAAK;AACP,QAAAH,EAAK,qBAAqBG,CAAG;AAAA,MAC/B;AAAA,IAAA,CACD,GAIKC,IAAuB,CAACC,GAAwBC,MAAkB;AAClE,MAACD,EAAO,cAGZJ,EAAM,QAAQK;AAAA,IAAA;AAIT,WAAA,CAACC,GAAUC,OACRC,EAAW,GAAGC,EAAoB,OAAO,MAAM;AAAA,MACrDC,EAAoB,MAAMlB,GAAY;AAAA,SACnCgB,EAAW,EAAI,GAAGC,EAAoBE,GAAW,MAAMC,EAAYd,EAAM,SAAS,CAACM,GAAQS,OAClFL,EAAA,GAAcC,EAAoB,MAAM;AAAA,UAC9C,KAAKL,EAAO;AAAA,UACZ,OAAOU,EAAgB,CAAC;AAAA,YACxB,qBAAqBV,EAAO;AAAA,YAC5B,2CAA2CA,EAAO;AAAA,YAClD,qBAAqBS,IAAIb,EAAM;AAAA,YAC/B,2IACEa,IAAIP,EAAK,QAAQ,SAAS;AAAA,UAC9B,GAAG,wEAAwE,CAAC;AAAA,UAC1E,SAAS,CAACS,MAAiBZ,EAAqBC,GAAQS,CAAC;AAAA,QAAA,GACxD;AAAA,UACDG,EAAYV,EAAK,QAAQ,eAAeO,CAAC,IAAI;AAAA,YAC3C,MAAMT,EAAO;AAAA,UAAA,GACZ,MAAM;AAAA,YACPa,EAAiBC,EAAiBd,EAAO,IAAI,GAAG,CAAC;AAAA,UAAA,CAClD;AAAA,QAAA,GACA,IAAIX,CAAU,EAClB,GAAG,GAAG;AAAA,MAAA,CACR;AAAA,OACAe,EAAW,EAAI,GAAGC,EAAoBE,GAAW,MAAMC,EAAYN,EAAK,SAAS,CAACa,GAAMN,OAC/EL,EAAA,GAAcC,EAAoB,OAAO;AAAA,QAC/C,KAAKU,EAAK;AAAA,QACV,OAAOL,EAAgB;AAAA,UACvB,aAAad,EAAM,UAAUa;AAAA,QAAA,CAC9B;AAAA,MAAA,GACE;AAAA,QACDG,EAAYV,EAAK,QAAQ,gBAAgBO,CAAC,EAAE;AAAA,SAC3C,CAAC,EACL,GAAG,GAAG;AAAA,IAAA,CACR;AAAA,EAEH;AAEA,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system24.mjs","sources":["../src/components/BBreadcrumb/BBreadcrumb.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, vShow as _vShow, normalizeClass as _normalizeClass, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, Teleport as _Teleport, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"href\", \"title\"]\nconst _hoisted_2 = {\n \"aria-hidden\": \"true\",\n class: \"ds-pl-2\"\n}\nconst _hoisted_3 = [\"id\"]\nconst _hoisted_4 = [\"href\", \"title\"]\nconst _hoisted_5 = {\n key: 0,\n \"aria-hidden\": \"true\",\n class: \"ds-pl-2\"\n}\n\nimport { computed, nextTick, onMounted, onUnmounted, ref } from 'vue';\nimport { v4 as uuid } from 'uuid';\nimport type { BBreadcrumbItem } from '@/types';\nimport BBreadcrumbSeparator from '@/components/BBreadcrumb/BBreadcrumbSeparator.vue';\n\ninterface BBreadcrumbItemInternal extends BBreadcrumbItem {\n hidden: boolean;\n width: number;\n}\n\n//#region Props\nexport interface BBreadcrumbProps {\n /**\n * Array of breadcrumb items.\n */\n items?: BBreadcrumbItem[];\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BBreadcrumb',\n props: {\n items: { default: () => [] }\n },\n setup(__props: any) {\n\nconst props = __props;\n//#endregion\n\n//#region Data\nconst collapsedBreadcrumbMenu = ref(false);\nconst ulRef = ref<HTMLUListElement | null>(null);\nconst liRefs = ref<HTMLLIElement[] | null>(null);\nconst ellipsisRefs = ref<HTMLSpanElement[] | null>(null);\nconst ellipsisMenuRefs = ref<HTMLUListElement[] | null>(null);\nconst breadcrumbItems = ref<BBreadcrumbItemInternal[]>([]);\nconst resizeObserver = new ResizeObserver(() => {\n if (breadcrumbItems.value.length <= 1) {\n return;\n }\n\n const ulRefWidth = ulRef.value!.clientWidth;\n const ellipsisRefWidth = ellipsisRefs.value![0].clientWidth;\n\n for (let i = 1; i < breadcrumbItems.value.length; i++) {\n if (\n breadcrumbItems.value.reduce(\n (acc, item) => (!item.hidden ? acc + item.width : acc),\n 0,\n ) +\n ellipsisRefWidth >\n ulRefWidth\n ) {\n breadcrumbItems.value[i].hidden = true;\n } else {\n break;\n }\n }\n\n for (let i = breadcrumbItems.value.length - 1; i >= 1; i--) {\n if (breadcrumbItems.value[i].hidden) {\n if (\n breadcrumbItems.value.reduce(\n (acc, item) => (!item.hidden ? acc + item.width : acc),\n 0,\n ) +\n breadcrumbItems.value[i].width +\n ellipsisRefWidth <=\n ulRefWidth\n ) {\n breadcrumbItems.value[i].hidden = false;\n } else {\n break;\n }\n }\n }\n});\nconst isCollapsed = computed(() => breadcrumbItems.value.some((i) => i.hidden));\nconst ellipsisMenuId = computed(() => `menu-id-${uuid()}`);\n//#region\n\n//#region Methods\nconst toggleCollapedBreadcrumbMenu = () => {\n collapsedBreadcrumbMenu.value = !collapsedBreadcrumbMenu.value;\n};\nconst initClickOutsideEventListener = () => {\n document.addEventListener('click', closeOnClickOutside);\n};\nconst removeClickOutsideEventListener = () => {\n document.removeEventListener('click', closeOnClickOutside);\n};\nconst closeOnClickOutside = (event: any) => {\n const refs = [ellipsisRefs.value![0], ellipsisMenuRefs.value![0]];\n const withinBoundaries = refs.some((r) => event.composedPath().includes(r));\n if (!withinBoundaries) {\n collapsedBreadcrumbMenu.value = false;\n }\n};\n//#region\n\n//#region Lifecycle hooks\nonMounted(() => {\n initClickOutsideEventListener();\n resizeObserver.observe(ulRef.value!);\n\n breadcrumbItems.value = props.items.map(\n (item) =>\n ({\n ...item,\n hidden: false,\n width: 0,\n }) as BBreadcrumbItemInternal,\n );\n nextTick(() => {\n breadcrumbItems.value.forEach((item, index) => {\n item.width = liRefs.value![index].clientWidth;\n });\n });\n});\nonUnmounted(() => {\n removeClickOutsideEventListener();\n resizeObserver.unobserve(ulRef.value!);\n});\n//#region\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"nav\", null, [\n _createElementVNode(\"ol\", {\n ref_key: \"ulRef\",\n ref: ulRef,\n class: _normalizeClass([{ collapsed: isCollapsed.value }, \"ds-relative ds-flex\"])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(breadcrumbItems.value, (item, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: `item${item.text}`\n }, [\n (index === 0)\n ? (_openBlock(), _createElementBlock(\"li\", {\n key: 0,\n ref_for: true,\n ref_key: \"liRefs\",\n ref: liRefs,\n class: \"ds-whitespace-nowrap ds-text-black/[0.85]\"\n }, [\n _renderSlot(_ctx.$slots, `item-${index}`, { item: item }, () => [\n _createElementVNode(\"a\", {\n href: item.href,\n title: item.href,\n class: \"ds-transition-colors hover:ds-text-primary-t\"\n }, _toDisplayString(item.text), 9, _hoisted_1)\n ]),\n _createElementVNode(\"span\", _hoisted_2, [\n _renderSlot(_ctx.$slots, `separator-${index}`, { item: item }, () => [\n _createVNode(BBreadcrumbSeparator)\n ])\n ]),\n _createElementVNode(\"div\", {\n ref_for: true,\n ref_key: \"ellipsisRefs\",\n ref: ellipsisRefs,\n class: \"ds-inline-block\"\n }, [\n _withDirectives(_createElementVNode(\"button\", {\n class: _normalizeClass([{ 'ds-bg-slate-50': collapsedBreadcrumbMenu.value }, \"ds-ml-2 ds-rounded-lg ds-bg-slate-100 ds-px-2 ds-text-primary-t ds-transition-colors hover:ds-bg-slate-50\"]),\n onClick: toggleCollapedBreadcrumbMenu\n }, \" ... \", 2), [\n [_vShow, isCollapsed.value]\n ]),\n _withDirectives(_createElementVNode(\"ol\", {\n id: ellipsisMenuId.value,\n ref_for: true,\n ref_key: \"ellipsisMenuRefs\",\n ref: ellipsisMenuRefs,\n class: \"ds-absolute ds-mt-1 ds-space-y-2 ds-rounded-lg ds-bg-white ds-p-4 ds-shadow\"\n }, null, 8, _hoisted_3), [\n [_vShow, isCollapsed.value && collapsedBreadcrumbMenu.value]\n ])\n ], 512)\n ], 512))\n : (_openBlock(), _createBlock(_Teleport, {\n key: 1,\n disabled: !item.hidden,\n to: `#${ellipsisMenuId.value}`\n }, [\n _createElementVNode(\"li\", {\n ref_for: true,\n ref_key: \"liRefs\",\n ref: liRefs,\n class: \"ds-whitespace-nowrap ds-pl-2 ds-text-black/[0.85]\"\n }, [\n _renderSlot(_ctx.$slots, `item-${index}`, { item: item }, () => [\n _createElementVNode(\"a\", {\n href: item.href,\n title: item.href,\n class: \"ds-transition-colors hover:ds-text-primary-t\"\n }, _toDisplayString(item.text), 9, _hoisted_4)\n ]),\n (index < _ctx.items?.length - 1)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, [\n _renderSlot(_ctx.$slots, `separator-${index}`, { item: item }, () => [\n _createVNode(BBreadcrumbSeparator)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 512)\n ], 8, [\"disabled\", \"to\"]))\n ], 64))\n }), 128))\n ], 2)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_main","_defineComponent","__props","props","collapsedBreadcrumbMenu","ref","ulRef","liRefs","ellipsisRefs","ellipsisMenuRefs","breadcrumbItems","resizeObserver","ulRefWidth","ellipsisRefWidth","i","acc","item","isCollapsed","computed","ellipsisMenuId","uuid","toggleCollapedBreadcrumbMenu","initClickOutsideEventListener","closeOnClickOutside","removeClickOutsideEventListener","event","r","onMounted","nextTick","index","onUnmounted","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_Fragment","_renderList","_renderSlot","_toDisplayString","_createVNode","BBreadcrumbSeparator","_withDirectives","_vShow","_createBlock","_Teleport","_a","_createCommentVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"design-system24.mjs","sources":["../src/components/BBreadcrumb/BBreadcrumb.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, vShow as _vShow, normalizeClass as _normalizeClass, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, Teleport as _Teleport, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"href\", \"title\"]\nconst _hoisted_2 = {\n \"aria-hidden\": \"true\",\n class: \"ds-pl-2\"\n}\nconst _hoisted_3 = [\"id\"]\nconst _hoisted_4 = [\"href\", \"title\"]\nconst _hoisted_5 = {\n key: 0,\n \"aria-hidden\": \"true\",\n class: \"ds-pl-2\"\n}\n\nimport { computed, nextTick, onMounted, onUnmounted, ref } from 'vue';\nimport { v4 as uuid } from 'uuid';\nimport type { BBreadcrumbItem } from '@/types';\nimport BBreadcrumbSeparator from '@/components/BBreadcrumb/BBreadcrumbSeparator.vue';\n\ninterface BBreadcrumbItemInternal extends BBreadcrumbItem {\n hidden: boolean;\n width: number;\n}\n\n//#region Props\nexport interface BBreadcrumbProps {\n /**\n * Array of breadcrumb items.\n */\n items?: BBreadcrumbItem[];\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BBreadcrumb',\n props: {\n items: { default: () => [] }\n },\n setup(__props: any) {\n\nconst props = __props;\n//#endregion\n\n//#region Data\nconst collapsedBreadcrumbMenu = ref(false);\nconst ulRef = ref<HTMLUListElement | null>(null);\nconst liRefs = ref<HTMLLIElement[] | null>(null);\nconst ellipsisRefs = ref<HTMLSpanElement[] | null>(null);\nconst ellipsisMenuRefs = ref<HTMLUListElement[] | null>(null);\nconst breadcrumbItems = ref<BBreadcrumbItemInternal[]>([]);\nconst resizeObserver = new ResizeObserver(() => {\n if (breadcrumbItems.value.length <= 1) {\n return;\n }\n\n const ulRefWidth = ulRef.value!.clientWidth;\n const ellipsisRefWidth = ellipsisRefs.value![0].clientWidth;\n\n for (let i = 1; i < breadcrumbItems.value.length; i++) {\n if (\n breadcrumbItems.value.reduce(\n (acc, item) => (!item.hidden ? acc + item.width : acc),\n 0,\n ) +\n ellipsisRefWidth >\n ulRefWidth\n ) {\n breadcrumbItems.value[i].hidden = true;\n } else {\n break;\n }\n }\n\n for (let i = breadcrumbItems.value.length - 1; i >= 1; i--) {\n if (breadcrumbItems.value[i].hidden) {\n if (\n breadcrumbItems.value.reduce(\n (acc, item) => (!item.hidden ? acc + item.width : acc),\n 0,\n ) +\n breadcrumbItems.value[i].width +\n ellipsisRefWidth <=\n ulRefWidth\n ) {\n breadcrumbItems.value[i].hidden = false;\n } else {\n break;\n }\n }\n }\n});\nconst isCollapsed = computed(() => breadcrumbItems.value.some((i) => i.hidden));\nconst ellipsisMenuId = computed(() => `menu-id-${uuid()}`);\n//#region\n\n//#region Methods\nconst toggleCollapedBreadcrumbMenu = () => {\n collapsedBreadcrumbMenu.value = !collapsedBreadcrumbMenu.value;\n};\nconst initClickOutsideEventListener = () => {\n document.addEventListener('click', closeOnClickOutside);\n};\nconst removeClickOutsideEventListener = () => {\n document.removeEventListener('click', closeOnClickOutside);\n};\nconst closeOnClickOutside = (event: any) => {\n const refs = [ellipsisRefs.value![0], ellipsisMenuRefs.value![0]];\n const withinBoundaries = refs.some((r) => event.composedPath().includes(r));\n if (!withinBoundaries) {\n collapsedBreadcrumbMenu.value = false;\n }\n};\n//#region\n\n//#region Lifecycle hooks\nonMounted(() => {\n initClickOutsideEventListener();\n resizeObserver.observe(ulRef.value!);\n\n breadcrumbItems.value = props.items.map(\n (item) =>\n ({\n ...item,\n hidden: false,\n width: 0,\n }) as BBreadcrumbItemInternal,\n );\n nextTick(() => {\n breadcrumbItems.value.forEach((item, index) => {\n item.width = liRefs.value![index].clientWidth;\n });\n });\n});\nonUnmounted(() => {\n removeClickOutsideEventListener();\n resizeObserver.unobserve(ulRef.value!);\n});\n//#region\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"nav\", null, [\n _createElementVNode(\"ol\", {\n ref_key: \"ulRef\",\n ref: ulRef,\n class: _normalizeClass([{ collapsed: isCollapsed.value }, \"ds-relative ds-flex\"])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(breadcrumbItems.value, (item, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: `item${item.text}`\n }, [\n (index === 0)\n ? (_openBlock(), _createElementBlock(\"li\", {\n key: 0,\n ref_for: true,\n ref_key: \"liRefs\",\n ref: liRefs,\n class: \"ds-whitespace-nowrap ds-text-black/[0.85]\"\n }, [\n _renderSlot(_ctx.$slots, `item-${index}`, { item: item }, () => [\n _createElementVNode(\"a\", {\n href: item.href,\n title: item.href,\n class: \"ds-transition-colors hover:ds-text-primary-t\"\n }, _toDisplayString(item.text), 9, _hoisted_1)\n ]),\n _createElementVNode(\"span\", _hoisted_2, [\n _renderSlot(_ctx.$slots, `separator-${index}`, { item: item }, () => [\n _createVNode(BBreadcrumbSeparator)\n ])\n ]),\n _createElementVNode(\"div\", {\n ref_for: true,\n ref_key: \"ellipsisRefs\",\n ref: ellipsisRefs,\n class: \"ds-inline-block\"\n }, [\n _withDirectives(_createElementVNode(\"button\", {\n class: _normalizeClass([{ 'ds-bg-slate-50': collapsedBreadcrumbMenu.value }, \"ds-ml-2 ds-rounded-lg ds-bg-slate-100 ds-px-2 ds-text-primary-t ds-transition-colors hover:ds-bg-slate-50\"]),\n onClick: toggleCollapedBreadcrumbMenu\n }, \" ... \", 2), [\n [_vShow, isCollapsed.value]\n ]),\n _withDirectives(_createElementVNode(\"ol\", {\n id: ellipsisMenuId.value,\n ref_for: true,\n ref_key: \"ellipsisMenuRefs\",\n ref: ellipsisMenuRefs,\n class: \"ds-absolute ds-mt-1 ds-space-y-2 ds-rounded-lg ds-bg-white ds-p-4 ds-shadow\"\n }, null, 8, _hoisted_3), [\n [_vShow, isCollapsed.value && collapsedBreadcrumbMenu.value]\n ])\n ], 512)\n ], 512))\n : (_openBlock(), _createBlock(_Teleport, {\n key: 1,\n disabled: !item.hidden,\n to: `#${ellipsisMenuId.value}`\n }, [\n _createElementVNode(\"li\", {\n ref_for: true,\n ref_key: \"liRefs\",\n ref: liRefs,\n class: \"ds-whitespace-nowrap ds-pl-2 ds-text-black/[0.85]\"\n }, [\n _renderSlot(_ctx.$slots, `item-${index}`, { item: item }, () => [\n _createElementVNode(\"a\", {\n href: item.href,\n title: item.href,\n class: \"ds-transition-colors hover:ds-text-primary-t\"\n }, _toDisplayString(item.text), 9, _hoisted_4)\n ]),\n (index < _ctx.items?.length - 1)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, [\n _renderSlot(_ctx.$slots, `separator-${index}`, { item: item }, () => [\n _createVNode(BBreadcrumbSeparator)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 512)\n ], 8, [\"disabled\", \"to\"]))\n ], 64))\n }), 128))\n ], 2)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_main","_defineComponent","__props","props","collapsedBreadcrumbMenu","ref","ulRef","liRefs","ellipsisRefs","ellipsisMenuRefs","breadcrumbItems","resizeObserver","ulRefWidth","ellipsisRefWidth","i","acc","item","isCollapsed","computed","ellipsisMenuId","uuid","toggleCollapedBreadcrumbMenu","initClickOutsideEventListener","closeOnClickOutside","removeClickOutsideEventListener","event","r","onMounted","nextTick","index","onUnmounted","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_Fragment","_renderList","_renderSlot","_toDisplayString","_createVNode","BBreadcrumbSeparator","_withDirectives","_vShow","_createBlock","_Teleport","_a","_createCommentVNode"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system25.mjs","sources":["../src/components/BDatePicker/BDatePicker.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withKeys as _withKeys, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, unref as _unref, createBlock as _createBlock, Fragment as _Fragment, vShow as _vShow, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"b-date-picker\" }\nconst _hoisted_2 = { class: \"ds-relative\" }\nconst _hoisted_3 = [\"id\", \"disabled\", \"placeholder\", \"value\"]\nconst _hoisted_4 = [\"id\", \"disabled\", \"placeholder\"]\nconst _hoisted_5 = { class: \"ds-mt-1 ds-grid ds-w-80 ds-gap-5 ds-rounded-lg ds-bg-white ds-p-3 ds-shadow-2xl\" }\nconst _hoisted_6 = { class: \"ds-flex ds-w-full ds-items-center ds-justify-between\" }\nconst _hoisted_7 = { class: \"ds-grid ds-w-full ds-grid-cols-2 ds-gap-2\" }\n\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\nimport BButton from '@/components/BButton.vue';\nimport BLabel from '@/components/BLabel.vue';\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { v4 as uuid } from 'uuid';\nimport BErrorMessage from '../BErrorMessage.vue';\nimport { useI18n } from 'vue-i18n';\nimport {\n ensureVisiblePosition,\n lockScrollBody,\n resetPosition,\n unlockScrollBody,\n} from '@/helpers/ComponentHelper';\nimport IMask from '@/vendor/imask-7.1.3.js'; // https://imask.js.org/guide.html#getting-started\nimport { isISO8601 } from '@/helpers/DateHelper';\nimport BDatePickerGridDate from '@/components/BDatePicker/BDatePickerGridDate.vue';\nimport BDatePickerGridMonth from '@/components/BDatePicker/BDatePickerGridMonth.vue';\nimport type { BDatePickerDateItem, BDatePickerViewData } from '@/types';\nimport BDatePickerButtonPrevious from '@/components/BDatePicker/BDatePickerButtonPrevious.vue';\nimport BDatePickerButtonNext from '@/components/BDatePicker/BDatePickerButtonNext.vue';\nimport BDatePickerHeading from '@/components/BDatePicker/BDatePickerHeading.vue';\nimport BDatePickerIcon from '@/components/BDatePicker/BDatePickerIcon.vue';\nimport { useDate } from '@/composables/Date';\nimport BDatePickerGridYear from '@/components/BDatePicker/BDatePickerGridYear.vue';\nimport { isEmpty, isNil } from 'lodash-es';\nimport BDatePickerGridDateRange from '@/components/BDatePicker/BDatePickerGridDateRange.vue';\nimport { breakpointsTailwind, useBreakpoints } from '@vueuse/core';\nimport { BDatePickerView } from '@/constants/Enums';\n\n//#region Props\nexport interface BDatePickerProps {\n /**\n * ID of input field.\n */\n inputId?: string;\n /**\n * Value v-model: <code>Date | string</code> when range is false, v-model: <code>Array<Date | string></code> when range is true (date | string in ISO 8601 format).\n */\n modelValue?: Date | string | Array<Date | string>;\n /**\n * Label of the field.\n */\n label?: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n /**\n * Placeholder of input field.\n */\n placeholder?: string;\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n /**\n * Error message when the field is empty.\n */\n requiredErrorMessage?: string;\n /**\n * Disabled state.\n */\n disabled?: boolean;\n /**\n * Custom CSS of input field.\n */\n inputCssClass?: string;\n /**\n * Minimum selectable date <code>Date | string</code> (date | string in ISO 8601 format).\n */\n minDate?: Date | string;\n /**\n * Maximum selectable date <code>Date | string</code> (date | string in ISO 8601 format).\n */\n maxDate?: Date | string;\n /**\n * Allow to select a date range.\n */\n range?: boolean;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n /**\n * Default view mode when opening menu\n */\n view?: `${BDatePickerView}`;\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BDatePicker',\n props: {\n inputId: { default: '' },\n modelValue: { default: undefined },\n label: { default: '' },\n validationRules: { default: undefined },\n placeholder: { default: '' },\n required: { type: Boolean, default: false },\n requiredErrorMessage: { default: '' },\n disabled: { type: Boolean, default: false },\n inputCssClass: { default: '' },\n minDate: { default: undefined },\n maxDate: { default: undefined },\n range: { type: Boolean, default: false },\n hideDetails: { type: Boolean, default: false },\n view: { default: BDatePickerView.Dates }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nlet mask: any;\nconst CURRENT_DATE = new Date(\n new Date().getFullYear(),\n new Date().getMonth(),\n new Date().getDate(),\n);\n\nconst breakpoints = useBreakpoints(breakpointsTailwind);\nconst smAndLarger = breakpoints.greaterOrEqual('sm');\nconst { t, locale } = useI18n();\nconst { formatMonthYear, formatDate, dateFormat, convertToDate } = useDate();\nconst valueDisplay = ref<BDatePickerDateItem>({});\nconst valueRangeDisplay = ref<BDatePickerDateItem[]>([]);\nconst viewDate = ref<BDatePickerDateItem>({\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n});\nconst viewDateDisplay = ref<BDatePickerDateItem>({\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n});\nconst isVisibleMenu = ref(false);\nconst viewValue = ref<BDatePickerView>(props.view as BDatePickerView);\nconst datePickerRef = ref<HTMLDivElement | null>(null);\nconst datePickerMenuRef = ref<HTMLDivElement | null>(null);\nconst datePickerInputRef = ref<HTMLInputElement | null>(null);\nconst datePickerInputMaskRef = ref<HTMLInputElement | null>(null);\nconst dates = ref<BDatePickerDateItem[]>([]);\nconst months = ref<BDatePickerDateItem[]>([]);\nconst years = ref<BDatePickerDateItem[]>([]);\nconst viewHeading = ref('');\nconst viewLeftNavDisabled = ref(false);\nconst viewRightNavDisabled = ref(false);\nconst minValue = computed<Date | undefined>(() => getDateObject(props.minDate));\nconst maxValue = computed<Date | undefined>(() => getDateObject(props.maxDate));\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\n\n// The \"Failed to execute 'querySelector' on Document\" error occurs when using querySelector method with an identifier that starts with a digit\nconst id = computed(() => props.inputId || `id-${uuid()}`);\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\nconst formattedValue = computed(() =>\n (props.modelValue as Array<Date | string>)\n ?.map((val) =>\n typeof val === 'string' ? formatDate(new Date(val)) : formatDate(val),\n )\n .join(' - '),\n);\nconst vRules = computed(() => {\n let result: ValidationRule[] = [];\n\n if (props.required) {\n result.push(validateRequired);\n }\n if (props.validationRules) {\n result = result.concat(props.validationRules);\n }\n\n return result.length ? result : undefined;\n});\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\nconst inputCssClassValue = computed(() => [\n 'ds-border ds-rounded-lg ds-block ds-w-full ds-text-sm ds-px-3 ds-h-[40px] ds-transition-all ds-ease-in-out',\n {\n 'ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/[0.4]': props.disabled,\n 'ds-text-black/[0.85]': !props.disabled,\n 'ds-border-error focus:ds-ring-1 focus:ds-ring-error':\n !validationResult.value.valid,\n 'ds-border-black/[0.1] focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus':\n validationResult.value.valid,\n '!ds-border-focus ds-ring-1 ds-ring-focus': isVisibleMenu.value,\n },\n props.inputCssClass,\n]);\nconst inputMaskOptions = computed(() => {\n const result: any = {\n mask: IMask.MaskedDate,\n pattern: dateFormat.value,\n lazy: true,\n\n format: (date: Date) => formatDate(date),\n parse: (str: string) => convertToDate(str),\n\n blocks: {\n YYYY: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n DD: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n },\n };\n\n if (minValue.value) {\n result.min = minValue.value;\n }\n if (maxValue.value) {\n result.max = maxValue.value;\n }\n\n return result;\n});\nconst viewData = computed<Record<BDatePickerView, BDatePickerViewData>>(() => ({\n [BDatePickerView.Years]: {\n handleClickPreview: handleSwitchToPreviousDecade,\n handleClickNext: handleSwitchToNextDecade,\n },\n [BDatePickerView.Months]: {\n handleClickPreview: handleSwitchToPreviousYear,\n handleClickNext: handleSwitchToNextYear,\n handleClickHeading: handleSwitchToYearsView,\n },\n [BDatePickerView.Dates]: {\n handleClickPreview: handleSwitchToPreviousMonth,\n handleClickNext: handleSwitchToNextMonth,\n handleClickHeading: handleSwitchToMonthsView,\n },\n}));\n//#endregion\n\n//#region Watchers\nwatch(locale, () => {\n if (mask) {\n mask.off('accept', onAccept);\n mask.off('complete', onComplete);\n mask.updateOptions(inputMaskOptions.value);\n updateMaskValue();\n mask.on('accept', onAccept);\n mask.on('complete', onComplete);\n }\n});\nwatch(\n () => props.minDate,\n () => {\n if (props.range) {\n const arr = value.value as Array<Date | string>;\n if (arr.length > 0) {\n ensureValueWhenMinDateChange(arr[0] as any);\n }\n } else {\n const val = value.value as Date | string;\n ensureValueWhenMinDateChange(val);\n }\n generateDates();\n },\n);\nwatch(\n () => props.maxDate,\n () => {\n if (props.range) {\n const arr = value.value as Array<Date | string>;\n if (arr.length > 1) {\n ensureValueWhenMaxDateChange(arr[1]);\n }\n if (arr.length > 0) {\n ensureValueWhenMaxDateChange(arr[0]);\n }\n } else {\n const val = value.value as Date | string;\n ensureValueWhenMaxDateChange(val);\n }\n generateDates();\n },\n);\nwatch(\n () => props.range,\n (val) => {\n if (!val) {\n nextTick(() => {\n initIMask();\n });\n }\n valueDisplay.value = {};\n valueRangeDisplay.value = [];\n },\n);\nwatch(\n () => props.view,\n (val) => {\n viewValue.value = val as BDatePickerView;\n },\n);\nwatch(smAndLarger, () => {\n isVisibleMenu.value = false;\n});\nwatch(isVisibleMenu, (val) => {\n if (val) {\n lockScrollBody();\n if (props.range) {\n valueRangeDisplay.value = value.value\n ? cloneItemFromDateRange(value.value as Array<Date | string>)\n : [];\n } else {\n valueDisplay.value = value.value\n ? cloneItemFromDate(value.value as Date | string)\n : {};\n }\n viewDateDisplay.value = cloneItem(viewDate.value);\n nextTick(() => {\n // https://tailwindcss.com/docs/responsive-design\n if (smAndLarger.value) {\n ensureVisiblePosition(datePickerRef.value!, datePickerMenuRef.value!);\n } else {\n // Move menu element into body tag\n document.body.append(datePickerMenuRef.value!);\n }\n });\n } else {\n unlockScrollBody();\n resetPosition(datePickerRef.value!, datePickerMenuRef.value!);\n }\n});\nwatch(\n () => props.modelValue,\n (val) => {\n if (isNotSyncedModelValue(val)) {\n if (props.range) {\n const v = val as Array<Date | string>;\n valueRangeDisplay.value = val ? cloneItemFromDateRange(v) : [];\n viewDate.value = val ? cloneItemFromDate(v[1], true) : {};\n viewDateDisplay.value = val ? cloneItemFromDate(v[1], true) : {};\n } else {\n const v = val as Date | string;\n valueDisplay.value = val ? cloneItemFromDate(v) : {};\n viewDate.value = val ? cloneItemFromDate(v, true) : {};\n viewDateDisplay.value = val ? cloneItemFromDate(v, true) : {};\n }\n }\n if (!props.range && isNotSyncedModelValue(getInputMaskDate())) {\n updateMaskValue();\n }\n },\n);\n//#endregion\n\n//#region Methods\nconst updateMaskValue = () => {\n const d = getDateObject(props.modelValue as Date | string);\n mask.value = d ? formatDate(d) : '';\n};\nconst getConsistentValue = (val: Date) =>\n typeof props.modelValue === 'string' ? val.toISOString() : val;\nconst ensureValueWhenMinDateChange = (d?: Date | string) => {\n const val = getDateObject(d);\n if (minValue.value && val && minValue.value > val) {\n value.value = undefined;\n }\n};\nconst ensureValueWhenMaxDateChange = (d?: Date | string) => {\n const val = getDateObject(d);\n if (maxValue.value && val && maxValue.value < val) {\n value.value = undefined;\n }\n};\nconst getDateObject = (val?: Date | string) => {\n switch (typeof val) {\n case 'object':\n return val;\n case 'string':\n return isISO8601(val) ? new Date(val) : undefined;\n }\n return val;\n};\nconst handleSwitchToMonthsView = () => {\n generateMonths();\n viewValue.value = BDatePickerView.Months;\n};\nconst handleSwitchToYearsView = () => {\n generateYears();\n viewValue.value = BDatePickerView.Years;\n};\nconst isNotSyncedModelValue = (val?: Date | string | Array<Date | string>) => {\n const ruleEngine = props.range\n ? [\n !isEmpty(props.modelValue) && isEmpty(val),\n !isEmpty(val) && isEmpty(props.modelValue),\n !isEmpty(props.modelValue) &&\n !isEmpty(val) &&\n (props.modelValue as Array<Date | string>).some(\n (v, i) =>\n getDateObject(v)?.getTime() !==\n getDateObject((val as Array<Date | string>)[i])?.getTime(),\n ),\n ]\n : [\n !props.modelValue && val,\n !val && props.modelValue,\n props.modelValue &&\n val &&\n getDateObject(props.modelValue as Date | string)?.getTime() !==\n getDateObject(val as Date | string)?.getTime(),\n ];\n return ruleEngine.some((r) => r);\n};\nconst handleCancel = () => {\n isVisibleMenu.value = false;\n};\nconst handleConfirm = () => {\n isVisibleMenu.value = false;\n if (props.range) {\n if (valueRangeDisplay.value.length === 2) {\n value.value = [\n getConsistentValue(\n new Date(\n valueRangeDisplay.value[0].year!,\n valueRangeDisplay.value[0].month!,\n valueRangeDisplay.value[0].date,\n ),\n ),\n getConsistentValue(\n new Date(\n valueRangeDisplay.value[1].year!,\n valueRangeDisplay.value[1].month!,\n valueRangeDisplay.value[1].date,\n ),\n ),\n ];\n } else {\n value.value = undefined;\n }\n } else {\n if (\n !isNil(valueDisplay.value.year) &&\n !isNil(valueDisplay.value.month) &&\n !isNil(valueDisplay.value.date)\n ) {\n value.value = getConsistentValue(\n new Date(\n valueDisplay.value.year,\n valueDisplay.value.month,\n valueDisplay.value.date,\n ),\n );\n } else {\n value.value = undefined;\n }\n }\n viewDate.value = cloneItem(viewDateDisplay.value);\n};\nconst cloneItem = (\n item: BDatePickerDateItem,\n ignoreDate?: boolean,\n): BDatePickerDateItem => ({\n year: item.year,\n month: item.month,\n date: ignoreDate ? undefined : item.date,\n});\nconst cloneItemFromDate = (\n date: Date | string,\n ignoreDate?: boolean,\n): BDatePickerDateItem => ({\n year: getDateObject(date)!.getFullYear(),\n month: getDateObject(date)!.getMonth(),\n date: ignoreDate ? undefined : getDateObject(date)!.getDate(),\n});\nconst cloneItemFromDateRange = (\n dateRange: Array<Date | string>,\n ignoreDate?: boolean,\n): BDatePickerDateItem[] => [\n {\n year: getDateObject(dateRange[0])!.getFullYear(),\n month: getDateObject(dateRange[0])!.getMonth(),\n date: ignoreDate ? undefined : getDateObject(dateRange[0])!.getDate(),\n },\n {\n year: getDateObject(dateRange[1])!.getFullYear(),\n month: getDateObject(dateRange[1])!.getMonth(),\n date: ignoreDate ? undefined : getDateObject(dateRange[1])!.getDate(),\n },\n];\nconst handleSelectYear = (item: BDatePickerDateItem) => {\n viewDateDisplay.value = cloneItem(item);\n generateMonths();\n viewValue.value = BDatePickerView.Months;\n};\nconst handleSelectMonth = (item: BDatePickerDateItem) => {\n viewDateDisplay.value = cloneItem(item);\n generateDates();\n viewValue.value = BDatePickerView.Dates;\n};\nconst handleSelectDate = (item: BDatePickerDateItem) => {\n if (\n item.year === valueDisplay.value.year &&\n item.month === valueDisplay.value.month &&\n item.date === valueDisplay.value.date\n ) {\n // Item will be unselected when clicking again on it\n valueDisplay.value = cloneItem({});\n } else {\n valueDisplay.value = cloneItem(item);\n viewDateDisplay.value = cloneItem(item, true);\n generateDates();\n }\n};\nconst handleSelectDateRange = ({ year, month, date }: BDatePickerDateItem) => {\n const valueRangeDisplayLength = valueRangeDisplay.value.length;\n if (valueRangeDisplayLength === 0) {\n valueRangeDisplay.value.push({ year, month, date });\n } else if (valueRangeDisplayLength === 1) {\n const foundIndex = valueRangeDisplay.value.findIndex(\n (i) => i.year === year && i.month === month && i.date === date,\n );\n if (foundIndex !== -1) {\n valueRangeDisplay.value.splice(foundIndex, 1);\n } else {\n if (\n new Date(year!, month!, date) >\n new Date(\n valueRangeDisplay.value[0].year!,\n valueRangeDisplay.value[0].month!,\n valueRangeDisplay.value[0].date,\n )\n ) {\n valueRangeDisplay.value.push({ year, month, date });\n } else {\n valueRangeDisplay.value.unshift({ year, month, date });\n }\n }\n } else if (valueRangeDisplayLength === 2) {\n const foundIndex = valueRangeDisplay.value.findIndex(\n (i) => i.year === year && i.month === month && i.date === date,\n );\n if (foundIndex !== -1) {\n valueRangeDisplay.value.splice(foundIndex, 1);\n } else {\n valueRangeDisplay.value = [];\n valueRangeDisplay.value.push({ year, month, date });\n }\n }\n\n viewDateDisplay.value = {\n year,\n month,\n };\n generateDates();\n};\nconst handleSwitchToPreviousDecade = () => {\n switchToDecade(-1);\n generateYears();\n};\nconst handleSwitchToNextDecade = () => {\n switchToDecade(1);\n generateYears();\n};\nconst switchToDecade = (decadeCount: number) => {\n if (isNil(viewDateDisplay.value.year)) {\n return;\n }\n viewDateDisplay.value.year += decadeCount * 10;\n};\nconst handleSwitchToPreviousYear = () => {\n switchToYear(-1);\n generateMonths();\n};\nconst handleSwitchToNextYear = () => {\n switchToYear(1);\n generateMonths();\n};\nconst switchToYear = (yearCount: number) => {\n if (isNil(viewDateDisplay.value.year)) {\n return;\n }\n viewDateDisplay.value.year += yearCount;\n};\nconst handleSwitchToPreviousMonth = () => {\n switchToMonth(-1);\n generateDates();\n};\nconst handleSwitchToNextMonth = () => {\n switchToMonth(1);\n generateDates();\n};\nconst switchToMonth = (monthCount: number) => {\n // Vue: updating the existing Date object directly won’t trigger reactivity, so creating a new Date object to ensure reactivity\n if (isNil(viewDateDisplay.value.month)) {\n return;\n }\n viewDateDisplay.value.month += monthCount;\n};\nconst openMenu = () => {\n isVisibleMenu.value = true;\n};\nconst handleToggleMenu = () => {\n if (props.disabled) {\n return;\n }\n isVisibleMenu.value = !isVisibleMenu.value;\n};\nconst isOutOfRangeYear = (year: number) =>\n (minValue.value ? minValue.value.getFullYear() > year : false) ||\n (maxValue.value ? year > maxValue.value.getFullYear() : false);\nconst isOutOfRangeMonth = (year: number, month: number) =>\n (minValue.value\n ? (minValue.value.getFullYear() === year &&\n minValue.value.getMonth() > month) ||\n minValue.value.getFullYear() > year\n : false) ||\n (maxValue.value\n ? (maxValue.value.getFullYear() === year &&\n maxValue.value.getMonth() < month) ||\n maxValue.value.getFullYear() < year\n : false);\nconst isOutOfRangeDate = (date: Date) =>\n (minValue.value ? minValue.value > date : false) ||\n (maxValue.value ? date > maxValue.value : false);\nconst getStartOfMonth = (year: number, month: number) =>\n new Date(year, month, 1);\nconst getEndOfMonth = (year: number, month: number) =>\n new Date(year, month + 1, 0);\nconst generateYears = () => {\n years.value = [];\n\n if (isNil(viewDateDisplay.value.year)) {\n return;\n }\n\n const decade = viewDateDisplay.value.year.toString().slice(0, -1);\n const startYear = +`${decade}0`;\n const endYear = +`${decade}9`;\n\n years.value.push({\n year: startYear - 1,\n secondary: true,\n disabled: isOutOfRangeYear(startYear - 1),\n });\n for (let i = startYear; i <= endYear; i++) {\n years.value.push({\n year: i,\n disabled: isOutOfRangeYear(i),\n });\n }\n years.value.push({\n year: endYear + 1,\n secondary: true,\n disabled: isOutOfRangeYear(endYear + 1),\n });\n\n viewHeading.value = `${decade}0 - ${decade}9`;\n\n const startDate = getStartOfMonth(startYear, 0);\n const endDate = getEndOfMonth(endYear, 11);\n updateNavDisabledState(startDate, endDate);\n};\nconst generateMonths = () => {\n months.value = [];\n\n if (isNil(viewDateDisplay.value.year)) {\n return;\n }\n\n for (let i = 0; i < 12; i++) {\n months.value.push({\n year: viewDateDisplay.value.year,\n month: i,\n disabled: isOutOfRangeMonth(viewDateDisplay.value.year, i),\n });\n }\n\n viewHeading.value = viewDateDisplay.value.year.toString();\n\n const startDate = getStartOfMonth(viewDateDisplay.value.year, 0);\n const endDate = getEndOfMonth(viewDateDisplay.value.year, 11);\n updateNavDisabledState(startDate, endDate);\n};\nconst generateDates = () => {\n dates.value = [];\n\n if (isNil(viewDateDisplay.value.year) || isNil(viewDateDisplay.value.month)) {\n return;\n }\n\n const startOfMonth = getStartOfMonth(\n viewDateDisplay.value.year,\n viewDateDisplay.value.month,\n );\n const endOfMonth = getEndOfMonth(\n viewDateDisplay.value.year,\n viewDateDisplay.value.month,\n );\n const d = structuredClone(startOfMonth);\n\n let preDateCount = d.getDay() === 0 ? 6 : d.getDay() - 1; // Sunday -> d.getDay() === 0\n while (preDateCount > 0) {\n const preD = structuredClone(d);\n preD.setDate(-(preDateCount - 1));\n dates.value.push({\n date: preD.getDate(),\n month: preD.getMonth(),\n year: preD.getFullYear(),\n secondary: true,\n disabled: isOutOfRangeDate(preD),\n });\n preDateCount--;\n }\n\n while (d <= endOfMonth) {\n dates.value.push({\n date: d.getDate(),\n month: d.getMonth(),\n year: d.getFullYear(),\n disabled: isOutOfRangeDate(d),\n });\n d.setDate(d.getDate() + 1);\n }\n\n const postDateCount = d.getDay() === 0 ? 1 : 7 - d.getDay() + 1;\n if (postDateCount < 6) {\n let i = 1;\n const postD = structuredClone(d);\n while (i <= postDateCount) {\n postD.setDate(i);\n dates.value.push({\n date: postD.getDate(),\n month: postD.getMonth(),\n year: postD.getFullYear(),\n secondary: true,\n disabled: isOutOfRangeDate(postD),\n });\n i++;\n }\n }\n\n // NOTE: Basically 'date' is not unnecessary, just put a random value 1\n viewHeading.value = formatMonthYear(\n new Date(viewDateDisplay.value.year, viewDateDisplay.value.month, 1),\n ).toString();\n updateNavDisabledState(startOfMonth, endOfMonth);\n};\nconst updateNavDisabledState = (startDate: Date, endDate: Date) => {\n viewLeftNavDisabled.value = minValue.value\n ? minValue.value >= startDate\n : false;\n viewRightNavDisabled.value = maxValue.value\n ? maxValue.value <= endDate\n : false;\n};\nconst getInputMaskDate = () => {\n const arr = mask.value.split('/');\n\n const result: Record<string, string> = {\n 'vi-VN': `${arr[2]}-${arr[1]}-${arr[0]}`,\n 'en-US': `${arr[2]}-${arr[0]}-${arr[1]}`,\n };\n\n return isISO8601(result[locale.value])\n ? new Date(result[locale.value])\n : undefined;\n};\nconst onAccept = () => {\n if (!mask.unmaskedValue) {\n value.value = undefined;\n valueDisplay.value = {\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n };\n }\n};\nconst onComplete = () => {\n const date = getInputMaskDate();\n if (date) {\n value.value = getConsistentValue(date);\n valueDisplay.value = cloneItemFromDate(date);\n viewDate.value = cloneItemFromDate(date, true);\n viewDateDisplay.value = cloneItemFromDate(date, true);\n generateDates();\n } else {\n value.value = undefined;\n valueDisplay.value = {\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n };\n }\n};\nconst onBlur = () => {\n const date = getInputMaskDate();\n validate();\n if (!isNotSyncedModelValue(date)) {\n return;\n }\n if (date) {\n value.value = getConsistentValue(date);\n viewDate.value = cloneItemFromDate(date, true);\n valueDisplay.value = cloneItemFromDate(date);\n viewDateDisplay.value = cloneItemFromDate(date, true);\n generateDates();\n } else {\n value.value = undefined;\n valueDisplay.value = {\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n };\n }\n};\n\n// const formatDateMoment = (date: Date | string) =>\n// moment(date).format(DATE_FORMAT);\nconst closeOnClickOutside = (event: any) => {\n const refs = [datePickerRef.value, datePickerMenuRef.value];\n const withinBoundaries = refs.some((r) => event.composedPath().includes(r));\n if (!withinBoundaries) {\n closeDatePickerMenu();\n }\n};\nconst closeOnEscapePressed = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeDatePickerMenu();\n }\n};\nconst closeDatePickerMenu = () => {\n isVisibleMenu.value = false;\n datePickerInputRef.value?.blur();\n datePickerInputMaskRef.value?.blur();\n};\nconst initIMask = () => {\n mask = IMask(datePickerInputMaskRef.value!, inputMaskOptions.value);\n // mask.value = formatDateMoment(\n // getDateObject(props.modelValue as Date | string) || '',\n // );\n updateMaskValue();\n mask.on('accept', onAccept);\n mask.on('complete', onComplete);\n};\nconst destroyIMask = () => {\n mask && mask.destroy();\n};\nconst init = () => {\n generateYears();\n generateMonths();\n generateDates();\n};\n\ninit();\n//#endregion\n\n//#region Lifecycle Hooks\nonMounted(() => {\n if (!props.range) {\n initIMask();\n }\n document.addEventListener('click', closeOnClickOutside);\n document.addEventListener('keydown', closeOnEscapePressed);\n});\nonBeforeUnmount(() => {\n destroyIMask();\n unlockScrollBody();\n resetPosition(datePickerRef.value!, datePickerMenuRef.value!); // Make sure dropdown menu unmounted with itself\n document.removeEventListener('keydown', closeOnEscapePressed);\n document.removeEventListener('click', closeOnClickOutside);\n});\n//#endregion\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n ref_key: \"datePickerRef\",\n ref: datePickerRef\n }, [\n _createVNode(BLabel, {\n id: id.value,\n label: _ctx.label,\n required: _ctx.required\n }, null, 8, [\"id\", \"label\", \"required\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n (props.range)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n id: id.value,\n ref_key: \"datePickerInputRef\",\n ref: datePickerInputRef,\n class: _normalizeClass([inputCssClassValue.value, \"ds-drop-shadow-light\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n value: formattedValue.value,\n readonly: \"\",\n onFocus: openMenu\n }, null, 42, _hoisted_3))\n : (_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: id.value,\n ref_key: \"datePickerInputMaskRef\",\n ref: datePickerInputMaskRef,\n class: _normalizeClass([inputCssClassValue.value, \"ds-drop-shadow-light\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n onBlur: onBlur\n }, null, 42, _hoisted_4)),\n _createVNode(BDatePickerIcon, {\n disabled: props.disabled,\n onClick: handleToggleMenu,\n onKeyup: _withKeys(handleToggleMenu, [\"enter\"])\n }, null, 8, [\"disabled\"])\n ]),\n _withDirectives(_createElementVNode(\"div\", {\n ref_key: \"datePickerMenuRef\",\n ref: datePickerMenuRef,\n class: \"b-date-picker__menu sm:ds-items-[unset] sm:ds-justify-[unset] ds-fixed ds-left-0 ds-top-0 ds-z-100 ds-flex ds-h-full ds-w-full ds-items-center ds-justify-center ds-bg-black/65 ds-backdrop-blur-sm sm:ds-absolute sm:ds-left-[unset] sm:ds-top-[unset] sm:ds-z-50 sm:ds-block sm:ds-h-auto sm:ds-w-auto sm:ds-bg-transparent sm:ds-backdrop-blur-none\"\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(BDatePickerButtonPrevious, {\n disabled: viewLeftNavDisabled.value,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (viewData.value[viewValue.value].handleClickPreview()))\n }, null, 8, [\"disabled\"]),\n _createVNode(BDatePickerHeading, {\n class: _normalizeClass({\n 'ds-cursor-pointer hover:ds-bg-blue-light focus-visible:ds-bg-blue-light':\n viewData.value[viewValue.value].handleClickHeading,\n }),\n onClick: viewData.value[viewValue.value].handleClickHeading\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(viewHeading.value), 1)\n ]),\n _: 1\n }, 8, [\"class\", \"onClick\"]),\n _createVNode(BDatePickerButtonNext, {\n disabled: viewRightNavDisabled.value,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (viewData.value[viewValue.value].handleClickNext()))\n }, null, 8, [\"disabled\"])\n ]),\n (viewValue.value === _unref(BDatePickerView).Years)\n ? (_openBlock(), _createBlock(BDatePickerGridYear, {\n key: 0,\n year: valueDisplay.value,\n years: years.value,\n \"onSelect:year\": handleSelectYear\n }, null, 8, [\"year\", \"years\"]))\n : _createCommentVNode(\"\", true),\n (viewValue.value === _unref(BDatePickerView).Months)\n ? (_openBlock(), _createBlock(BDatePickerGridMonth, {\n key: 1,\n month: valueDisplay.value,\n months: months.value,\n \"onSelect:month\": handleSelectMonth\n }, null, 8, [\"month\", \"months\"]))\n : _createCommentVNode(\"\", true),\n (viewValue.value === _unref(BDatePickerView).Dates)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n (props.range)\n ? (_openBlock(), _createBlock(BDatePickerGridDateRange, {\n key: 0,\n \"date-range\": valueRangeDisplay.value,\n dates: dates.value,\n \"onSelect:date\": handleSelectDateRange\n }, null, 8, [\"date-range\", \"dates\"]))\n : (_openBlock(), _createBlock(BDatePickerGridDate, {\n key: 1,\n date: valueDisplay.value,\n dates: dates.value,\n \"onSelect:date\": handleSelectDate\n }, null, 8, [\"date\", \"dates\"]))\n ], 64))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(BButton, { onClick: handleCancel }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(t)('ds.components.base.date_picker.buttons.cancel')), 1)\n ]),\n _: 1\n }),\n _createVNode(BButton, {\n type: \"primary\",\n onClick: handleConfirm\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(t)('ds.components.base.date_picker.buttons.confirm')), 1)\n ]),\n _: 1\n })\n ])\n ])\n ], 512), [\n [_vShow, isVisibleMenu.value]\n ])\n ], 512),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_sfc_main","_defineComponent","BDatePickerView","__props","__emit","props","emit","mask","CURRENT_DATE","smAndLarger","useBreakpoints","breakpointsTailwind","t","locale","useI18n","formatMonthYear","formatDate","dateFormat","convertToDate","useDate","valueDisplay","ref","valueRangeDisplay","viewDate","viewDateDisplay","isVisibleMenu","viewValue","datePickerRef","datePickerMenuRef","datePickerInputRef","datePickerInputMaskRef","dates","months","years","viewHeading","viewLeftNavDisabled","viewRightNavDisabled","minValue","computed","getDateObject","maxValue","validateRequired","val","id","uuid","value","formattedValue","_a","vRules","result","validate","validationResult","useValidationField","inputCssClassValue","inputMaskOptions","IMask","date","str","viewData","handleSwitchToPreviousDecade","handleSwitchToNextDecade","handleSwitchToPreviousYear","handleSwitchToNextYear","handleSwitchToYearsView","handleSwitchToPreviousMonth","handleSwitchToNextMonth","handleSwitchToMonthsView","watch","onAccept","onComplete","updateMaskValue","arr","ensureValueWhenMinDateChange","generateDates","ensureValueWhenMaxDateChange","nextTick","initIMask","lockScrollBody","cloneItemFromDateRange","cloneItemFromDate","cloneItem","ensureVisiblePosition","unlockScrollBody","resetPosition","isNotSyncedModelValue","v","getInputMaskDate","d","getConsistentValue","isISO8601","generateMonths","generateYears","isEmpty","i","_b","r","handleCancel","handleConfirm","isNil","item","ignoreDate","dateRange","handleSelectYear","handleSelectMonth","handleSelectDate","handleSelectDateRange","year","month","valueRangeDisplayLength","foundIndex","switchToDecade","decadeCount","switchToYear","yearCount","switchToMonth","monthCount","openMenu","handleToggleMenu","isOutOfRangeYear","isOutOfRangeMonth","isOutOfRangeDate","getStartOfMonth","getEndOfMonth","decade","startYear","endYear","startDate","endDate","updateNavDisabledState","startOfMonth","endOfMonth","preDateCount","preD","postDateCount","postD","onBlur","closeOnClickOutside","event","closeDatePickerMenu","closeOnEscapePressed","destroyIMask","onMounted","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_createVNode","BLabel","_normalizeClass","BDatePickerIcon","_withKeys","_withDirectives","BDatePickerButtonPrevious","$event","BDatePickerHeading","_withCtx","_createTextVNode","_toDisplayString","BDatePickerButtonNext","_unref","_createBlock","BDatePickerGridYear","_createCommentVNode","BDatePickerGridMonth","_Fragment","BDatePickerGridDateRange","BDatePickerGridDate","BButton","_vShow","BErrorMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAMA,KAAa,EAAE,OAAO,mBACtBC,KAAa,EAAE,OAAO,iBACtBC,KAAa,CAAC,MAAM,YAAY,eAAe,OAAO,GACtDC,KAAa,CAAC,MAAM,YAAY,aAAa,GAC7CC,KAAa,EAAE,OAAO,qFACtBC,KAAa,EAAE,OAAO,0DACtBC,KAAa,EAAE,OAAO,+CAsGAC,KAAiBC,gBAAAA,GAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,SAAS,EAAE,SAAS,GAAG;AAAA,IACvB,YAAY,EAAE,SAAS,OAAU;AAAA,IACjC,OAAO,EAAE,SAAS,GAAG;AAAA,IACrB,iBAAiB,EAAE,SAAS,OAAU;AAAA,IACtC,aAAa,EAAE,SAAS,GAAG;AAAA,IAC3B,UAAU,EAAE,MAAM,SAAS,SAAS,GAAM;AAAA,IAC1C,sBAAsB,EAAE,SAAS,GAAG;AAAA,IACpC,UAAU,EAAE,MAAM,SAAS,SAAS,GAAM;AAAA,IAC1C,eAAe,EAAE,SAAS,GAAG;AAAA,IAC7B,SAAS,EAAE,SAAS,OAAU;AAAA,IAC9B,SAAS,EAAE,SAAS,OAAU;AAAA,IAC9B,OAAO,EAAE,MAAM,SAAS,SAAS,GAAM;AAAA,IACvC,aAAa,EAAE,MAAM,SAAS,SAAS,GAAM;AAAA,IAC7C,MAAM,EAAE,SAASC,EAAgB,MAAM;AAAA,EACzC;AAAA,EACA,OAAO,CAAC,mBAAmB;AAAA,EAC3B,MAAMC,IAAc,EAAE,MAAMC,MAAU;AAExC,UAAMC,IAAQF,IAIRG,KAAOF;AAIT,QAAAG;AACJ,UAAMC,IAAe,IAAI;AAAA,OACvB,oBAAI,KAAK,GAAE,YAAY;AAAA,OACvB,oBAAI,KAAK,GAAE,SAAS;AAAA,OACpB,oBAAI,KAAK,GAAE,QAAQ;AAAA,IAAA,GAIfC,KADcC,GAAeC,EAAmB,EACtB,eAAe,IAAI,GAC7C,EAAE,GAAAC,GAAG,QAAAC,EAAO,IAAIC,GAAQ,GACxB,EAAE,iBAAAC,IAAiB,YAAAC,GAAY,YAAAC,IAAY,eAAAC,GAAA,IAAkBC,MAC7DC,IAAeC,EAAyB,CAAA,CAAE,GAC1CC,IAAoBD,EAA2B,CAAA,CAAE,GACjDE,IAAWF,EAAyB;AAAA,MACxC,MAAMb,EAAa,YAAY;AAAA,MAC/B,OAAOA,EAAa,SAAS;AAAA,IAAA,CAC9B,GACKgB,IAAkBH,EAAyB;AAAA,MAC/C,MAAMb,EAAa,YAAY;AAAA,MAC/B,OAAOA,EAAa,SAAS;AAAA,IAAA,CAC9B,GACKiB,IAAgBJ,EAAI,EAAK,GACzBK,IAAYL,EAAqBhB,EAAM,IAAuB,GAC9DsB,IAAgBN,EAA2B,IAAI,GAC/CO,IAAoBP,EAA2B,IAAI,GACnDQ,KAAqBR,EAA6B,IAAI,GACtDS,IAAyBT,EAA6B,IAAI,GAC1DU,IAAQV,EAA2B,CAAA,CAAE,GACrCW,IAASX,EAA2B,CAAA,CAAE,GACtCY,IAAQZ,EAA2B,CAAA,CAAE,GACrCa,IAAcb,EAAI,EAAE,GACpBc,KAAsBd,EAAI,EAAK,GAC/Be,KAAuBf,EAAI,EAAK,GAChCgB,IAAWC,EAA2B,MAAMC,EAAclC,EAAM,OAAO,CAAC,GACxEmC,IAAWF,EAA2B,MAAMC,EAAclC,EAAM,OAAO,CAAC,GACxEoC,KAAmC;AAAA,MACvC,cAAc,CAACC,MAAQ,CAAC,CAACA;AAAA,MACzB,cAAc,MACZrC,EAAM,wBAAwBO,EAAE,0BAA0B;AAAA,IAAA,GAIxD+B,IAAKL,EAAS,MAAMjC,EAAM,WAAW,MAAMuC,IAAM,EAAE,GACnDC,IAAQP,EAAS;AAAA,MACrB,MAAM;AACJ,eAAOjC,EAAM;AAAA,MACf;AAAA,MACA,IAAIqC,GAAK;AACP,QAAApC,GAAK,qBAAqBoC,CAAG;AAAA,MAC/B;AAAA,IAAA,CACD,GACKI,KAAiBR;AAAA,MAAS,MAC7B;;AAAA,gBAAAS,IAAA1C,EAAM,eAAN,gBAAA0C,EACG;AAAA,UAAI,CAACL,MACqB1B,EAA1B,OAAO0B,KAAQ,WAAsB,IAAI,KAAKA,CAAG,IAAgBA,CAAf;AAAA,UAEnD,KAAK;AAAA;AAAA,IAAK,GAETM,KAASV,EAAS,MAAM;AAC5B,UAAIW,IAA2B,CAAA;AAE/B,aAAI5C,EAAM,YACR4C,EAAO,KAAKR,EAAgB,GAE1BpC,EAAM,oBACC4C,IAAAA,EAAO,OAAO5C,EAAM,eAAe,IAGvC4C,EAAO,SAASA,IAAS;AAAA,IAAA,CACjC,GACK,EAAE,UAAAC,IAAU,kBAAAC,EAAA,IAAqBC;AAAA,MACrCT,EAAG;AAAA,MACHE;AAAA,MACAG,GAAO;AAAA,IAAA,GAEHK,KAAqBf,EAAS,MAAM;AAAA,MACxC;AAAA,MACA;AAAA,QACE,6DAA6DjC,EAAM;AAAA,QACnE,wBAAwB,CAACA,EAAM;AAAA,QAC/B,uDACE,CAAC8C,EAAiB,MAAM;AAAA,QAC1B,mFACEA,EAAiB,MAAM;AAAA,QACzB,4CAA4C1B,EAAc;AAAA,MAC5D;AAAA,MACApB,EAAM;AAAA,IAAA,CACP,GACKiD,KAAmBhB,EAAS,MAAM;AACtC,YAAMW,IAAc;AAAA,QAClB,MAAMM,EAAM;AAAA,QACZ,SAAStC,GAAW;AAAA,QACpB,MAAM;AAAA,QAEN,QAAQ,CAACuC,MAAexC,EAAWwC,CAAI;AAAA,QACvC,OAAO,CAACC,MAAgBvC,GAAcuC,CAAG;AAAA,QAEzC,QAAQ;AAAA,UACN,MAAM;AAAA,YACJ,MAAMF,EAAM;AAAA,YACZ,MAAM;AAAA,YACN,IAAI;AAAA,UACN;AAAA,UACA,IAAI;AAAA,YACF,MAAMA,EAAM;AAAA,YACZ,MAAM;AAAA,YACN,IAAI;AAAA,UACN;AAAA,UACA,IAAI;AAAA,YACF,MAAMA,EAAM;AAAA,YACZ,MAAM;AAAA,YACN,IAAI;AAAA,UACN;AAAA,QACF;AAAA,MAAA;AAGF,aAAIlB,EAAS,UACXY,EAAO,MAAMZ,EAAS,QAEpBG,EAAS,UACXS,EAAO,MAAMT,EAAS,QAGjBS;AAAA,IAAA,CACR,GACKS,IAAWpB,EAAuD,OAAO;AAAA,MAC7E,CAACpC,EAAgB,KAAK,GAAG;AAAA,QACvB,oBAAoByD;AAAA,QACpB,iBAAiBC;AAAA,MACnB;AAAA,MACA,CAAC1D,EAAgB,MAAM,GAAG;AAAA,QACxB,oBAAoB2D;AAAA,QACpB,iBAAiBC;AAAA,QACjB,oBAAoBC;AAAA,MACtB;AAAA,MACA,CAAC7D,EAAgB,KAAK,GAAG;AAAA,QACvB,oBAAoB8D;AAAA,QACpB,iBAAiBC;AAAA,QACjB,oBAAoBC;AAAA,MACtB;AAAA,IACA,EAAA;AAIF,IAAAC,EAAMtD,GAAQ,MAAM;AAClB,MAAIN,MACGA,EAAA,IAAI,UAAU6D,EAAQ,GACtB7D,EAAA,IAAI,YAAY8D,EAAU,GAC1B9D,EAAA,cAAc+C,GAAiB,KAAK,GACzBgB,KACX/D,EAAA,GAAG,UAAU6D,EAAQ,GACrB7D,EAAA,GAAG,YAAY8D,EAAU;AAAA,IAChC,CACD,GACDF;AAAA,MACE,MAAM9D,EAAM;AAAA,MACZ,MAAM;AACJ,YAAIA,EAAM,OAAO;AACf,gBAAMkE,IAAM1B,EAAM;AACd,UAAA0B,EAAI,SAAS,KACcC,GAAAD,EAAI,CAAC,CAAQ;AAAA,QAC5C,OACK;AACL,gBAAM7B,IAAMG,EAAM;AAClB,UAAA2B,GAA6B9B,CAAG;AAAA,QAClC;AACc,QAAA+B;MAChB;AAAA,IAAA,GAEFN;AAAA,MACE,MAAM9D,EAAM;AAAA,MACZ,MAAM;AACJ,YAAIA,EAAM,OAAO;AACf,gBAAMkE,IAAM1B,EAAM;AACd,UAAA0B,EAAI,SAAS,KACcG,GAAAH,EAAI,CAAC,CAAC,GAEjCA,EAAI,SAAS,KACcG,GAAAH,EAAI,CAAC,CAAC;AAAA,QACrC,OACK;AACL,gBAAM7B,IAAMG,EAAM;AAClB,UAAA6B,GAA6BhC,CAAG;AAAA,QAClC;AACc,QAAA+B;MAChB;AAAA,IAAA,GAEFN;AAAA,MACE,MAAM9D,EAAM;AAAA,MACZ,CAACqC,MAAQ;AACP,QAAKA,KACHiC,GAAS,MAAM;AACH,UAAAC;QAAA,CACX,GAEHxD,EAAa,QAAQ,IACrBE,EAAkB,QAAQ;MAC5B;AAAA,IAAA,GAEF6C;AAAA,MACE,MAAM9D,EAAM;AAAA,MACZ,CAACqC,MAAQ;AACP,QAAAhB,EAAU,QAAQgB;AAAA,MACpB;AAAA,IAAA,GAEFyB,EAAM1D,IAAa,MAAM;AACvB,MAAAgB,EAAc,QAAQ;AAAA,IAAA,CACvB,GACK0C,EAAA1C,GAAe,CAACiB,MAAQ;AAC5B,MAAIA,KACamC,MACXxE,EAAM,QACRiB,EAAkB,QAAQuB,EAAM,QAC5BiC,GAAuBjC,EAAM,KAA6B,IAC1D,KAEJzB,EAAa,QAAQyB,EAAM,QACvBkC,EAAkBlC,EAAM,KAAsB,IAC9C,IAEUrB,EAAA,QAAQwD,EAAUzD,EAAS,KAAK,GAChDoD,GAAS,MAAM;AAEb,QAAIlE,GAAY,QACQwE,GAAAtD,EAAc,OAAQC,EAAkB,KAAM,IAG3D,SAAA,KAAK,OAAOA,EAAkB,KAAM;AAAA,MAC/C,CACD,MAEgBsD,MACHC,GAAAxD,EAAc,OAAQC,EAAkB,KAAM;AAAA,IAC9D,CACD,GACDuC;AAAA,MACE,MAAM9D,EAAM;AAAA,MACZ,CAACqC,MAAQ;AACH,YAAA0C,GAAsB1C,CAAG;AAC3B,cAAIrC,EAAM,OAAO;AACf,kBAAMgF,IAAI3C;AACV,YAAApB,EAAkB,QAAQoB,IAAMoC,GAAuBO,CAAC,IAAI,CAAA,GACnD9D,EAAA,QAAQmB,IAAMqC,EAAkBM,EAAE,CAAC,GAAG,EAAI,IAAI,IACvC7D,EAAA,QAAQkB,IAAMqC,EAAkBM,EAAE,CAAC,GAAG,EAAI,IAAI;UAAC,OAC1D;AACL,kBAAMA,IAAI3C;AACV,YAAAtB,EAAa,QAAQsB,IAAMqC,EAAkBM,CAAC,IAAI,CAAA,GAClD9D,EAAS,QAAQmB,IAAMqC,EAAkBM,GAAG,EAAI,IAAI,IACpD7D,EAAgB,QAAQkB,IAAMqC,EAAkBM,GAAG,EAAI,IAAI;UAC7D;AAEF,QAAI,CAAChF,EAAM,SAAS+E,GAAsBE,GAAkB,CAAA,KAC1ChB;MAEpB;AAAA,IAAA;AAKF,UAAMA,IAAkB,MAAM;AACtB,YAAAiB,IAAIhD,EAAclC,EAAM,UAA2B;AACzD,MAAAE,EAAK,QAAQgF,IAAIvE,EAAWuE,CAAC,IAAI;AAAA,IAAA,GAE7BC,IAAqB,CAAC9C,MAC1B,OAAOrC,EAAM,cAAe,WAAWqC,EAAI,YAAgB,IAAAA,GACvD8B,KAA+B,CAACe,MAAsB;AACpD,YAAA7C,IAAMH,EAAcgD,CAAC;AAC3B,MAAIlD,EAAS,SAASK,KAAOL,EAAS,QAAQK,MAC5CG,EAAM,QAAQ;AAAA,IAChB,GAEI6B,KAA+B,CAACa,MAAsB;AACpD,YAAA7C,IAAMH,EAAcgD,CAAC;AAC3B,MAAI/C,EAAS,SAASE,KAAOF,EAAS,QAAQE,MAC5CG,EAAM,QAAQ;AAAA,IAChB,GAEIN,IAAgB,CAACG,MAAwB;AAC7C,cAAQ,OAAOA,GAAK;AAAA,QAClB,KAAK;AACI,iBAAAA;AAAA,QACT,KAAK;AACH,iBAAO+C,GAAU/C,CAAG,IAAI,IAAI,KAAKA,CAAG,IAAI;AAAA,MAC5C;AACO,aAAAA;AAAA,IAAA,GAEHwB,KAA2B,MAAM;AACtB,MAAAwB,KACfhE,EAAU,QAAQxB,EAAgB;AAAA,IAAA,GAE9B6D,KAA0B,MAAM;AACtB,MAAA4B,KACdjE,EAAU,QAAQxB,EAAgB;AAAA,IAAA,GAE9BkF,KAAwB,CAAC1C,MAA+C;;AAqB5E,cApBmBrC,EAAM,QACrB;AAAA,QACE,CAACuF,EAAQvF,EAAM,UAAU,KAAKuF,EAAQlD,CAAG;AAAA,QACzC,CAACkD,EAAQlD,CAAG,KAAKkD,EAAQvF,EAAM,UAAU;AAAA,QACzC,CAACuF,EAAQvF,EAAM,UAAU,KACvB,CAACuF,EAAQlD,CAAG,KACXrC,EAAM,WAAoC;AAAA,UACzC,CAACgF,GAAGQ;;AACF,qBAAA9C,IAAAR,EAAc8C,CAAC,MAAf,gBAAAtC,EAAkB,iBAClB+C,KAAAvD,EAAeG,EAA6BmD,CAAC,CAAC,MAA9C,gBAAAC,GAAiD;AAAA;AAAA,QACrD;AAAA,MAAA,IAEJ;AAAA,QACE,CAACzF,EAAM,cAAcqC;AAAA,QACrB,CAACA,KAAOrC,EAAM;AAAA,QACdA,EAAM,cACJqC,OACAK,IAAAR,EAAclC,EAAM,UAA2B,MAA/C,gBAAA0C,EAAkD,iBAChD+C,IAAAvD,EAAcG,CAAoB,MAAlC,gBAAAoD,EAAqC;AAAA,MAAQ,GAErC,KAAK,CAACC,MAAMA,CAAC;AAAA,IAAA,GAE3BC,KAAe,MAAM;AACzB,MAAAvE,EAAc,QAAQ;AAAA,IAAA,GAElBwE,KAAgB,MAAM;AAC1B,MAAAxE,EAAc,QAAQ,IAClBpB,EAAM,QACJiB,EAAkB,MAAM,WAAW,IACrCuB,EAAM,QAAQ;AAAA,QACZ2C;AAAA,UACE,IAAI;AAAA,YACFlE,EAAkB,MAAM,CAAC,EAAE;AAAA,YAC3BA,EAAkB,MAAM,CAAC,EAAE;AAAA,YAC3BA,EAAkB,MAAM,CAAC,EAAE;AAAA,UAC7B;AAAA,QACF;AAAA,QACAkE;AAAA,UACE,IAAI;AAAA,YACFlE,EAAkB,MAAM,CAAC,EAAE;AAAA,YAC3BA,EAAkB,MAAM,CAAC,EAAE;AAAA,YAC3BA,EAAkB,MAAM,CAAC,EAAE;AAAA,UAC7B;AAAA,QACF;AAAA,MAAA,IAGFuB,EAAM,QAAQ,SAId,CAACqD,EAAM9E,EAAa,MAAM,IAAI,KAC9B,CAAC8E,EAAM9E,EAAa,MAAM,KAAK,KAC/B,CAAC8E,EAAM9E,EAAa,MAAM,IAAI,IAE9ByB,EAAM,QAAQ2C;AAAA,QACZ,IAAI;AAAA,UACFpE,EAAa,MAAM;AAAA,UACnBA,EAAa,MAAM;AAAA,UACnBA,EAAa,MAAM;AAAA,QACrB;AAAA,MAAA,IAGFyB,EAAM,QAAQ,QAGTtB,EAAA,QAAQyD,EAAUxD,EAAgB,KAAK;AAAA,IAAA,GAE5CwD,IAAY,CAChBmB,GACAC,OACyB;AAAA,MACzB,MAAMD,EAAK;AAAA,MACX,OAAOA,EAAK;AAAA,MACZ,MAAMC,IAAa,SAAYD,EAAK;AAAA,IAAA,IAEhCpB,IAAoB,CACxBvB,GACA4C,OACyB;AAAA,MACzB,MAAM7D,EAAciB,CAAI,EAAG,YAAY;AAAA,MACvC,OAAOjB,EAAciB,CAAI,EAAG,SAAS;AAAA,MACrC,MAAM4C,IAAa,SAAY7D,EAAciB,CAAI,EAAG,QAAQ;AAAA,IAAA,IAExDsB,KAAyB,CAC7BuB,GACAD,MAC0B;AAAA,MAC1B;AAAA,QACE,MAAM7D,EAAc8D,EAAU,CAAC,CAAC,EAAG,YAAY;AAAA,QAC/C,OAAO9D,EAAc8D,EAAU,CAAC,CAAC,EAAG,SAAS;AAAA,QAC7C,MAAMD,IAAa,SAAY7D,EAAc8D,EAAU,CAAC,CAAC,EAAG,QAAQ;AAAA,MACtE;AAAA,MACA;AAAA,QACE,MAAM9D,EAAc8D,EAAU,CAAC,CAAC,EAAG,YAAY;AAAA,QAC/C,OAAO9D,EAAc8D,EAAU,CAAC,CAAC,EAAG,SAAS;AAAA,QAC7C,MAAMD,IAAa,SAAY7D,EAAc8D,EAAU,CAAC,CAAC,EAAG,QAAQ;AAAA,MACtE;AAAA,IAAA,GAEIC,KAAmB,CAACH,MAA8B;AACtC,MAAA3E,EAAA,QAAQwD,EAAUmB,CAAI,GACvBT,KACfhE,EAAU,QAAQxB,EAAgB;AAAA,IAAA,GAE9BqG,KAAoB,CAACJ,MAA8B;AACvC,MAAA3E,EAAA,QAAQwD,EAAUmB,CAAI,GACxB1B,KACd/C,EAAU,QAAQxB,EAAgB;AAAA,IAAA,GAE9BsG,KAAmB,CAACL,MAA8B;AACtD,MACEA,EAAK,SAAS/E,EAAa,MAAM,QACjC+E,EAAK,UAAU/E,EAAa,MAAM,SAClC+E,EAAK,SAAS/E,EAAa,MAAM,OAGpBA,EAAA,QAAQ4D,EAAU,CAAA,CAAE,KAEpB5D,EAAA,QAAQ4D,EAAUmB,CAAI,GACnB3E,EAAA,QAAQwD,EAAUmB,GAAM,EAAI,GAC9B1B;IAChB,GAEIgC,KAAwB,CAAC,EAAE,MAAAC,GAAM,OAAAC,GAAO,MAAAnD,QAAgC;AACtE,YAAAoD,IAA0BtF,EAAkB,MAAM;AACxD,UAAIsF,MAA4B;AAC9B,QAAAtF,EAAkB,MAAM,KAAK,EAAE,MAAAoF,GAAM,OAAAC,GAAO,MAAAnD,GAAM;AAAA,eACzCoD,MAA4B,GAAG;AAClC,cAAAC,IAAavF,EAAkB,MAAM;AAAA,UACzC,CAACuE,MAAMA,EAAE,SAASa,KAAQb,EAAE,UAAUc,KAASd,EAAE,SAASrC;AAAA,QAAA;AAE5D,QAAIqD,MAAe,KACCvF,EAAA,MAAM,OAAOuF,GAAY,CAAC,IAG1C,IAAI,KAAKH,GAAOC,GAAQnD,CAAI,IAC5B,IAAI;AAAA,UACFlC,EAAkB,MAAM,CAAC,EAAE;AAAA,UAC3BA,EAAkB,MAAM,CAAC,EAAE;AAAA,UAC3BA,EAAkB,MAAM,CAAC,EAAE;AAAA,QAAA,IAG7BA,EAAkB,MAAM,KAAK,EAAE,MAAAoF,GAAM,OAAAC,GAAO,MAAAnD,GAAM,IAElDlC,EAAkB,MAAM,QAAQ,EAAE,MAAAoF,GAAM,OAAAC,GAAO,MAAAnD,GAAM;AAAA,MAEzD,WACSoD,MAA4B,GAAG;AAClC,cAAAC,IAAavF,EAAkB,MAAM;AAAA,UACzC,CAACuE,MAAMA,EAAE,SAASa,KAAQb,EAAE,UAAUc,KAASd,EAAE,SAASrC;AAAA,QAAA;AAE5D,QAAIqD,MAAe,KACCvF,EAAA,MAAM,OAAOuF,GAAY,CAAC,KAE5CvF,EAAkB,QAAQ,IAC1BA,EAAkB,MAAM,KAAK,EAAE,MAAAoF,GAAM,OAAAC,GAAO,MAAAnD,GAAM;AAAA,MAEtD;AAEA,MAAAhC,EAAgB,QAAQ;AAAA,QACtB,MAAAkF;AAAA,QACA,OAAAC;AAAA,MAAA,GAEYlC;IAAA,GAEVd,KAA+B,MAAM;AACzC,MAAAmD,GAAe,EAAE,GACHnB;IAAA,GAEV/B,KAA2B,MAAM;AACrC,MAAAkD,GAAe,CAAC,GACFnB;IAAA,GAEVmB,KAAiB,CAACC,MAAwB;AAC9C,MAAIb,EAAM1E,EAAgB,MAAM,IAAI,MAGpBA,EAAA,MAAM,QAAQuF,IAAc;AAAA,IAAA,GAExClD,KAA6B,MAAM;AACvC,MAAAmD,GAAa,EAAE,GACAtB;IAAA,GAEX5B,KAAyB,MAAM;AACnC,MAAAkD,GAAa,CAAC,GACCtB;IAAA,GAEXsB,KAAe,CAACC,MAAsB;AAC1C,MAAIf,EAAM1E,EAAgB,MAAM,IAAI,MAGpCA,EAAgB,MAAM,QAAQyF;AAAA,IAAA,GAE1BjD,KAA8B,MAAM;AACxC,MAAAkD,GAAc,EAAE,GACFzC;IAAA,GAEVR,KAA0B,MAAM;AACpC,MAAAiD,GAAc,CAAC,GACDzC;IAAA,GAEVyC,KAAgB,CAACC,MAAuB;AAE5C,MAAIjB,EAAM1E,EAAgB,MAAM,KAAK,MAGrCA,EAAgB,MAAM,SAAS2F;AAAA,IAAA,GAE3BC,KAAW,MAAM;AACrB,MAAA3F,EAAc,QAAQ;AAAA,IAAA,GAElB4F,KAAmB,MAAM;AAC7B,MAAIhH,EAAM,aAGIoB,EAAA,QAAQ,CAACA,EAAc;AAAA,IAAA,GAEjC6F,KAAmB,CAACZ,OACvBrE,EAAS,QAAQA,EAAS,MAAM,YAAgB,IAAAqE,IAAO,QACvDlE,EAAS,QAAQkE,IAAOlE,EAAS,MAAM,gBAAgB,KACpD+E,KAAoB,CAACb,GAAcC,OACtCtE,EAAS,QACLA,EAAS,MAAM,YAAY,MAAMqE,KAChCrE,EAAS,MAAM,SAAa,IAAAsE,KAC9BtE,EAAS,MAAM,YAAA,IAAgBqE,IAC/B,QACHlE,EAAS,QACLA,EAAS,MAAM,kBAAkBkE,KAChClE,EAAS,MAAM,SAAa,IAAAmE,KAC9BnE,EAAS,MAAM,gBAAgBkE,IAC/B,KACAc,KAAmB,CAAChE,OACvBnB,EAAS,QAAQA,EAAS,QAAQmB,IAAO,QACzChB,EAAS,QAAQgB,IAAOhB,EAAS,QAAQ,KACtCiF,KAAkB,CAACf,GAAcC,MACrC,IAAI,KAAKD,GAAMC,GAAO,CAAC,GACnBe,KAAgB,CAAChB,GAAcC,MACnC,IAAI,KAAKD,GAAMC,IAAQ,GAAG,CAAC,GACvBhB,IAAgB,MAAM;AAG1B,UAFA1D,EAAM,QAAQ,IAEViE,EAAM1E,EAAgB,MAAM,IAAI;AAClC;AAGI,YAAAmG,IAASnG,EAAgB,MAAM,KAAK,SAAW,EAAA,MAAM,GAAG,EAAE,GAC1DoG,IAAY,CAAC,GAAGD,CAAM,KACtBE,IAAU,CAAC,GAAGF,CAAM;AAE1B,MAAA1F,EAAM,MAAM,KAAK;AAAA,QACf,MAAM2F,IAAY;AAAA,QAClB,WAAW;AAAA,QACX,UAAUN,GAAiBM,IAAY,CAAC;AAAA,MAAA,CACzC;AACD,eAAS/B,IAAI+B,GAAW/B,KAAKgC,GAAShC;AACpC,QAAA5D,EAAM,MAAM,KAAK;AAAA,UACf,MAAM4D;AAAA,UACN,UAAUyB,GAAiBzB,CAAC;AAAA,QAAA,CAC7B;AAEH,MAAA5D,EAAM,MAAM,KAAK;AAAA,QACf,MAAM4F,IAAU;AAAA,QAChB,WAAW;AAAA,QACX,UAAUP,GAAiBO,IAAU,CAAC;AAAA,MAAA,CACvC,GAED3F,EAAY,QAAQ,GAAGyF,CAAM,OAAOA,CAAM;AAEpC,YAAAG,IAAYL,GAAgBG,GAAW,CAAC,GACxCG,IAAUL,GAAcG,GAAS,EAAE;AACzC,MAAAG,GAAuBF,GAAWC,CAAO;AAAA,IAAA,GAErCrC,IAAiB,MAAM;AAG3B,UAFA1D,EAAO,QAAQ,IAEXkE,EAAM1E,EAAgB,MAAM,IAAI;AAClC;AAGF,eAASqE,IAAI,GAAGA,IAAI,IAAIA;AACtB,QAAA7D,EAAO,MAAM,KAAK;AAAA,UAChB,MAAMR,EAAgB,MAAM;AAAA,UAC5B,OAAOqE;AAAA,UACP,UAAU0B,GAAkB/F,EAAgB,MAAM,MAAMqE,CAAC;AAAA,QAAA,CAC1D;AAGH,MAAA3D,EAAY,QAAQV,EAAgB,MAAM,KAAK,SAAS;AAExD,YAAMsG,IAAYL,GAAgBjG,EAAgB,MAAM,MAAM,CAAC,GACzDuG,IAAUL,GAAclG,EAAgB,MAAM,MAAM,EAAE;AAC5D,MAAAwG,GAAuBF,GAAWC,CAAO;AAAA,IAAA,GAErCtD,IAAgB,MAAM;AAGtB,UAFJ1C,EAAM,QAAQ,IAEVmE,EAAM1E,EAAgB,MAAM,IAAI,KAAK0E,EAAM1E,EAAgB,MAAM,KAAK;AACxE;AAGF,YAAMyG,IAAeR;AAAA,QACnBjG,EAAgB,MAAM;AAAA,QACtBA,EAAgB,MAAM;AAAA,MAAA,GAElB0G,IAAaR;AAAA,QACjBlG,EAAgB,MAAM;AAAA,QACtBA,EAAgB,MAAM;AAAA,MAAA,GAElB+D,IAAI,gBAAgB0C,CAAY;AAElC,UAAAE,IAAe5C,EAAE,aAAa,IAAI,IAAIA,EAAE,OAAW,IAAA;AACvD,aAAO4C,IAAe,KAAG;AACjB,cAAAC,IAAO,gBAAgB7C,CAAC;AACzB,QAAA6C,EAAA,QAAQ,EAAED,IAAe,EAAE,GAChCpG,EAAM,MAAM,KAAK;AAAA,UACf,MAAMqG,EAAK,QAAQ;AAAA,UACnB,OAAOA,EAAK,SAAS;AAAA,UACrB,MAAMA,EAAK,YAAY;AAAA,UACvB,WAAW;AAAA,UACX,UAAUZ,GAAiBY,CAAI;AAAA,QAAA,CAChC,GACDD;AAAA,MACF;AAEA,aAAO5C,KAAK2C;AACV,QAAAnG,EAAM,MAAM,KAAK;AAAA,UACf,MAAMwD,EAAE,QAAQ;AAAA,UAChB,OAAOA,EAAE,SAAS;AAAA,UAClB,MAAMA,EAAE,YAAY;AAAA,UACpB,UAAUiC,GAAiBjC,CAAC;AAAA,QAAA,CAC7B,GACDA,EAAE,QAAQA,EAAE,QAAQ,IAAI,CAAC;AAGrB,YAAA8C,IAAgB9C,EAAE,OAAO,MAAM,IAAI,IAAI,IAAIA,EAAE,OAAW,IAAA;AAC9D,UAAI8C,IAAgB,GAAG;AACrB,YAAIxC,IAAI;AACF,cAAAyC,IAAQ,gBAAgB/C,CAAC;AAC/B,eAAOM,KAAKwC;AACV,UAAAC,EAAM,QAAQzC,CAAC,GACf9D,EAAM,MAAM,KAAK;AAAA,YACf,MAAMuG,EAAM,QAAQ;AAAA,YACpB,OAAOA,EAAM,SAAS;AAAA,YACtB,MAAMA,EAAM,YAAY;AAAA,YACxB,WAAW;AAAA,YACX,UAAUd,GAAiBc,CAAK;AAAA,UAAA,CACjC,GACDzC;AAAA,MAEJ;AAGA,MAAA3D,EAAY,QAAQnB;AAAA,QAClB,IAAI,KAAKS,EAAgB,MAAM,MAAMA,EAAgB,MAAM,OAAO,CAAC;AAAA,QACnE,SAAS,GACXwG,GAAuBC,GAAcC,CAAU;AAAA,IAAA,GAE3CF,KAAyB,CAACF,GAAiBC,MAAkB;AACjE,MAAA5F,GAAoB,QAAQE,EAAS,QACjCA,EAAS,SAASyF,IAClB,IACJ1F,GAAqB,QAAQI,EAAS,QAClCA,EAAS,SAASuF,IAClB;AAAA,IAAA,GAEAzC,KAAmB,MAAM;AAC7B,YAAMf,IAAMhE,EAAK,MAAM,MAAM,GAAG,GAE1B0C,IAAiC;AAAA,QACrC,SAAS,GAAGsB,EAAI,CAAC,CAAC,IAAIA,EAAI,CAAC,CAAC,IAAIA,EAAI,CAAC,CAAC;AAAA,QACtC,SAAS,GAAGA,EAAI,CAAC,CAAC,IAAIA,EAAI,CAAC,CAAC,IAAIA,EAAI,CAAC,CAAC;AAAA,MAAA;AAGxC,aAAOkB,GAAUxC,EAAOpC,EAAO,KAAK,CAAC,IACjC,IAAI,KAAKoC,EAAOpC,EAAO,KAAK,CAAC,IAC7B;AAAA,IAAA,GAEAuD,KAAW,MAAM;AACjB,MAAC7D,EAAK,kBACRsC,EAAM,QAAQ,QACdzB,EAAa,QAAQ;AAAA,QACnB,MAAMZ,EAAa,YAAY;AAAA,QAC/B,OAAOA,EAAa,SAAS;AAAA,MAAA;AAAA,IAEjC,GAEI6D,KAAa,MAAM;AACvB,YAAMb,IAAO8B;AACb,MAAI9B,KACIX,EAAA,QAAQ2C,EAAmBhC,CAAI,GACxBpC,EAAA,QAAQ2D,EAAkBvB,CAAI,GAClCjC,EAAA,QAAQwD,EAAkBvB,GAAM,EAAI,GAC7BhC,EAAA,QAAQuD,EAAkBvB,GAAM,EAAI,GACtCiB,QAEd5B,EAAM,QAAQ,QACdzB,EAAa,QAAQ;AAAA,QACnB,MAAMZ,EAAa,YAAY;AAAA,QAC/B,OAAOA,EAAa,SAAS;AAAA,MAAA;AAAA,IAEjC,GAEI+H,KAAS,MAAM;AACnB,YAAM/E,IAAO8B;AAET,MADKpC,MACJkC,GAAsB5B,CAAI,MAG3BA,KACIX,EAAA,QAAQ2C,EAAmBhC,CAAI,GAC5BjC,EAAA,QAAQwD,EAAkBvB,GAAM,EAAI,GAChCpC,EAAA,QAAQ2D,EAAkBvB,CAAI,GAC3BhC,EAAA,QAAQuD,EAAkBvB,GAAM,EAAI,GACtCiB,QAEd5B,EAAM,QAAQ,QACdzB,EAAa,QAAQ;AAAA,QACnB,MAAMZ,EAAa,YAAY;AAAA,QAC/B,OAAOA,EAAa,SAAS;AAAA,MAAA;AAAA,IAEjC,GAKIgI,KAAsB,CAACC,MAAe;AAG1C,MAFa,CAAC9G,EAAc,OAAOC,EAAkB,KAAK,EAC5B,KAAK,CAACmE,MAAM0C,EAAM,eAAe,SAAS1C,CAAC,CAAC,KAEpD2C;IACtB,GAEIC,KAAuB,CAACF,MAAyB;AACjD,MAAAA,EAAM,QAAQ,YACIC;IACtB,GAEIA,KAAsB,MAAM;;AAChC,MAAAjH,EAAc,QAAQ,KACtBsB,IAAAlB,GAAmB,UAAnB,QAAAkB,EAA0B,SAC1B+C,IAAAhE,EAAuB,UAAvB,QAAAgE,EAA8B;AAAA,IAAK,GAE/BlB,KAAY,MAAM;AACtB,MAAArE,IAAOgD,EAAMzB,EAAuB,OAAQwB,GAAiB,KAAK,GAIlDgB,KACX/D,EAAA,GAAG,UAAU6D,EAAQ,GACrB7D,EAAA,GAAG,YAAY8D,EAAU;AAAA,IAAA,GAE1BuE,KAAe,MAAM;AACzB,MAAArI,KAAQA,EAAK;IAAQ;AAQlB,YANQ,MAAM;AACH,MAAAoF,KACCD,KACDjB;IAAA,MAOhBoE,GAAU,MAAM;AACV,MAACxI,EAAM,SACCuE,MAEH,SAAA,iBAAiB,SAAS4D,EAAmB,GAC7C,SAAA,iBAAiB,WAAWG,EAAoB;AAAA,IAAA,CAC1D,GACDG,GAAgB,MAAM;AACP,MAAAF,MACI1D,MACHC,GAAAxD,EAAc,OAAQC,EAAkB,KAAM,GACnD,SAAA,oBAAoB,WAAW+G,EAAoB,GACnD,SAAA,oBAAoB,SAASH,EAAmB;AAAA,IAAA,CAC1D,GAGM,CAACO,GAAUC,OACRC,EAAW,GAAGC,EAAoB,OAAOzJ,IAAY;AAAA,MAC3D0J,EAAoB,OAAO;AAAA,QACzB,SAAS;AAAA,QACT,KAAKxH;AAAA,MAAA,GACJ;AAAA,QACDyH,EAAaC,IAAQ;AAAA,UACnB,IAAI1G,EAAG;AAAA,UACP,OAAOoG,EAAK;AAAA,UACZ,UAAUA,EAAK;AAAA,QAAA,GACd,MAAM,GAAG,CAAC,MAAM,SAAS,UAAU,CAAC;AAAA,QACvCI,EAAoB,OAAOzJ,IAAY;AAAA,UACpCW,EAAM,SACF4I,KAAcC,EAAoB,SAAS;AAAA,YAC1C,KAAK;AAAA,YACL,IAAIvG,EAAG;AAAA,YACP,SAAS;AAAA,YACT,KAAKd;AAAA,YACL,OAAOyH,GAAgB,CAACjG,GAAmB,OAAO,sBAAsB,CAAC;AAAA,YACzE,UAAU0F,EAAK;AAAA,YACf,aAAaA,EAAK;AAAA,YAClB,OAAOjG,GAAe;AAAA,YACtB,UAAU;AAAA,YACV,SAASsE;AAAA,UAAA,GACR,MAAM,IAAIzH,EAAU,MACtBsJ,EAAW,GAAGC,EAAoB,SAAS;AAAA,YAC1C,KAAK;AAAA,YACL,IAAIvG,EAAG;AAAA,YACP,SAAS;AAAA,YACT,KAAKb;AAAA,YACL,OAAOwH,GAAgB,CAACjG,GAAmB,OAAO,sBAAsB,CAAC;AAAA,YACzE,UAAU0F,EAAK;AAAA,YACf,aAAaA,EAAK;AAAA,YAClB,QAAAR;AAAA,UAAA,GACC,MAAM,IAAI3I,EAAU;AAAA,UAC3BwJ,EAAaG,IAAiB;AAAA,YAC5B,UAAUlJ,EAAM;AAAA,YAChB,SAASgH;AAAA,YACT,SAASmC,GAAUnC,IAAkB,CAAC,OAAO,CAAC;AAAA,UAC7C,GAAA,MAAM,GAAG,CAAC,UAAU,CAAC;AAAA,QAAA,CACzB;AAAA,QACDoC,GAAgBN,EAAoB,OAAO;AAAA,UACzC,SAAS;AAAA,UACT,KAAKvH;AAAA,UACL,OAAO;AAAA,QAAA,GACN;AAAA,UACDuH,EAAoB,OAAOtJ,IAAY;AAAA,YACrCsJ,EAAoB,OAAOrJ,IAAY;AAAA,cACrCsJ,EAAaM,IAA2B;AAAA,gBACtC,UAAUvH,GAAoB;AAAA,gBAC9B,SAAS6G,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI,CAACW,MAAiBjG,EAAS,MAAMhC,EAAU,KAAK,EAAE,mBAAmB;AAAA,cACvG,GAAA,MAAM,GAAG,CAAC,UAAU,CAAC;AAAA,cACxB0H,EAAaQ,IAAoB;AAAA,gBAC/B,OAAON,GAAgB;AAAA,kBACrB,2EACE5F,EAAS,MAAMhC,EAAU,KAAK,EAAE;AAAA,gBAAA,CACnC;AAAA,gBACD,SAASgC,EAAS,MAAMhC,EAAU,KAAK,EAAE;AAAA,cAAA,GACxC;AAAA,gBACD,SAASmI,GAAS,MAAM;AAAA,kBACtBC,GAAiBC,GAAiB7H,EAAY,KAAK,GAAG,CAAC;AAAA,gBAAA,CACxD;AAAA,gBACD,GAAG;AAAA,cACF,GAAA,GAAG,CAAC,SAAS,SAAS,CAAC;AAAA,cAC1BkH,EAAaY,IAAuB;AAAA,gBAClC,UAAU5H,GAAqB;AAAA,gBAC/B,SAAS4G,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI,CAACW,MAAiBjG,EAAS,MAAMhC,EAAU,KAAK,EAAE,gBAAgB;AAAA,cACpG,GAAA,MAAM,GAAG,CAAC,UAAU,CAAC;AAAA,YAAA,CACzB;AAAA,YACAA,EAAU,UAAUuI,EAAO/J,CAAe,EAAE,SACxC+I,EAAA,GAAciB,EAAaC,IAAqB;AAAA,cAC/C,KAAK;AAAA,cACL,MAAM/I,EAAa;AAAA,cACnB,OAAOa,EAAM;AAAA,cACb,iBAAiBqE;AAAA,YAAA,GAChB,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC,KAC7B8D,EAAoB,IAAI,EAAI;AAAA,YAC/B1I,EAAU,UAAUuI,EAAO/J,CAAe,EAAE,UACxC+I,EAAA,GAAciB,EAAaG,IAAsB;AAAA,cAChD,KAAK;AAAA,cACL,OAAOjJ,EAAa;AAAA,cACpB,QAAQY,EAAO;AAAA,cACf,kBAAkBuE;AAAA,YAAA,GACjB,MAAM,GAAG,CAAC,SAAS,QAAQ,CAAC,KAC/B6D,EAAoB,IAAI,EAAI;AAAA,YAC/B1I,EAAU,UAAUuI,EAAO/J,CAAe,EAAE,SACxC+I,EAAW,GAAGC,EAAoBoB,IAAW,EAAE,KAAK,KAAK;AAAA,cACvDjK,EAAM,SACF4I,KAAciB,EAAaK,IAA0B;AAAA,gBACpD,KAAK;AAAA,gBACL,cAAcjJ,EAAkB;AAAA,gBAChC,OAAOS,EAAM;AAAA,gBACb,iBAAiB0E;AAAA,cAAA,GAChB,MAAM,GAAG,CAAC,cAAc,OAAO,CAAC,MAClCwC,EAAA,GAAciB,EAAaM,IAAqB;AAAA,gBAC/C,KAAK;AAAA,gBACL,MAAMpJ,EAAa;AAAA,gBACnB,OAAOW,EAAM;AAAA,gBACb,iBAAiByE;AAAA,iBAChB,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC;AAAA,YAChC,GAAA,EAAE,KACL4D,EAAoB,IAAI,EAAI;AAAA,YAChCjB,EAAoB,OAAOpJ,IAAY;AAAA,cACrCqJ,EAAaqB,IAAS,EAAE,SAASzE,MAAgB;AAAA,gBAC/C,SAAS6D,GAAS,MAAM;AAAA,kBACtBC,GAAiBC,GAAiBE,EAAOrJ,CAAC,EAAE,+CAA+C,CAAC,GAAG,CAAC;AAAA,gBAAA,CACjG;AAAA,gBACD,GAAG;AAAA,cAAA,CACJ;AAAA,cACDwI,EAAaqB,IAAS;AAAA,gBACpB,MAAM;AAAA,gBACN,SAASxE;AAAA,cAAA,GACR;AAAA,gBACD,SAAS4D,GAAS,MAAM;AAAA,kBACtBC,GAAiBC,GAAiBE,EAAOrJ,CAAC,EAAE,gDAAgD,CAAC,GAAG,CAAC;AAAA,gBAAA,CAClG;AAAA,gBACD,GAAG;AAAA,cAAA,CACJ;AAAA,YAAA,CACF;AAAA,UAAA,CACF;AAAA,QACH,GAAG,GAAG,GAAG;AAAA,UACP,CAAC8J,IAAQjJ,EAAc,KAAK;AAAA,QAAA,CAC7B;AAAA,SACA,GAAG;AAAA,MACJsH,EAAK,cAMHqB,EAAoB,IAAI,EAAI,KAL3BnB,EAAW,GAAGiB,EAAaS,IAAe;AAAA,QACzC,KAAK;AAAA,QACL,iBAAiBV,EAAO9G,CAAgB,EAAE,aAAa;AAAA,QACvD,OAAO;AAAA,MAAA,GACN,MAAM,GAAG,CAAC,eAAe,CAAC;AAAA,IACD,CACjC;AAAA,EAEH;AAEA,CAAC;"}
|
|
1
|
+
{"version":3,"file":"design-system25.mjs","sources":["../src/components/BDatePicker/BDatePicker.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withKeys as _withKeys, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, unref as _unref, createBlock as _createBlock, Fragment as _Fragment, vShow as _vShow, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"b-date-picker\" }\nconst _hoisted_2 = { class: \"ds-relative\" }\nconst _hoisted_3 = [\"id\", \"disabled\", \"placeholder\", \"value\"]\nconst _hoisted_4 = [\"id\", \"disabled\", \"placeholder\"]\nconst _hoisted_5 = { class: \"ds-mt-1 ds-grid ds-w-80 ds-gap-5 ds-rounded-lg ds-bg-white ds-p-3 ds-shadow-2xl\" }\nconst _hoisted_6 = { class: \"ds-flex ds-w-full ds-items-center ds-justify-between\" }\nconst _hoisted_7 = { class: \"ds-grid ds-w-full ds-grid-cols-2 ds-gap-2\" }\n\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\nimport BButton from '@/components/BButton.vue';\nimport BLabel from '@/components/BLabel.vue';\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { v4 as uuid } from 'uuid';\nimport BErrorMessage from '../BErrorMessage.vue';\nimport { useI18n } from 'vue-i18n';\nimport {\n ensureVisiblePosition,\n lockScrollBody,\n resetPosition,\n unlockScrollBody,\n} from '@/helpers/ComponentHelper';\nimport IMask from '@/vendor/imask-7.1.3.js'; // https://imask.js.org/guide.html#getting-started\nimport { isISO8601 } from '@/helpers/DateHelper';\nimport BDatePickerGridDate from '@/components/BDatePicker/BDatePickerGridDate.vue';\nimport BDatePickerGridMonth from '@/components/BDatePicker/BDatePickerGridMonth.vue';\nimport type { BDatePickerDateItem, BDatePickerViewData } from '@/types';\nimport BDatePickerButtonPrevious from '@/components/BDatePicker/BDatePickerButtonPrevious.vue';\nimport BDatePickerButtonNext from '@/components/BDatePicker/BDatePickerButtonNext.vue';\nimport BDatePickerHeading from '@/components/BDatePicker/BDatePickerHeading.vue';\nimport BDatePickerIcon from '@/components/BDatePicker/BDatePickerIcon.vue';\nimport { useDate } from '@/composables/Date';\nimport BDatePickerGridYear from '@/components/BDatePicker/BDatePickerGridYear.vue';\nimport { isEmpty, isNil } from 'lodash-es';\nimport BDatePickerGridDateRange from '@/components/BDatePicker/BDatePickerGridDateRange.vue';\nimport { breakpointsTailwind, useBreakpoints } from '@vueuse/core';\nimport { BDatePickerView } from '@/constants/Enums';\n\n//#region Props\nexport interface BDatePickerProps {\n /**\n * ID of input field.\n */\n inputId?: string;\n /**\n * Value v-model: <code>Date | string</code> when range is false, v-model: <code>Array<Date | string></code> when range is true (date | string in ISO 8601 format).\n */\n modelValue?: Date | string | Array<Date | string>;\n /**\n * Label of the field.\n */\n label?: string;\n /**\n * Array of custom validation rules.\n */\n validationRules?: ValidationRule[];\n /**\n * Placeholder of input field.\n */\n placeholder?: string;\n /**\n * Validate if the field is left empty.\n */\n required?: boolean;\n /**\n * Error message when the field is empty.\n */\n requiredErrorMessage?: string;\n /**\n * Disabled state.\n */\n disabled?: boolean;\n /**\n * Custom CSS of input field.\n */\n inputCssClass?: string;\n /**\n * Minimum selectable date <code>Date | string</code> (date | string in ISO 8601 format).\n */\n minDate?: Date | string;\n /**\n * Maximum selectable date <code>Date | string</code> (date | string in ISO 8601 format).\n */\n maxDate?: Date | string;\n /**\n * Allow to select a date range.\n */\n range?: boolean;\n /**\n * Hide the validation error message.\n */\n hideDetails?: boolean;\n /**\n * Default view mode when opening menu\n */\n view?: `${BDatePickerView}`;\n}\n\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'BDatePicker',\n props: {\n inputId: { default: '' },\n modelValue: { default: undefined },\n label: { default: '' },\n validationRules: { default: undefined },\n placeholder: { default: '' },\n required: { type: Boolean, default: false },\n requiredErrorMessage: { default: '' },\n disabled: { type: Boolean, default: false },\n inputCssClass: { default: '' },\n minDate: { default: undefined },\n maxDate: { default: undefined },\n range: { type: Boolean, default: false },\n hideDetails: { type: Boolean, default: false },\n view: { default: BDatePickerView.Dates }\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n//#endregion\n\n//#region Events\nconst emit = __emit;\n//#endregion\n\n//#region Data\nlet mask: any;\nconst CURRENT_DATE = new Date(\n new Date().getFullYear(),\n new Date().getMonth(),\n new Date().getDate(),\n);\n\nconst breakpoints = useBreakpoints(breakpointsTailwind);\nconst smAndLarger = breakpoints.greaterOrEqual('sm');\nconst { t, locale } = useI18n();\nconst { formatMonthYear, formatDate, dateFormat, convertToDate } = useDate();\nconst valueDisplay = ref<BDatePickerDateItem>({});\nconst valueRangeDisplay = ref<BDatePickerDateItem[]>([]);\nconst viewDate = ref<BDatePickerDateItem>({\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n});\nconst viewDateDisplay = ref<BDatePickerDateItem>({\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n});\nconst isVisibleMenu = ref(false);\nconst viewValue = ref<BDatePickerView>(props.view as BDatePickerView);\nconst datePickerRef = ref<HTMLDivElement | null>(null);\nconst datePickerMenuRef = ref<HTMLDivElement | null>(null);\nconst datePickerInputRef = ref<HTMLInputElement | null>(null);\nconst datePickerInputMaskRef = ref<HTMLInputElement | null>(null);\nconst dates = ref<BDatePickerDateItem[]>([]);\nconst months = ref<BDatePickerDateItem[]>([]);\nconst years = ref<BDatePickerDateItem[]>([]);\nconst viewHeading = ref('');\nconst viewLeftNavDisabled = ref(false);\nconst viewRightNavDisabled = ref(false);\nconst minValue = computed<Date | undefined>(() => getDateObject(props.minDate));\nconst maxValue = computed<Date | undefined>(() => getDateObject(props.maxDate));\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\n\n// The \"Failed to execute 'querySelector' on Document\" error occurs when using querySelector method with an identifier that starts with a digit\nconst id = computed(() => props.inputId || `id-${uuid()}`);\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(val) {\n emit('update:modelValue', val);\n },\n});\nconst formattedValue = computed(() =>\n (props.modelValue as Array<Date | string>)\n ?.map((val) =>\n typeof val === 'string' ? formatDate(new Date(val)) : formatDate(val),\n )\n .join(' - '),\n);\nconst vRules = computed(() => {\n let result: ValidationRule[] = [];\n\n if (props.required) {\n result.push(validateRequired);\n }\n if (props.validationRules) {\n result = result.concat(props.validationRules);\n }\n\n return result.length ? result : undefined;\n});\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\nconst inputCssClassValue = computed(() => [\n 'ds-border ds-rounded-lg ds-block ds-w-full ds-text-sm ds-px-3 ds-h-[40px] ds-transition-all ds-ease-in-out',\n {\n 'ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/[0.4]': props.disabled,\n 'ds-text-black/[0.85]': !props.disabled,\n 'ds-border-error focus:ds-ring-1 focus:ds-ring-error':\n !validationResult.value.valid,\n 'ds-border-black/[0.1] focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus':\n validationResult.value.valid,\n '!ds-border-focus ds-ring-1 ds-ring-focus': isVisibleMenu.value,\n },\n props.inputCssClass,\n]);\nconst inputMaskOptions = computed(() => {\n const result: any = {\n mask: IMask.MaskedDate,\n pattern: dateFormat.value,\n lazy: true,\n\n format: (date: Date) => formatDate(date),\n parse: (str: string) => convertToDate(str),\n\n blocks: {\n YYYY: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n DD: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n },\n };\n\n if (minValue.value) {\n result.min = minValue.value;\n }\n if (maxValue.value) {\n result.max = maxValue.value;\n }\n\n return result;\n});\nconst viewData = computed<Record<BDatePickerView, BDatePickerViewData>>(() => ({\n [BDatePickerView.Years]: {\n handleClickPreview: handleSwitchToPreviousDecade,\n handleClickNext: handleSwitchToNextDecade,\n },\n [BDatePickerView.Months]: {\n handleClickPreview: handleSwitchToPreviousYear,\n handleClickNext: handleSwitchToNextYear,\n handleClickHeading: handleSwitchToYearsView,\n },\n [BDatePickerView.Dates]: {\n handleClickPreview: handleSwitchToPreviousMonth,\n handleClickNext: handleSwitchToNextMonth,\n handleClickHeading: handleSwitchToMonthsView,\n },\n}));\n//#endregion\n\n//#region Watchers\nwatch(locale, () => {\n if (mask) {\n mask.off('accept', onAccept);\n mask.off('complete', onComplete);\n mask.updateOptions(inputMaskOptions.value);\n updateMaskValue();\n mask.on('accept', onAccept);\n mask.on('complete', onComplete);\n }\n});\nwatch(\n () => props.minDate,\n () => {\n if (props.range) {\n const arr = value.value as Array<Date | string>;\n if (arr.length > 0) {\n ensureValueWhenMinDateChange(arr[0] as any);\n }\n } else {\n const val = value.value as Date | string;\n ensureValueWhenMinDateChange(val);\n }\n generateDates();\n },\n);\nwatch(\n () => props.maxDate,\n () => {\n if (props.range) {\n const arr = value.value as Array<Date | string>;\n if (arr.length > 1) {\n ensureValueWhenMaxDateChange(arr[1]);\n }\n if (arr.length > 0) {\n ensureValueWhenMaxDateChange(arr[0]);\n }\n } else {\n const val = value.value as Date | string;\n ensureValueWhenMaxDateChange(val);\n }\n generateDates();\n },\n);\nwatch(\n () => props.range,\n (val) => {\n if (!val) {\n nextTick(() => {\n initIMask();\n });\n }\n valueDisplay.value = {};\n valueRangeDisplay.value = [];\n },\n);\nwatch(\n () => props.view,\n (val) => {\n viewValue.value = val as BDatePickerView;\n },\n);\nwatch(smAndLarger, () => {\n isVisibleMenu.value = false;\n});\nwatch(isVisibleMenu, (val) => {\n if (val) {\n lockScrollBody();\n if (props.range) {\n valueRangeDisplay.value = value.value\n ? cloneItemFromDateRange(value.value as Array<Date | string>)\n : [];\n } else {\n valueDisplay.value = value.value\n ? cloneItemFromDate(value.value as Date | string)\n : {};\n }\n viewDateDisplay.value = cloneItem(viewDate.value);\n nextTick(() => {\n // https://tailwindcss.com/docs/responsive-design\n if (smAndLarger.value) {\n ensureVisiblePosition(datePickerRef.value!, datePickerMenuRef.value!);\n } else {\n // Move menu element into body tag\n document.body.append(datePickerMenuRef.value!);\n }\n });\n } else {\n unlockScrollBody();\n resetPosition(datePickerRef.value!, datePickerMenuRef.value!);\n }\n});\nwatch(\n () => props.modelValue,\n (val) => {\n if (isNotSyncedModelValue(val)) {\n if (props.range) {\n const v = val as Array<Date | string>;\n valueRangeDisplay.value = val ? cloneItemFromDateRange(v) : [];\n viewDate.value = val ? cloneItemFromDate(v[1], true) : {};\n viewDateDisplay.value = val ? cloneItemFromDate(v[1], true) : {};\n } else {\n const v = val as Date | string;\n valueDisplay.value = val ? cloneItemFromDate(v) : {};\n viewDate.value = val ? cloneItemFromDate(v, true) : {};\n viewDateDisplay.value = val ? cloneItemFromDate(v, true) : {};\n }\n }\n if (!props.range && isNotSyncedModelValue(getInputMaskDate())) {\n updateMaskValue();\n }\n },\n);\n//#endregion\n\n//#region Methods\nconst updateMaskValue = () => {\n const d = getDateObject(props.modelValue as Date | string);\n mask.value = d ? formatDate(d) : '';\n};\nconst getConsistentValue = (val: Date) =>\n typeof props.modelValue === 'string' ? val.toISOString() : val;\nconst ensureValueWhenMinDateChange = (d?: Date | string) => {\n const val = getDateObject(d);\n if (minValue.value && val && minValue.value > val) {\n value.value = undefined;\n }\n};\nconst ensureValueWhenMaxDateChange = (d?: Date | string) => {\n const val = getDateObject(d);\n if (maxValue.value && val && maxValue.value < val) {\n value.value = undefined;\n }\n};\nconst getDateObject = (val?: Date | string) => {\n switch (typeof val) {\n case 'object':\n return val;\n case 'string':\n return isISO8601(val) ? new Date(val) : undefined;\n }\n return val;\n};\nconst handleSwitchToMonthsView = () => {\n generateMonths();\n viewValue.value = BDatePickerView.Months;\n};\nconst handleSwitchToYearsView = () => {\n generateYears();\n viewValue.value = BDatePickerView.Years;\n};\nconst isNotSyncedModelValue = (val?: Date | string | Array<Date | string>) => {\n const ruleEngine = props.range\n ? [\n !isEmpty(props.modelValue) && isEmpty(val),\n !isEmpty(val) && isEmpty(props.modelValue),\n !isEmpty(props.modelValue) &&\n !isEmpty(val) &&\n (props.modelValue as Array<Date | string>).some(\n (v, i) =>\n getDateObject(v)?.getTime() !==\n getDateObject((val as Array<Date | string>)[i])?.getTime(),\n ),\n ]\n : [\n !props.modelValue && val,\n !val && props.modelValue,\n props.modelValue &&\n val &&\n getDateObject(props.modelValue as Date | string)?.getTime() !==\n getDateObject(val as Date | string)?.getTime(),\n ];\n return ruleEngine.some((r) => r);\n};\nconst handleCancel = () => {\n isVisibleMenu.value = false;\n};\nconst handleConfirm = () => {\n isVisibleMenu.value = false;\n if (props.range) {\n if (valueRangeDisplay.value.length === 2) {\n value.value = [\n getConsistentValue(\n new Date(\n valueRangeDisplay.value[0].year!,\n valueRangeDisplay.value[0].month!,\n valueRangeDisplay.value[0].date,\n ),\n ),\n getConsistentValue(\n new Date(\n valueRangeDisplay.value[1].year!,\n valueRangeDisplay.value[1].month!,\n valueRangeDisplay.value[1].date,\n ),\n ),\n ];\n } else {\n value.value = undefined;\n }\n } else {\n if (\n !isNil(valueDisplay.value.year) &&\n !isNil(valueDisplay.value.month) &&\n !isNil(valueDisplay.value.date)\n ) {\n value.value = getConsistentValue(\n new Date(\n valueDisplay.value.year,\n valueDisplay.value.month,\n valueDisplay.value.date,\n ),\n );\n } else {\n value.value = undefined;\n }\n }\n viewDate.value = cloneItem(viewDateDisplay.value);\n};\nconst cloneItem = (\n item: BDatePickerDateItem,\n ignoreDate?: boolean,\n): BDatePickerDateItem => ({\n year: item.year,\n month: item.month,\n date: ignoreDate ? undefined : item.date,\n});\nconst cloneItemFromDate = (\n date: Date | string,\n ignoreDate?: boolean,\n): BDatePickerDateItem => ({\n year: getDateObject(date)!.getFullYear(),\n month: getDateObject(date)!.getMonth(),\n date: ignoreDate ? undefined : getDateObject(date)!.getDate(),\n});\nconst cloneItemFromDateRange = (\n dateRange: Array<Date | string>,\n ignoreDate?: boolean,\n): BDatePickerDateItem[] => [\n {\n year: getDateObject(dateRange[0])!.getFullYear(),\n month: getDateObject(dateRange[0])!.getMonth(),\n date: ignoreDate ? undefined : getDateObject(dateRange[0])!.getDate(),\n },\n {\n year: getDateObject(dateRange[1])!.getFullYear(),\n month: getDateObject(dateRange[1])!.getMonth(),\n date: ignoreDate ? undefined : getDateObject(dateRange[1])!.getDate(),\n },\n];\nconst handleSelectYear = (item: BDatePickerDateItem) => {\n viewDateDisplay.value = cloneItem(item);\n generateMonths();\n viewValue.value = BDatePickerView.Months;\n};\nconst handleSelectMonth = (item: BDatePickerDateItem) => {\n viewDateDisplay.value = cloneItem(item);\n generateDates();\n viewValue.value = BDatePickerView.Dates;\n};\nconst handleSelectDate = (item: BDatePickerDateItem) => {\n if (\n item.year === valueDisplay.value.year &&\n item.month === valueDisplay.value.month &&\n item.date === valueDisplay.value.date\n ) {\n // Item will be unselected when clicking again on it\n valueDisplay.value = cloneItem({});\n } else {\n valueDisplay.value = cloneItem(item);\n viewDateDisplay.value = cloneItem(item, true);\n generateDates();\n }\n};\nconst handleSelectDateRange = ({ year, month, date }: BDatePickerDateItem) => {\n const valueRangeDisplayLength = valueRangeDisplay.value.length;\n if (valueRangeDisplayLength === 0) {\n valueRangeDisplay.value.push({ year, month, date });\n } else if (valueRangeDisplayLength === 1) {\n const foundIndex = valueRangeDisplay.value.findIndex(\n (i) => i.year === year && i.month === month && i.date === date,\n );\n if (foundIndex !== -1) {\n valueRangeDisplay.value.splice(foundIndex, 1);\n } else {\n if (\n new Date(year!, month!, date) >\n new Date(\n valueRangeDisplay.value[0].year!,\n valueRangeDisplay.value[0].month!,\n valueRangeDisplay.value[0].date,\n )\n ) {\n valueRangeDisplay.value.push({ year, month, date });\n } else {\n valueRangeDisplay.value.unshift({ year, month, date });\n }\n }\n } else if (valueRangeDisplayLength === 2) {\n const foundIndex = valueRangeDisplay.value.findIndex(\n (i) => i.year === year && i.month === month && i.date === date,\n );\n if (foundIndex !== -1) {\n valueRangeDisplay.value.splice(foundIndex, 1);\n } else {\n valueRangeDisplay.value = [];\n valueRangeDisplay.value.push({ year, month, date });\n }\n }\n\n viewDateDisplay.value = {\n year,\n month,\n };\n generateDates();\n};\nconst handleSwitchToPreviousDecade = () => {\n switchToDecade(-1);\n generateYears();\n};\nconst handleSwitchToNextDecade = () => {\n switchToDecade(1);\n generateYears();\n};\nconst switchToDecade = (decadeCount: number) => {\n if (isNil(viewDateDisplay.value.year)) {\n return;\n }\n viewDateDisplay.value.year += decadeCount * 10;\n};\nconst handleSwitchToPreviousYear = () => {\n switchToYear(-1);\n generateMonths();\n};\nconst handleSwitchToNextYear = () => {\n switchToYear(1);\n generateMonths();\n};\nconst switchToYear = (yearCount: number) => {\n if (isNil(viewDateDisplay.value.year)) {\n return;\n }\n viewDateDisplay.value.year += yearCount;\n};\nconst handleSwitchToPreviousMonth = () => {\n switchToMonth(-1);\n generateDates();\n};\nconst handleSwitchToNextMonth = () => {\n switchToMonth(1);\n generateDates();\n};\nconst switchToMonth = (monthCount: number) => {\n // Vue: updating the existing Date object directly won’t trigger reactivity, so creating a new Date object to ensure reactivity\n if (isNil(viewDateDisplay.value.month)) {\n return;\n }\n viewDateDisplay.value.month += monthCount;\n};\nconst openMenu = () => {\n isVisibleMenu.value = true;\n};\nconst handleToggleMenu = () => {\n if (props.disabled) {\n return;\n }\n isVisibleMenu.value = !isVisibleMenu.value;\n};\nconst isOutOfRangeYear = (year: number) =>\n (minValue.value ? minValue.value.getFullYear() > year : false) ||\n (maxValue.value ? year > maxValue.value.getFullYear() : false);\nconst isOutOfRangeMonth = (year: number, month: number) =>\n (minValue.value\n ? (minValue.value.getFullYear() === year &&\n minValue.value.getMonth() > month) ||\n minValue.value.getFullYear() > year\n : false) ||\n (maxValue.value\n ? (maxValue.value.getFullYear() === year &&\n maxValue.value.getMonth() < month) ||\n maxValue.value.getFullYear() < year\n : false);\nconst isOutOfRangeDate = (date: Date) =>\n (minValue.value ? minValue.value > date : false) ||\n (maxValue.value ? date > maxValue.value : false);\nconst getStartOfMonth = (year: number, month: number) =>\n new Date(year, month, 1);\nconst getEndOfMonth = (year: number, month: number) =>\n new Date(year, month + 1, 0);\nconst generateYears = () => {\n years.value = [];\n\n if (isNil(viewDateDisplay.value.year)) {\n return;\n }\n\n const decade = viewDateDisplay.value.year.toString().slice(0, -1);\n const startYear = +`${decade}0`;\n const endYear = +`${decade}9`;\n\n years.value.push({\n year: startYear - 1,\n secondary: true,\n disabled: isOutOfRangeYear(startYear - 1),\n });\n for (let i = startYear; i <= endYear; i++) {\n years.value.push({\n year: i,\n disabled: isOutOfRangeYear(i),\n });\n }\n years.value.push({\n year: endYear + 1,\n secondary: true,\n disabled: isOutOfRangeYear(endYear + 1),\n });\n\n viewHeading.value = `${decade}0 - ${decade}9`;\n\n const startDate = getStartOfMonth(startYear, 0);\n const endDate = getEndOfMonth(endYear, 11);\n updateNavDisabledState(startDate, endDate);\n};\nconst generateMonths = () => {\n months.value = [];\n\n if (isNil(viewDateDisplay.value.year)) {\n return;\n }\n\n for (let i = 0; i < 12; i++) {\n months.value.push({\n year: viewDateDisplay.value.year,\n month: i,\n disabled: isOutOfRangeMonth(viewDateDisplay.value.year, i),\n });\n }\n\n viewHeading.value = viewDateDisplay.value.year.toString();\n\n const startDate = getStartOfMonth(viewDateDisplay.value.year, 0);\n const endDate = getEndOfMonth(viewDateDisplay.value.year, 11);\n updateNavDisabledState(startDate, endDate);\n};\nconst generateDates = () => {\n dates.value = [];\n\n if (isNil(viewDateDisplay.value.year) || isNil(viewDateDisplay.value.month)) {\n return;\n }\n\n const startOfMonth = getStartOfMonth(\n viewDateDisplay.value.year,\n viewDateDisplay.value.month,\n );\n const endOfMonth = getEndOfMonth(\n viewDateDisplay.value.year,\n viewDateDisplay.value.month,\n );\n const d = structuredClone(startOfMonth);\n\n let preDateCount = d.getDay() === 0 ? 6 : d.getDay() - 1; // Sunday -> d.getDay() === 0\n while (preDateCount > 0) {\n const preD = structuredClone(d);\n preD.setDate(-(preDateCount - 1));\n dates.value.push({\n date: preD.getDate(),\n month: preD.getMonth(),\n year: preD.getFullYear(),\n secondary: true,\n disabled: isOutOfRangeDate(preD),\n });\n preDateCount--;\n }\n\n while (d <= endOfMonth) {\n dates.value.push({\n date: d.getDate(),\n month: d.getMonth(),\n year: d.getFullYear(),\n disabled: isOutOfRangeDate(d),\n });\n d.setDate(d.getDate() + 1);\n }\n\n const postDateCount = d.getDay() === 0 ? 1 : 7 - d.getDay() + 1;\n if (postDateCount < 6) {\n let i = 1;\n const postD = structuredClone(d);\n while (i <= postDateCount) {\n postD.setDate(i);\n dates.value.push({\n date: postD.getDate(),\n month: postD.getMonth(),\n year: postD.getFullYear(),\n secondary: true,\n disabled: isOutOfRangeDate(postD),\n });\n i++;\n }\n }\n\n // NOTE: Basically 'date' is not unnecessary, just put a random value 1\n viewHeading.value = formatMonthYear(\n new Date(viewDateDisplay.value.year, viewDateDisplay.value.month, 1),\n ).toString();\n updateNavDisabledState(startOfMonth, endOfMonth);\n};\nconst updateNavDisabledState = (startDate: Date, endDate: Date) => {\n viewLeftNavDisabled.value = minValue.value\n ? minValue.value >= startDate\n : false;\n viewRightNavDisabled.value = maxValue.value\n ? maxValue.value <= endDate\n : false;\n};\nconst getInputMaskDate = () => {\n const arr = mask.value.split('/');\n\n const result: Record<string, string> = {\n 'vi-VN': `${arr[2]}-${arr[1]}-${arr[0]}`,\n 'en-US': `${arr[2]}-${arr[0]}-${arr[1]}`,\n };\n\n return isISO8601(result[locale.value])\n ? new Date(result[locale.value])\n : undefined;\n};\nconst onAccept = () => {\n if (!mask.unmaskedValue) {\n value.value = undefined;\n valueDisplay.value = {\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n };\n }\n};\nconst onComplete = () => {\n const date = getInputMaskDate();\n if (date) {\n value.value = getConsistentValue(date);\n valueDisplay.value = cloneItemFromDate(date);\n viewDate.value = cloneItemFromDate(date, true);\n viewDateDisplay.value = cloneItemFromDate(date, true);\n generateDates();\n } else {\n value.value = undefined;\n valueDisplay.value = {\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n };\n }\n};\nconst onBlur = () => {\n const date = getInputMaskDate();\n validate();\n if (!isNotSyncedModelValue(date)) {\n return;\n }\n if (date) {\n value.value = getConsistentValue(date);\n viewDate.value = cloneItemFromDate(date, true);\n valueDisplay.value = cloneItemFromDate(date);\n viewDateDisplay.value = cloneItemFromDate(date, true);\n generateDates();\n } else {\n value.value = undefined;\n valueDisplay.value = {\n year: CURRENT_DATE.getFullYear(),\n month: CURRENT_DATE.getMonth(),\n };\n }\n};\n\n// const formatDateMoment = (date: Date | string) =>\n// moment(date).format(DATE_FORMAT);\nconst closeOnClickOutside = (event: any) => {\n const refs = [datePickerRef.value, datePickerMenuRef.value];\n const withinBoundaries = refs.some((r) => event.composedPath().includes(r));\n if (!withinBoundaries) {\n closeDatePickerMenu();\n }\n};\nconst closeOnEscapePressed = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n closeDatePickerMenu();\n }\n};\nconst closeDatePickerMenu = () => {\n isVisibleMenu.value = false;\n datePickerInputRef.value?.blur();\n datePickerInputMaskRef.value?.blur();\n};\nconst initIMask = () => {\n mask = IMask(datePickerInputMaskRef.value!, inputMaskOptions.value);\n // mask.value = formatDateMoment(\n // getDateObject(props.modelValue as Date | string) || '',\n // );\n updateMaskValue();\n mask.on('accept', onAccept);\n mask.on('complete', onComplete);\n};\nconst destroyIMask = () => {\n mask && mask.destroy();\n};\nconst init = () => {\n generateYears();\n generateMonths();\n generateDates();\n};\n\ninit();\n//#endregion\n\n//#region Lifecycle Hooks\nonMounted(() => {\n if (!props.range) {\n initIMask();\n }\n document.addEventListener('click', closeOnClickOutside);\n document.addEventListener('keydown', closeOnEscapePressed);\n});\nonBeforeUnmount(() => {\n destroyIMask();\n unlockScrollBody();\n resetPosition(datePickerRef.value!, datePickerMenuRef.value!); // Make sure dropdown menu unmounted with itself\n document.removeEventListener('keydown', closeOnEscapePressed);\n document.removeEventListener('click', closeOnClickOutside);\n});\n//#endregion\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n ref_key: \"datePickerRef\",\n ref: datePickerRef\n }, [\n _createVNode(BLabel, {\n id: id.value,\n label: _ctx.label,\n required: _ctx.required\n }, null, 8, [\"id\", \"label\", \"required\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n (props.range)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n id: id.value,\n ref_key: \"datePickerInputRef\",\n ref: datePickerInputRef,\n class: _normalizeClass([inputCssClassValue.value, \"ds-drop-shadow-light\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n value: formattedValue.value,\n readonly: \"\",\n onFocus: openMenu\n }, null, 42, _hoisted_3))\n : (_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: id.value,\n ref_key: \"datePickerInputMaskRef\",\n ref: datePickerInputMaskRef,\n class: _normalizeClass([inputCssClassValue.value, \"ds-drop-shadow-light\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n onBlur: onBlur\n }, null, 42, _hoisted_4)),\n _createVNode(BDatePickerIcon, {\n disabled: props.disabled,\n onClick: handleToggleMenu,\n onKeyup: _withKeys(handleToggleMenu, [\"enter\"])\n }, null, 8, [\"disabled\"])\n ]),\n _withDirectives(_createElementVNode(\"div\", {\n ref_key: \"datePickerMenuRef\",\n ref: datePickerMenuRef,\n class: \"b-date-picker__menu sm:ds-items-[unset] sm:ds-justify-[unset] ds-fixed ds-left-0 ds-top-0 ds-z-100 ds-flex ds-h-full ds-w-full ds-items-center ds-justify-center ds-bg-black/65 ds-backdrop-blur-sm sm:ds-absolute sm:ds-left-[unset] sm:ds-top-[unset] sm:ds-z-50 sm:ds-block sm:ds-h-auto sm:ds-w-auto sm:ds-bg-transparent sm:ds-backdrop-blur-none\"\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(BDatePickerButtonPrevious, {\n disabled: viewLeftNavDisabled.value,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (viewData.value[viewValue.value].handleClickPreview()))\n }, null, 8, [\"disabled\"]),\n _createVNode(BDatePickerHeading, {\n class: _normalizeClass({\n 'ds-cursor-pointer hover:ds-bg-blue-light focus-visible:ds-bg-blue-light':\n viewData.value[viewValue.value].handleClickHeading,\n }),\n onClick: viewData.value[viewValue.value].handleClickHeading\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(viewHeading.value), 1)\n ]),\n _: 1\n }, 8, [\"class\", \"onClick\"]),\n _createVNode(BDatePickerButtonNext, {\n disabled: viewRightNavDisabled.value,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (viewData.value[viewValue.value].handleClickNext()))\n }, null, 8, [\"disabled\"])\n ]),\n (viewValue.value === _unref(BDatePickerView).Years)\n ? (_openBlock(), _createBlock(BDatePickerGridYear, {\n key: 0,\n year: valueDisplay.value,\n years: years.value,\n \"onSelect:year\": handleSelectYear\n }, null, 8, [\"year\", \"years\"]))\n : _createCommentVNode(\"\", true),\n (viewValue.value === _unref(BDatePickerView).Months)\n ? (_openBlock(), _createBlock(BDatePickerGridMonth, {\n key: 1,\n month: valueDisplay.value,\n months: months.value,\n \"onSelect:month\": handleSelectMonth\n }, null, 8, [\"month\", \"months\"]))\n : _createCommentVNode(\"\", true),\n (viewValue.value === _unref(BDatePickerView).Dates)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n (props.range)\n ? (_openBlock(), _createBlock(BDatePickerGridDateRange, {\n key: 0,\n \"date-range\": valueRangeDisplay.value,\n dates: dates.value,\n \"onSelect:date\": handleSelectDateRange\n }, null, 8, [\"date-range\", \"dates\"]))\n : (_openBlock(), _createBlock(BDatePickerGridDate, {\n key: 1,\n date: valueDisplay.value,\n dates: dates.value,\n \"onSelect:date\": handleSelectDate\n }, null, 8, [\"date\", \"dates\"]))\n ], 64))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(BButton, { onClick: handleCancel }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(t)('ds.components.base.date_picker.buttons.cancel')), 1)\n ]),\n _: 1\n }),\n _createVNode(BButton, {\n type: \"primary\",\n onClick: handleConfirm\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(t)('ds.components.base.date_picker.buttons.confirm')), 1)\n ]),\n _: 1\n })\n ])\n ])\n ], 512), [\n [_vShow, isVisibleMenu.value]\n ])\n ], 512),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_sfc_main","_defineComponent","BDatePickerView","__props","__emit","props","emit","mask","CURRENT_DATE","smAndLarger","useBreakpoints","breakpointsTailwind","t","locale","useI18n","formatMonthYear","formatDate","dateFormat","convertToDate","useDate","valueDisplay","ref","valueRangeDisplay","viewDate","viewDateDisplay","isVisibleMenu","viewValue","datePickerRef","datePickerMenuRef","datePickerInputRef","datePickerInputMaskRef","dates","months","years","viewHeading","viewLeftNavDisabled","viewRightNavDisabled","minValue","computed","getDateObject","maxValue","validateRequired","val","id","uuid","value","formattedValue","_a","vRules","result","validate","validationResult","useValidationField","inputCssClassValue","inputMaskOptions","IMask","date","str","viewData","handleSwitchToPreviousDecade","handleSwitchToNextDecade","handleSwitchToPreviousYear","handleSwitchToNextYear","handleSwitchToYearsView","handleSwitchToPreviousMonth","handleSwitchToNextMonth","handleSwitchToMonthsView","watch","onAccept","onComplete","updateMaskValue","arr","ensureValueWhenMinDateChange","generateDates","ensureValueWhenMaxDateChange","nextTick","initIMask","lockScrollBody","cloneItemFromDateRange","cloneItemFromDate","cloneItem","ensureVisiblePosition","unlockScrollBody","resetPosition","isNotSyncedModelValue","v","getInputMaskDate","d","getConsistentValue","isISO8601","generateMonths","generateYears","isEmpty","i","_b","r","handleCancel","handleConfirm","isNil","item","ignoreDate","dateRange","handleSelectYear","handleSelectMonth","handleSelectDate","handleSelectDateRange","year","month","valueRangeDisplayLength","foundIndex","switchToDecade","decadeCount","switchToYear","yearCount","switchToMonth","monthCount","openMenu","handleToggleMenu","isOutOfRangeYear","isOutOfRangeMonth","isOutOfRangeDate","getStartOfMonth","getEndOfMonth","decade","startYear","endYear","startDate","endDate","updateNavDisabledState","startOfMonth","endOfMonth","preDateCount","preD","postDateCount","postD","onBlur","closeOnClickOutside","event","closeDatePickerMenu","closeOnEscapePressed","destroyIMask","onMounted","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","_createVNode","BLabel","_normalizeClass","BDatePickerIcon","_withKeys","_withDirectives","BDatePickerButtonPrevious","$event","BDatePickerHeading","_withCtx","_createTextVNode","_toDisplayString","BDatePickerButtonNext","_unref","_createBlock","BDatePickerGridYear","_createCommentVNode","BDatePickerGridMonth","_Fragment","BDatePickerGridDateRange","BDatePickerGridDate","BButton","_vShow","BErrorMessage"],"mappings":"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"}
|