@7pmlabs/design-system 0.2.1 → 0.2.3
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/README.md +44 -44
- package/dist/design-system10.js +1 -1
- package/dist/design-system10.js.map +1 -1
- package/dist/design-system10.mjs +11 -11
- package/dist/design-system10.mjs.map +1 -1
- package/dist/design-system100.js +1 -1
- package/dist/design-system100.js.map +1 -1
- package/dist/design-system100.mjs +7 -2
- package/dist/design-system100.mjs.map +1 -1
- package/dist/design-system101.js +1 -1
- package/dist/design-system101.mjs +2 -2
- package/dist/design-system102.js +1 -1
- package/dist/design-system102.mjs +1 -1
- package/dist/design-system11.js +1 -1
- package/dist/design-system11.js.map +1 -1
- package/dist/design-system11.mjs +127 -113
- package/dist/design-system11.mjs.map +1 -1
- package/dist/design-system12.js +1 -1
- package/dist/design-system12.mjs +1 -1
- package/dist/design-system132.js +1 -1
- package/dist/design-system132.js.map +1 -1
- package/dist/design-system132.mjs +7 -11
- package/dist/design-system132.mjs.map +1 -1
- package/dist/design-system133.js +1 -1
- package/dist/design-system133.js.map +1 -1
- package/dist/design-system133.mjs +9 -7
- package/dist/design-system133.mjs.map +1 -1
- package/dist/design-system134.js +1 -1
- package/dist/design-system134.js.map +1 -1
- package/dist/design-system134.mjs +11 -9
- package/dist/design-system134.mjs.map +1 -1
- package/dist/design-system138.js +1 -1
- package/dist/design-system138.mjs +1 -1
- package/dist/design-system139.js +1 -1
- package/dist/design-system139.mjs +1 -1
- package/dist/design-system14.js +1 -1
- package/dist/design-system14.mjs +1 -1
- package/dist/design-system142.js +1 -1
- package/dist/design-system142.mjs +1 -1
- package/dist/design-system143.js +1 -1
- package/dist/design-system143.mjs +1 -1
- package/dist/design-system15.js +1 -1
- package/dist/design-system15.mjs +1 -1
- package/dist/design-system16.js +1 -1
- package/dist/design-system16.mjs +3 -3
- package/dist/design-system18.js +1 -1
- package/dist/design-system18.mjs +1 -1
- package/dist/design-system19.js +1 -1
- package/dist/design-system19.mjs +1 -1
- package/dist/design-system20.js +1 -1
- package/dist/design-system20.mjs +1 -1
- package/dist/design-system22.js +1 -1
- package/dist/design-system22.mjs +3 -3
- package/dist/design-system23.js +1 -1
- package/dist/design-system23.mjs +3 -3
- package/dist/design-system24.js +1 -1
- package/dist/design-system24.mjs +3 -3
- package/dist/design-system25.js +1 -1
- package/dist/design-system25.mjs +4 -4
- package/dist/design-system26.js +1 -1
- package/dist/design-system26.mjs +1 -1
- package/dist/design-system29.js +1 -1
- package/dist/design-system29.mjs +3 -3
- package/dist/design-system30.js +1 -1
- package/dist/design-system30.mjs +3 -3
- package/dist/design-system31.js +1 -1
- package/dist/design-system31.mjs +1 -1
- package/dist/design-system32.js +1 -1
- package/dist/design-system32.mjs +1 -1
- package/dist/design-system33.js +1 -1
- package/dist/design-system33.mjs +1 -1
- package/dist/design-system34.js +1 -1
- package/dist/design-system34.mjs +1 -1
- package/dist/design-system35.js +1 -1
- package/dist/design-system35.mjs +2 -2
- package/dist/design-system36.js +1 -1
- package/dist/design-system36.mjs +3 -3
- package/dist/design-system37.js +1 -1
- package/dist/design-system37.mjs +1 -1
- package/dist/design-system39.js +1 -1
- package/dist/design-system39.mjs +3 -3
- package/dist/design-system40.js +1 -1
- package/dist/design-system40.mjs +1 -1
- package/dist/design-system41.js +1 -1
- package/dist/design-system41.mjs +3 -3
- package/dist/design-system44.js +6 -1
- package/dist/design-system44.js.map +1 -1
- package/dist/design-system44.mjs +107 -2
- package/dist/design-system44.mjs.map +1 -1
- package/dist/design-system45.js +6 -1
- package/dist/design-system45.js.map +1 -1
- package/dist/design-system45.mjs +910 -114
- package/dist/design-system45.mjs.map +1 -1
- package/dist/design-system46.js +7 -1
- package/dist/design-system46.js.map +1 -1
- package/dist/design-system46.mjs +861 -2
- package/dist/design-system46.mjs.map +1 -1
- package/dist/design-system47.js +4 -1
- package/dist/design-system47.js.map +1 -1
- package/dist/design-system47.mjs +1364 -7
- package/dist/design-system47.mjs.map +1 -1
- package/dist/design-system48.js +1 -1
- package/dist/design-system48.mjs +2 -2
- package/dist/design-system49.js +1 -1
- package/dist/design-system49.js.map +1 -1
- package/dist/design-system49.mjs +116 -2
- package/dist/design-system49.mjs.map +1 -1
- package/dist/design-system50.js +1 -4
- package/dist/design-system50.js.map +1 -1
- package/dist/design-system50.mjs +2 -74
- package/dist/design-system50.mjs.map +1 -1
- package/dist/design-system51.js +1 -1
- package/dist/design-system51.mjs +7 -2
- package/dist/design-system51.mjs.map +1 -1
- package/dist/design-system52.js +1 -1
- package/dist/design-system52.js.map +1 -1
- package/dist/design-system52.mjs +2 -49
- package/dist/design-system52.mjs.map +1 -1
- package/dist/design-system54.js +4 -1
- package/dist/design-system54.js.map +1 -1
- package/dist/design-system54.mjs +74 -2
- package/dist/design-system54.mjs.map +1 -1
- package/dist/design-system55.js +1 -1
- package/dist/design-system55.mjs +2 -2
- package/dist/design-system56.js +1 -1
- package/dist/design-system56.js.map +1 -1
- package/dist/design-system56.mjs +49 -2
- package/dist/design-system56.mjs.map +1 -1
- package/dist/design-system57.js +1 -1
- package/dist/design-system57.mjs +2 -2
- package/dist/design-system58.js +1 -1
- package/dist/design-system58.mjs +2 -2
- package/dist/design-system59.js +1 -1
- package/dist/design-system59.mjs +1 -1
- package/dist/design-system60.js +1 -1
- package/dist/design-system60.mjs +1 -1
- package/dist/design-system61.js +1 -1
- package/dist/design-system61.js.map +1 -1
- package/dist/design-system61.mjs +2 -28
- package/dist/design-system61.mjs.map +1 -1
- package/dist/design-system62.js +1 -1
- package/dist/design-system62.mjs +2 -2
- package/dist/design-system63.js +1 -1
- package/dist/design-system63.js.map +1 -1
- package/dist/design-system63.mjs +2 -58
- package/dist/design-system63.mjs.map +1 -1
- package/dist/design-system64.js +1 -1
- package/dist/design-system64.mjs +2 -2
- package/dist/design-system65.js +1 -1
- package/dist/design-system65.js.map +1 -1
- package/dist/design-system65.mjs +28 -2
- package/dist/design-system65.mjs.map +1 -1
- package/dist/design-system66.js +1 -1
- package/dist/design-system66.mjs +2 -2
- package/dist/design-system67.js +1 -1
- package/dist/design-system67.js.map +1 -1
- package/dist/design-system67.mjs +58 -2
- package/dist/design-system67.mjs.map +1 -1
- package/dist/design-system68.js +1 -1
- package/dist/design-system68.mjs +2 -2
- package/dist/design-system69.js +1 -1
- package/dist/design-system69.mjs +1 -1
- package/dist/design-system70.js +1 -1
- package/dist/design-system70.mjs +1 -1
- package/dist/design-system71.js +1 -1
- package/dist/design-system71.mjs +2 -2
- package/dist/design-system72.js +1 -1
- package/dist/design-system72.js.map +1 -1
- package/dist/design-system72.mjs +2 -81
- package/dist/design-system72.mjs.map +1 -1
- package/dist/design-system73.js +1 -1
- package/dist/design-system73.mjs +2 -2
- package/dist/design-system74.js +1 -1
- package/dist/design-system74.mjs +1 -1
- package/dist/design-system75.js +1 -1
- package/dist/design-system75.mjs +2 -2
- package/dist/design-system76.js +1 -1
- package/dist/design-system76.js.map +1 -1
- package/dist/design-system76.mjs +81 -2
- package/dist/design-system76.mjs.map +1 -1
- package/dist/design-system77.js +1 -1
- package/dist/design-system77.mjs +2 -2
- package/dist/design-system78.js +1 -1
- package/dist/design-system78.js.map +1 -1
- package/dist/design-system78.mjs +2 -102
- package/dist/design-system78.mjs.map +1 -1
- package/dist/design-system79.js +1 -1
- package/dist/design-system79.mjs +2 -2
- package/dist/design-system80.js +1 -6
- package/dist/design-system80.js.map +1 -1
- package/dist/design-system80.mjs +2 -107
- package/dist/design-system80.mjs.map +1 -1
- package/dist/design-system81.js +1 -6
- package/dist/design-system81.js.map +1 -1
- package/dist/design-system81.mjs +2 -912
- package/dist/design-system81.mjs.map +1 -1
- package/dist/design-system82.js +1 -7
- package/dist/design-system82.js.map +1 -1
- package/dist/design-system82.mjs +95 -854
- package/dist/design-system82.mjs.map +1 -1
- package/dist/design-system83.js +1 -4
- package/dist/design-system83.js.map +1 -1
- package/dist/design-system83.mjs +2 -1364
- package/dist/design-system83.mjs.map +1 -1
- package/dist/design-system84.js +5 -1
- package/dist/design-system84.js.map +1 -1
- package/dist/design-system84.mjs +10 -2452
- package/dist/design-system84.mjs.map +1 -1
- package/dist/design-system85.js +1 -1
- package/dist/design-system85.js.map +1 -1
- package/dist/design-system85.mjs +6 -1103
- package/dist/design-system85.mjs.map +1 -1
- package/dist/design-system86.js +1 -1
- package/dist/design-system86.js.map +1 -1
- package/dist/design-system86.mjs +3 -16
- package/dist/design-system86.mjs.map +1 -1
- package/dist/design-system87.js +1 -1
- package/dist/design-system87.js.map +1 -1
- package/dist/design-system87.mjs +2 -67
- package/dist/design-system87.mjs.map +1 -1
- package/dist/design-system88.js +1 -1
- package/dist/design-system88.js.map +1 -1
- package/dist/design-system88.mjs +16 -74
- package/dist/design-system88.mjs.map +1 -1
- package/dist/design-system89.js +1 -1
- package/dist/design-system89.js.map +1 -1
- package/dist/design-system89.mjs +67 -6
- package/dist/design-system89.mjs.map +1 -1
- package/dist/design-system90.js +1 -1
- package/dist/design-system90.js.map +1 -1
- package/dist/design-system90.mjs +1103 -25
- package/dist/design-system90.mjs.map +1 -1
- package/dist/design-system91.js +1 -1
- package/dist/design-system91.js.map +1 -1
- package/dist/design-system91.mjs +25 -2
- package/dist/design-system91.mjs.map +1 -1
- package/dist/design-system92.js +1 -5
- package/dist/design-system92.js.map +1 -1
- package/dist/design-system92.mjs +75 -10
- package/dist/design-system92.mjs.map +1 -1
- package/dist/design-system93.js +1 -1
- package/dist/design-system93.js.map +1 -1
- package/dist/design-system93.mjs +5 -5
- package/dist/design-system93.mjs.map +1 -1
- package/dist/design-system94.js +1 -1
- package/dist/design-system94.js.map +1 -1
- package/dist/design-system94.mjs +2452 -4
- package/dist/design-system94.mjs.map +1 -1
- package/dist/design-system95.js +1 -1
- package/dist/design-system95.mjs +2 -2
- package/dist/design-system96.js +1 -1
- package/dist/design-system96.mjs +1 -1
- package/dist/design-system97.js +1 -1
- package/dist/design-system97.js.map +1 -1
- package/dist/design-system97.mjs +2 -4
- package/dist/design-system97.mjs.map +1 -1
- package/dist/design-system98.js +1 -1
- package/dist/design-system98.js.map +1 -1
- package/dist/design-system98.mjs +4 -8
- package/dist/design-system98.mjs.map +1 -1
- package/dist/design-system99.js +1 -1
- package/dist/design-system99.js.map +1 -1
- package/dist/design-system99.mjs +7 -6
- package/dist/design-system99.mjs.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/components/BButton.vue.d.ts +65 -65
- package/dist/types/components/BCarousel/BCarousel.vue.d.ts +68 -68
- package/dist/types/components/BCarousel/BCarouselItem.vue.d.ts +9 -9
- package/dist/types/components/BCheckbox.vue.d.ts +90 -90
- package/dist/types/components/BCollapse.vue.d.ts +24 -24
- package/dist/types/components/BDatePicker.vue.d.ts +143 -143
- package/dist/types/components/BDateRangePicker.vue.d.ts +134 -134
- package/dist/types/components/BDropdown/BDropdown.vue.d.ts +102 -102
- package/dist/types/components/BDropdown/BDropdownContent.vue.d.ts +9 -9
- package/dist/types/components/BDropdown/BDropdownItem.vue.d.ts +27 -27
- package/dist/types/components/BErrorMessage.vue.d.ts +14 -14
- package/dist/types/components/BLabel.vue.d.ts +39 -39
- package/dist/types/components/BLoadingBar.vue.d.ts +40 -40
- package/dist/types/components/BLoadingOverlay.vue.d.ts +32 -32
- package/dist/types/components/BModal/BModal.vue.d.ts +53 -53
- package/dist/types/components/BModal/BModalBody.vue.d.ts +9 -9
- package/dist/types/components/BModal/BModalContainer.vue.d.ts +50 -50
- package/dist/types/components/BModal/BModalFooter.vue.d.ts +9 -9
- package/dist/types/components/BModal/BModalHeader.vue.d.ts +9 -9
- package/dist/types/components/BMultiSelect.vue.d.ts +140 -140
- package/dist/types/components/BOtpField/BOtpField.vue.d.ts +104 -104
- package/dist/types/components/BOtpField/BOtpFieldBox.vue.d.ts +49 -49
- package/dist/types/components/BOverlay.vue.d.ts +9 -9
- package/dist/types/components/BPagination.vue.d.ts +52 -52
- package/dist/types/components/BRadio.vue.d.ts +99 -99
- package/dist/types/components/BSelect.vue.d.ts +131 -131
- package/dist/types/components/BTabs/BTab.vue.d.ts +9 -9
- package/dist/types/components/BTabs/BTabs.vue.d.ts +42 -42
- package/dist/types/components/BTextField.vue.d.ts +187 -187
- package/dist/types/components/BTextarea.vue.d.ts +126 -126
- package/dist/types/components/BToast/BToast.vue.d.ts +21 -21
- package/dist/types/components/BToast/BToastItem.vue.d.ts +53 -53
- package/dist/types/components/BTooltip.vue.d.ts +43 -43
- package/dist/types/components/index.d.ts +31 -31
- package/dist/types/composables/Date.d.ts +7 -7
- package/dist/types/composables/Validation.d.ts +42 -42
- package/dist/types/constants/Common.d.ts +2 -2
- package/dist/types/constants/Enums.d.ts +106 -106
- package/dist/types/helpers/ComponentHelper.d.ts +7 -7
- package/dist/types/helpers/DateHelper.d.ts +2 -2
- package/dist/types/index.d.ts +9 -9
- package/dist/types/playground/PlaygroundView.vue.d.ts +2 -2
- package/dist/types/plugin.d.ts +8 -8
- package/dist/types/types/Common.d.ts +5 -5
- package/dist/types/types/components/BCarousel.d.ts +8 -8
- package/dist/types/types/components/BDatePicker.d.ts +19 -19
- package/dist/types/types/components/BDateRangePicker.d.ts +18 -18
- package/dist/types/types/components/BDropdown.d.ts +11 -11
- package/dist/types/types/components/BErrorMessage.d.ts +4 -4
- package/dist/types/types/components/BLabel.d.ts +5 -5
- package/dist/types/types/components/BLoadingBar.d.ts +6 -6
- package/dist/types/types/components/BLoadingOverlay.d.ts +6 -6
- package/dist/types/types/components/BModal.d.ts +7 -7
- package/dist/types/types/components/BMultiSelect.d.ts +18 -18
- package/dist/types/types/components/BOtpField.d.ts +13 -13
- package/dist/types/types/components/BPagination.d.ts +8 -8
- package/dist/types/types/components/BRadio.d.ts +13 -13
- package/dist/types/types/components/BSelect.d.ts +17 -17
- package/dist/types/types/components/BTabs.d.ts +9 -9
- package/dist/types/types/components/BTextField.d.ts +22 -22
- package/dist/types/types/components/BTextarea.d.ts +16 -16
- package/dist/types/types/components/BToast.d.ts +8 -8
- package/dist/types/types/components/BTooltip.d.ts +6 -6
- package/dist/types/types/index.d.ts +20 -20
- package/package.json +96 -96
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system11.js","sources":["../src/components/BDateRangePicker.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-relative\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"placeholder\"]\nconst _hoisted_3 = [\"for\"]\n\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\n/**\n * https://stackoverflow.com/questions/25384360/how-to-prevent-moment-js-from-loading-locales-with-webpack\n * Due to this issue with moment (it loads a bunch of unnecessary ./locale)\n * https://github.com/ksloan/moment-mini\n */\nimport { useI18n } from 'vue-i18n';\n// https://air-datepicker.com/docs\n// DO NOT upgrade to the higher version than 3.3.0\nimport AirDatepicker, {\n type AirDatepickerButton,\n type AirDatepickerLocale,\n} from 'air-datepicker';\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { BDatePickerView } from '@/constants/Enums';\nimport { lockScrollBody, unlockScrollBody } from '@/helpers/ComponentHelper';\nimport type { BDateRangePickerProps } from '@/types';\nimport { v4 as uuid } from 'uuid';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\nimport { isEmpty } from 'lodash-es';\n\n/**\n * Props\n */\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BDateRangePicker',\n props: {\n inputId: { default: '' },\n modelValue: {},\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: '' },\n maxDate: { default: '' },\n view: { default: BDatePickerView.Days },\n hideDetails: { type: Boolean, default: false },\n position: { default: 'bottom left' }\n },\n emits: ['update:modelValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\n\n/**\n * Events\n */\n\n\n/**\n * Data\n */\nconst { t, locale } = useI18n();\nlet datePicker: AirDatepicker<HTMLInputElement>;\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst selectedDate = ref();\n\n/**\n * Computed\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 datePickerButtons = computed<AirDatepickerButton[]>(() => [\n {\n content: t('ds.components.base.date_picker.buttons.cancel'),\n className:\n 'ds-bg-transparent focus:ds-ring-1 focus:ds-ring-gray-300 ds-border-inner-primary-f !ds-text-primary-t hover:ds-bg-[#e6f0fe] ds-text-sm ds-leading-4 ds-px-4 ds-mx-1',\n onClick: (dp) => {\n dp.clear();\n nextTick(() => {\n validate();\n });\n dp.hide();\n },\n },\n {\n content: t('ds.components.base.date_picker.buttons.confirm'),\n className: `${id.value}-btn-confirm focus:ds-ring-1 focus:ds-ring-1 focus:ds-ring-blue-300 ds-bg-gradient-to-r ds-from-primary-f-stop ds-from-primary-f ds-to-primary-t !ds-text-white enabled:hover:ds-bg-[#0e4bbd] ds-text-sm ds-leading-4 ds-px-4 disabled:ds-from-[#e2e4e8] disabled:ds-to-[#e2e4e8] disabled:ds-text-black/[0.4] ds-mx-1`,\n onClick: (dp) => {\n value.value = selectedDate.value;\n nextTick(() => {\n validate();\n });\n dp.hide();\n },\n attrs: props.required\n ? {\n disabled: '',\n }\n : undefined,\n },\n]);\nconst datePickerOptions = computed(() => {\n const datePickerLocale: AirDatepickerLocale = {\n days: [\n t('ds.components.base.date_picker.days.sunday'),\n t('ds.components.base.date_picker.days.monday'),\n t('ds.components.base.date_picker.days.tuesday'),\n t('ds.components.base.date_picker.days.wednesday'),\n t('ds.components.base.date_picker.days.thursday'),\n t('ds.components.base.date_picker.days.friday'),\n t('ds.components.base.date_picker.days.saturday'),\n ],\n daysShort: [\n t('ds.components.base.date_picker.days_short.sunday'),\n t('ds.components.base.date_picker.days_short.monday'),\n t('ds.components.base.date_picker.days_short.tuesday'),\n t('ds.components.base.date_picker.days_short.wednesday'),\n t('ds.components.base.date_picker.days_short.thursday'),\n t('ds.components.base.date_picker.days_short.friday'),\n t('ds.components.base.date_picker.days_short.saturday'),\n ],\n daysMin: [\n t('ds.components.base.date_picker.days_min.sunday'),\n t('ds.components.base.date_picker.days_min.monday'),\n t('ds.components.base.date_picker.days_min.tuesday'),\n t('ds.components.base.date_picker.days_min.wednesday'),\n t('ds.components.base.date_picker.days_min.thursday'),\n t('ds.components.base.date_picker.days_min.friday'),\n t('ds.components.base.date_picker.days_min.saturday'),\n ],\n months: [\n t('ds.components.base.date_picker.months.january'),\n t('ds.components.base.date_picker.months.february'),\n t('ds.components.base.date_picker.months.march'),\n t('ds.components.base.date_picker.months.april'),\n t('ds.components.base.date_picker.months.may'),\n t('ds.components.base.date_picker.months.june'),\n t('ds.components.base.date_picker.months.july'),\n t('ds.components.base.date_picker.months.august'),\n t('ds.components.base.date_picker.months.september'),\n t('ds.components.base.date_picker.months.october'),\n t('ds.components.base.date_picker.months.november'),\n t('ds.components.base.date_picker.months.december'),\n ],\n monthsShort: [\n t('ds.components.base.date_picker.months_short.january'),\n t('ds.components.base.date_picker.months_short.february'),\n t('ds.components.base.date_picker.months_short.march'),\n t('ds.components.base.date_picker.months_short.april'),\n t('ds.components.base.date_picker.months_short.may'),\n t('ds.components.base.date_picker.months_short.june'),\n t('ds.components.base.date_picker.months_short.july'),\n t('ds.components.base.date_picker.months_short.august'),\n t('ds.components.base.date_picker.months_short.september'),\n t('ds.components.base.date_picker.months_short.october'),\n t('ds.components.base.date_picker.months_short.november'),\n t('ds.components.base.date_picker.months_short.december'),\n ],\n today: t('ds.components.base.date_picker.buttons.today'),\n clear: t('ds.components.base.date_picker.buttons.clear'),\n dateFormat: 'dd/MM/yyyy',\n timeFormat: 'HH:mm',\n firstDay: 1, // Monday\n };\n const onSelectDatePicker = ({\n date,\n }: {\n date: Date | Date[];\n formattedDate: string | string[];\n datepicker: AirDatepicker;\n }) => {\n // 'date' is undefined when clicking 'Clear' button/ deselect the date\n selectedDate.value = date;\n if (props.required) {\n toggleButtonConfirm(!!date);\n }\n };\n\n return {\n locale: datePickerLocale,\n selectedDates: [...props.modelValue],\n onSelect: onSelectDatePicker,\n buttons: [...datePickerButtons.value],\n showOtherMonths: false,\n timepicker: false,\n onlyTimepicker: false,\n minDate: props.minDate,\n maxDate: props.maxDate,\n view: props.view,\n onHide: onHidePicker,\n onShow: onShowPicker,\n navTitles: {\n days: 'MMMM yyyy',\n },\n position: props.position,\n range: true,\n multipleDatesSeparator: ' - ',\n } as any; // AirDatepickerOptions\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 inputCssClassValue = computed(() => [\n 'ds-border ds-rounded-lg ds-block ds-w-full ds-text-sm ds-px-3 ds-h-[40px]',\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': datePickerVisible.value,\n },\n props.inputCssClass,\n]);\nconst datePickerVisible = ref(false);\n\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n\n/**\n * Watch\n */\nwatch(\n () => props.modelValue,\n () => {\n if (checkIfModelNeedToSync(datePicker.selectedDates)) {\n datePicker.selectDate(props.modelValue);\n }\n },\n { deep: true },\n);\nwatch(\n [\n locale,\n () => props.position,\n () => props.minDate,\n () => props.maxDate,\n () => props.view,\n ],\n () => {\n datePicker.update(datePickerOptions.value);\n },\n);\n\nonMounted(() => {\n datePicker = new AirDatepicker<HTMLInputElement>(\n `#${id.value}Picker`,\n datePickerOptions.value,\n );\n});\n\n/**\n * Methods\n */\nconst onHidePicker = () => {\n datePickerVisible.value = false;\n unlockScrollBody();\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst onShowPicker = () => {\n datePickerVisible.value = true;\n if (props.modelValue) {\n datePicker.selectDate(props.modelValue);\n } else {\n datePicker.clear();\n }\n lockScrollBody();\n};\nconst checkIfModelNeedToSync = (date: Date[]) => {\n const rules = [\n !isEmpty(props.modelValue) && isEmpty(date),\n !isEmpty(date) && isEmpty(props.modelValue),\n !isEmpty(props.modelValue) &&\n !isEmpty(date) &&\n props.modelValue.some((v, i) => v?.getTime() !== date[i]?.getTime()),\n ];\n\n return rules.some((r) => r);\n};\nconst toggleButtonConfirm = (enabled: boolean) => {\n const btnEl = document.querySelector(`.${id.value}-btn-confirm`);\n if (enabled) {\n btnEl?.removeAttribute('disabled');\n } else {\n btnEl?.setAttribute('disabled', '');\n }\n};\n\n/**\n * Lifecycle hooks\n */\nonBeforeUnmount(() => {\n unlockScrollBody();\n});\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 _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n id: `${id.value}Picker`,\n class: _normalizeClass([inputCssClassValue.value, \"ds-absolute ds-top-0 ds-z-[1] ds-drop-shadow-light\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n readonly: \"\"\n }, null, 10, _hoisted_2),\n _createElementVNode(\"label\", {\n for: `${id.value}Picker`,\n class: \"ds-absolute ds-right-3 ds-top-2 ds-z-[3]\"\n }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([[\n props.disabled ? 'ds-text-black/[0.4]' : 'ds-text-black/[0.85]',\n ], \"fa-solid fa-calendar-lines\"])\n }, null, 2)\n ], 8, _hoisted_3)\n ]),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\",\n \"prepend-icon\": \"fa-solid fa-circle-exclamation\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","_defineComponent","BDatePickerView","__props","emit","props","t","locale","useI18n","datePicker","validateRequired","val","selectedDate","ref","id","computed","uuid","value","datePickerButtons","dp","nextTick","validate","datePickerOptions","datePickerLocale","onSelectDatePicker","date","toggleButtonConfirm","onHidePicker","onShowPicker","vRules","result","inputCssClassValue","validationResult","datePickerVisible","useValidationField","watch","checkIfModelNeedToSync","onMounted","AirDatepicker","unlockScrollBody","lockScrollBody","isEmpty","v","i","_a","r","enabled","btnEl","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createVNode","BLabel","_createElementVNode","_normalizeClass","_createCommentVNode","_createBlock","BErrorMessage","_unref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"design-system11.js","sources":["../src/components/BDateRangePicker.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-relative\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"placeholder\", \"value\"]\nconst _hoisted_3 = [\"id\", \"disabled\", \"placeholder\"]\nconst _hoisted_4 = [\"for\"]\n\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\n/**\n * https://stackoverflow.com/questions/25384360/how-to-prevent-moment-js-from-loading-locales-with-webpack\n * Due to this issue with moment (it loads a bunch of unnecessary ./locale)\n * https://github.com/ksloan/moment-mini\n */\nimport { useI18n } from 'vue-i18n';\n// https://air-datepicker.com/docs\n// DO NOT upgrade to the higher version than 3.3.0\nimport AirDatepicker, {\n type AirDatepickerButton,\n type AirDatepickerLocale,\n} from 'air-datepicker';\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { BDatePickerView } from '@/constants/Enums';\nimport { lockScrollBody, unlockScrollBody } from '@/helpers/ComponentHelper';\nimport type { BDateRangePickerProps } from '@/types';\nimport { v4 as uuid } from 'uuid';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\nimport { isEmpty } from 'lodash-es';\nimport { checkIfISOFormat } from '@/helpers/DateHelper';\nimport moment from 'moment-mini';\nimport { DateDelimiter } from '@/constants/Common';\n\n/**\n * Props\n */\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BDateRangePicker',\n props: {\n inputId: { default: '' },\n modelValue: {},\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: '' },\n maxDate: { default: '' },\n view: { default: BDatePickerView.Days },\n hideDetails: { type: Boolean, default: false },\n position: { default: 'bottom left' }\n },\n emits: ['update:modelValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\n\n/**\n * Events\n */\n\n\n/**\n * Data\n */\nconst { t, locale } = useI18n();\nconst dateFormat = `DD${DateDelimiter}MM${DateDelimiter}YYYY`; // moment's date format\nlet datePicker: AirDatepicker<HTMLInputElement>;\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst selectedDate = ref();\n\n/**\n * Computed\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 datePickerButtons = computed<AirDatepickerButton[]>(() => [\n {\n content: t('ds.components.base.date_picker.buttons.cancel'),\n className:\n 'ds-bg-transparent focus:ds-ring-1 focus:ds-ring-gray-300 ds-border-inner-primary-f !ds-text-primary-t hover:ds-bg-[#e6f0fe] ds-text-sm ds-leading-4 ds-px-4 ds-mx-1',\n onClick: (dp) => {\n dp.clear();\n nextTick(() => {\n validate();\n });\n dp.hide();\n },\n },\n {\n content: t('ds.components.base.date_picker.buttons.confirm'),\n className: `${id.value}-btn-confirm focus:ds-ring-1 focus:ds-ring-1 focus:ds-ring-blue-300 ds-bg-gradient-to-r ds-from-primary-f-stop ds-from-primary-f ds-to-primary-t !ds-text-white enabled:hover:ds-bg-[#0e4bbd] ds-text-sm ds-leading-4 ds-px-4 disabled:ds-from-[#e2e4e8] disabled:ds-to-[#e2e4e8] disabled:ds-text-black/[0.4] ds-mx-1`,\n onClick: (dp) => {\n value.value = checkIfValidDateValue(selectedDate.value)\n ? selectedDate.value\n : [];\n nextTick(() => {\n validate();\n });\n dp.hide();\n },\n attrs: props.required\n ? {\n disabled: '',\n }\n : undefined,\n },\n]);\nconst datePickerOptions = computed(() => {\n const datePickerLocale: AirDatepickerLocale = {\n days: [\n t('ds.components.base.date_picker.days.sunday'),\n t('ds.components.base.date_picker.days.monday'),\n t('ds.components.base.date_picker.days.tuesday'),\n t('ds.components.base.date_picker.days.wednesday'),\n t('ds.components.base.date_picker.days.thursday'),\n t('ds.components.base.date_picker.days.friday'),\n t('ds.components.base.date_picker.days.saturday'),\n ],\n daysShort: [\n t('ds.components.base.date_picker.days_short.sunday'),\n t('ds.components.base.date_picker.days_short.monday'),\n t('ds.components.base.date_picker.days_short.tuesday'),\n t('ds.components.base.date_picker.days_short.wednesday'),\n t('ds.components.base.date_picker.days_short.thursday'),\n t('ds.components.base.date_picker.days_short.friday'),\n t('ds.components.base.date_picker.days_short.saturday'),\n ],\n daysMin: [\n t('ds.components.base.date_picker.days_min.sunday'),\n t('ds.components.base.date_picker.days_min.monday'),\n t('ds.components.base.date_picker.days_min.tuesday'),\n t('ds.components.base.date_picker.days_min.wednesday'),\n t('ds.components.base.date_picker.days_min.thursday'),\n t('ds.components.base.date_picker.days_min.friday'),\n t('ds.components.base.date_picker.days_min.saturday'),\n ],\n months: [\n t('ds.components.base.date_picker.months.january'),\n t('ds.components.base.date_picker.months.february'),\n t('ds.components.base.date_picker.months.march'),\n t('ds.components.base.date_picker.months.april'),\n t('ds.components.base.date_picker.months.may'),\n t('ds.components.base.date_picker.months.june'),\n t('ds.components.base.date_picker.months.july'),\n t('ds.components.base.date_picker.months.august'),\n t('ds.components.base.date_picker.months.september'),\n t('ds.components.base.date_picker.months.october'),\n t('ds.components.base.date_picker.months.november'),\n t('ds.components.base.date_picker.months.december'),\n ],\n monthsShort: [\n t('ds.components.base.date_picker.months_short.january'),\n t('ds.components.base.date_picker.months_short.february'),\n t('ds.components.base.date_picker.months_short.march'),\n t('ds.components.base.date_picker.months_short.april'),\n t('ds.components.base.date_picker.months_short.may'),\n t('ds.components.base.date_picker.months_short.june'),\n t('ds.components.base.date_picker.months_short.july'),\n t('ds.components.base.date_picker.months_short.august'),\n t('ds.components.base.date_picker.months_short.september'),\n t('ds.components.base.date_picker.months_short.october'),\n t('ds.components.base.date_picker.months_short.november'),\n t('ds.components.base.date_picker.months_short.december'),\n ],\n today: t('ds.components.base.date_picker.buttons.today'),\n clear: t('ds.components.base.date_picker.buttons.clear'),\n dateFormat: 'dd/MM/yyyy',\n timeFormat: 'HH:mm',\n firstDay: 1, // Monday\n };\n const onSelectDatePicker = ({\n date,\n }: {\n date: Date[];\n formattedDate: string | string[];\n datepicker: AirDatepicker;\n }) => {\n const isValidDate = checkIfValidDateValue(date);\n selectedDate.value = isValidDate ? date : [];\n if (props.required) {\n toggleButtonConfirm(isValidDate);\n }\n };\n\n return {\n locale: datePickerLocale,\n selectedDates: props.modelValue,\n onSelect: onSelectDatePicker,\n buttons: datePickerButtons.value,\n showOtherMonths: false,\n timepicker: false,\n onlyTimepicker: false,\n minDate: props.minDate,\n maxDate: props.maxDate,\n view: props.view,\n onHide: onHidePicker,\n onShow: onShowPicker,\n navTitles: {\n days: 'MMMM yyyy',\n },\n position: props.position,\n range: true,\n multipleDatesSeparator: ' - ',\n } as any; // AirDatepickerOptions\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 inputCssClassValue = computed(() => [\n 'ds-border ds-rounded-lg ds-block ds-w-full ds-text-sm ds-px-3 ds-h-[40px]',\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': datePickerVisible.value,\n },\n props.inputCssClass,\n]);\nconst datePickerVisible = ref(false);\nconst displayValue = computed(() =>\n props.modelValue.map((val) => formatDate(val)).join(' - '),\n);\n\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n\n/**\n * Watch\n */\nwatch(\n () => props.modelValue,\n () => {\n if (checkIfModelNeedToSync(datePicker.selectedDates)) {\n if (checkIfValidDateValue(props.modelValue)) {\n datePicker.selectDate(props.modelValue);\n } else {\n datePicker.clear();\n }\n }\n },\n { deep: true },\n);\nwatch(\n [\n locale,\n () => props.position,\n () => props.minDate,\n () => props.maxDate,\n () => props.view,\n ],\n () => {\n datePicker.update(datePickerOptions.value);\n },\n);\n\n/**\n * Methods\n */\nconst checkIfValidDateValue = (d: Date[]) => d?.length === 2;\nconst formatDate = (date: string | Date) =>\n checkIfISOFormat(date) ? moment(date).format(dateFormat) : date;\nconst onHidePicker = () => {\n datePickerVisible.value = false;\n unlockScrollBody();\n};\nconst onShowPicker = () => {\n datePickerVisible.value = true;\n if (checkIfValidDateValue(props.modelValue)) {\n datePicker.selectDate(props.modelValue);\n } else {\n datePicker.clear();\n }\n lockScrollBody();\n};\nconst checkIfModelNeedToSync = (date: Date[]) => {\n const rules = [\n !isEmpty(props.modelValue) && isEmpty(date),\n !isEmpty(date) && isEmpty(props.modelValue),\n !isEmpty(props.modelValue) &&\n !isEmpty(date) &&\n props.modelValue.some((v, i) => v?.getTime() !== date[i]?.getTime()),\n ];\n\n return rules.some((r) => r);\n};\nconst toggleButtonConfirm = (enabled: boolean) => {\n const btnEl = document.querySelector(`.${id.value}-btn-confirm`);\n if (enabled) {\n btnEl?.removeAttribute('disabled');\n } else {\n btnEl?.setAttribute('disabled', '');\n }\n};\n\n/**\n * Lifecycle hooks\n */\nonMounted(() => {\n datePicker = new AirDatepicker<HTMLInputElement>(\n `#${id.value}Picker`,\n datePickerOptions.value,\n );\n});\nonBeforeUnmount(() => {\n unlockScrollBody();\n});\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 _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n id: id.value,\n class: _normalizeClass([inputCssClassValue.value, \"ds-relative ds-z-[2] ds-drop-shadow-light\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n value: displayValue.value,\n readonly: \"\"\n }, null, 10, _hoisted_2),\n _createElementVNode(\"input\", {\n id: `${id.value}Picker`,\n class: _normalizeClass([inputCssClassValue.value, \"ds-absolute ds-top-0 ds-z-[1]\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n readonly: \"\"\n }, null, 10, _hoisted_3),\n _createElementVNode(\"label\", {\n for: `${id.value}Picker`,\n class: \"ds-absolute ds-right-3 ds-top-2 ds-z-[3]\"\n }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([[\n props.disabled ? 'ds-text-black/[0.4]' : 'ds-text-black/[0.85]',\n ], \"fa-solid fa-calendar-lines\"])\n }, null, 2)\n ], 8, _hoisted_4)\n ]),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\",\n \"prepend-icon\": \"fa-solid fa-circle-exclamation\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_main","_defineComponent","BDatePickerView","__props","emit","props","t","locale","useI18n","dateFormat","DateDelimiter","datePicker","validateRequired","val","selectedDate","ref","id","computed","uuid","value","datePickerButtons","dp","nextTick","validate","checkIfValidDateValue","datePickerOptions","datePickerLocale","onSelectDatePicker","date","isValidDate","toggleButtonConfirm","onHidePicker","onShowPicker","vRules","result","inputCssClassValue","validationResult","datePickerVisible","displayValue","formatDate","useValidationField","watch","checkIfModelNeedToSync","d","checkIfISOFormat","moment","unlockScrollBody","lockScrollBody","isEmpty","v","_a","enabled","btnEl","onMounted","AirDatepicker","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createVNode","BLabel","_createElementVNode","_normalizeClass","_createCommentVNode","_createBlock","BErrorMessage","_unref"],"mappings":"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"}
|
package/dist/design-system11.mjs
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { useI18n as
|
|
3
|
-
import
|
|
4
|
-
import { useValidationField as
|
|
5
|
-
import { BDatePickerView as
|
|
6
|
-
import { unlockScrollBody as
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
|
|
1
|
+
import { defineComponent as H, ref as g, computed as n, nextTick as D, watch as V, onMounted as Y, onBeforeUnmount as A, openBlock as w, createElementBlock as O, createVNode as E, createElementVNode as l, normalizeClass as f, createBlock as L, unref as U, createCommentVNode as G } from "vue";
|
|
2
|
+
import { useI18n as J } from "./design-system41.mjs";
|
|
3
|
+
import K from "./design-system90.mjs";
|
|
4
|
+
import { useValidationField as Q } from "./design-system3.mjs";
|
|
5
|
+
import { BDatePickerView as W } from "./design-system5.mjs";
|
|
6
|
+
import { unlockScrollBody as x, lockScrollBody as X } from "./design-system6.mjs";
|
|
7
|
+
import Z from "./design-system27.mjs";
|
|
8
|
+
import ee from "./design-system28.mjs";
|
|
9
|
+
import { checkIfISOFormat as se } from "./design-system40.mjs";
|
|
10
|
+
import ae from "./design-system47.mjs";
|
|
11
|
+
import { DateDelimiter as M } from "./design-system4.mjs";
|
|
12
|
+
import te from "./design-system88.mjs";
|
|
13
|
+
import i from "./design-system91.mjs";
|
|
14
|
+
const oe = { class: "ds-relative" }, de = ["id", "disabled", "placeholder", "value"], re = ["id", "disabled", "placeholder"], ne = ["for"], ge = /* @__PURE__ */ H({
|
|
12
15
|
__name: "BDateRangePicker",
|
|
13
16
|
props: {
|
|
14
17
|
inputId: { default: "" },
|
|
@@ -22,48 +25,48 @@ const X = { class: "ds-relative" }, Y = ["id", "disabled", "placeholder"], Z = [
|
|
|
22
25
|
inputCssClass: { default: "" },
|
|
23
26
|
minDate: { default: "" },
|
|
24
27
|
maxDate: { default: "" },
|
|
25
|
-
view: { default:
|
|
28
|
+
view: { default: W.Days },
|
|
26
29
|
hideDetails: { type: Boolean, default: !1 },
|
|
27
30
|
position: { default: "bottom left" }
|
|
28
31
|
},
|
|
29
32
|
emits: ["update:modelValue"],
|
|
30
|
-
setup(
|
|
31
|
-
const
|
|
33
|
+
setup(B, { emit: P }) {
|
|
34
|
+
const a = B, { t: e, locale: q } = J(), C = `DD${M}MM${M}YYYY`;
|
|
32
35
|
let r;
|
|
33
|
-
const
|
|
34
|
-
validateRule: (
|
|
35
|
-
errorMessage: () =>
|
|
36
|
-
}, p =
|
|
36
|
+
const S = {
|
|
37
|
+
validateRule: (s) => !!s,
|
|
38
|
+
errorMessage: () => a.requiredErrorMessage || e("ds.global.field_required")
|
|
39
|
+
}, p = g(), o = n(() => a.inputId || `id-${te()}`), h = n({
|
|
37
40
|
get() {
|
|
38
|
-
return
|
|
41
|
+
return a.modelValue;
|
|
39
42
|
},
|
|
40
|
-
set(
|
|
41
|
-
|
|
43
|
+
set(s) {
|
|
44
|
+
P("update:modelValue", s);
|
|
42
45
|
}
|
|
43
|
-
}),
|
|
46
|
+
}), $ = n(() => [
|
|
44
47
|
{
|
|
45
48
|
content: e("ds.components.base.date_picker.buttons.cancel"),
|
|
46
49
|
className: "ds-bg-transparent focus:ds-ring-1 focus:ds-ring-gray-300 ds-border-inner-primary-f !ds-text-primary-t hover:ds-bg-[#e6f0fe] ds-text-sm ds-leading-4 ds-px-4 ds-mx-1",
|
|
47
|
-
onClick: (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}),
|
|
50
|
+
onClick: (s) => {
|
|
51
|
+
s.clear(), D(() => {
|
|
52
|
+
k();
|
|
53
|
+
}), s.hide();
|
|
51
54
|
}
|
|
52
55
|
},
|
|
53
56
|
{
|
|
54
57
|
content: e("ds.components.base.date_picker.buttons.confirm"),
|
|
55
|
-
className: `${
|
|
56
|
-
onClick: (
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}),
|
|
58
|
+
className: `${o.value}-btn-confirm focus:ds-ring-1 focus:ds-ring-1 focus:ds-ring-blue-300 ds-bg-gradient-to-r ds-from-primary-f-stop ds-from-primary-f ds-to-primary-t !ds-text-white enabled:hover:ds-bg-[#0e4bbd] ds-text-sm ds-leading-4 ds-px-4 disabled:ds-from-[#e2e4e8] disabled:ds-to-[#e2e4e8] disabled:ds-text-black/[0.4] ds-mx-1`,
|
|
59
|
+
onClick: (s) => {
|
|
60
|
+
h.value = c(p.value) ? p.value : [], D(() => {
|
|
61
|
+
k();
|
|
62
|
+
}), s.hide();
|
|
60
63
|
},
|
|
61
|
-
attrs:
|
|
64
|
+
attrs: a.required ? {
|
|
62
65
|
disabled: ""
|
|
63
66
|
} : void 0
|
|
64
67
|
}
|
|
65
|
-
]),
|
|
66
|
-
const
|
|
68
|
+
]), _ = n(() => {
|
|
69
|
+
const s = {
|
|
67
70
|
days: [
|
|
68
71
|
e("ds.components.base.date_picker.days.sunday"),
|
|
69
72
|
e("ds.components.base.date_picker.days.monday"),
|
|
@@ -125,117 +128,128 @@ const X = { class: "ds-relative" }, Y = ["id", "disabled", "placeholder"], Z = [
|
|
|
125
128
|
timeFormat: "HH:mm",
|
|
126
129
|
firstDay: 1
|
|
127
130
|
// Monday
|
|
128
|
-
},
|
|
129
|
-
date:
|
|
131
|
+
}, t = ({
|
|
132
|
+
date: d
|
|
130
133
|
}) => {
|
|
131
|
-
|
|
134
|
+
const m = c(d);
|
|
135
|
+
p.value = m ? d : [], a.required && z(m);
|
|
132
136
|
};
|
|
133
137
|
return {
|
|
134
|
-
locale:
|
|
135
|
-
selectedDates:
|
|
136
|
-
onSelect:
|
|
137
|
-
buttons:
|
|
138
|
+
locale: s,
|
|
139
|
+
selectedDates: a.modelValue,
|
|
140
|
+
onSelect: t,
|
|
141
|
+
buttons: $.value,
|
|
138
142
|
showOtherMonths: !1,
|
|
139
143
|
timepicker: !1,
|
|
140
144
|
onlyTimepicker: !1,
|
|
141
|
-
minDate:
|
|
142
|
-
maxDate:
|
|
143
|
-
view:
|
|
144
|
-
onHide:
|
|
145
|
-
onShow:
|
|
145
|
+
minDate: a.minDate,
|
|
146
|
+
maxDate: a.maxDate,
|
|
147
|
+
view: a.view,
|
|
148
|
+
onHide: N,
|
|
149
|
+
onShow: T,
|
|
146
150
|
navTitles: {
|
|
147
151
|
days: "MMMM yyyy"
|
|
148
152
|
},
|
|
149
|
-
position:
|
|
153
|
+
position: a.position,
|
|
150
154
|
range: !0,
|
|
151
155
|
multipleDatesSeparator: " - "
|
|
152
156
|
};
|
|
153
|
-
}),
|
|
154
|
-
let
|
|
155
|
-
return
|
|
156
|
-
}),
|
|
157
|
+
}), R = n(() => {
|
|
158
|
+
let s = [];
|
|
159
|
+
return a.required && s.push(S), a.validationRules && (s = s.concat(a.validationRules)), s.length ? s : void 0;
|
|
160
|
+
}), y = n(() => [
|
|
157
161
|
"ds-border ds-rounded-lg ds-block ds-w-full ds-text-sm ds-px-3 ds-h-[40px]",
|
|
158
162
|
{
|
|
159
|
-
"ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/[0.4]":
|
|
160
|
-
"ds-text-black/[0.85]": !
|
|
161
|
-
"ds-border-error focus:ds-ring-1 focus:ds-ring-error": !
|
|
162
|
-
"ds-border-black/[0.1] focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus":
|
|
163
|
-
"!ds-border-focus ds-ring-1 ds-ring-focus":
|
|
163
|
+
"ds-cursor-not-allowed ds-bg-[#f2f2f2] ds-text-black/[0.4]": a.disabled,
|
|
164
|
+
"ds-text-black/[0.85]": !a.disabled,
|
|
165
|
+
"ds-border-error focus:ds-ring-1 focus:ds-ring-error": !b.value.valid,
|
|
166
|
+
"ds-border-black/[0.1] focus:ds-border-focus focus:ds-ring-1 focus:ds-ring-focus": b.value.valid,
|
|
167
|
+
"!ds-border-focus ds-ring-1 ds-ring-focus": u.value
|
|
164
168
|
},
|
|
165
|
-
|
|
166
|
-
]),
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
169
|
+
a.inputCssClass
|
|
170
|
+
]), u = g(!1), j = n(
|
|
171
|
+
() => a.modelValue.map((s) => I(s)).join(" - ")
|
|
172
|
+
), { validate: k, validationResult: b } = Q(
|
|
173
|
+
o.value,
|
|
174
|
+
h,
|
|
175
|
+
R.value
|
|
170
176
|
);
|
|
171
|
-
|
|
172
|
-
() =>
|
|
177
|
+
V(
|
|
178
|
+
() => a.modelValue,
|
|
173
179
|
() => {
|
|
174
|
-
|
|
180
|
+
F(r.selectedDates) && (c(a.modelValue) ? r.selectDate(a.modelValue) : r.clear());
|
|
175
181
|
},
|
|
176
182
|
{ deep: !0 }
|
|
177
|
-
),
|
|
183
|
+
), V(
|
|
178
184
|
[
|
|
179
|
-
|
|
180
|
-
() =>
|
|
181
|
-
() =>
|
|
182
|
-
() =>
|
|
183
|
-
() =>
|
|
185
|
+
q,
|
|
186
|
+
() => a.position,
|
|
187
|
+
() => a.minDate,
|
|
188
|
+
() => a.maxDate,
|
|
189
|
+
() => a.view
|
|
184
190
|
],
|
|
185
191
|
() => {
|
|
186
|
-
r.update(
|
|
192
|
+
r.update(_.value);
|
|
187
193
|
}
|
|
188
|
-
)
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
);
|
|
193
|
-
})
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
!i(s.modelValue) && i(t),
|
|
200
|
-
!i(t) && i(s.modelValue),
|
|
201
|
-
!i(s.modelValue) && !i(t) && s.modelValue.some((o, j) => {
|
|
202
|
-
var _;
|
|
203
|
-
return (o == null ? void 0 : o.getTime()) !== ((_ = t[j]) == null ? void 0 : _.getTime());
|
|
194
|
+
);
|
|
195
|
+
const c = (s) => (s == null ? void 0 : s.length) === 2, I = (s) => se(s) ? ae(s).format(C) : s, N = () => {
|
|
196
|
+
u.value = !1, x();
|
|
197
|
+
}, T = () => {
|
|
198
|
+
u.value = !0, c(a.modelValue) ? r.selectDate(a.modelValue) : r.clear(), X();
|
|
199
|
+
}, F = (s) => [
|
|
200
|
+
!i(a.modelValue) && i(s),
|
|
201
|
+
!i(s) && i(a.modelValue),
|
|
202
|
+
!i(a.modelValue) && !i(s) && a.modelValue.some((d, m) => {
|
|
203
|
+
var v;
|
|
204
|
+
return (d == null ? void 0 : d.getTime()) !== ((v = s[m]) == null ? void 0 : v.getTime());
|
|
204
205
|
})
|
|
205
|
-
].some((
|
|
206
|
-
const
|
|
207
|
-
|
|
206
|
+
].some((d) => d), z = (s) => {
|
|
207
|
+
const t = document.querySelector(`.${o.value}-btn-confirm`);
|
|
208
|
+
s ? t == null || t.removeAttribute("disabled") : t == null || t.setAttribute("disabled", "");
|
|
208
209
|
};
|
|
209
|
-
return
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
210
|
+
return Y(() => {
|
|
211
|
+
r = new K(
|
|
212
|
+
`#${o.value}Picker`,
|
|
213
|
+
_.value
|
|
214
|
+
);
|
|
215
|
+
}), A(() => {
|
|
216
|
+
x();
|
|
217
|
+
}), (s, t) => (w(), O("div", null, [
|
|
218
|
+
E(ee, {
|
|
219
|
+
id: o.value,
|
|
220
|
+
label: s.label,
|
|
221
|
+
required: s.required
|
|
216
222
|
}, null, 8, ["id", "label", "required"]),
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
id:
|
|
220
|
-
class:
|
|
221
|
-
disabled:
|
|
222
|
-
placeholder:
|
|
223
|
+
l("div", oe, [
|
|
224
|
+
l("input", {
|
|
225
|
+
id: o.value,
|
|
226
|
+
class: f([y.value, "ds-relative ds-z-[2] ds-drop-shadow-light"]),
|
|
227
|
+
disabled: s.disabled,
|
|
228
|
+
placeholder: s.placeholder,
|
|
229
|
+
value: j.value,
|
|
230
|
+
readonly: ""
|
|
231
|
+
}, null, 10, de),
|
|
232
|
+
l("input", {
|
|
233
|
+
id: `${o.value}Picker`,
|
|
234
|
+
class: f([y.value, "ds-absolute ds-top-0 ds-z-[1]"]),
|
|
235
|
+
disabled: s.disabled,
|
|
236
|
+
placeholder: s.placeholder,
|
|
223
237
|
readonly: ""
|
|
224
|
-
}, null, 10,
|
|
225
|
-
|
|
226
|
-
for: `${
|
|
238
|
+
}, null, 10, re),
|
|
239
|
+
l("label", {
|
|
240
|
+
for: `${o.value}Picker`,
|
|
227
241
|
class: "ds-absolute ds-right-3 ds-top-2 ds-z-[3]"
|
|
228
242
|
}, [
|
|
229
|
-
|
|
230
|
-
class:
|
|
231
|
-
|
|
243
|
+
l("i", {
|
|
244
|
+
class: f([[
|
|
245
|
+
a.disabled ? "ds-text-black/[0.4]" : "ds-text-black/[0.85]"
|
|
232
246
|
], "fa-solid fa-calendar-lines"])
|
|
233
247
|
}, null, 2)
|
|
234
|
-
], 8,
|
|
248
|
+
], 8, ne)
|
|
235
249
|
]),
|
|
236
|
-
|
|
250
|
+
s.hideDetails ? G("", !0) : (w(), L(Z, {
|
|
237
251
|
key: 0,
|
|
238
|
-
"error-message":
|
|
252
|
+
"error-message": U(b).errorMessage(),
|
|
239
253
|
class: "ds-mt-1",
|
|
240
254
|
"prepend-icon": "fa-solid fa-circle-exclamation"
|
|
241
255
|
}, null, 8, ["error-message"]))
|
|
@@ -243,6 +257,6 @@ const X = { class: "ds-relative" }, Y = ["id", "disabled", "placeholder"], Z = [
|
|
|
243
257
|
}
|
|
244
258
|
});
|
|
245
259
|
export {
|
|
246
|
-
|
|
260
|
+
ge as default
|
|
247
261
|
};
|
|
248
262
|
//# sourceMappingURL=design-system11.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system11.mjs","sources":["../src/components/BDateRangePicker.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-relative\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"placeholder\"]\nconst _hoisted_3 = [\"for\"]\n\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\n/**\n * https://stackoverflow.com/questions/25384360/how-to-prevent-moment-js-from-loading-locales-with-webpack\n * Due to this issue with moment (it loads a bunch of unnecessary ./locale)\n * https://github.com/ksloan/moment-mini\n */\nimport { useI18n } from 'vue-i18n';\n// https://air-datepicker.com/docs\n// DO NOT upgrade to the higher version than 3.3.0\nimport AirDatepicker, {\n type AirDatepickerButton,\n type AirDatepickerLocale,\n} from 'air-datepicker';\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { BDatePickerView } from '@/constants/Enums';\nimport { lockScrollBody, unlockScrollBody } from '@/helpers/ComponentHelper';\nimport type { BDateRangePickerProps } from '@/types';\nimport { v4 as uuid } from 'uuid';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\nimport { isEmpty } from 'lodash-es';\n\n/**\n * Props\n */\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BDateRangePicker',\n props: {\n inputId: { default: '' },\n modelValue: {},\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: '' },\n maxDate: { default: '' },\n view: { default: BDatePickerView.Days },\n hideDetails: { type: Boolean, default: false },\n position: { default: 'bottom left' }\n },\n emits: ['update:modelValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\n\n/**\n * Events\n */\n\n\n/**\n * Data\n */\nconst { t, locale } = useI18n();\nlet datePicker: AirDatepicker<HTMLInputElement>;\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst selectedDate = ref();\n\n/**\n * Computed\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 datePickerButtons = computed<AirDatepickerButton[]>(() => [\n {\n content: t('ds.components.base.date_picker.buttons.cancel'),\n className:\n 'ds-bg-transparent focus:ds-ring-1 focus:ds-ring-gray-300 ds-border-inner-primary-f !ds-text-primary-t hover:ds-bg-[#e6f0fe] ds-text-sm ds-leading-4 ds-px-4 ds-mx-1',\n onClick: (dp) => {\n dp.clear();\n nextTick(() => {\n validate();\n });\n dp.hide();\n },\n },\n {\n content: t('ds.components.base.date_picker.buttons.confirm'),\n className: `${id.value}-btn-confirm focus:ds-ring-1 focus:ds-ring-1 focus:ds-ring-blue-300 ds-bg-gradient-to-r ds-from-primary-f-stop ds-from-primary-f ds-to-primary-t !ds-text-white enabled:hover:ds-bg-[#0e4bbd] ds-text-sm ds-leading-4 ds-px-4 disabled:ds-from-[#e2e4e8] disabled:ds-to-[#e2e4e8] disabled:ds-text-black/[0.4] ds-mx-1`,\n onClick: (dp) => {\n value.value = selectedDate.value;\n nextTick(() => {\n validate();\n });\n dp.hide();\n },\n attrs: props.required\n ? {\n disabled: '',\n }\n : undefined,\n },\n]);\nconst datePickerOptions = computed(() => {\n const datePickerLocale: AirDatepickerLocale = {\n days: [\n t('ds.components.base.date_picker.days.sunday'),\n t('ds.components.base.date_picker.days.monday'),\n t('ds.components.base.date_picker.days.tuesday'),\n t('ds.components.base.date_picker.days.wednesday'),\n t('ds.components.base.date_picker.days.thursday'),\n t('ds.components.base.date_picker.days.friday'),\n t('ds.components.base.date_picker.days.saturday'),\n ],\n daysShort: [\n t('ds.components.base.date_picker.days_short.sunday'),\n t('ds.components.base.date_picker.days_short.monday'),\n t('ds.components.base.date_picker.days_short.tuesday'),\n t('ds.components.base.date_picker.days_short.wednesday'),\n t('ds.components.base.date_picker.days_short.thursday'),\n t('ds.components.base.date_picker.days_short.friday'),\n t('ds.components.base.date_picker.days_short.saturday'),\n ],\n daysMin: [\n t('ds.components.base.date_picker.days_min.sunday'),\n t('ds.components.base.date_picker.days_min.monday'),\n t('ds.components.base.date_picker.days_min.tuesday'),\n t('ds.components.base.date_picker.days_min.wednesday'),\n t('ds.components.base.date_picker.days_min.thursday'),\n t('ds.components.base.date_picker.days_min.friday'),\n t('ds.components.base.date_picker.days_min.saturday'),\n ],\n months: [\n t('ds.components.base.date_picker.months.january'),\n t('ds.components.base.date_picker.months.february'),\n t('ds.components.base.date_picker.months.march'),\n t('ds.components.base.date_picker.months.april'),\n t('ds.components.base.date_picker.months.may'),\n t('ds.components.base.date_picker.months.june'),\n t('ds.components.base.date_picker.months.july'),\n t('ds.components.base.date_picker.months.august'),\n t('ds.components.base.date_picker.months.september'),\n t('ds.components.base.date_picker.months.october'),\n t('ds.components.base.date_picker.months.november'),\n t('ds.components.base.date_picker.months.december'),\n ],\n monthsShort: [\n t('ds.components.base.date_picker.months_short.january'),\n t('ds.components.base.date_picker.months_short.february'),\n t('ds.components.base.date_picker.months_short.march'),\n t('ds.components.base.date_picker.months_short.april'),\n t('ds.components.base.date_picker.months_short.may'),\n t('ds.components.base.date_picker.months_short.june'),\n t('ds.components.base.date_picker.months_short.july'),\n t('ds.components.base.date_picker.months_short.august'),\n t('ds.components.base.date_picker.months_short.september'),\n t('ds.components.base.date_picker.months_short.october'),\n t('ds.components.base.date_picker.months_short.november'),\n t('ds.components.base.date_picker.months_short.december'),\n ],\n today: t('ds.components.base.date_picker.buttons.today'),\n clear: t('ds.components.base.date_picker.buttons.clear'),\n dateFormat: 'dd/MM/yyyy',\n timeFormat: 'HH:mm',\n firstDay: 1, // Monday\n };\n const onSelectDatePicker = ({\n date,\n }: {\n date: Date | Date[];\n formattedDate: string | string[];\n datepicker: AirDatepicker;\n }) => {\n // 'date' is undefined when clicking 'Clear' button/ deselect the date\n selectedDate.value = date;\n if (props.required) {\n toggleButtonConfirm(!!date);\n }\n };\n\n return {\n locale: datePickerLocale,\n selectedDates: [...props.modelValue],\n onSelect: onSelectDatePicker,\n buttons: [...datePickerButtons.value],\n showOtherMonths: false,\n timepicker: false,\n onlyTimepicker: false,\n minDate: props.minDate,\n maxDate: props.maxDate,\n view: props.view,\n onHide: onHidePicker,\n onShow: onShowPicker,\n navTitles: {\n days: 'MMMM yyyy',\n },\n position: props.position,\n range: true,\n multipleDatesSeparator: ' - ',\n } as any; // AirDatepickerOptions\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 inputCssClassValue = computed(() => [\n 'ds-border ds-rounded-lg ds-block ds-w-full ds-text-sm ds-px-3 ds-h-[40px]',\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': datePickerVisible.value,\n },\n props.inputCssClass,\n]);\nconst datePickerVisible = ref(false);\n\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n\n/**\n * Watch\n */\nwatch(\n () => props.modelValue,\n () => {\n if (checkIfModelNeedToSync(datePicker.selectedDates)) {\n datePicker.selectDate(props.modelValue);\n }\n },\n { deep: true },\n);\nwatch(\n [\n locale,\n () => props.position,\n () => props.minDate,\n () => props.maxDate,\n () => props.view,\n ],\n () => {\n datePicker.update(datePickerOptions.value);\n },\n);\n\nonMounted(() => {\n datePicker = new AirDatepicker<HTMLInputElement>(\n `#${id.value}Picker`,\n datePickerOptions.value,\n );\n});\n\n/**\n * Methods\n */\nconst onHidePicker = () => {\n datePickerVisible.value = false;\n unlockScrollBody();\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst onShowPicker = () => {\n datePickerVisible.value = true;\n if (props.modelValue) {\n datePicker.selectDate(props.modelValue);\n } else {\n datePicker.clear();\n }\n lockScrollBody();\n};\nconst checkIfModelNeedToSync = (date: Date[]) => {\n const rules = [\n !isEmpty(props.modelValue) && isEmpty(date),\n !isEmpty(date) && isEmpty(props.modelValue),\n !isEmpty(props.modelValue) &&\n !isEmpty(date) &&\n props.modelValue.some((v, i) => v?.getTime() !== date[i]?.getTime()),\n ];\n\n return rules.some((r) => r);\n};\nconst toggleButtonConfirm = (enabled: boolean) => {\n const btnEl = document.querySelector(`.${id.value}-btn-confirm`);\n if (enabled) {\n btnEl?.removeAttribute('disabled');\n } else {\n btnEl?.setAttribute('disabled', '');\n }\n};\n\n/**\n * Lifecycle hooks\n */\nonBeforeUnmount(() => {\n unlockScrollBody();\n});\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 _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n id: `${id.value}Picker`,\n class: _normalizeClass([inputCssClassValue.value, \"ds-absolute ds-top-0 ds-z-[1] ds-drop-shadow-light\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n readonly: \"\"\n }, null, 10, _hoisted_2),\n _createElementVNode(\"label\", {\n for: `${id.value}Picker`,\n class: \"ds-absolute ds-right-3 ds-top-2 ds-z-[3]\"\n }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([[\n props.disabled ? 'ds-text-black/[0.4]' : 'ds-text-black/[0.85]',\n ], \"fa-solid fa-calendar-lines\"])\n }, null, 2)\n ], 8, _hoisted_3)\n ]),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\",\n \"prepend-icon\": \"fa-solid fa-circle-exclamation\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","_defineComponent","BDatePickerView","__props","emit","props","t","locale","useI18n","datePicker","validateRequired","val","selectedDate","ref","id","computed","uuid","value","datePickerButtons","dp","nextTick","validate","datePickerOptions","datePickerLocale","onSelectDatePicker","date","toggleButtonConfirm","onHidePicker","onShowPicker","vRules","result","inputCssClassValue","validationResult","datePickerVisible","useValidationField","watch","checkIfModelNeedToSync","onMounted","AirDatepicker","unlockScrollBody","lockScrollBody","isEmpty","v","i","_a","r","enabled","btnEl","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createVNode","BLabel","_createElementVNode","_normalizeClass","_createCommentVNode","_createBlock","BErrorMessage","_unref"],"mappings":";;;;;;;;;;AAGA,MAAMA,IAAa,EAAE,OAAO,iBACtBC,IAAa,CAAC,MAAM,YAAY,aAAa,GAC7CC,IAAa,CAAC,KAAK,GAuCGC,KAAiBC,gBAAAA,EAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,SAAS,EAAE,SAAS,GAAG;AAAA,IACvB,YAAY,CAAC;AAAA,IACb,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,GAAG;AAAA,IACvB,SAAS,EAAE,SAAS,GAAG;AAAA,IACvB,MAAM,EAAE,SAASC,EAAgB,KAAK;AAAA,IACtC,aAAa,EAAE,MAAM,SAAS,SAAS,GAAM;AAAA,IAC7C,UAAU,EAAE,SAAS,cAAc;AAAA,EACrC;AAAA,EACA,OAAO,CAAC,mBAAmB;AAAA,EAC3B,MAAMC,GAAc,EAAE,MAAAC,KAAQ;AAEhC,UAAMC,IAAQF,GAYR,EAAE,GAAAG,GAAG,QAAAC,EAAO,IAAIC,EAAQ;AAC1B,QAAAC;AACJ,UAAMC,IAAmC;AAAA,MACvC,cAAc,CAACC,MAAQ,CAAC,CAACA;AAAA,MACzB,cAAc,MACZN,EAAM,wBAAwBC,EAAE,0BAA0B;AAAA,IAAA,GAExDM,IAAeC,KAMfC,IAAKC,EAAS,MAAMV,EAAM,WAAW,MAAMW,GAAM,EAAE,GACnDC,IAAQF,EAAS;AAAA,MACrB,MAAM;AACJ,eAAOV,EAAM;AAAA,MACf;AAAA,MACA,IAAIM,GAAK;AACP,QAAAP,EAAK,qBAAqBO,CAAG;AAAA,MAC/B;AAAA,IAAA,CACD,GACKO,IAAoBH,EAAgC,MAAM;AAAA,MAC9D;AAAA,QACE,SAAST,EAAE,+CAA+C;AAAA,QAC1D,WACE;AAAA,QACF,SAAS,CAACa,MAAO;AACf,UAAAA,EAAG,MAAM,GACTC,EAAS,MAAM;AACJ,YAAAC;UAAA,CACV,GACDF,EAAG,KAAK;AAAA,QACV;AAAA,MACF;AAAA,MACA;AAAA,QACE,SAASb,EAAE,gDAAgD;AAAA,QAC3D,WAAW,GAAGQ,EAAG,KAAK;AAAA,QACtB,SAAS,CAACK,MAAO;AACf,UAAAF,EAAM,QAAQL,EAAa,OAC3BQ,EAAS,MAAM;AACJ,YAAAC;UAAA,CACV,GACDF,EAAG,KAAK;AAAA,QACV;AAAA,QACA,OAAOd,EAAM,WACT;AAAA,UACE,UAAU;AAAA,QAEZ,IAAA;AAAA,MACN;AAAA,IAAA,CACD,GACKiB,IAAoBP,EAAS,MAAM;AACvC,YAAMQ,IAAwC;AAAA,QAC5C,MAAM;AAAA,UACJjB,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,6CAA6C;AAAA,UAC/CA,EAAE,+CAA+C;AAAA,UACjDA,EAAE,8CAA8C;AAAA,UAChDA,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,8CAA8C;AAAA,QAClD;AAAA,QACA,WAAW;AAAA,UACTA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,mDAAmD;AAAA,UACrDA,EAAE,qDAAqD;AAAA,UACvDA,EAAE,oDAAoD;AAAA,UACtDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,oDAAoD;AAAA,QACxD;AAAA,QACA,SAAS;AAAA,UACPA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,iDAAiD;AAAA,UACnDA,EAAE,mDAAmD;AAAA,UACrDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,kDAAkD;AAAA,QACtD;AAAA,QACA,QAAQ;AAAA,UACNA,EAAE,+CAA+C;AAAA,UACjDA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,6CAA6C;AAAA,UAC/CA,EAAE,6CAA6C;AAAA,UAC/CA,EAAE,2CAA2C;AAAA,UAC7CA,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,8CAA8C;AAAA,UAChDA,EAAE,iDAAiD;AAAA,UACnDA,EAAE,+CAA+C;AAAA,UACjDA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,gDAAgD;AAAA,QACpD;AAAA,QACA,aAAa;AAAA,UACXA,EAAE,qDAAqD;AAAA,UACvDA,EAAE,sDAAsD;AAAA,UACxDA,EAAE,mDAAmD;AAAA,UACrDA,EAAE,mDAAmD;AAAA,UACrDA,EAAE,iDAAiD;AAAA,UACnDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,oDAAoD;AAAA,UACtDA,EAAE,uDAAuD;AAAA,UACzDA,EAAE,qDAAqD;AAAA,UACvDA,EAAE,sDAAsD;AAAA,UACxDA,EAAE,sDAAsD;AAAA,QAC1D;AAAA,QACA,OAAOA,EAAE,8CAA8C;AAAA,QACvD,OAAOA,EAAE,8CAA8C;AAAA,QACvD,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,UAAU;AAAA;AAAA,MAAA,GAENkB,IAAqB,CAAC;AAAA,QAC1B,MAAAC;AAAA,MAAA,MAKI;AAEJ,QAAAb,EAAa,QAAQa,GACjBpB,EAAM,YACYqB,EAAA,CAAC,CAACD,CAAI;AAAA,MAC5B;AAGK,aAAA;AAAA,QACL,QAAQF;AAAA,QACR,eAAe,CAAC,GAAGlB,EAAM,UAAU;AAAA,QACnC,UAAUmB;AAAA,QACV,SAAS,CAAC,GAAGN,EAAkB,KAAK;AAAA,QACpC,iBAAiB;AAAA,QACjB,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,SAASb,EAAM;AAAA,QACf,SAASA,EAAM;AAAA,QACf,MAAMA,EAAM;AAAA,QACZ,QAAQsB;AAAA,QACR,QAAQC;AAAA,QACR,WAAW;AAAA,UACT,MAAM;AAAA,QACR;AAAA,QACA,UAAUvB,EAAM;AAAA,QAChB,OAAO;AAAA,QACP,wBAAwB;AAAA,MAAA;AAAA,IAC1B,CACD,GACKwB,IAASd,EAAS,MAAM;AAC5B,UAAIe,IAA2B,CAAA;AAE/B,aAAIzB,EAAM,YACRyB,EAAO,KAAKpB,CAAgB,GAE1BL,EAAM,oBACCyB,IAAAA,EAAO,OAAOzB,EAAM,eAAe,IAGvCyB,EAAO,SAASA,IAAS;AAAA,IAAA,CACjC,GACKC,IAAqBhB,EAAS,MAAM;AAAA,MACxC;AAAA,MACA;AAAA,QACE,6DAA6DV,EAAM;AAAA,QACnE,wBAAwB,CAACA,EAAM;AAAA,QAC/B,uDACE,CAAC2B,EAAiB,MAAM;AAAA,QAC1B,mFACEA,EAAiB,MAAM;AAAA,QACzB,4CAA4CC,EAAkB;AAAA,MAChE;AAAA,MACA5B,EAAM;AAAA,IAAA,CACP,GACK4B,IAAoBpB,EAAI,EAAK,GAE7B,EAAE,UAAAQ,GAAU,kBAAAW,EAAA,IAAqBE;AAAA,MACrCpB,EAAG;AAAA,MACHG;AAAA,MACAY,EAAO;AAAA,IAAA;AAMT,IAAAM;AAAA,MACE,MAAM9B,EAAM;AAAA,MACZ,MAAM;AACA,QAAA+B,EAAuB3B,EAAW,aAAa,KACtCA,EAAA,WAAWJ,EAAM,UAAU;AAAA,MAE1C;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,GAEf8B;AAAA,MACE;AAAA,QACE5B;AAAA,QACA,MAAMF,EAAM;AAAA,QACZ,MAAMA,EAAM;AAAA,QACZ,MAAMA,EAAM;AAAA,QACZ,MAAMA,EAAM;AAAA,MACd;AAAA,MACA,MAAM;AACO,QAAAI,EAAA,OAAOa,EAAkB,KAAK;AAAA,MAC3C;AAAA,IAAA,GAGFe,EAAU,MAAM;AACd,MAAA5B,IAAa,IAAI6B;AAAA,QACf,IAAIxB,EAAG,KAAK;AAAA,QACZQ,EAAkB;AAAA,MAAA;AAAA,IACpB,CACD;AAKD,UAAMK,IAAe,MAAM;AACzB,MAAAM,EAAkB,QAAQ,IACTM;IAAA,GAGbX,IAAe,MAAM;AACzB,MAAAK,EAAkB,QAAQ,IACtB5B,EAAM,aACGI,EAAA,WAAWJ,EAAM,UAAU,IAEtCI,EAAW,MAAM,GAEJ+B;IAAA,GAEXJ,IAAyB,CAACX,MAChB;AAAA,MACZ,CAACgB,EAAQpC,EAAM,UAAU,KAAKoC,EAAQhB,CAAI;AAAA,MAC1C,CAACgB,EAAQhB,CAAI,KAAKgB,EAAQpC,EAAM,UAAU;AAAA,MAC1C,CAACoC,EAAQpC,EAAM,UAAU,KACvB,CAACoC,EAAQhB,CAAI,KACbpB,EAAM,WAAW,KAAK,CAACqC,GAAGC;;AAAM,gBAAAD,KAAA,gBAAAA,EAAG,iBAAcE,IAAAnB,EAAKkB,CAAC,MAAN,gBAAAC,EAAS;AAAA,OAAS;AAAA,IAAA,EAG1D,KAAK,CAACC,MAAMA,CAAC,GAEtBnB,IAAsB,CAACoB,MAAqB;AAChD,YAAMC,IAAQ,SAAS,cAAc,IAAIjC,EAAG,KAAK,cAAc;AAC/D,MAAIgC,IACFC,KAAA,QAAAA,EAAO,gBAAgB,cAEhBA,KAAA,QAAAA,EAAA,aAAa,YAAY;AAAA,IAClC;AAMF,WAAAC,EAAgB,MAAM;AACH,MAAAT;IAAA,CAClB,GAEM,CAACU,GAAUC,OACRC,EAAW,GAAGC,EAAoB,OAAO,MAAM;AAAA,MACrDC,EAAaC,GAAQ;AAAA,QACnB,IAAIxC,EAAG;AAAA,QACP,OAAOmC,EAAK;AAAA,QACZ,UAAUA,EAAK;AAAA,MAAA,GACd,MAAM,GAAG,CAAC,MAAM,SAAS,UAAU,CAAC;AAAA,MACvCM,EAAoB,OAAO1D,GAAY;AAAA,QACrC0D,EAAoB,SAAS;AAAA,UAC3B,IAAI,GAAGzC,EAAG,KAAK;AAAA,UACf,OAAO0C,EAAgB,CAACzB,EAAmB,OAAO,oDAAoD,CAAC;AAAA,UACvG,UAAUkB,EAAK;AAAA,UACf,aAAaA,EAAK;AAAA,UAClB,UAAU;AAAA,QAAA,GACT,MAAM,IAAInD,CAAU;AAAA,QACvByD,EAAoB,SAAS;AAAA,UAC3B,KAAK,GAAGzC,EAAG,KAAK;AAAA,UAChB,OAAO;AAAA,QAAA,GACN;AAAA,UACDyC,EAAoB,KAAK;AAAA,YACvB,OAAOC,EAAgB,CAAC;AAAA,cACtBnD,EAAM,WAAW,wBAAwB;AAAA,YAC3C,GAAG,4BAA4B,CAAC;AAAA,UAAA,GAC/B,MAAM,CAAC;AAAA,QAAA,GACT,GAAGN,CAAU;AAAA,MAAA,CACjB;AAAA,MACCkD,EAAK,cAOHQ,EAAoB,IAAI,EAAI,KAN3BN,EAAW,GAAGO,EAAaC,GAAe;AAAA,QACzC,KAAK;AAAA,QACL,iBAAiBC,EAAO5B,CAAgB,EAAE,aAAa;AAAA,QACvD,OAAO;AAAA,QACP,gBAAgB;AAAA,MAAA,GACf,MAAM,GAAG,CAAC,eAAe,CAAC;AAAA,IACD,CACjC;AAAA,EAEH;AAEA,CAAC;"}
|
|
1
|
+
{"version":3,"file":"design-system11.mjs","sources":["../src/components/BDateRangePicker.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-relative\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"placeholder\", \"value\"]\nconst _hoisted_3 = [\"id\", \"disabled\", \"placeholder\"]\nconst _hoisted_4 = [\"for\"]\n\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue';\n/**\n * https://stackoverflow.com/questions/25384360/how-to-prevent-moment-js-from-loading-locales-with-webpack\n * Due to this issue with moment (it loads a bunch of unnecessary ./locale)\n * https://github.com/ksloan/moment-mini\n */\nimport { useI18n } from 'vue-i18n';\n// https://air-datepicker.com/docs\n// DO NOT upgrade to the higher version than 3.3.0\nimport AirDatepicker, {\n type AirDatepickerButton,\n type AirDatepickerLocale,\n} from 'air-datepicker';\n\nimport {\n useValidationField,\n type ValidationRule,\n} from '@/composables/Validation';\nimport { BDatePickerView } from '@/constants/Enums';\nimport { lockScrollBody, unlockScrollBody } from '@/helpers/ComponentHelper';\nimport type { BDateRangePickerProps } from '@/types';\nimport { v4 as uuid } from 'uuid';\nimport BErrorMessage from './BErrorMessage.vue';\nimport BLabel from './BLabel.vue';\nimport { isEmpty } from 'lodash-es';\nimport { checkIfISOFormat } from '@/helpers/DateHelper';\nimport moment from 'moment-mini';\nimport { DateDelimiter } from '@/constants/Common';\n\n/**\n * Props\n */\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BDateRangePicker',\n props: {\n inputId: { default: '' },\n modelValue: {},\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: '' },\n maxDate: { default: '' },\n view: { default: BDatePickerView.Days },\n hideDetails: { type: Boolean, default: false },\n position: { default: 'bottom left' }\n },\n emits: ['update:modelValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props;\n\n\n\n/**\n * Events\n */\n\n\n/**\n * Data\n */\nconst { t, locale } = useI18n();\nconst dateFormat = `DD${DateDelimiter}MM${DateDelimiter}YYYY`; // moment's date format\nlet datePicker: AirDatepicker<HTMLInputElement>;\nconst validateRequired: ValidationRule = {\n validateRule: (val) => !!val,\n errorMessage: () =>\n props.requiredErrorMessage || t('ds.global.field_required'),\n};\nconst selectedDate = ref();\n\n/**\n * Computed\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 datePickerButtons = computed<AirDatepickerButton[]>(() => [\n {\n content: t('ds.components.base.date_picker.buttons.cancel'),\n className:\n 'ds-bg-transparent focus:ds-ring-1 focus:ds-ring-gray-300 ds-border-inner-primary-f !ds-text-primary-t hover:ds-bg-[#e6f0fe] ds-text-sm ds-leading-4 ds-px-4 ds-mx-1',\n onClick: (dp) => {\n dp.clear();\n nextTick(() => {\n validate();\n });\n dp.hide();\n },\n },\n {\n content: t('ds.components.base.date_picker.buttons.confirm'),\n className: `${id.value}-btn-confirm focus:ds-ring-1 focus:ds-ring-1 focus:ds-ring-blue-300 ds-bg-gradient-to-r ds-from-primary-f-stop ds-from-primary-f ds-to-primary-t !ds-text-white enabled:hover:ds-bg-[#0e4bbd] ds-text-sm ds-leading-4 ds-px-4 disabled:ds-from-[#e2e4e8] disabled:ds-to-[#e2e4e8] disabled:ds-text-black/[0.4] ds-mx-1`,\n onClick: (dp) => {\n value.value = checkIfValidDateValue(selectedDate.value)\n ? selectedDate.value\n : [];\n nextTick(() => {\n validate();\n });\n dp.hide();\n },\n attrs: props.required\n ? {\n disabled: '',\n }\n : undefined,\n },\n]);\nconst datePickerOptions = computed(() => {\n const datePickerLocale: AirDatepickerLocale = {\n days: [\n t('ds.components.base.date_picker.days.sunday'),\n t('ds.components.base.date_picker.days.monday'),\n t('ds.components.base.date_picker.days.tuesday'),\n t('ds.components.base.date_picker.days.wednesday'),\n t('ds.components.base.date_picker.days.thursday'),\n t('ds.components.base.date_picker.days.friday'),\n t('ds.components.base.date_picker.days.saturday'),\n ],\n daysShort: [\n t('ds.components.base.date_picker.days_short.sunday'),\n t('ds.components.base.date_picker.days_short.monday'),\n t('ds.components.base.date_picker.days_short.tuesday'),\n t('ds.components.base.date_picker.days_short.wednesday'),\n t('ds.components.base.date_picker.days_short.thursday'),\n t('ds.components.base.date_picker.days_short.friday'),\n t('ds.components.base.date_picker.days_short.saturday'),\n ],\n daysMin: [\n t('ds.components.base.date_picker.days_min.sunday'),\n t('ds.components.base.date_picker.days_min.monday'),\n t('ds.components.base.date_picker.days_min.tuesday'),\n t('ds.components.base.date_picker.days_min.wednesday'),\n t('ds.components.base.date_picker.days_min.thursday'),\n t('ds.components.base.date_picker.days_min.friday'),\n t('ds.components.base.date_picker.days_min.saturday'),\n ],\n months: [\n t('ds.components.base.date_picker.months.january'),\n t('ds.components.base.date_picker.months.february'),\n t('ds.components.base.date_picker.months.march'),\n t('ds.components.base.date_picker.months.april'),\n t('ds.components.base.date_picker.months.may'),\n t('ds.components.base.date_picker.months.june'),\n t('ds.components.base.date_picker.months.july'),\n t('ds.components.base.date_picker.months.august'),\n t('ds.components.base.date_picker.months.september'),\n t('ds.components.base.date_picker.months.october'),\n t('ds.components.base.date_picker.months.november'),\n t('ds.components.base.date_picker.months.december'),\n ],\n monthsShort: [\n t('ds.components.base.date_picker.months_short.january'),\n t('ds.components.base.date_picker.months_short.february'),\n t('ds.components.base.date_picker.months_short.march'),\n t('ds.components.base.date_picker.months_short.april'),\n t('ds.components.base.date_picker.months_short.may'),\n t('ds.components.base.date_picker.months_short.june'),\n t('ds.components.base.date_picker.months_short.july'),\n t('ds.components.base.date_picker.months_short.august'),\n t('ds.components.base.date_picker.months_short.september'),\n t('ds.components.base.date_picker.months_short.october'),\n t('ds.components.base.date_picker.months_short.november'),\n t('ds.components.base.date_picker.months_short.december'),\n ],\n today: t('ds.components.base.date_picker.buttons.today'),\n clear: t('ds.components.base.date_picker.buttons.clear'),\n dateFormat: 'dd/MM/yyyy',\n timeFormat: 'HH:mm',\n firstDay: 1, // Monday\n };\n const onSelectDatePicker = ({\n date,\n }: {\n date: Date[];\n formattedDate: string | string[];\n datepicker: AirDatepicker;\n }) => {\n const isValidDate = checkIfValidDateValue(date);\n selectedDate.value = isValidDate ? date : [];\n if (props.required) {\n toggleButtonConfirm(isValidDate);\n }\n };\n\n return {\n locale: datePickerLocale,\n selectedDates: props.modelValue,\n onSelect: onSelectDatePicker,\n buttons: datePickerButtons.value,\n showOtherMonths: false,\n timepicker: false,\n onlyTimepicker: false,\n minDate: props.minDate,\n maxDate: props.maxDate,\n view: props.view,\n onHide: onHidePicker,\n onShow: onShowPicker,\n navTitles: {\n days: 'MMMM yyyy',\n },\n position: props.position,\n range: true,\n multipleDatesSeparator: ' - ',\n } as any; // AirDatepickerOptions\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 inputCssClassValue = computed(() => [\n 'ds-border ds-rounded-lg ds-block ds-w-full ds-text-sm ds-px-3 ds-h-[40px]',\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': datePickerVisible.value,\n },\n props.inputCssClass,\n]);\nconst datePickerVisible = ref(false);\nconst displayValue = computed(() =>\n props.modelValue.map((val) => formatDate(val)).join(' - '),\n);\n\nconst { validate, validationResult } = useValidationField(\n id.value,\n value,\n vRules.value,\n);\n\n/**\n * Watch\n */\nwatch(\n () => props.modelValue,\n () => {\n if (checkIfModelNeedToSync(datePicker.selectedDates)) {\n if (checkIfValidDateValue(props.modelValue)) {\n datePicker.selectDate(props.modelValue);\n } else {\n datePicker.clear();\n }\n }\n },\n { deep: true },\n);\nwatch(\n [\n locale,\n () => props.position,\n () => props.minDate,\n () => props.maxDate,\n () => props.view,\n ],\n () => {\n datePicker.update(datePickerOptions.value);\n },\n);\n\n/**\n * Methods\n */\nconst checkIfValidDateValue = (d: Date[]) => d?.length === 2;\nconst formatDate = (date: string | Date) =>\n checkIfISOFormat(date) ? moment(date).format(dateFormat) : date;\nconst onHidePicker = () => {\n datePickerVisible.value = false;\n unlockScrollBody();\n};\nconst onShowPicker = () => {\n datePickerVisible.value = true;\n if (checkIfValidDateValue(props.modelValue)) {\n datePicker.selectDate(props.modelValue);\n } else {\n datePicker.clear();\n }\n lockScrollBody();\n};\nconst checkIfModelNeedToSync = (date: Date[]) => {\n const rules = [\n !isEmpty(props.modelValue) && isEmpty(date),\n !isEmpty(date) && isEmpty(props.modelValue),\n !isEmpty(props.modelValue) &&\n !isEmpty(date) &&\n props.modelValue.some((v, i) => v?.getTime() !== date[i]?.getTime()),\n ];\n\n return rules.some((r) => r);\n};\nconst toggleButtonConfirm = (enabled: boolean) => {\n const btnEl = document.querySelector(`.${id.value}-btn-confirm`);\n if (enabled) {\n btnEl?.removeAttribute('disabled');\n } else {\n btnEl?.setAttribute('disabled', '');\n }\n};\n\n/**\n * Lifecycle hooks\n */\nonMounted(() => {\n datePicker = new AirDatepicker<HTMLInputElement>(\n `#${id.value}Picker`,\n datePickerOptions.value,\n );\n});\nonBeforeUnmount(() => {\n unlockScrollBody();\n});\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 _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n id: id.value,\n class: _normalizeClass([inputCssClassValue.value, \"ds-relative ds-z-[2] ds-drop-shadow-light\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n value: displayValue.value,\n readonly: \"\"\n }, null, 10, _hoisted_2),\n _createElementVNode(\"input\", {\n id: `${id.value}Picker`,\n class: _normalizeClass([inputCssClassValue.value, \"ds-absolute ds-top-0 ds-z-[1]\"]),\n disabled: _ctx.disabled,\n placeholder: _ctx.placeholder,\n readonly: \"\"\n }, null, 10, _hoisted_3),\n _createElementVNode(\"label\", {\n for: `${id.value}Picker`,\n class: \"ds-absolute ds-right-3 ds-top-2 ds-z-[3]\"\n }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([[\n props.disabled ? 'ds-text-black/[0.4]' : 'ds-text-black/[0.85]',\n ], \"fa-solid fa-calendar-lines\"])\n }, null, 2)\n ], 8, _hoisted_4)\n ]),\n (!_ctx.hideDetails)\n ? (_openBlock(), _createBlock(BErrorMessage, {\n key: 0,\n \"error-message\": _unref(validationResult).errorMessage(),\n class: \"ds-mt-1\",\n \"prepend-icon\": \"fa-solid fa-circle-exclamation\"\n }, null, 8, [\"error-message\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_main","_defineComponent","BDatePickerView","__props","emit","props","t","locale","useI18n","dateFormat","DateDelimiter","datePicker","validateRequired","val","selectedDate","ref","id","computed","uuid","value","datePickerButtons","dp","nextTick","validate","checkIfValidDateValue","datePickerOptions","datePickerLocale","onSelectDatePicker","date","isValidDate","toggleButtonConfirm","onHidePicker","onShowPicker","vRules","result","inputCssClassValue","validationResult","datePickerVisible","displayValue","formatDate","useValidationField","watch","checkIfModelNeedToSync","d","checkIfISOFormat","moment","unlockScrollBody","lockScrollBody","isEmpty","v","i","_a","r","enabled","btnEl","onMounted","AirDatepicker","onBeforeUnmount","_ctx","_cache","_openBlock","_createElementBlock","_createVNode","BLabel","_createElementVNode","_normalizeClass","_createCommentVNode","_createBlock","BErrorMessage","_unref"],"mappings":";;;;;;;;;;;;;AAGA,MAAMA,KAAa,EAAE,OAAO,iBACtBC,KAAa,CAAC,MAAM,YAAY,eAAe,OAAO,GACtDC,KAAa,CAAC,MAAM,YAAY,aAAa,GAC7CC,KAAa,CAAC,KAAK,GA0CGC,KAAiBC,gBAAAA,EAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,SAAS,EAAE,SAAS,GAAG;AAAA,IACvB,YAAY,CAAC;AAAA,IACb,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,GAAG;AAAA,IACvB,SAAS,EAAE,SAAS,GAAG;AAAA,IACvB,MAAM,EAAE,SAASC,EAAgB,KAAK;AAAA,IACtC,aAAa,EAAE,MAAM,SAAS,SAAS,GAAM;AAAA,IAC7C,UAAU,EAAE,SAAS,cAAc;AAAA,EACrC;AAAA,EACA,OAAO,CAAC,mBAAmB;AAAA,EAC3B,MAAMC,GAAc,EAAE,MAAAC,KAAQ;AAEhC,UAAMC,IAAQF,GAYR,EAAE,GAAAG,GAAG,QAAAC,EAAO,IAAIC,EAAQ,GACxBC,IAAa,KAAKC,CAAa,KAAKA,CAAa;AACnD,QAAAC;AACJ,UAAMC,IAAmC;AAAA,MACvC,cAAc,CAACC,MAAQ,CAAC,CAACA;AAAA,MACzB,cAAc,MACZR,EAAM,wBAAwBC,EAAE,0BAA0B;AAAA,IAAA,GAExDQ,IAAeC,KAMfC,IAAKC,EAAS,MAAMZ,EAAM,WAAW,MAAMa,IAAM,EAAE,GACnDC,IAAQF,EAAS;AAAA,MACrB,MAAM;AACJ,eAAOZ,EAAM;AAAA,MACf;AAAA,MACA,IAAIQ,GAAK;AACP,QAAAT,EAAK,qBAAqBS,CAAG;AAAA,MAC/B;AAAA,IAAA,CACD,GACKO,IAAoBH,EAAgC,MAAM;AAAA,MAC9D;AAAA,QACE,SAASX,EAAE,+CAA+C;AAAA,QAC1D,WACE;AAAA,QACF,SAAS,CAACe,MAAO;AACf,UAAAA,EAAG,MAAM,GACTC,EAAS,MAAM;AACJ,YAAAC;UAAA,CACV,GACDF,EAAG,KAAK;AAAA,QACV;AAAA,MACF;AAAA,MACA;AAAA,QACE,SAASf,EAAE,gDAAgD;AAAA,QAC3D,WAAW,GAAGU,EAAG,KAAK;AAAA,QACtB,SAAS,CAACK,MAAO;AACf,UAAAF,EAAM,QAAQK,EAAsBV,EAAa,KAAK,IAClDA,EAAa,QACb,IACJQ,EAAS,MAAM;AACJ,YAAAC;UAAA,CACV,GACDF,EAAG,KAAK;AAAA,QACV;AAAA,QACA,OAAOhB,EAAM,WACT;AAAA,UACE,UAAU;AAAA,QAEZ,IAAA;AAAA,MACN;AAAA,IAAA,CACD,GACKoB,IAAoBR,EAAS,MAAM;AACvC,YAAMS,IAAwC;AAAA,QAC5C,MAAM;AAAA,UACJpB,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,6CAA6C;AAAA,UAC/CA,EAAE,+CAA+C;AAAA,UACjDA,EAAE,8CAA8C;AAAA,UAChDA,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,8CAA8C;AAAA,QAClD;AAAA,QACA,WAAW;AAAA,UACTA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,mDAAmD;AAAA,UACrDA,EAAE,qDAAqD;AAAA,UACvDA,EAAE,oDAAoD;AAAA,UACtDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,oDAAoD;AAAA,QACxD;AAAA,QACA,SAAS;AAAA,UACPA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,iDAAiD;AAAA,UACnDA,EAAE,mDAAmD;AAAA,UACrDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,kDAAkD;AAAA,QACtD;AAAA,QACA,QAAQ;AAAA,UACNA,EAAE,+CAA+C;AAAA,UACjDA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,6CAA6C;AAAA,UAC/CA,EAAE,6CAA6C;AAAA,UAC/CA,EAAE,2CAA2C;AAAA,UAC7CA,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,4CAA4C;AAAA,UAC9CA,EAAE,8CAA8C;AAAA,UAChDA,EAAE,iDAAiD;AAAA,UACnDA,EAAE,+CAA+C;AAAA,UACjDA,EAAE,gDAAgD;AAAA,UAClDA,EAAE,gDAAgD;AAAA,QACpD;AAAA,QACA,aAAa;AAAA,UACXA,EAAE,qDAAqD;AAAA,UACvDA,EAAE,sDAAsD;AAAA,UACxDA,EAAE,mDAAmD;AAAA,UACrDA,EAAE,mDAAmD;AAAA,UACrDA,EAAE,iDAAiD;AAAA,UACnDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,kDAAkD;AAAA,UACpDA,EAAE,oDAAoD;AAAA,UACtDA,EAAE,uDAAuD;AAAA,UACzDA,EAAE,qDAAqD;AAAA,UACvDA,EAAE,sDAAsD;AAAA,UACxDA,EAAE,sDAAsD;AAAA,QAC1D;AAAA,QACA,OAAOA,EAAE,8CAA8C;AAAA,QACvD,OAAOA,EAAE,8CAA8C;AAAA,QACvD,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,UAAU;AAAA;AAAA,MAAA,GAENqB,IAAqB,CAAC;AAAA,QAC1B,MAAAC;AAAA,MAAA,MAKI;AACE,cAAAC,IAAcL,EAAsBI,CAAI;AACjC,QAAAd,EAAA,QAAQe,IAAcD,IAAO,CAAA,GACtCvB,EAAM,YACRyB,EAAoBD,CAAW;AAAA,MACjC;AAGK,aAAA;AAAA,QACL,QAAQH;AAAA,QACR,eAAerB,EAAM;AAAA,QACrB,UAAUsB;AAAA,QACV,SAASP,EAAkB;AAAA,QAC3B,iBAAiB;AAAA,QACjB,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,SAASf,EAAM;AAAA,QACf,SAASA,EAAM;AAAA,QACf,MAAMA,EAAM;AAAA,QACZ,QAAQ0B;AAAA,QACR,QAAQC;AAAA,QACR,WAAW;AAAA,UACT,MAAM;AAAA,QACR;AAAA,QACA,UAAU3B,EAAM;AAAA,QAChB,OAAO;AAAA,QACP,wBAAwB;AAAA,MAAA;AAAA,IAC1B,CACD,GACK4B,IAAShB,EAAS,MAAM;AAC5B,UAAIiB,IAA2B,CAAA;AAE/B,aAAI7B,EAAM,YACR6B,EAAO,KAAKtB,CAAgB,GAE1BP,EAAM,oBACC6B,IAAAA,EAAO,OAAO7B,EAAM,eAAe,IAGvC6B,EAAO,SAASA,IAAS;AAAA,IAAA,CACjC,GACKC,IAAqBlB,EAAS,MAAM;AAAA,MACxC;AAAA,MACA;AAAA,QACE,6DAA6DZ,EAAM;AAAA,QACnE,wBAAwB,CAACA,EAAM;AAAA,QAC/B,uDACE,CAAC+B,EAAiB,MAAM;AAAA,QAC1B,mFACEA,EAAiB,MAAM;AAAA,QACzB,4CAA4CC,EAAkB;AAAA,MAChE;AAAA,MACAhC,EAAM;AAAA,IAAA,CACP,GACKgC,IAAoBtB,EAAI,EAAK,GAC7BuB,IAAerB;AAAA,MAAS,MAC5BZ,EAAM,WAAW,IAAI,CAACQ,MAAQ0B,EAAW1B,CAAG,CAAC,EAAE,KAAK,KAAK;AAAA,IAAA,GAGrD,EAAE,UAAAU,GAAU,kBAAAa,EAAA,IAAqBI;AAAA,MACrCxB,EAAG;AAAA,MACHG;AAAA,MACAc,EAAO;AAAA,IAAA;AAMT,IAAAQ;AAAA,MACE,MAAMpC,EAAM;AAAA,MACZ,MAAM;AACA,QAAAqC,EAAuB/B,EAAW,aAAa,MAC7Ca,EAAsBnB,EAAM,UAAU,IAC7BM,EAAA,WAAWN,EAAM,UAAU,IAEtCM,EAAW,MAAM;AAAA,MAGvB;AAAA,MACA,EAAE,MAAM,GAAK;AAAA,IAAA,GAEf8B;AAAA,MACE;AAAA,QACElC;AAAA,QACA,MAAMF,EAAM;AAAA,QACZ,MAAMA,EAAM;AAAA,QACZ,MAAMA,EAAM;AAAA,QACZ,MAAMA,EAAM;AAAA,MACd;AAAA,MACA,MAAM;AACO,QAAAM,EAAA,OAAOc,EAAkB,KAAK;AAAA,MAC3C;AAAA,IAAA;AAMF,UAAMD,IAAwB,CAACmB,OAAcA,KAAA,gBAAAA,EAAG,YAAW,GACrDJ,IAAa,CAACX,MAClBgB,GAAiBhB,CAAI,IAAIiB,GAAOjB,CAAI,EAAE,OAAOnB,CAAU,IAAImB,GACvDG,IAAe,MAAM;AACzB,MAAAM,EAAkB,QAAQ,IACTS;IAAA,GAEbd,IAAe,MAAM;AACzB,MAAAK,EAAkB,QAAQ,IACtBb,EAAsBnB,EAAM,UAAU,IAC7BM,EAAA,WAAWN,EAAM,UAAU,IAEtCM,EAAW,MAAM,GAEJoC;IAAA,GAEXL,IAAyB,CAACd,MAChB;AAAA,MACZ,CAACoB,EAAQ3C,EAAM,UAAU,KAAK2C,EAAQpB,CAAI;AAAA,MAC1C,CAACoB,EAAQpB,CAAI,KAAKoB,EAAQ3C,EAAM,UAAU;AAAA,MAC1C,CAAC2C,EAAQ3C,EAAM,UAAU,KACvB,CAAC2C,EAAQpB,CAAI,KACbvB,EAAM,WAAW,KAAK,CAAC4C,GAAGC;;AAAM,gBAAAD,KAAA,gBAAAA,EAAG,iBAAcE,IAAAvB,EAAKsB,CAAC,MAAN,gBAAAC,EAAS;AAAA,OAAS;AAAA,IAAA,EAG1D,KAAK,CAACC,MAAMA,CAAC,GAEtBtB,IAAsB,CAACuB,MAAqB;AAChD,YAAMC,IAAQ,SAAS,cAAc,IAAItC,EAAG,KAAK,cAAc;AAC/D,MAAIqC,IACFC,KAAA,QAAAA,EAAO,gBAAgB,cAEhBA,KAAA,QAAAA,EAAA,aAAa,YAAY;AAAA,IAClC;AAMF,WAAAC,EAAU,MAAM;AACd,MAAA5C,IAAa,IAAI6C;AAAA,QACf,IAAIxC,EAAG,KAAK;AAAA,QACZS,EAAkB;AAAA,MAAA;AAAA,IACpB,CACD,GACDgC,EAAgB,MAAM;AACH,MAAAX;IAAA,CAClB,GAEM,CAACY,GAAUC,OACRC,EAAW,GAAGC,EAAoB,OAAO,MAAM;AAAA,MACrDC,EAAaC,IAAQ;AAAA,QACnB,IAAI/C,EAAG;AAAA,QACP,OAAO0C,EAAK;AAAA,QACZ,UAAUA,EAAK;AAAA,MAAA,GACd,MAAM,GAAG,CAAC,MAAM,SAAS,UAAU,CAAC;AAAA,MACvCM,EAAoB,OAAOpE,IAAY;AAAA,QACrCoE,EAAoB,SAAS;AAAA,UAC3B,IAAIhD,EAAG;AAAA,UACP,OAAOiD,EAAgB,CAAC9B,EAAmB,OAAO,2CAA2C,CAAC;AAAA,UAC9F,UAAUuB,EAAK;AAAA,UACf,aAAaA,EAAK;AAAA,UAClB,OAAOpB,EAAa;AAAA,UACpB,UAAU;AAAA,QAAA,GACT,MAAM,IAAIzC,EAAU;AAAA,QACvBmE,EAAoB,SAAS;AAAA,UAC3B,IAAI,GAAGhD,EAAG,KAAK;AAAA,UACf,OAAOiD,EAAgB,CAAC9B,EAAmB,OAAO,+BAA+B,CAAC;AAAA,UAClF,UAAUuB,EAAK;AAAA,UACf,aAAaA,EAAK;AAAA,UAClB,UAAU;AAAA,QAAA,GACT,MAAM,IAAI5D,EAAU;AAAA,QACvBkE,EAAoB,SAAS;AAAA,UAC3B,KAAK,GAAGhD,EAAG,KAAK;AAAA,UAChB,OAAO;AAAA,QAAA,GACN;AAAA,UACDgD,EAAoB,KAAK;AAAA,YACvB,OAAOC,EAAgB,CAAC;AAAA,cACtB5D,EAAM,WAAW,wBAAwB;AAAA,YAC3C,GAAG,4BAA4B,CAAC;AAAA,UAAA,GAC/B,MAAM,CAAC;AAAA,QAAA,GACT,GAAGN,EAAU;AAAA,MAAA,CACjB;AAAA,MACC2D,EAAK,cAOHQ,EAAoB,IAAI,EAAI,KAN3BN,EAAW,GAAGO,EAAaC,GAAe;AAAA,QACzC,KAAK;AAAA,QACL,iBAAiBC,EAAOjC,CAAgB,EAAE,aAAa;AAAA,QACvD,OAAO;AAAA,QACP,gBAAgB;AAAA,MAAA,GACf,MAAM,GAAG,CAAC,eAAe,CAAC;AAAA,IACD,CACjC;AAAA,EAEH;AAEA,CAAC;"}
|
package/dist/design-system12.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),g=require("./design-system6.js"),O=require("./design-
|
|
1
|
+
"use strict";const e=require("vue"),g=require("./design-system6.js"),O=require("./design-system88.js"),V=["for"],$=["id"],B={class:"ds-truncate"},_=["id","data-cy","data-ut"],x=e.defineComponent({__name:"BDropdown",props:{inputId:{default:""},modelValue:{type:Boolean,default:void 0},label:{default:""},text:{default:""},toggleCssClass:{default:""},menuCssClass:{default:""},noCloseOnClickOutside:{type:Boolean,default:!1},noCloseOnEsc:{type:Boolean,default:!1},menuFixed:{type:Boolean,default:!1}},emits:["update:modelValue","hidden","shown"],setup(E,{emit:a}){const t=E,u=e.ref(null),n=e.ref(null),l=e.ref(null),c=e.ref(!1),i=e.computed(()=>t.inputId||`id-${O()}`),o=e.computed({get(){return t.modelValue!==void 0?t.modelValue:c.value},set(s){t.modelValue!==void 0?a("update:modelValue",s):c.value=s}});e.watch(o,s=>{var d;s?h():(C(),(d=u.value)==null||d.blur())}),e.watch(()=>t.noCloseOnClickOutside,s=>{s?k():p()}),e.watch(()=>t.noCloseOnEsc,s=>{s?y():f()});const f=()=>{document.addEventListener("keydown",m)},m=s=>{s.key==="Escape"&&r()},p=()=>{document.addEventListener("click",v)},v=s=>{[n.value,l.value].some(b=>s.composedPath().includes(b))||r()},w=()=>{o.value=!o.value},h=()=>{e.nextTick(()=>{g.ensureVisiblePosition(n.value,l.value,t.menuFixed),a("shown")})},C=()=>{g.resetPosition(n.value,l.value),a("hidden")},r=()=>{o.value=!1},y=()=>{document.removeEventListener("keydown",m)},k=()=>{document.removeEventListener("click",v)};return e.onMounted(()=>{t.noCloseOnEsc||f(),t.noCloseOnClickOutside||p()}),e.onBeforeUnmount(()=>{y(),k(),C()}),e.provide("closeDropdown",r),(s,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdown",ref:n},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"ds-mb-2 ds-block ds-text-xs ds-font-bold ds-capitalize ds-text-gray-500"},e.toDisplayString(t.label),9,V)):e.createCommentVNode("",!0),e.createElementVNode("button",{id:i.value,ref_key:"toggle",ref:u,class:e.normalizeClass([s.toggleCssClass,"ds-inline-flex ds-w-full ds-items-center ds-justify-between ds-rounded-lg ds-bg-gray-200 ds-px-5 ds-py-2.5 ds-text-gray-700 focus:ds-ring-1 focus:ds-ring-primary-t"]),type:"button",onClick:w},[e.renderSlot(s.$slots,"toggle",{},()=>[e.createElementVNode("span",B,e.toDisplayString(t.text),1),e.createTextVNode(" "),e.createElementVNode("span",{class:e.normalizeClass([`${o.value?"ds-rotate-180":""}`,"fa-solid fa-caret-down ds-transition-transform"])},null,2)])],10,$),e.withDirectives(e.createElementVNode("div",{id:`${i.value}Menu`,ref_key:"dropdownMenu",ref:l,class:e.normalizeClass([`${s.menuCssClass} ${t.menuFixed?"ds-fixed":"ds-absolute"}`,"ds-z-50 ds-py-1"]),"data-cy":s.$attrs["data-cy"]?`${s.$attrs["data-cy"]}Menu`:void 0,"data-ut":s.$attrs["data-ut"]?`${s.$attrs["data-ut"]}Menu`:void 0},[e.renderSlot(s.$slots,"default")],10,_),[[e.vShow,o.value]])],512))}});module.exports=x;
|
|
2
2
|
//# sourceMappingURL=design-system12.js.map
|
package/dist/design-system12.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as M, ref as d, computed as h, watch as c, nextTick as P, onMounted as D, onBeforeUnmount as z, provide as F, openBlock as b, createElementBlock as O, toDisplayString as $, createCommentVNode as N, createElementVNode as a, normalizeClass as f, renderSlot as V, createTextVNode as S, withDirectives as T, vShow as I } from "vue";
|
|
2
2
|
import { ensureVisiblePosition as j, resetPosition as U } from "./design-system6.mjs";
|
|
3
|
-
import q from "./design-
|
|
3
|
+
import q from "./design-system88.mjs";
|
|
4
4
|
const A = ["for"], G = ["id"], H = { class: "ds-truncate" }, J = ["id", "data-cy", "data-ut"], X = /* @__PURE__ */ M({
|
|
5
5
|
__name: "BDropdown",
|
|
6
6
|
props: {
|
package/dist/design-system132.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const t=require("./design-system133.js"),a=require("./design-system103.js");var i=Object.prototype,o=i.hasOwnProperty;function u(r,s,n){var e=r[s];(!(o.call(r,s)&&a(e,n))||n===void 0&&!(s in r))&&t(r,s,n)}module.exports=u;
|
|
2
2
|
//# sourceMappingURL=design-system132.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system132.js","sources":["../node_modules/lodash-es/
|
|
1
|
+
{"version":3,"file":"design-system132.js","sources":["../node_modules/lodash-es/_assignValue.js"],"sourcesContent":["import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n"],"names":["objectProto","hasOwnProperty","assignValue","object","key","value","objValue","eq","baseAssignValue"],"mappings":"yFAIA,IAAIA,EAAc,OAAO,UAGrBC,EAAiBD,EAAY,eAYjC,SAASE,EAAYC,EAAQC,EAAKC,EAAO,CACvC,IAAIC,EAAWH,EAAOC,CAAG,GACrB,EAAEH,EAAe,KAAKE,EAAQC,CAAG,GAAKG,EAAGD,EAAUD,CAAK,IACvDA,IAAU,QAAa,EAAED,KAAOD,KACnCK,EAAgBL,EAAQC,EAAKC,CAAK,CAEtC","x_google_ignoreList":[0]}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var n = r[g], f = d ? d(i[n], a[n], n, i, a) : void 0;
|
|
8
|
-
f === void 0 && (f = a[n]), l ? h(i, n, f) : v(i, n, f);
|
|
9
|
-
}
|
|
10
|
-
return i;
|
|
1
|
+
import t from "./design-system133.mjs";
|
|
2
|
+
import i from "./design-system103.mjs";
|
|
3
|
+
var s = Object.prototype, p = s.hasOwnProperty;
|
|
4
|
+
function l(r, a, o) {
|
|
5
|
+
var n = r[a];
|
|
6
|
+
(!(p.call(r, a) && i(n, o)) || o === void 0 && !(a in r)) && t(r, a, o);
|
|
11
7
|
}
|
|
12
8
|
export {
|
|
13
|
-
|
|
9
|
+
l as default
|
|
14
10
|
};
|
|
15
11
|
//# sourceMappingURL=design-system132.mjs.map
|