@7pmlabs/design-system 0.8.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/design-system.mjs +16 -16
- package/dist/design-system100.mjs +68 -6
- package/dist/design-system100.mjs.map +1 -1
- package/dist/design-system101.mjs +6 -67
- package/dist/design-system101.mjs.map +1 -1
- package/dist/design-system117.mjs +1 -1
- package/dist/design-system14.mjs +23 -17
- package/dist/design-system14.mjs.map +1 -1
- package/dist/design-system15.mjs +60 -25
- package/dist/design-system15.mjs.map +1 -1
- package/dist/design-system16.mjs +269 -53
- package/dist/design-system16.mjs.map +1 -1
- package/dist/design-system17.mjs +107 -263
- package/dist/design-system17.mjs.map +1 -1
- package/dist/design-system18.mjs +112 -112
- package/dist/design-system18.mjs.map +1 -1
- package/dist/design-system19.mjs +193 -113
- package/dist/design-system19.mjs.map +1 -1
- package/dist/design-system20.mjs +62 -188
- package/dist/design-system20.mjs.map +1 -1
- package/dist/design-system21.mjs +38 -69
- package/dist/design-system21.mjs.map +1 -1
- package/dist/design-system22.mjs +38 -34
- package/dist/design-system22.mjs.map +1 -1
- package/dist/design-system23.mjs +133 -42
- package/dist/design-system23.mjs.map +1 -1
- package/dist/design-system24.mjs +550 -129
- package/dist/design-system24.mjs.map +1 -1
- package/dist/design-system25.mjs +5 -562
- package/dist/design-system25.mjs.map +1 -1
- package/dist/design-system26.mjs +6 -5
- package/dist/design-system26.mjs.map +1 -1
- package/dist/design-system27.mjs +4 -5
- package/dist/design-system27.mjs.map +1 -1
- package/dist/design-system28.mjs +10 -5
- package/dist/design-system28.mjs.map +1 -1
- package/dist/design-system29.mjs +23 -10
- package/dist/design-system29.mjs.map +1 -1
- package/dist/design-system40.mjs +63 -45
- package/dist/design-system40.mjs.map +1 -1
- package/dist/design-system57.mjs +64 -37
- package/dist/design-system57.mjs.map +1 -1
- package/dist/design-system62.mjs +1 -1
- package/dist/design-system63.mjs +1 -1
- package/dist/design-system68.mjs +1 -1
- package/dist/design-system69.mjs +1 -1
- package/dist/design-system70.mjs +1 -1
- package/dist/design-system71.mjs +1 -1
- package/dist/design-system72.mjs +1 -1
- package/dist/design-system74.mjs +1 -1
- package/dist/design-system78.mjs +1 -1
- package/dist/design-system79.mjs +2 -2
- package/dist/design-system81.mjs +1 -1
- package/dist/design-system85.mjs +2 -2
- package/dist/design-system88.mjs +2 -2
- package/dist/design-system92.mjs +1 -1
- package/dist/design-system93.mjs +1 -1
- package/dist/design-system94.mjs +1 -1
- package/dist/design-system99.mjs +62 -63
- package/dist/design-system99.mjs.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/components/BCheckbox.vue.d.ts +31 -1
- package/dist/types/components/BCurrencyField.vue.d.ts +4 -4
- package/dist/types/components/BDatePicker/BDatePicker.vue.d.ts +3 -3
- package/dist/types/components/BImagePicker/BImagePicker.vue.d.ts +1 -1
- package/dist/types/components/BMultiSelect.vue.d.ts +2 -2
- package/dist/types/components/BOtpField/BOtpField.vue.d.ts +2 -2
- package/dist/types/components/BRadio.vue.d.ts +1 -1
- package/dist/types/components/BSelect.vue.d.ts +2 -2
- package/dist/types/components/BTextField.vue.d.ts +3 -3
- package/dist/types/components/BTextarea.vue.d.ts +3 -3
- package/dist/types/components/BToast/BToastItem.vue.d.ts +6 -1
- package/dist/types/types/components/BToast.d.ts +1 -0
- package/package.json +1 -1
|
@@ -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/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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"}
|