@dialpad/dialtone-vue 3.201.0 → 3.203.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/dates/index.js +4 -4
- package/dist/common/utils/index.js +3 -3
- package/dist/component-documentation.json +1 -1
- package/dist/dialtone-vue.cjs +1 -1
- package/dist/dialtone-vue.js +349 -347
- package/dist/dialtone-vue.js.map +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
- package/dist/lib/avatar/avatar.js +10 -10
- package/dist/lib/badge/badge.js +5 -5
- package/dist/lib/banner/banner.js +1 -1
- package/dist/lib/breadcrumbs/breadcrumb-item.js +2 -2
- package/dist/lib/breadcrumbs/breadcrumbs.js +1 -1
- package/dist/lib/button/button.js +14 -14
- package/dist/lib/button-group/button-group.js +2 -2
- package/dist/lib/button-group/buttons-decorator.js +2 -2
- package/dist/lib/callbar-button/callbar-button.js +2 -2
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
- package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +9 -9
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
- package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +9 -9
- package/dist/lib/callbox/callbox.js +1 -1
- package/dist/lib/card/card.js +4 -4
- package/dist/lib/checkbox/checkbox.js +5 -5
- package/dist/lib/checkbox-group/checkboxes-decorator.js +1 -1
- package/dist/lib/chip/chip.js +7 -7
- package/dist/lib/codeblock/codeblock.js +2 -2
- package/dist/lib/collapsible/collapsible-lazy-show.js +3 -3
- package/dist/lib/collapsible/collapsible.js +8 -8
- package/dist/lib/combobox/combobox-empty-list.js +2 -2
- package/dist/lib/combobox/combobox-loading-list.js +3 -3
- package/dist/lib/combobox/combobox.cjs +1 -1
- package/dist/lib/combobox/combobox.js +8 -8
- package/dist/lib/combobox-multi-select/combobox-multi-select.js +1 -1
- package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
- package/dist/lib/combobox-with-popover/combobox-with-popover.js +10 -10
- package/dist/lib/contact-centers-row/contact-centers-row.js +7 -7
- package/dist/lib/contact-info/contact-info.js +1 -1
- package/dist/lib/contact-row/contact-row.js +1 -1
- package/dist/lib/datepicker/datepicker.cjs +1 -1
- package/dist/lib/datepicker/datepicker.cjs.map +1 -1
- package/dist/lib/datepicker/datepicker.js +306 -242
- package/dist/lib/datepicker/datepicker.js.map +1 -1
- package/dist/lib/datepicker/utils.cjs +1 -1
- package/dist/lib/datepicker/utils.cjs.map +1 -1
- package/dist/lib/datepicker/utils.js +40 -40
- package/dist/lib/datepicker/utils.js.map +1 -1
- package/dist/lib/description-list/description-list.js +3 -3
- package/dist/lib/dropdown/dropdown-list.js +4 -4
- package/dist/lib/dropdown/dropdown-separator.js +2 -2
- package/dist/lib/dropdown/dropdown.js +2 -2
- package/dist/lib/editor/editor.js +9 -9
- package/dist/lib/emoji/emoji.js +2 -2
- package/dist/lib/emoji-picker/emoji-picker.js +1 -1
- package/dist/lib/emoji-row/emoji-row.js +6 -6
- package/dist/lib/empty-state/empty-state.js +7 -7
- package/dist/lib/feed-item-pill/feed-item-pill.js +1 -1
- package/dist/lib/feed-item-row/feed-item-row.js +15 -15
- package/dist/lib/general-row/general-row.js +13 -13
- package/dist/lib/general-row/index.cjs +1 -1
- package/dist/lib/general-row/index.js +6 -4
- package/dist/lib/general-row/index.js.map +1 -1
- package/dist/lib/general-row/leftbar-general-row-icon.js +5 -5
- package/dist/lib/group-row/group-row.js +2 -2
- package/dist/lib/grouped-chip/grouped-chip.js +14 -14
- package/dist/lib/hovercard/hovercard.js +2 -2
- package/dist/lib/icon/icon.js +3 -3
- package/dist/lib/illustration/illustration.js +3 -3
- package/dist/lib/image-viewer/image-viewer.js +12 -12
- package/dist/lib/input/input.js +10 -10
- package/dist/lib/input-group/input-group.js +8 -8
- package/dist/lib/item-layout/item-layout.js +13 -13
- package/dist/lib/ivr-node/ivr-node.js +9 -9
- package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +3 -3
- package/dist/lib/lazy-show/lazy-show.js +2 -2
- package/dist/lib/link/link.js +2 -2
- package/dist/lib/list-item/list-item.js +3 -3
- package/dist/lib/list-item-group/list-item-group.js +5 -5
- package/dist/lib/loader/loader.js +2 -2
- package/dist/lib/message-input/message-input-button.js +5 -5
- package/dist/lib/message-input/message-input-link.js +2 -2
- package/dist/lib/message-input/message-input-topbar.js +2 -2
- package/dist/lib/message-input/message-input.cjs +1 -1
- package/dist/lib/message-input/message-input.cjs.map +1 -1
- package/dist/lib/message-input/message-input.js +17 -16
- package/dist/lib/message-input/message-input.js.map +1 -1
- package/dist/lib/modal/modal.js +1 -1
- package/dist/lib/motion-text/motion-text.js +5 -5
- package/dist/lib/notice/notice-action.js +1 -1
- package/dist/lib/notice/notice-content.js +6 -6
- package/dist/lib/notice/notice-icon.js +4 -4
- package/dist/lib/notice/notice.js +1 -1
- package/dist/lib/pagination/pagination.js +1 -1
- package/dist/lib/popover/popover-constants.js +3 -3
- package/dist/lib/popover/popover-header-footer.js +6 -6
- package/dist/lib/popover/popover.js +7 -7
- package/dist/lib/presence/presence.js +4 -4
- package/dist/lib/radio/radio.js +10 -10
- package/dist/lib/radio-group/radios-decorator.js +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.js +4 -4
- package/dist/lib/root-layout/root-layout.js +3 -3
- package/dist/lib/scroller/scroller.js +1 -1
- package/dist/lib/select-menu/select-menu.js +12 -12
- package/dist/lib/settings-menu-button/settings-menu-button.js +3 -3
- package/dist/lib/skeleton/skeleton-list-item.js +2 -2
- package/dist/lib/skeleton/skeleton-paragraph.js +1 -1
- package/dist/lib/skeleton/skeleton-shape.js +2 -2
- package/dist/lib/skeleton/skeleton-text.js +4 -4
- package/dist/lib/skeleton/skeleton.js +1 -1
- package/dist/lib/split-button/split-button-alpha.js +2 -2
- package/dist/lib/split-button/split-button-omega.js +2 -2
- package/dist/lib/split-button/split-button.js +13 -13
- package/dist/lib/stack/stack.js +2 -2
- package/dist/lib/stack/utils.js +5 -5
- package/dist/lib/stack/validators.js +7 -7
- package/dist/lib/tab/tab-group.js +2 -2
- package/dist/lib/tab/tab-panel.js +2 -2
- package/dist/lib/tab/tab.js +2 -2
- package/dist/lib/time-pill/time-pill.js +2 -2
- package/dist/lib/toast/toast.js +1 -1
- package/dist/lib/toggle/toggle.js +7 -7
- package/dist/lib/tooltip/tooltip.js +5 -5
- package/dist/lib/top-banner-info/top-banner-info.js +2 -2
- package/dist/lib/unread-pill/unread-pill.js +1 -1
- package/dist/lib/validation-messages/validation-messages.js +6 -6
- package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
- package/dist/shared/sr_only_close_button.js +2 -2
- package/dist/types/components/datepicker/composables/useMonthYearPicker.d.ts +4 -0
- package/dist/types/components/datepicker/composables/useMonthYearPicker.d.ts.map +1 -1
- package/dist/types/components/datepicker/datepicker.vue.d.ts +8 -0
- package/dist/types/components/datepicker/datepicker.vue.d.ts.map +1 -1
- package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts +4 -0
- package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
- package/dist/types/components/datepicker/utils.d.ts +1 -1
- package/dist/types/components/datepicker/utils.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/general_row/index.d.ts +1 -0
- package/package.json +11 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.js","sources":["../../../components/datepicker/composables/useMonthYearPicker.js","../../../components/datepicker/modules/month-year-picker.vue","../../../components/datepicker/composables/useCalendar.js","../../../components/datepicker/modules/calendar.vue","../../../components/datepicker/datepicker.vue"],"sourcesContent":["import { computed, ref, watch } from 'vue';\nimport { addMonths, getDate, getMonth, getYear, set, subMonths } from 'date-fns';\nimport { formatMonth, getCalendarDays } from '../utils.js';\nimport { INTL_MONTH_FORMAT } from '../datepicker_constants';\nimport { returnFirstEl } from '@/common/utils';\nimport { DialtoneLocalization } from '@/localization';\n\nexport function useMonthYearPicker (props, emits) {\n const selectMonth = ref(getMonth(props.selectedDate));\n const selectYear = ref(getYear(props.selectedDate));\n const highlightedDay = ref(null);\n const focusPicker = ref(0);\n const focusRefs = ref([]);\n const i18n = new DialtoneLocalization();\n\n const calendarDays = computed(() => {\n return getCalendarDays(selectMonth.value, selectYear.value, highlightedDay.value);\n });\n\n watch(selectMonth, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n watch(selectYear, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n function formattedMonth (month) {\n return formatMonth(month, INTL_MONTH_FORMAT, i18n.currentLocale);\n }\n\n function setDayRef (el) {\n if (!focusRefs.value.includes(el)) {\n focusRefs.value.push(el);\n }\n }\n\n function focusMonthYearPicker () {\n returnFirstEl(focusRefs.value[0].$el).focus();\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (focusPicker.value === 0) {\n focusPicker.value = 3;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n } else {\n focusPicker.value--;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusPicker.value === 3) {\n focusPicker.value = 0;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n } else {\n focusPicker.value++;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function highlightDay () {\n const year = getYear(props.selectedDate);\n const month = getMonth(props.selectedDate);\n\n if (year !== selectYear.value || month !== selectMonth.value) {\n highlightedDay.value = null;\n } else {\n highlightedDay.value = getDate(props.selectedDate);\n }\n }\n\n function changeMonth (value) {\n // Adjust year when changing from January to December or vice versa\n if ((selectMonth.value === 0 && value === -1) || (selectMonth.value === 11 && value === 1)) {\n selectYear.value += value;\n }\n\n // Calculate the new date by adding or subtracting months\n const initialDate = set(props.selectedDate, { month: selectMonth.value, year: selectYear.value });\n const newDate = value === 1 ? addMonths(initialDate, 1) : subMonths(initialDate, 1);\n\n // Update the selected month\n selectMonth.value = getMonth(newDate);\n }\n\n function changeYear (value) {\n selectYear.value = selectYear.value + value;\n }\n\n function goToNextMonth () {\n changeMonth(1);\n }\n\n function goToPrevMonth () {\n changeMonth(-1);\n }\n\n function previousYearAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_YEAR')} ${selectYear.value - 1}`;\n }\n\n function previousMonthAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_MONTH')} ${formattedMonth(selectMonth.value - 1)}`;\n }\n\n function nextYearAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_NEXT_YEAR')} ${selectYear.value + 1}`;\n }\n\n function nextMonthAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_NEXT_MONTH')} ${formattedMonth(selectMonth.value + 1)}`;\n }\n\n return {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextYearAriaLabel,\n nextMonthAriaLabel,\n };\n}\n","<template>\n <dt-stack\n class=\"d-datepicker__month-year\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-stack\n as=\"nav\"\n class=\"d-datepicker__nav\"\n direction=\"row\"\n gap=\"200\"\n >\n <dt-tooltip\n :fallback-placements=\"['top-start', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_YEAR')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"previousYearAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeYear(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevrons-left\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :fallback-placements=\"['top-start', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_MONTH')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"previousMonthAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeMonth(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevron-left\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n <div\n id=\"calendar-heading\"\n class=\"d-datepicker__month-year-title\"\n >\n {{ formattedMonth(selectMonth) }}\n\n {{ selectYear }}\n </div>\n <dt-stack\n as=\"nav\"\n class=\"d-datepicker__nav\"\n direction=\"row\"\n gap=\"200\"\n >\n <dt-tooltip\n :fallback-placements=\"['top-end', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_NEXT_MONTH')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"nextMonthAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeMonth(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevron-right\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :fallback-placements=\"['top-end', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_NEXT_YEAR')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"nextYearAriaLabel()\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeYear(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevrons-right\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n </dt-stack>\n</template>\n\n<script setup>\nimport {\n DtIconChevronLeft,\n DtIconChevronsLeft,\n DtIconChevronRight,\n DtIconChevronsRight,\n} from '@dialpad/dialtone-icons/vue3';\nimport { DtStack } from '@/components/stack';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport { onMounted } from 'vue';\nimport { useMonthYearPicker } from '../composables/useMonthYearPicker.js';\nimport { DialtoneLocalization } from '@/localization';\n\nconst props = defineProps({\n selectedDate: {\n type: Date,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Will retrieve the calendar days of the given date\n *\n * @event calendar-days\n * @type {Array}\n */\n 'calendar-days',\n\n /**\n * Will focus first day in calendar\n *\n * @event focus-first-day\n */\n 'focus-first-day',\n\n /**\n * Will focus last day in calendar\n *\n * @event focus-last-day\n */\n 'focus-last-day',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst i18n = new DialtoneLocalization();\n\nconst {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n nextYearAriaLabel,\n} = useMonthYearPicker(props, emits);\n\nonMounted(() => {\n focusMonthYearPicker();\n});\n\ndefineExpose({\n focusMonthYearPicker,\n goToNextMonth,\n goToPrevMonth,\n});\n</script>\n","import { computed, ref, watch, nextTick } from 'vue';\nimport { getWeekDayNames, calculateNextFocusDate, calculatePrevFocusDate, formatDate } from '../utils.js';\nimport { INTL_MONTH_FORMAT, WEEK_START } from '../datepicker_constants.js';\nimport { returnFirstEl } from '@/common/utils';\nimport { DialtoneLocalization } from '@/localization';\n\nexport function useCalendar (props, emits) {\n const selectedDay = ref(null);\n const focusDay = ref(0);\n const daysRef = ref([]);\n const i18n = new DialtoneLocalization();\n\n const weekDays = computed(() => {\n return getWeekDayNames(props.locale, WEEK_START);\n });\n\n watch(() => props.calendarDays, () => {\n focusDay.value = 0;\n daysRef.value = [];\n selectedDay.value = null;\n });\n\n function dayAriaLabel (day) {\n return i18n.$t('DIALTONE_DATEPICKER_SELECT_DAY') + ` ${formatDate(day.value, INTL_MONTH_FORMAT, i18n.currentLocale)}`;\n }\n\n function setDayRef (el, day) {\n if (!daysRef.value.some(day => day.el === el) && day.currentMonth) {\n daysRef.value.push({ el, day });\n }\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n focusDay.value -= 7;\n try {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } catch {\n const prevFocusDate = calculatePrevFocusDate(daysRef.value[focusDay.value + 7].day.value);\n emits('go-to-prev-month');\n\n nextTick(() => {\n returnFirstEl(daysRef.value[prevFocusDate - 1].el.$el).focus();\n focusDay.value += prevFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n focusDay.value += 7;\n try {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } catch {\n const nextFocusDate = calculateNextFocusDate(daysRef.value[focusDay.value - 7].day.value);\n emits('go-to-next-month');\n\n nextTick(() => {\n returnFirstEl(daysRef.value[nextFocusDate - 1].el.$el).focus();\n focusDay.value += nextFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (focusDay.value > 0) {\n focusDay.value -= 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } else {\n // if we are on month first day, jump to last day of prev month\n emits('go-to-prev-month');\n focusLastDay();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusDay.value < daysRef.value.length - 1) {\n focusDay.value += 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } else {\n // if we are on month last day, jump to first day of next month\n emits('go-to-next-month');\n\n focusFirstDay();\n }\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-month-year-picker');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function focusFirstDay () {\n focusDay.value = 0;\n\n nextTick(() => {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n });\n }\n\n function focusLastDay () {\n nextTick(() => {\n focusDay.value = daysRef.value.length - 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n });\n }\n\n function selectDay (day) {\n if (!day.currentMonth) { return; }\n\n // local selectedDay is updated when a day is selected\n selectedDay.value = day.text;\n emits('select-date', day.value);\n }\n\n return {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n };\n}\n","<template>\n <table\n class=\"d-datepicker__calendar\"\n aria-labelledby=\"calendar-heading\"\n >\n <thead>\n <tr>\n <th\n v-for=\"day in weekDays\"\n :key=\"day\"\n scope=\"col\"\n class=\"d-datepicker__cell d-datepicker__cell--header\"\n >\n <span\n class=\"d-datepicker__weekday\"\n :title=\"day\"\n :aria-label=\"day\"\n > {{ day }}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"(week, indexWeek) in calendarDays\"\n :key=\"indexWeek\"\n >\n <td\n v-for=\"(day, indexDays) in week.days\"\n :key=\"indexWeek + indexDays\"\n class=\"d-datepicker__cell\"\n role=\"listbox\"\n >\n <dt-button\n :ref=\"el => { if (el) setDayRef(el, day) }\"\n class=\"d-datepicker__day\"\n :circle=\"true\"\n size=\"sm\"\n importance=\"clear\"\n :disabled=\"!day.currentMonth\"\n :class=\"{\n 'd-datepicker__day--disabled': !day.currentMonth,\n 'd-datepicker__day--selected': selectedDay\n ? ((day.text === selectedDay) && day.currentMonth)\n : day.selected,\n }\"\n type=\"button\"\n :aria-selected=\"!!selectedDay ? ((day.text === selectedDay) && day.currentMonth) : day.selected\"\n :aria-label=\"dayAriaLabel(day)\"\n role=\"option\"\n @click=\"selectDay(day)\"\n @keydown=\"handleKeyDown($event)\"\n >\n {{ day.text }}\n </dt-button>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script setup>\nimport { useCalendar } from '../composables/useCalendar.js';\nimport { DtButton } from '@/components/button';\n\nconst props = defineProps({\n calendarDays: {\n type: Array,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event select-date\n * @type {Date}\n */\n 'select-date',\n\n /**\n * Will focus the month and year picker\n *\n * @event focus-month-year-picker\n */\n 'focus-month-year-picker',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n\n /**\n * Will go to the next month\n *\n * @event go-to-next-month\n */\n 'go-to-next-month',\n\n /**\n * Will go to the previous month\n *\n * @event go-to-prev-month\n */\n 'go-to-prev-month',\n]);\n\nconst {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n} = useCalendar(props, emits);\n\ndefineExpose({\n focusFirstDay,\n});\n</script>\n","<!-- eslint-disable vue/multi-word-component-names -->\n<template>\n <dt-stack\n class=\"d-datepicker\"\n gap=\"400\"\n >\n <div class=\"d-datepicker__hd\">\n <month-year-picker\n ref=\"monthYearPicker\"\n :selected-date=\"selectedDate\"\n @calendar-days=\"updateCalendarDays\"\n @focus-first-day=\"$refs.calendar.focusFirstDay()\"\n @focus-last-day=\"$refs.calendar.focusLastDay()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n />\n </div>\n <div class=\"d-datepicker__bd\">\n <calendar\n ref=\"calendar\"\n :calendar-days=\"calendarDays\"\n @select-date=\"$emit('selected-date', $event)\"\n @focus-month-year-picker=\"$refs.monthYearPicker.focusMonthYearPicker()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n @go-to-next-month=\"$refs.monthYearPicker.goToNextMonth()\"\n @go-to-prev-month=\"$refs.monthYearPicker.goToPrevMonth()\"\n />\n </div>\n </dt-stack>\n</template>\n\n<script setup>\nimport MonthYearPicker from './modules/month-year-picker.vue';\nimport Calendar from './modules/calendar.vue';\nimport { DtStack } from '@/components/stack';\nimport { returnFirstEl, warnIfUnmounted } from '@/common/utils';\nimport { onMounted, ref, getCurrentInstance } from 'vue';\n\ndefineProps({\n /**\n * Selected date\n *\n * @type {Date}\n */\n selectedDate: {\n type: Date,\n default: () => (new Date()),\n },\n});\n\ndefineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event selected-date\n * @type {Date}\n */\n 'selected-date',\n\n /**\n * Event fired when user presses the esc key\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst calendarDays = ref([]);\n\nfunction updateCalendarDays (days) {\n calendarDays.value = days;\n}\n\nonMounted(() => {\n const instance = getCurrentInstance();\n warnIfUnmounted(returnFirstEl(instance.proxy.$el), 'datepicker');\n});\n</script>\n"],"names":["useMonthYearPicker","props","emits","selectMonth","ref","getMonth","selectYear","getYear","highlightedDay","focusPicker","focusRefs","i18n","DialtoneLocalization","calendarDays","computed","getCalendarDays","watch","highlightDay","formattedMonth","month","formatMonth","INTL_MONTH_FORMAT","setDayRef","el","focusMonthYearPicker","returnFirstEl","handleKeyDown","event","year","getDate","changeMonth","value","initialDate","set","newDate","addMonths","subMonths","changeYear","goToNextMonth","goToPrevMonth","previousYearAriaLabel","previousMonthAriaLabel","nextYearAriaLabel","nextMonthAriaLabel","__props","__emit","onMounted","__expose","_createBlock","_unref","DtStack","_createVNode","DtTooltip","DtButton","_cache","$event","DtIconChevronsLeft","DtIconChevronLeft","_createElementVNode","_hoisted_1","_toDisplayString","DtIconChevronRight","DtIconChevronsRight","useCalendar","selectedDay","focusDay","daysRef","weekDays","getWeekDayNames","WEEK_START","dayAriaLabel","day","formatDate","prevFocusDate","calculatePrevFocusDate","nextTick","nextFocusDate","calculateNextFocusDate","focusLastDay","focusFirstDay","selectDay","_openBlock","_createElementBlock","_Fragment","_renderList","_hoisted_2","week","indexWeek","indexDays","_createTextVNode","updateCalendarDays","days","instance","getCurrentInstance","warnIfUnmounted","MonthYearPicker","$refs","$emit","Calendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datepicker.js","sources":["../../../components/datepicker/composables/useMonthYearPicker.js","../../../components/datepicker/modules/month-year-picker.vue","../../../components/datepicker/composables/useCalendar.js","../../../components/datepicker/modules/calendar.vue","../../../components/datepicker/datepicker.vue"],"sourcesContent":["import { computed, ref, watch } from 'vue';\nimport { addMonths, endOfMonth, getDate, getMonth, getYear, set, startOfDay, startOfMonth, subMonths } from 'date-fns';\nimport { formatMonth, getCalendarDays } from '../utils.js';\nimport { INTL_MONTH_FORMAT } from '../datepicker_constants';\nimport { returnFirstEl } from '@/common/utils';\nimport { DialtoneLocalization } from '@/localization';\n\nexport function useMonthYearPicker (props, emits) {\n const selectMonth = ref(getMonth(props.selectedDate));\n const selectYear = ref(getYear(props.selectedDate));\n const highlightedDay = ref(null);\n const focusPicker = ref(0);\n const focusRefs = ref([]);\n const i18n = new DialtoneLocalization();\n\n const calendarDays = computed(() => {\n return getCalendarDays(selectMonth.value, selectYear.value, highlightedDay.value, props.minDate, props.maxDate);\n });\n\n const isPrevMonthDisabled = computed(() => {\n if (!props.minDate) return false;\n const prevMonth = subMonths(new Date(selectYear.value, selectMonth.value, 1), 1);\n return endOfMonth(prevMonth) < startOfDay(props.minDate);\n });\n\n const isNextMonthDisabled = computed(() => {\n if (!props.maxDate) return false;\n const nextMonth = addMonths(new Date(selectYear.value, selectMonth.value, 1), 1);\n return startOfMonth(nextMonth) > startOfDay(props.maxDate);\n });\n\n const isPrevYearDisabled = computed(() => {\n if (!props.minDate) return false;\n const prevYearMonth = new Date(selectYear.value - 1, selectMonth.value, 1);\n return endOfMonth(prevYearMonth) < startOfDay(props.minDate);\n });\n\n const isNextYearDisabled = computed(() => {\n if (!props.maxDate) return false;\n const nextYearMonth = new Date(selectYear.value + 1, selectMonth.value, 1);\n return startOfMonth(nextYearMonth) > startOfDay(props.maxDate);\n });\n\n watch(selectMonth, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n watch(selectYear, () => {\n highlightDay();\n emits('calendar-days', calendarDays.value);\n }, { immediate: true });\n\n watch(() => props.minDate, () => {\n emits('calendar-days', calendarDays.value);\n });\n\n watch(() => props.maxDate, () => {\n emits('calendar-days', calendarDays.value);\n });\n\n function formattedMonth (month) {\n return formatMonth(month, INTL_MONTH_FORMAT, i18n.currentLocale);\n }\n\n function setDayRef (el) {\n if (!focusRefs.value.includes(el)) {\n focusRefs.value.push(el);\n }\n }\n\n function focusMonthYearPicker () {\n returnFirstEl(focusRefs.value[0].$el).focus();\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (focusPicker.value === 0) {\n focusPicker.value = 3;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n } else {\n focusPicker.value--;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusPicker.value === 3) {\n focusPicker.value = 0;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n } else {\n focusPicker.value++;\n returnFirstEl(focusRefs.value[focusPicker.value].$el).focus();\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-first-day');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function highlightDay () {\n const year = getYear(props.selectedDate);\n const month = getMonth(props.selectedDate);\n\n if (year !== selectYear.value || month !== selectMonth.value) {\n highlightedDay.value = null;\n } else {\n highlightedDay.value = getDate(props.selectedDate);\n }\n }\n\n function changeMonth (value) {\n if (value === -1 && isPrevMonthDisabled.value) return;\n if (value === 1 && isNextMonthDisabled.value) return;\n\n // Adjust year when changing from January to December or vice versa\n if ((selectMonth.value === 0 && value === -1) || (selectMonth.value === 11 && value === 1)) {\n selectYear.value += value;\n }\n\n // Calculate the new date by adding or subtracting months\n const initialDate = set(props.selectedDate, { month: selectMonth.value, year: selectYear.value });\n const newDate = value === 1 ? addMonths(initialDate, 1) : subMonths(initialDate, 1);\n\n // Update the selected month\n selectMonth.value = getMonth(newDate);\n }\n\n function changeYear (value) {\n if (value === -1 && isPrevYearDisabled.value) return;\n if (value === 1 && isNextYearDisabled.value) return;\n\n selectYear.value = selectYear.value + value;\n }\n\n function goToNextMonth () {\n changeMonth(1);\n }\n\n function goToPrevMonth () {\n changeMonth(-1);\n }\n\n function previousYearAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_YEAR')} ${selectYear.value - 1}`;\n }\n\n function previousMonthAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_MONTH')} ${formattedMonth(selectMonth.value - 1)}`;\n }\n\n function nextYearAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_NEXT_YEAR')} ${selectYear.value + 1}`;\n }\n\n function nextMonthAriaLabel () {\n return `${i18n.$t('DIALTONE_DATEPICKER_CHANGE_TO')} ${i18n.$t('DIALTONE_DATEPICKER_NEXT_MONTH')} ${formattedMonth(selectMonth.value + 1)}`;\n }\n\n return {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n isPrevMonthDisabled,\n isNextMonthDisabled,\n isPrevYearDisabled,\n isNextYearDisabled,\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextYearAriaLabel,\n nextMonthAriaLabel,\n };\n}\n","<template>\n <dt-stack\n class=\"d-datepicker__month-year\"\n direction=\"row\"\n gap=\"300\"\n >\n <dt-stack\n as=\"nav\"\n class=\"d-datepicker__nav\"\n direction=\"row\"\n gap=\"200\"\n >\n <dt-tooltip\n :fallback-placements=\"['top-start', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_YEAR')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"previousYearAriaLabel()\"\n :circle=\"true\"\n :disabled=\"isPrevYearDisabled\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeYear(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevrons-left\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :fallback-placements=\"['top-start', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_PREVIOUS_MONTH')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"prevMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"previousMonthAriaLabel()\"\n :circle=\"true\"\n :disabled=\"isPrevMonthDisabled\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeMonth(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevron-left\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n <div\n id=\"calendar-heading\"\n class=\"d-datepicker__month-year-title\"\n >\n {{ formattedMonth(selectMonth) }}\n\n {{ selectYear }}\n </div>\n <dt-stack\n as=\"nav\"\n class=\"d-datepicker__nav\"\n direction=\"row\"\n gap=\"200\"\n >\n <dt-tooltip\n :fallback-placements=\"['top-end', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_NEXT_MONTH')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextMonthButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"nextMonthAriaLabel()\"\n :circle=\"true\"\n :disabled=\"isNextMonthDisabled\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeMonth(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevron-right\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :fallback-placements=\"['top-end', 'auto']\"\n :message=\"i18n.$t('DIALTONE_DATEPICKER_NEXT_YEAR')\"\n placement=\"top\"\n >\n <template #anchor>\n <dt-button\n id=\"nextYearButton\"\n :ref=\"el => { if (el) setDayRef(el) }\"\n :aria-label=\"nextYearAriaLabel()\"\n :circle=\"true\"\n :disabled=\"isNextYearDisabled\"\n class=\"d-datepicker__nav-btn\"\n importance=\"clear\"\n kind=\"muted\"\n size=\"xs\"\n type=\"button\"\n @click=\"changeYear(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon-chevrons-right\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n </dt-stack>\n</template>\n\n<script setup>\nimport {\n DtIconChevronLeft,\n DtIconChevronsLeft,\n DtIconChevronRight,\n DtIconChevronsRight,\n} from '@dialpad/dialtone-icons/vue3';\nimport { DtStack } from '@/components/stack';\nimport { DtButton } from '@/components/button';\nimport { DtTooltip } from '@/components/tooltip';\nimport { onMounted } from 'vue';\nimport { useMonthYearPicker } from '../composables/useMonthYearPicker.js';\nimport { DialtoneLocalization } from '@/localization';\n\nconst props = defineProps({\n selectedDate: {\n type: Date,\n required: true,\n },\n\n minDate: {\n type: Date,\n default: null,\n },\n\n maxDate: {\n type: Date,\n default: null,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Will retrieve the calendar days of the given date\n *\n * @event calendar-days\n * @type {Array}\n */\n 'calendar-days',\n\n /**\n * Will focus first day in calendar\n *\n * @event focus-first-day\n */\n 'focus-first-day',\n\n /**\n * Will focus last day in calendar\n *\n * @event focus-last-day\n */\n 'focus-last-day',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst i18n = new DialtoneLocalization();\n\nconst {\n selectMonth,\n selectYear,\n formattedMonth,\n setDayRef,\n focusMonthYearPicker,\n handleKeyDown,\n changeMonth,\n changeYear,\n goToNextMonth,\n goToPrevMonth,\n isPrevMonthDisabled,\n isNextMonthDisabled,\n isPrevYearDisabled,\n isNextYearDisabled,\n previousYearAriaLabel,\n previousMonthAriaLabel,\n nextMonthAriaLabel,\n nextYearAriaLabel,\n} = useMonthYearPicker(props, emits);\n\nonMounted(() => {\n focusMonthYearPicker();\n});\n\ndefineExpose({\n focusMonthYearPicker,\n goToNextMonth,\n goToPrevMonth,\n});\n</script>\n","import { computed, ref, watch, nextTick } from 'vue';\nimport { getWeekDayNames, calculateNextFocusDate, calculatePrevFocusDate, formatDate } from '../utils.js';\nimport { INTL_MONTH_FORMAT, WEEK_START } from '../datepicker_constants.js';\nimport { returnFirstEl } from '@/common/utils';\nimport { DialtoneLocalization } from '@/localization';\n\nexport function useCalendar (props, emits) {\n const selectedDay = ref(null);\n const focusDay = ref(0);\n const daysRef = ref([]);\n const i18n = new DialtoneLocalization();\n\n const weekDays = computed(() => {\n return getWeekDayNames(props.locale, WEEK_START);\n });\n\n watch(() => props.calendarDays, () => {\n focusDay.value = 0;\n daysRef.value = [];\n selectedDay.value = null;\n });\n\n function dayAriaLabel (day) {\n return i18n.$t('DIALTONE_DATEPICKER_SELECT_DAY') + ` ${formatDate(day.value, INTL_MONTH_FORMAT, i18n.currentLocale)}`;\n }\n\n function setDayRef (el, day) {\n if (!daysRef.value.some(day => day.el === el) && !day.disabled) {\n daysRef.value.push({ el, day });\n }\n }\n\n function handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n focusDay.value -= 7;\n try {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } catch {\n const prevFocusDate = calculatePrevFocusDate(daysRef.value[focusDay.value + 7].day.value);\n emits('go-to-prev-month');\n\n nextTick(() => {\n returnFirstEl(daysRef.value[prevFocusDate - 1].el.$el).focus();\n focusDay.value += prevFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n focusDay.value += 7;\n try {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } catch {\n const nextFocusDate = calculateNextFocusDate(daysRef.value[focusDay.value - 7].day.value);\n emits('go-to-next-month');\n\n nextTick(() => {\n returnFirstEl(daysRef.value[nextFocusDate - 1].el.$el).focus();\n focusDay.value += nextFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (focusDay.value > 0) {\n focusDay.value -= 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } else {\n // if we are on month first day, jump to last day of prev month\n emits('go-to-prev-month');\n focusLastDay();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (focusDay.value < daysRef.value.length - 1) {\n focusDay.value += 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n } else {\n // if we are on month last day, jump to first day of next month\n emits('go-to-next-month');\n\n focusFirstDay();\n }\n break;\n\n case 'Tab':\n event.preventDefault();\n emits('focus-month-year-picker');\n break;\n\n case 'Escape':\n emits('close-datepicker');\n break;\n }\n }\n\n function focusFirstDay () {\n focusDay.value = 0;\n\n nextTick(() => {\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n });\n }\n\n function focusLastDay () {\n nextTick(() => {\n focusDay.value = daysRef.value.length - 1;\n returnFirstEl(daysRef.value[focusDay.value].el.$el).focus();\n });\n }\n\n function selectDay (day) {\n if (day.disabled) { return; }\n\n // local selectedDay is updated when a day is selected\n selectedDay.value = day.text;\n emits('select-date', day.value);\n }\n\n return {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n };\n}\n","<template>\n <table\n class=\"d-datepicker__calendar\"\n aria-labelledby=\"calendar-heading\"\n >\n <thead>\n <tr>\n <th\n v-for=\"day in weekDays\"\n :key=\"day\"\n scope=\"col\"\n class=\"d-datepicker__cell d-datepicker__cell--header\"\n >\n <span\n class=\"d-datepicker__weekday\"\n :title=\"day\"\n :aria-label=\"day\"\n > {{ day }}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"(week, indexWeek) in calendarDays\"\n :key=\"indexWeek\"\n >\n <td\n v-for=\"(day, indexDays) in week.days\"\n :key=\"indexWeek + indexDays\"\n class=\"d-datepicker__cell\"\n role=\"listbox\"\n >\n <dt-button\n :ref=\"el => { if (el) setDayRef(el, day) }\"\n class=\"d-datepicker__day\"\n :circle=\"true\"\n size=\"sm\"\n importance=\"clear\"\n :disabled=\"day.disabled\"\n :class=\"{\n 'd-datepicker__day--disabled': day.disabled,\n 'd-datepicker__day--selected': selectedDay\n ? ((day.text === selectedDay) && !day.disabled)\n : day.selected,\n }\"\n type=\"button\"\n :aria-selected=\"!!selectedDay ? ((day.text === selectedDay) && !day.disabled) : day.selected\"\n :aria-label=\"dayAriaLabel(day)\"\n role=\"option\"\n @click=\"selectDay(day)\"\n @keydown=\"handleKeyDown($event)\"\n >\n {{ day.text }}\n </dt-button>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script setup>\nimport { useCalendar } from '../composables/useCalendar.js';\nimport { DtButton } from '@/components/button';\n\nconst props = defineProps({\n calendarDays: {\n type: Array,\n required: true,\n },\n});\n\nconst emits = defineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event select-date\n * @type {Date}\n */\n 'select-date',\n\n /**\n * Will focus the month and year picker\n *\n * @event focus-month-year-picker\n */\n 'focus-month-year-picker',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n\n /**\n * Will go to the next month\n *\n * @event go-to-next-month\n */\n 'go-to-next-month',\n\n /**\n * Will go to the previous month\n *\n * @event go-to-prev-month\n */\n 'go-to-prev-month',\n]);\n\nconst {\n selectedDay,\n weekDays,\n dayAriaLabel,\n setDayRef,\n handleKeyDown,\n focusFirstDay,\n selectDay,\n} = useCalendar(props, emits);\n\ndefineExpose({\n focusFirstDay,\n});\n</script>\n","<!-- eslint-disable vue/multi-word-component-names -->\n<template>\n <dt-stack\n class=\"d-datepicker\"\n gap=\"400\"\n >\n <div class=\"d-datepicker__hd\">\n <month-year-picker\n ref=\"monthYearPicker\"\n :selected-date=\"selectedDate\"\n :min-date=\"minDate\"\n :max-date=\"maxDate\"\n @calendar-days=\"updateCalendarDays\"\n @focus-first-day=\"$refs.calendar.focusFirstDay()\"\n @focus-last-day=\"$refs.calendar.focusLastDay()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n />\n </div>\n <div class=\"d-datepicker__bd\">\n <calendar\n ref=\"calendar\"\n :calendar-days=\"calendarDays\"\n @select-date=\"$emit('selected-date', $event)\"\n @focus-month-year-picker=\"$refs.monthYearPicker.focusMonthYearPicker()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n @go-to-next-month=\"$refs.monthYearPicker.goToNextMonth()\"\n @go-to-prev-month=\"$refs.monthYearPicker.goToPrevMonth()\"\n />\n </div>\n </dt-stack>\n</template>\n\n<script setup>\nimport MonthYearPicker from './modules/month-year-picker.vue';\nimport Calendar from './modules/calendar.vue';\nimport { DtStack } from '@/components/stack';\nimport { returnFirstEl, warnIfUnmounted } from '@/common/utils';\nimport { onMounted, ref, getCurrentInstance } from 'vue';\n\ndefineProps({\n /**\n * Selected date\n *\n * @type {Date}\n */\n selectedDate: {\n type: Date,\n default: () => (new Date()),\n },\n\n /**\n * Minimum selectable date. Days before this date will be disabled.\n * Must be before or equal to maxDate when both are provided.\n *\n * @type {Date}\n */\n minDate: {\n type: Date,\n default: null,\n },\n\n /**\n * Maximum selectable date. Days after this date will be disabled.\n * Must be after or equal to minDate when both are provided.\n *\n * @type {Date}\n */\n maxDate: {\n type: Date,\n default: null,\n validator: (value, props) => {\n if (value && props.minDate && value < props.minDate) {\n console.warn('[DtDatepicker]: maxDate must be after or equal to minDate.');\n return false;\n }\n return true;\n },\n },\n});\n\ndefineEmits([\n /**\n * Event fired when a date is selected\n *\n * @event selected-date\n * @type {Date}\n */\n 'selected-date',\n\n /**\n * Event fired when user presses the esc key\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n]);\n\nconst calendarDays = ref([]);\n\nfunction updateCalendarDays (days) {\n calendarDays.value = days;\n}\n\nonMounted(() => {\n const instance = getCurrentInstance();\n warnIfUnmounted(returnFirstEl(instance.proxy.$el), 'datepicker');\n});\n</script>\n"],"names":["useMonthYearPicker","props","emits","selectMonth","ref","getMonth","selectYear","getYear","highlightedDay","focusPicker","focusRefs","i18n","DialtoneLocalization","calendarDays","computed","getCalendarDays","isPrevMonthDisabled","prevMonth","subMonths","endOfMonth","startOfDay","isNextMonthDisabled","nextMonth","addMonths","startOfMonth","isPrevYearDisabled","prevYearMonth","isNextYearDisabled","nextYearMonth","watch","highlightDay","formattedMonth","month","formatMonth","INTL_MONTH_FORMAT","setDayRef","el","focusMonthYearPicker","returnFirstEl","handleKeyDown","event","year","getDate","changeMonth","value","initialDate","set","newDate","changeYear","goToNextMonth","goToPrevMonth","previousYearAriaLabel","previousMonthAriaLabel","nextYearAriaLabel","nextMonthAriaLabel","__props","__emit","onMounted","__expose","_createBlock","_unref","DtStack","_createVNode","DtTooltip","DtButton","_cache","$event","DtIconChevronsLeft","DtIconChevronLeft","_createElementVNode","_hoisted_1","_toDisplayString","DtIconChevronRight","DtIconChevronsRight","useCalendar","selectedDay","focusDay","daysRef","weekDays","getWeekDayNames","WEEK_START","dayAriaLabel","day","formatDate","prevFocusDate","calculatePrevFocusDate","nextTick","nextFocusDate","calculateNextFocusDate","focusLastDay","focusFirstDay","selectDay","_openBlock","_createElementBlock","_Fragment","_renderList","_hoisted_2","week","indexWeek","indexDays","_createTextVNode","updateCalendarDays","days","instance","getCurrentInstance","warnIfUnmounted","MonthYearPicker","$refs","$emit","Calendar"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("date-fns"),h=require("./datepicker-constants.cjs"),g=t=>t?new Date(t):new Date,m=(t,e,n,c=null,s=null)=>{const o=g(JSON.parse(JSON.stringify(t))),D=c?a.startOfDay(c):null,l=s?a.startOfDay(s):null,i=[];for(let d=0;d<7;d++){const r=a.addDays(o,d),u=a.getMonth(r)!==e,f=u||D&&a.startOfDay(r)<D||l&&a.startOfDay(r)>l;i.push({text:r.getDate(),value:r,currentMonth:!u,disabled:!!f,isFirstDayOfMonth:r.getDate()===1&&!u,selected:n?r.getDate()===n&&!f:!1})}return i},M=(t,e)=>!t||!e?!1:a.isEqual(t,e),w=(t,e,n,c=null,s=null)=>{const o=[],D=g(new Date(e,t)),l=g(new Date(e,t+1,0)),i=h.WEEK_START,d=a.startOfWeek(D,{weekStartsOn:i}),r=u=>{const f=m(u,t,n,c,s);if(o.push({days:f}),!o[o.length-1].days.some(y=>M(y.value,l))){const y=a.addDays(u,7);r(y)}};return r(d),o},O=(t,e)=>{const n=[1,2,3,4,5,6,7].map(o=>new Intl.DateTimeFormat(t,{weekday:"short",timeZone:"UTC"}).format(new Date(`2017-01-0${o}T00:00:00+00:00`)).slice(0,2)),c=n.slice(0,e),s=n.slice(e+1,n.length);return[n[e]].concat(...s).concat(...c)},k=(t,e,n)=>new Intl.DateTimeFormat(n,{month:e}).format(new Date(2e3,t,1)),W=(t,e,n)=>new Intl.DateTimeFormat(n,{dateStyle:e}).format(new Date(t)),x=t=>{const e=new Date(t),n=a.getDay(e),c=a.addMonths(e,1),s=a.startOfMonth(c),o=a.getDay(s),D=(n-o+7)%7,l=a.addDays(s,D);return a.getDate(l)},F=t=>{const e=new Date(t),n=a.getDay(e);let s=a.endOfMonth(a.subMonths(e,1));for(;a.getDay(s)!==n;)s=a.addDays(s,-1);return a.getDate(s)};exports.calculateNextFocusDate=x;exports.calculatePrevFocusDate=F;exports.formatDate=W;exports.formatMonth=k;exports.getCalendarDays=w;exports.getWeekDayNames=O;
|
|
2
2
|
//# sourceMappingURL=utils.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../../components/datepicker/utils.js"],"sourcesContent":["import {\n startOfWeek, addDays, getMonth, isEqual,\n addMonths, startOfMonth, getDay, getDate,\n subMonths, endOfMonth,\n} from 'date-fns';\nimport { WEEK_START } from '@/components/datepicker/datepicker_constants.js';\n\nconst _parsedGetDate = (value) => (value ? new Date(value) : new Date());\n\n/**\n * Get 7 days from the provided start date, month is used to check\n * whether the date is from the specified month or in the offset\n */\nconst getWeekDays = (startDay, month, selectedDay) => {\n const startDate = _parsedGetDate(JSON.parse(JSON.stringify(startDay)));\n const dates = [];\n for (let i = 0; i < 7; i++) {\n const next = addDays(startDate, i);\n const isNext = getMonth(next) !== month;\n dates.push({\n text: next.getDate(),\n value: next,\n currentMonth: !isNext,\n isFirstDayOfMonth: next.getDate() === 1 && !isNext,\n
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../components/datepicker/utils.js"],"sourcesContent":["import {\n startOfWeek, startOfDay, addDays, getMonth, isEqual,\n addMonths, startOfMonth, getDay, getDate,\n subMonths, endOfMonth,\n} from 'date-fns';\nimport { WEEK_START } from '@/components/datepicker/datepicker_constants.js';\n\nconst _parsedGetDate = (value) => (value ? new Date(value) : new Date());\n\n/**\n * Get 7 days from the provided start date, month is used to check\n * whether the date is from the specified month or in the offset\n */\nconst getWeekDays = (startDay, month, selectedDay, minDate = null, maxDate = null) => {\n const startDate = _parsedGetDate(JSON.parse(JSON.stringify(startDay)));\n const normalizedMin = minDate ? startOfDay(minDate) : null;\n const normalizedMax = maxDate ? startOfDay(maxDate) : null;\n const dates = [];\n for (let i = 0; i < 7; i++) {\n const next = addDays(startDate, i);\n const isNext = getMonth(next) !== month;\n const disabled = isNext\n || (normalizedMin && startOfDay(next) < normalizedMin)\n || (normalizedMax && startOfDay(next) > normalizedMax);\n dates.push({\n text: next.getDate(),\n value: next,\n currentMonth: !isNext,\n disabled: !!disabled,\n isFirstDayOfMonth: next.getDate() === 1 && !isNext,\n selected: selectedDay ? (next.getDate() === selectedDay && !disabled) : false,\n });\n }\n return dates;\n};\n\nconst isDateEqual = (date, dateToCompare) => {\n if (!date || !dateToCompare) {\n return false;\n }\n return isEqual(date, dateToCompare);\n};\n\n/**\n * Get days for the calendar to be displayed in a table grouped by weeks\n */\nexport const getCalendarDays = (month, year, selectedDay, minDate = null, maxDate = null) => {\n const weeks = [];\n const firstDate = _parsedGetDate(new Date(year, month));\n const lastDate = _parsedGetDate(new Date(year, month + 1, 0));\n\n const weekStartsOn = WEEK_START;\n\n const firstDateInCalendar = startOfWeek(firstDate, { weekStartsOn });\n\n const addDaysToWeek = (date) => {\n const days = getWeekDays(date, month, selectedDay, minDate, maxDate);\n\n weeks.push({ days });\n\n if (\n !weeks[weeks.length - 1].days.some((day) =>\n isDateEqual(day.value, lastDate),\n )\n ) {\n const nextDate = addDays(date, 7);\n addDaysToWeek(nextDate);\n }\n };\n\n addDaysToWeek(firstDateInCalendar);\n\n return weeks;\n};\n\n/**\n * Generate week day names based on locale and in order specified in week start\n */\nexport const getWeekDayNames = (locale, weekStart) => {\n // Get list in order from sun ... sat\n const days = [1, 2, 3, 4, 5, 6, 7].map((day) => {\n return new Intl.DateTimeFormat(locale, { weekday: 'short', timeZone: 'UTC' })\n .format(new Date(`2017-01-0${day}T00:00:00+00:00`))\n .slice(0, 2);\n });\n\n // Get days that are in order before specified week start\n const beforeWeekStart = days.slice(0, weekStart);\n // Get days that are in order after specified week start\n const afterWeekStart = days.slice(weekStart + 1, days.length);\n\n // return them in correct order\n return [days[weekStart]].concat(...afterWeekStart).concat(...beforeWeekStart);\n};\n\nexport const formatMonth = (month, monthFormat, locale) => {\n return new Intl.DateTimeFormat(locale, { month: monthFormat }).format(new Date(2000, month, 1));\n};\n\nexport const formatDate = (date, dateFormat, locale) => {\n return new Intl.DateTimeFormat(locale, { dateStyle: dateFormat }).format(new Date(date));\n};\n\nexport const calculateNextFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n const nextMonthDate = addMonths(date, 1);\n const nextMonthStart = startOfMonth(nextMonthDate);\n const nextMonthStartWeekday = getDay(nextMonthStart);\n\n const dayDifference = (currentWeekday - nextMonthStartWeekday + 7) % 7;\n\n // Add the difference in days to the first day of the next month\n const focusDate = addDays(nextMonthStart, dayDifference);\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n\nexport const calculatePrevFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n\n // Move to the last day of the previous month\n const lastDayOfPrevMonth = endOfMonth(subMonths(date, 1));\n let focusDate = lastDayOfPrevMonth;\n\n // Adjust to the same weekday in the last week of the previous month\n while (getDay(focusDate) !== currentWeekday) {\n focusDate = addDays(focusDate, -1);\n }\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n"],"names":["_parsedGetDate","value","getWeekDays","startDay","month","selectedDay","minDate","maxDate","startDate","normalizedMin","startOfDay","normalizedMax","dates","i","next","addDays","isNext","getMonth","disabled","isDateEqual","date","dateToCompare","isEqual","getCalendarDays","year","weeks","firstDate","lastDate","weekStartsOn","WEEK_START","firstDateInCalendar","startOfWeek","addDaysToWeek","days","day","nextDate","getWeekDayNames","locale","weekStart","beforeWeekStart","afterWeekStart","formatMonth","monthFormat","formatDate","dateFormat","calculateNextFocusDate","currentDate","currentWeekday","getDay","nextMonthDate","addMonths","nextMonthStart","startOfMonth","nextMonthStartWeekday","dayDifference","focusDate","getDate","calculatePrevFocusDate","endOfMonth","subMonths"],"mappings":"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"}
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { WEEK_START as
|
|
3
|
-
const
|
|
4
|
-
const s =
|
|
5
|
-
for (let
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
text:
|
|
9
|
-
value:
|
|
10
|
-
currentMonth: !
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
selected: n ?
|
|
1
|
+
import { getDay as d, addMonths as g, startOfMonth as k, addDays as h, getDate as M, endOfMonth as O, subMonths as W, startOfWeek as x, startOfDay as i, getMonth as S, isEqual as p } from "date-fns";
|
|
2
|
+
import { WEEK_START as T } from "./datepicker-constants.js";
|
|
3
|
+
const w = (t) => t ? new Date(t) : /* @__PURE__ */ new Date(), F = (t, e, n, r = null, a = null) => {
|
|
4
|
+
const s = w(JSON.parse(JSON.stringify(t))), c = r ? i(r) : null, l = a ? i(a) : null, y = [];
|
|
5
|
+
for (let u = 0; u < 7; u++) {
|
|
6
|
+
const o = h(s, u), D = S(o) !== e, f = D || c && i(o) < c || l && i(o) > l;
|
|
7
|
+
y.push({
|
|
8
|
+
text: o.getDate(),
|
|
9
|
+
value: o,
|
|
10
|
+
currentMonth: !D,
|
|
11
|
+
disabled: !!f,
|
|
12
|
+
isFirstDayOfMonth: o.getDate() === 1 && !D,
|
|
13
|
+
selected: n ? o.getDate() === n && !f : !1
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
return
|
|
17
|
-
},
|
|
18
|
-
const s = [],
|
|
19
|
-
const
|
|
20
|
-
if (s.push({ days:
|
|
21
|
-
(
|
|
16
|
+
return y;
|
|
17
|
+
}, N = (t, e) => !t || !e ? !1 : p(t, e), E = (t, e, n, r = null, a = null) => {
|
|
18
|
+
const s = [], c = w(new Date(e, t)), l = w(new Date(e, t + 1, 0)), u = x(c, { weekStartsOn: T }), o = (D) => {
|
|
19
|
+
const f = F(D, t, n, r, a);
|
|
20
|
+
if (s.push({ days: f }), !s[s.length - 1].days.some(
|
|
21
|
+
(m) => N(m.value, l)
|
|
22
22
|
)) {
|
|
23
|
-
const
|
|
24
|
-
|
|
23
|
+
const m = h(D, 7);
|
|
24
|
+
o(m);
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
|
-
return
|
|
28
|
-
},
|
|
29
|
-
const n = [1, 2, 3, 4, 5, 6, 7].map((
|
|
30
|
-
return [n[e]].concat(...a).concat(...
|
|
31
|
-
},
|
|
32
|
-
const e = new Date(t), n =
|
|
33
|
-
return
|
|
34
|
-
},
|
|
35
|
-
const e = new Date(t), n =
|
|
36
|
-
let a =
|
|
37
|
-
for (;
|
|
38
|
-
a =
|
|
39
|
-
return
|
|
27
|
+
return o(u), s;
|
|
28
|
+
}, I = (t, e) => {
|
|
29
|
+
const n = [1, 2, 3, 4, 5, 6, 7].map((s) => new Intl.DateTimeFormat(t, { weekday: "short", timeZone: "UTC" }).format(/* @__PURE__ */ new Date(`2017-01-0${s}T00:00:00+00:00`)).slice(0, 2)), r = n.slice(0, e), a = n.slice(e + 1, n.length);
|
|
30
|
+
return [n[e]].concat(...a).concat(...r);
|
|
31
|
+
}, P = (t, e, n) => new Intl.DateTimeFormat(n, { month: e }).format(new Date(2e3, t, 1)), q = (t, e, n) => new Intl.DateTimeFormat(n, { dateStyle: e }).format(new Date(t)), z = (t) => {
|
|
32
|
+
const e = new Date(t), n = d(e), r = g(e, 1), a = k(r), s = d(a), c = (n - s + 7) % 7, l = h(a, c);
|
|
33
|
+
return M(l);
|
|
34
|
+
}, C = (t) => {
|
|
35
|
+
const e = new Date(t), n = d(e);
|
|
36
|
+
let a = O(W(e, 1));
|
|
37
|
+
for (; d(a) !== n; )
|
|
38
|
+
a = h(a, -1);
|
|
39
|
+
return M(a);
|
|
40
40
|
};
|
|
41
41
|
export {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
z as calculateNextFocusDate,
|
|
43
|
+
C as calculatePrevFocusDate,
|
|
44
|
+
q as formatDate,
|
|
45
|
+
P as formatMonth,
|
|
46
|
+
E as getCalendarDays,
|
|
47
|
+
I as getWeekDayNames
|
|
48
48
|
};
|
|
49
49
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../components/datepicker/utils.js"],"sourcesContent":["import {\n startOfWeek, addDays, getMonth, isEqual,\n addMonths, startOfMonth, getDay, getDate,\n subMonths, endOfMonth,\n} from 'date-fns';\nimport { WEEK_START } from '@/components/datepicker/datepicker_constants.js';\n\nconst _parsedGetDate = (value) => (value ? new Date(value) : new Date());\n\n/**\n * Get 7 days from the provided start date, month is used to check\n * whether the date is from the specified month or in the offset\n */\nconst getWeekDays = (startDay, month, selectedDay) => {\n const startDate = _parsedGetDate(JSON.parse(JSON.stringify(startDay)));\n const dates = [];\n for (let i = 0; i < 7; i++) {\n const next = addDays(startDate, i);\n const isNext = getMonth(next) !== month;\n dates.push({\n text: next.getDate(),\n value: next,\n currentMonth: !isNext,\n isFirstDayOfMonth: next.getDate() === 1 && !isNext,\n
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../components/datepicker/utils.js"],"sourcesContent":["import {\n startOfWeek, startOfDay, addDays, getMonth, isEqual,\n addMonths, startOfMonth, getDay, getDate,\n subMonths, endOfMonth,\n} from 'date-fns';\nimport { WEEK_START } from '@/components/datepicker/datepicker_constants.js';\n\nconst _parsedGetDate = (value) => (value ? new Date(value) : new Date());\n\n/**\n * Get 7 days from the provided start date, month is used to check\n * whether the date is from the specified month or in the offset\n */\nconst getWeekDays = (startDay, month, selectedDay, minDate = null, maxDate = null) => {\n const startDate = _parsedGetDate(JSON.parse(JSON.stringify(startDay)));\n const normalizedMin = minDate ? startOfDay(minDate) : null;\n const normalizedMax = maxDate ? startOfDay(maxDate) : null;\n const dates = [];\n for (let i = 0; i < 7; i++) {\n const next = addDays(startDate, i);\n const isNext = getMonth(next) !== month;\n const disabled = isNext\n || (normalizedMin && startOfDay(next) < normalizedMin)\n || (normalizedMax && startOfDay(next) > normalizedMax);\n dates.push({\n text: next.getDate(),\n value: next,\n currentMonth: !isNext,\n disabled: !!disabled,\n isFirstDayOfMonth: next.getDate() === 1 && !isNext,\n selected: selectedDay ? (next.getDate() === selectedDay && !disabled) : false,\n });\n }\n return dates;\n};\n\nconst isDateEqual = (date, dateToCompare) => {\n if (!date || !dateToCompare) {\n return false;\n }\n return isEqual(date, dateToCompare);\n};\n\n/**\n * Get days for the calendar to be displayed in a table grouped by weeks\n */\nexport const getCalendarDays = (month, year, selectedDay, minDate = null, maxDate = null) => {\n const weeks = [];\n const firstDate = _parsedGetDate(new Date(year, month));\n const lastDate = _parsedGetDate(new Date(year, month + 1, 0));\n\n const weekStartsOn = WEEK_START;\n\n const firstDateInCalendar = startOfWeek(firstDate, { weekStartsOn });\n\n const addDaysToWeek = (date) => {\n const days = getWeekDays(date, month, selectedDay, minDate, maxDate);\n\n weeks.push({ days });\n\n if (\n !weeks[weeks.length - 1].days.some((day) =>\n isDateEqual(day.value, lastDate),\n )\n ) {\n const nextDate = addDays(date, 7);\n addDaysToWeek(nextDate);\n }\n };\n\n addDaysToWeek(firstDateInCalendar);\n\n return weeks;\n};\n\n/**\n * Generate week day names based on locale and in order specified in week start\n */\nexport const getWeekDayNames = (locale, weekStart) => {\n // Get list in order from sun ... sat\n const days = [1, 2, 3, 4, 5, 6, 7].map((day) => {\n return new Intl.DateTimeFormat(locale, { weekday: 'short', timeZone: 'UTC' })\n .format(new Date(`2017-01-0${day}T00:00:00+00:00`))\n .slice(0, 2);\n });\n\n // Get days that are in order before specified week start\n const beforeWeekStart = days.slice(0, weekStart);\n // Get days that are in order after specified week start\n const afterWeekStart = days.slice(weekStart + 1, days.length);\n\n // return them in correct order\n return [days[weekStart]].concat(...afterWeekStart).concat(...beforeWeekStart);\n};\n\nexport const formatMonth = (month, monthFormat, locale) => {\n return new Intl.DateTimeFormat(locale, { month: monthFormat }).format(new Date(2000, month, 1));\n};\n\nexport const formatDate = (date, dateFormat, locale) => {\n return new Intl.DateTimeFormat(locale, { dateStyle: dateFormat }).format(new Date(date));\n};\n\nexport const calculateNextFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n const nextMonthDate = addMonths(date, 1);\n const nextMonthStart = startOfMonth(nextMonthDate);\n const nextMonthStartWeekday = getDay(nextMonthStart);\n\n const dayDifference = (currentWeekday - nextMonthStartWeekday + 7) % 7;\n\n // Add the difference in days to the first day of the next month\n const focusDate = addDays(nextMonthStart, dayDifference);\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n\nexport const calculatePrevFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n\n // Move to the last day of the previous month\n const lastDayOfPrevMonth = endOfMonth(subMonths(date, 1));\n let focusDate = lastDayOfPrevMonth;\n\n // Adjust to the same weekday in the last week of the previous month\n while (getDay(focusDate) !== currentWeekday) {\n focusDate = addDays(focusDate, -1);\n }\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n"],"names":["_parsedGetDate","value","getWeekDays","startDay","month","selectedDay","minDate","maxDate","startDate","normalizedMin","startOfDay","normalizedMax","dates","i","next","addDays","isNext","getMonth","disabled","isDateEqual","date","dateToCompare","isEqual","getCalendarDays","year","weeks","firstDate","lastDate","firstDateInCalendar","startOfWeek","WEEK_START","addDaysToWeek","days","day","nextDate","getWeekDayNames","locale","weekStart","beforeWeekStart","afterWeekStart","formatMonth","monthFormat","formatDate","dateFormat","calculateNextFocusDate","currentDate","currentWeekday","getDay","nextMonthDate","addMonths","nextMonthStart","startOfMonth","nextMonthStartWeekday","dayDifference","focusDate","getDate","calculatePrevFocusDate","endOfMonth","subMonths"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DT_DESCRIPTION_LIST_DIRECTION as c } from "./description-list-constants.js";
|
|
2
2
|
import { itemsValidator as p } from "./description-list-validators.js";
|
|
3
|
-
import {
|
|
3
|
+
import { openBlock as s, createElementBlock as i, normalizeClass as a, Fragment as d, renderList as m, createElementVNode as l, toDisplayString as n } from "vue";
|
|
4
4
|
import { _ as u } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
5
5
|
import { DT_STACK_GAP as _ } from "../stack/stack-constants.js";
|
|
6
6
|
const C = {
|
|
@@ -65,10 +65,10 @@ const C = {
|
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
67
|
function f(t, g, o, y, D, e) {
|
|
68
|
-
return
|
|
68
|
+
return s(), i("dl", {
|
|
69
69
|
class: a(["d-description-list", e.getDirectionClass, e.getGapClass])
|
|
70
70
|
}, [
|
|
71
|
-
(
|
|
71
|
+
(s(!0), i(d, null, m(o.items, (r) => (s(), i(d, {
|
|
72
72
|
key: r.term
|
|
73
73
|
}, [
|
|
74
74
|
l("dt", {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveComponent as d,
|
|
1
|
+
import { resolveComponent as d, openBlock as e, createElementBlock as r, createBlock as l, withCtx as s, createElementVNode as o, toDisplayString as c, createCommentVNode as i, normalizeClass as p, renderSlot as m } from "vue";
|
|
2
2
|
import { _ as f } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
3
3
|
import _ from "../stack/stack.js";
|
|
4
4
|
const u = {
|
|
@@ -31,11 +31,11 @@ function k(a, g, t, w, h, C) {
|
|
|
31
31
|
align: "center",
|
|
32
32
|
class: "dt-dropdown-list--header d-fs12 d-fc-black-400 d-fw-bold d-lh4 d-py4 d-px12"
|
|
33
33
|
}, {
|
|
34
|
-
default:
|
|
35
|
-
o("span", null,
|
|
34
|
+
default: s(() => [
|
|
35
|
+
o("span", null, c(t.heading), 1)
|
|
36
36
|
]),
|
|
37
37
|
_: 1
|
|
38
|
-
})) :
|
|
38
|
+
})) : i("", !0),
|
|
39
39
|
o("ul", {
|
|
40
40
|
class: p(["d-ps-relative", "d-stack2", "d-px0", t.listClass]),
|
|
41
41
|
"data-qa": "dt-dropdown-list-wrapper"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { openBlock as o, createElementBlock as t } from "vue";
|
|
2
2
|
import { _ as r } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
3
3
|
const e = {
|
|
4
4
|
compatConfig: { MODE: 3 },
|
|
@@ -8,7 +8,7 @@ const e = {
|
|
|
8
8
|
class: "d-list-item-separator"
|
|
9
9
|
};
|
|
10
10
|
function n(s, c, p, i, _, d) {
|
|
11
|
-
return
|
|
11
|
+
return o(), t("li", a);
|
|
12
12
|
}
|
|
13
13
|
const l = /* @__PURE__ */ r(e, [["render", n]]);
|
|
14
14
|
export {
|
|
@@ -2,7 +2,7 @@ import f from "../../common/mixins/keyboard-list-navigation.js";
|
|
|
2
2
|
import { DROPDOWN_PADDING_CLASSES as a } from "./dropdown-constants.js";
|
|
3
3
|
import { getUniqueString as m } from "../../common/utils/index.js";
|
|
4
4
|
import { EVENT_KEYNAMES as n } from "../../common/constants/index.js";
|
|
5
|
-
import { resolveComponent as y,
|
|
5
|
+
import { resolveComponent as y, openBlock as c, createBlock as K, mergeProps as p, toHandlers as w, withCtx as h, renderSlot as l, createElementVNode as O, normalizeClass as E } from "vue";
|
|
6
6
|
import { _ as I } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
7
7
|
import { LIST_ITEM_NAVIGATION_TYPES as d } from "../list-item/list-item-constants.js";
|
|
8
8
|
import b from "../popover/popover.js";
|
|
@@ -342,7 +342,7 @@ const P = {
|
|
|
342
342
|
}, S = ["id"];
|
|
343
343
|
function A(e, t, i, H, u, o) {
|
|
344
344
|
const g = y("dt-popover");
|
|
345
|
-
return
|
|
345
|
+
return c(), K(g, p({
|
|
346
346
|
ref: "popover",
|
|
347
347
|
"content-width": i.contentWidth,
|
|
348
348
|
open: i.open,
|
|
@@ -2,7 +2,7 @@ import { EDITOR_SUPPORTED_LINK_PROTOCOLS as z, EDITOR_DEFAULT_LINK_PREFIX as J }
|
|
|
2
2
|
import { addClassStyleAttrs as j, removeClassStyleAttrs as H } from "../../common/utils/index.js";
|
|
3
3
|
import { DtIconImage as w, DtIconLink2 as O, DtIconCodeBlock as D, DtIconQuote as R, DtIconAlignJustify as x, DtIconAlignRight as y, DtIconAlignCenter as C, DtIconAlignLeft as b, DtIconListOrdered as N, DtIconListBullet as S, DtIconStrikethrough as U, DtIconUnderline as F, DtIconItalic as v, DtIconBold as Q, DtIconQuickReply as M } from "@dialpad/dialtone-icons/vue3";
|
|
4
4
|
import { DialtoneLocalization as Y } from "../../localization/index.js";
|
|
5
|
-
import { resolveComponent as h,
|
|
5
|
+
import { resolveComponent as h, openBlock as c, createElementBlock as A, mergeProps as f, createVNode as a, withCtx as u, Fragment as q, renderList as V, createBlock as B, withKeys as g, withModifiers as p, createTextVNode as L, toDisplayString as k, resolveDynamicComponent as K, createElementVNode as _, createCommentVNode as X, normalizeStyle as W } from "vue";
|
|
6
6
|
import { _ as Z } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
7
7
|
import tt from "../tooltip/tooltip.js";
|
|
8
8
|
import et from "../input/input.js";
|
|
@@ -670,7 +670,7 @@ function ct(t, e, o, n, r, i) {
|
|
|
670
670
|
(c(), B(K(l.icon), { size: "200" }))
|
|
671
671
|
]),
|
|
672
672
|
default: u(() => [
|
|
673
|
-
|
|
673
|
+
L(" " + k(l == null ? void 0 : l.label), 1)
|
|
674
674
|
]),
|
|
675
675
|
_: 2
|
|
676
676
|
}, 1032, ["active", "aria-label", "data-qa", "tabindex", "onClick", "onKeydown"])
|
|
@@ -678,7 +678,7 @@ function ct(t, e, o, n, r, i) {
|
|
|
678
678
|
}),
|
|
679
679
|
_: 2
|
|
680
680
|
}, 1032, ["message"]))), 128)),
|
|
681
|
-
e[5] || (e[5] =
|
|
681
|
+
e[5] || (e[5] = _("div", { class: "d-recipe-editor__button-group-divider" }, null, -1))
|
|
682
682
|
]),
|
|
683
683
|
_: 2
|
|
684
684
|
}, 1024))), 128)),
|
|
@@ -735,8 +735,8 @@ function ct(t, e, o, n, r, i) {
|
|
|
735
735
|
}, 8, ["message"]))
|
|
736
736
|
]),
|
|
737
737
|
content: u(() => [
|
|
738
|
-
|
|
739
|
-
|
|
738
|
+
_("div", at, [
|
|
739
|
+
_("span", null, k(i.showAddLinkButtonLabels.title), 1),
|
|
740
740
|
a(P, {
|
|
741
741
|
modelValue: r.linkInput,
|
|
742
742
|
"onUpdate:modelValue": e[1] || (e[1] = (s) => r.linkInput = s),
|
|
@@ -767,7 +767,7 @@ function ct(t, e, o, n, r, i) {
|
|
|
767
767
|
size: "sm"
|
|
768
768
|
}, i.removeLinkButtonLabels, { onClick: i.removeLink }), {
|
|
769
769
|
default: u(() => [
|
|
770
|
-
|
|
770
|
+
L(k(i.removeLinkButtonLabels.title), 1)
|
|
771
771
|
]),
|
|
772
772
|
_: 1
|
|
773
773
|
}, 16, ["onClick"]),
|
|
@@ -778,7 +778,7 @@ function ct(t, e, o, n, r, i) {
|
|
|
778
778
|
size: "sm"
|
|
779
779
|
}, i.cancelSetLinkButtonLabels, { onClick: i.closeLinkInput }), {
|
|
780
780
|
default: u(() => [
|
|
781
|
-
|
|
781
|
+
L(k(i.cancelSetLinkButtonLabels.title), 1)
|
|
782
782
|
]),
|
|
783
783
|
_: 1
|
|
784
784
|
}, 16, ["onClick"]),
|
|
@@ -787,7 +787,7 @@ function ct(t, e, o, n, r, i) {
|
|
|
787
787
|
size: "sm"
|
|
788
788
|
}, i.confirmSetLinkButtonLabels, { onClick: i.setLink }), {
|
|
789
789
|
default: u(() => [
|
|
790
|
-
|
|
790
|
+
L(k(i.confirmSetLinkButtonLabels.title), 1)
|
|
791
791
|
]),
|
|
792
792
|
_: 1
|
|
793
793
|
}, 16, ["onClick"])
|
|
@@ -803,7 +803,7 @@ function ct(t, e, o, n, r, i) {
|
|
|
803
803
|
]),
|
|
804
804
|
_: 1
|
|
805
805
|
}),
|
|
806
|
-
|
|
806
|
+
_("div", {
|
|
807
807
|
style: W({ "max-height": o.maxHeight }),
|
|
808
808
|
class: "d-recipe-editor__content"
|
|
809
809
|
}, [
|
package/dist/lib/emoji/emoji.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { codeToEmojiData as c, stringToUnicode as u, emojiImageUrlSmall as j, emojiFileExtensionSmall as g, emojiImageUrlLarge as h, emojiFileExtensionLarge as f } from "../../common/emoji/index.js";
|
|
2
|
-
import { resolveComponent as D,
|
|
2
|
+
import { resolveComponent as D, openBlock as S, createElementBlock as L, normalizeClass as o, withDirectives as n, createVNode as E, vShow as l, createElementVNode as p } from "vue";
|
|
3
3
|
import { _ } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
4
4
|
import b from "../skeleton/skeleton.js";
|
|
5
5
|
import { ICON_SIZE_MODIFIERS as s } from "../icon/icon-constants.js";
|
|
@@ -110,7 +110,7 @@ const k = {
|
|
|
110
110
|
}, y = ["aria-label", "alt", "title", "src"];
|
|
111
111
|
function z(i, t, r, I, m, e) {
|
|
112
112
|
const d = D("dt-skeleton");
|
|
113
|
-
return
|
|
113
|
+
return S(), L("span", {
|
|
114
114
|
class: o(["d-emoji d-icon", e.emojiSize])
|
|
115
115
|
}, [
|
|
116
116
|
n(E(d, {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref as S, onMounted as re,
|
|
1
|
+
import { ref as S, onMounted as re, openBlock as E, createElementBlock as I, createVNode as F, unref as k, withKeys as J, withModifiers as ue, createSlots as ye, withCtx as N, computed as M, watch as K, Fragment as W, renderList as G, createBlock as Z, resolveDynamicComponent as Le, nextTick as x, onBeforeUnmount as Te, createElementVNode as A, toDisplayString as z, withDirectives as te, createCommentVNode as Y, vShow as oe, normalizeClass as ce, watchEffect as ae, createTextVNode as fe } from "vue";
|
|
2
2
|
import { DtIconSearch as je, DtIconClose as Ie, DtIconClock as Re, DtIconSatisfied as Ae, DtIconLivingThing as $e, DtIconFood as we, DtIconObject as Oe, DtIconTransportation as De, DtIconLightbulb as Ce, DtIconHeart as Be, DtIconFlag as Fe, DtIconDialpadStar as Ke } from "@dialpad/dialtone-icons/vue3";
|
|
3
3
|
import Ne from "../input/input.js";
|
|
4
4
|
import de from "../button/button.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { REACTIONS_ATTRIBUTES as w } from "./emoji-row-constants.js";
|
|
2
2
|
import { DialtoneLocalization as C } from "../../localization/index.js";
|
|
3
3
|
import { getEmojiShortCode as b } from "../../common/emoji/index.js";
|
|
4
|
-
import { resolveComponent as n,
|
|
4
|
+
import { resolveComponent as n, openBlock as l, createElementBlock as d, Fragment as E, renderList as S, createVNode as m, withCtx as s, createElementVNode as t, toDisplayString as c, createTextVNode as k, normalizeClass as O, renderSlot as v } from "vue";
|
|
5
5
|
import { _ as x } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
6
|
import D from "../emoji-text-wrapper/emoji-text-wrapper.js";
|
|
7
7
|
import T from "../emoji/emoji.js";
|
|
@@ -54,8 +54,8 @@ const g = {
|
|
|
54
54
|
}, y = { class: "d-recipe-emoji-row" }, A = { "aria-hidden": "true" }, N = { class: "d-recipe-emoji-row__tooltip-emoji" }, R = { class: "d-recipe-emoji-row__tooltip-names" }, U = ["textContent"], z = { class: "d-recipe-emoji-row__emoji" }, B = { class: "d-recipe-emoji-row__reaction-number" };
|
|
55
55
|
function $(e, i, p, _, V, r) {
|
|
56
56
|
const j = n("dt-emoji-text-wrapper"), u = n("dt-emoji"), f = n("dt-button"), h = n("dt-tooltip");
|
|
57
|
-
return
|
|
58
|
-
(
|
|
57
|
+
return l(), d("span", y, [
|
|
58
|
+
(l(!0), d(E, null, S(p.reactions, (o) => (l(), d("span", {
|
|
59
59
|
key: o.unicodeOutput
|
|
60
60
|
}, [
|
|
61
61
|
m(h, {
|
|
@@ -70,7 +70,7 @@ function $(e, i, p, _, V, r) {
|
|
|
70
70
|
importance: "clear",
|
|
71
71
|
size: "sm",
|
|
72
72
|
"data-qa": "feed-item-reaction-button",
|
|
73
|
-
class:
|
|
73
|
+
class: O([
|
|
74
74
|
"d-recipe-emoji-row__reaction",
|
|
75
75
|
o.isSelected ? "d-recipe-emoji-row__reaction--selected" : ""
|
|
76
76
|
]),
|
|
@@ -99,7 +99,7 @@ function $(e, i, p, _, V, r) {
|
|
|
99
99
|
t("p", N, c(o.emojiUnicodeOrShortname), 1),
|
|
100
100
|
i[0] || (i[0] = t("br", null, null, -1)),
|
|
101
101
|
t("p", R, [
|
|
102
|
-
|
|
102
|
+
k(c(o.names) + " ", 1),
|
|
103
103
|
t("span", {
|
|
104
104
|
class: "d-recipe-emoji-row__tooltip-label",
|
|
105
105
|
textContent: c(r.reactionLabel(o))
|
|
@@ -113,7 +113,7 @@ function $(e, i, p, _, V, r) {
|
|
|
113
113
|
_: 2
|
|
114
114
|
}, 1032, ["onShown"])
|
|
115
115
|
]))), 128)),
|
|
116
|
-
|
|
116
|
+
v(e.$slots, "picker")
|
|
117
117
|
]);
|
|
118
118
|
}
|
|
119
119
|
const X = /* @__PURE__ */ x(g, [["render", $]]);
|