@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.
Files changed (138) hide show
  1. package/dist/common/dates/index.js +4 -4
  2. package/dist/common/utils/index.js +3 -3
  3. package/dist/component-documentation.json +1 -1
  4. package/dist/dialtone-vue.cjs +1 -1
  5. package/dist/dialtone-vue.js +349 -347
  6. package/dist/dialtone-vue.js.map +1 -1
  7. package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
  8. package/dist/lib/avatar/avatar.js +10 -10
  9. package/dist/lib/badge/badge.js +5 -5
  10. package/dist/lib/banner/banner.js +1 -1
  11. package/dist/lib/breadcrumbs/breadcrumb-item.js +2 -2
  12. package/dist/lib/breadcrumbs/breadcrumbs.js +1 -1
  13. package/dist/lib/button/button.js +14 -14
  14. package/dist/lib/button-group/button-group.js +2 -2
  15. package/dist/lib/button-group/buttons-decorator.js +2 -2
  16. package/dist/lib/callbar-button/callbar-button.js +2 -2
  17. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  18. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +9 -9
  19. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  20. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +9 -9
  21. package/dist/lib/callbox/callbox.js +1 -1
  22. package/dist/lib/card/card.js +4 -4
  23. package/dist/lib/checkbox/checkbox.js +5 -5
  24. package/dist/lib/checkbox-group/checkboxes-decorator.js +1 -1
  25. package/dist/lib/chip/chip.js +7 -7
  26. package/dist/lib/codeblock/codeblock.js +2 -2
  27. package/dist/lib/collapsible/collapsible-lazy-show.js +3 -3
  28. package/dist/lib/collapsible/collapsible.js +8 -8
  29. package/dist/lib/combobox/combobox-empty-list.js +2 -2
  30. package/dist/lib/combobox/combobox-loading-list.js +3 -3
  31. package/dist/lib/combobox/combobox.cjs +1 -1
  32. package/dist/lib/combobox/combobox.js +8 -8
  33. package/dist/lib/combobox-multi-select/combobox-multi-select.js +1 -1
  34. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  35. package/dist/lib/combobox-with-popover/combobox-with-popover.js +10 -10
  36. package/dist/lib/contact-centers-row/contact-centers-row.js +7 -7
  37. package/dist/lib/contact-info/contact-info.js +1 -1
  38. package/dist/lib/contact-row/contact-row.js +1 -1
  39. package/dist/lib/datepicker/datepicker.cjs +1 -1
  40. package/dist/lib/datepicker/datepicker.cjs.map +1 -1
  41. package/dist/lib/datepicker/datepicker.js +306 -242
  42. package/dist/lib/datepicker/datepicker.js.map +1 -1
  43. package/dist/lib/datepicker/utils.cjs +1 -1
  44. package/dist/lib/datepicker/utils.cjs.map +1 -1
  45. package/dist/lib/datepicker/utils.js +40 -40
  46. package/dist/lib/datepicker/utils.js.map +1 -1
  47. package/dist/lib/description-list/description-list.js +3 -3
  48. package/dist/lib/dropdown/dropdown-list.js +4 -4
  49. package/dist/lib/dropdown/dropdown-separator.js +2 -2
  50. package/dist/lib/dropdown/dropdown.js +2 -2
  51. package/dist/lib/editor/editor.js +9 -9
  52. package/dist/lib/emoji/emoji.js +2 -2
  53. package/dist/lib/emoji-picker/emoji-picker.js +1 -1
  54. package/dist/lib/emoji-row/emoji-row.js +6 -6
  55. package/dist/lib/empty-state/empty-state.js +7 -7
  56. package/dist/lib/feed-item-pill/feed-item-pill.js +1 -1
  57. package/dist/lib/feed-item-row/feed-item-row.js +15 -15
  58. package/dist/lib/general-row/general-row.js +13 -13
  59. package/dist/lib/general-row/index.cjs +1 -1
  60. package/dist/lib/general-row/index.js +6 -4
  61. package/dist/lib/general-row/index.js.map +1 -1
  62. package/dist/lib/general-row/leftbar-general-row-icon.js +5 -5
  63. package/dist/lib/group-row/group-row.js +2 -2
  64. package/dist/lib/grouped-chip/grouped-chip.js +14 -14
  65. package/dist/lib/hovercard/hovercard.js +2 -2
  66. package/dist/lib/icon/icon.js +3 -3
  67. package/dist/lib/illustration/illustration.js +3 -3
  68. package/dist/lib/image-viewer/image-viewer.js +12 -12
  69. package/dist/lib/input/input.js +10 -10
  70. package/dist/lib/input-group/input-group.js +8 -8
  71. package/dist/lib/item-layout/item-layout.js +13 -13
  72. package/dist/lib/ivr-node/ivr-node.js +9 -9
  73. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +3 -3
  74. package/dist/lib/lazy-show/lazy-show.js +2 -2
  75. package/dist/lib/link/link.js +2 -2
  76. package/dist/lib/list-item/list-item.js +3 -3
  77. package/dist/lib/list-item-group/list-item-group.js +5 -5
  78. package/dist/lib/loader/loader.js +2 -2
  79. package/dist/lib/message-input/message-input-button.js +5 -5
  80. package/dist/lib/message-input/message-input-link.js +2 -2
  81. package/dist/lib/message-input/message-input-topbar.js +2 -2
  82. package/dist/lib/message-input/message-input.cjs +1 -1
  83. package/dist/lib/message-input/message-input.cjs.map +1 -1
  84. package/dist/lib/message-input/message-input.js +17 -16
  85. package/dist/lib/message-input/message-input.js.map +1 -1
  86. package/dist/lib/modal/modal.js +1 -1
  87. package/dist/lib/motion-text/motion-text.js +5 -5
  88. package/dist/lib/notice/notice-action.js +1 -1
  89. package/dist/lib/notice/notice-content.js +6 -6
  90. package/dist/lib/notice/notice-icon.js +4 -4
  91. package/dist/lib/notice/notice.js +1 -1
  92. package/dist/lib/pagination/pagination.js +1 -1
  93. package/dist/lib/popover/popover-constants.js +3 -3
  94. package/dist/lib/popover/popover-header-footer.js +6 -6
  95. package/dist/lib/popover/popover.js +7 -7
  96. package/dist/lib/presence/presence.js +4 -4
  97. package/dist/lib/radio/radio.js +10 -10
  98. package/dist/lib/radio-group/radios-decorator.js +1 -1
  99. package/dist/lib/rich-text-editor/rich-text-editor.js +4 -4
  100. package/dist/lib/root-layout/root-layout.js +3 -3
  101. package/dist/lib/scroller/scroller.js +1 -1
  102. package/dist/lib/select-menu/select-menu.js +12 -12
  103. package/dist/lib/settings-menu-button/settings-menu-button.js +3 -3
  104. package/dist/lib/skeleton/skeleton-list-item.js +2 -2
  105. package/dist/lib/skeleton/skeleton-paragraph.js +1 -1
  106. package/dist/lib/skeleton/skeleton-shape.js +2 -2
  107. package/dist/lib/skeleton/skeleton-text.js +4 -4
  108. package/dist/lib/skeleton/skeleton.js +1 -1
  109. package/dist/lib/split-button/split-button-alpha.js +2 -2
  110. package/dist/lib/split-button/split-button-omega.js +2 -2
  111. package/dist/lib/split-button/split-button.js +13 -13
  112. package/dist/lib/stack/stack.js +2 -2
  113. package/dist/lib/stack/utils.js +5 -5
  114. package/dist/lib/stack/validators.js +7 -7
  115. package/dist/lib/tab/tab-group.js +2 -2
  116. package/dist/lib/tab/tab-panel.js +2 -2
  117. package/dist/lib/tab/tab.js +2 -2
  118. package/dist/lib/time-pill/time-pill.js +2 -2
  119. package/dist/lib/toast/toast.js +1 -1
  120. package/dist/lib/toggle/toggle.js +7 -7
  121. package/dist/lib/tooltip/tooltip.js +5 -5
  122. package/dist/lib/top-banner-info/top-banner-info.js +2 -2
  123. package/dist/lib/unread-pill/unread-pill.js +1 -1
  124. package/dist/lib/validation-messages/validation-messages.js +6 -6
  125. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  126. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  127. package/dist/shared/sr_only_close_button.js +2 -2
  128. package/dist/types/components/datepicker/composables/useMonthYearPicker.d.ts +4 -0
  129. package/dist/types/components/datepicker/composables/useMonthYearPicker.d.ts.map +1 -1
  130. package/dist/types/components/datepicker/datepicker.vue.d.ts +8 -0
  131. package/dist/types/components/datepicker/datepicker.vue.d.ts.map +1 -1
  132. package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts +4 -0
  133. package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  134. package/dist/types/components/datepicker/utils.d.ts +1 -1
  135. package/dist/types/components/datepicker/utils.d.ts.map +1 -1
  136. package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  137. package/dist/types/recipes/leftbar/general_row/index.d.ts +1 -0
  138. 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 n=require("date-fns"),y=require("./datepicker-constants.cjs"),u=t=>t?new Date(t):new Date,g=(t,e,a)=>{const o=u(JSON.parse(JSON.stringify(t))),s=[];for(let r=0;r<7;r++){const c=n.addDays(o,r),D=n.getMonth(c)!==e;s.push({text:c.getDate(),value:c,currentMonth:!D,isFirstDayOfMonth:c.getDate()===1&&!D,selected:a?c.getDate()===a&&!D:!1})}return s},h=(t,e)=>!t||!e?!1:n.isEqual(t,e),m=(t,e,a)=>{const o=[],s=u(new Date(e,t)),r=u(new Date(e,t+1,0)),c=y.WEEK_START,D=n.startOfWeek(s,{weekStartsOn:c}),d=i=>{const f=g(i,t,a);if(o.push({days:f}),!o[o.length-1].days.some(l=>h(l.value,r))){const l=n.addDays(i,7);d(l)}};return d(D),o},M=(t,e)=>{const a=[1,2,3,4,5,6,7].map(r=>new Intl.DateTimeFormat(t,{weekday:"short",timeZone:"UTC"}).format(new Date(`2017-01-0${r}T00:00:00+00:00`)).slice(0,2)),o=a.slice(0,e),s=a.slice(e+1,a.length);return[a[e]].concat(...s).concat(...o)},w=(t,e,a)=>new Intl.DateTimeFormat(a,{month:e}).format(new Date(2e3,t,1)),k=(t,e,a)=>new Intl.DateTimeFormat(a,{dateStyle:e}).format(new Date(t)),W=t=>{const e=new Date(t),a=n.getDay(e),o=n.addMonths(e,1),s=n.startOfMonth(o),r=n.getDay(s),c=(a-r+7)%7,D=n.addDays(s,c);return n.getDate(D)},O=t=>{const e=new Date(t),a=n.getDay(e);let s=n.endOfMonth(n.subMonths(e,1));for(;n.getDay(s)!==a;)s=n.addDays(s,-1);return n.getDate(s)};exports.calculateNextFocusDate=W;exports.calculatePrevFocusDate=O;exports.formatDate=k;exports.formatMonth=w;exports.getCalendarDays=m;exports.getWeekDayNames=M;
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 // will be selected if the date is the same as the selected day and is from the current month\n selected: selectedDay ? (next.getDate() === selectedDay && !isNext) : 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) => {\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);\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","startDate","dates","i","next","addDays","isNext","getMonth","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
+ {"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 { startOfWeek as y, getDay as D, addMonths as w, startOfMonth as M, addDays as f, getDate as h, endOfMonth as g, subMonths as k, getMonth as O, isEqual as W } from "date-fns";
2
- import { WEEK_START as x } from "./datepicker-constants.js";
3
- const u = (t) => t ? new Date(t) : /* @__PURE__ */ new Date(), S = (t, e, n) => {
4
- const s = u(JSON.parse(JSON.stringify(t))), a = [];
5
- for (let o = 0; o < 7; o++) {
6
- const r = f(s, o), c = O(r) !== e;
7
- a.push({
8
- text: r.getDate(),
9
- value: r,
10
- currentMonth: !c,
11
- isFirstDayOfMonth: r.getDate() === 1 && !c,
12
- // will be selected if the date is the same as the selected day and is from the current month
13
- selected: n ? r.getDate() === n && !c : !1
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 a;
17
- }, p = (t, e) => !t || !e ? !1 : W(t, e), N = (t, e, n) => {
18
- const s = [], a = u(new Date(e, t)), o = u(new Date(e, t + 1, 0)), c = y(a, { weekStartsOn: x }), i = (d) => {
19
- const m = S(d, t, n);
20
- if (s.push({ days: m }), !s[s.length - 1].days.some(
21
- (l) => p(l.value, o)
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 l = f(d, 7);
24
- i(l);
23
+ const m = h(D, 7);
24
+ o(m);
25
25
  }
26
26
  };
27
- return i(c), s;
28
- }, v = (t, e) => {
29
- const n = [1, 2, 3, 4, 5, 6, 7].map((o) => new Intl.DateTimeFormat(t, { weekday: "short", timeZone: "UTC" }).format(/* @__PURE__ */ new Date(`2017-01-0${o}T00:00:00+00:00`)).slice(0, 2)), s = n.slice(0, e), a = n.slice(e + 1, n.length);
30
- return [n[e]].concat(...a).concat(...s);
31
- }, E = (t, e, n) => new Intl.DateTimeFormat(n, { month: e }).format(new Date(2e3, t, 1)), I = (t, e, n) => new Intl.DateTimeFormat(n, { dateStyle: e }).format(new Date(t)), P = (t) => {
32
- const e = new Date(t), n = D(e), s = w(e, 1), a = M(s), o = D(a), r = (n - o + 7) % 7, c = f(a, r);
33
- return h(c);
34
- }, b = (t) => {
35
- const e = new Date(t), n = D(e);
36
- let a = g(k(e, 1));
37
- for (; D(a) !== n; )
38
- a = f(a, -1);
39
- return h(a);
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
- P as calculateNextFocusDate,
43
- b as calculatePrevFocusDate,
44
- I as formatDate,
45
- E as formatMonth,
46
- N as getCalendarDays,
47
- v as getWeekDayNames
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 // will be selected if the date is the same as the selected day and is from the current month\n selected: selectedDay ? (next.getDate() === selectedDay && !isNext) : 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) => {\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);\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","startDate","dates","i","next","addDays","isNext","getMonth","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
+ {"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 { createElementBlock as s, openBlock as i, normalizeClass as a, Fragment as d, renderList as m, createElementVNode as l, toDisplayString as n } from "vue";
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 i(), s("dl", {
68
+ return s(), i("dl", {
69
69
  class: a(["d-description-list", e.getDirectionClass, e.getGapClass])
70
70
  }, [
71
- (i(!0), s(d, null, m(o.items, (r) => (i(), s(d, {
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, createElementBlock as r, openBlock as e, createBlock as l, createCommentVNode as s, createElementVNode as o, withCtx as c, toDisplayString as i, normalizeClass as p, renderSlot as m } from "vue";
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: c(() => [
35
- o("span", null, i(t.heading), 1)
34
+ default: s(() => [
35
+ o("span", null, c(t.heading), 1)
36
36
  ]),
37
37
  _: 1
38
- })) : s("", !0),
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 { createElementBlock as o, openBlock as t } from "vue";
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 t(), o("li", a);
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, createBlock as c, openBlock as K, mergeProps as p, toHandlers as w, withCtx as h, renderSlot as l, createElementVNode as O, normalizeClass as E } from "vue";
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 K(), c(g, p({
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, createElementBlock as A, openBlock as c, mergeProps as f, createVNode as a, createElementVNode as L, withCtx as u, createBlock as B, createCommentVNode as X, Fragment as q, renderList as V, withKeys as g, withModifiers as p, createTextVNode as _, toDisplayString as k, resolveDynamicComponent as K, normalizeStyle as W } from "vue";
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
- _(" " + k(l == null ? void 0 : l.label), 1)
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] = L("div", { class: "d-recipe-editor__button-group-divider" }, null, -1))
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
- L("div", at, [
739
- L("span", null, k(i.showAddLinkButtonLabels.title), 1),
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
- _(k(i.removeLinkButtonLabels.title), 1)
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
- _(k(i.cancelSetLinkButtonLabels.title), 1)
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
- _(k(i.confirmSetLinkButtonLabels.title), 1)
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
- L("div", {
806
+ _("div", {
807
807
  style: W({ "max-height": o.maxHeight }),
808
808
  class: "d-recipe-editor__content"
809
809
  }, [
@@ -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, createElementBlock as S, openBlock as L, normalizeClass as o, withDirectives as n, createVNode as E, vShow as l, createElementVNode as p } from "vue";
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 L(), S("span", {
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, createElementBlock as I, openBlock as E, 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, createCommentVNode as Y, toDisplayString as z, withDirectives as te, vShow as oe, normalizeClass as ce, watchEffect as ae, createTextVNode as fe } from "vue";
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, createElementBlock as l, openBlock as d, renderSlot as E, Fragment as S, renderList as k, createVNode as m, withCtx as s, createElementVNode as t, toDisplayString as c, createTextVNode as O, normalizeClass as v } from "vue";
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 d(), l("span", y, [
58
- (d(!0), l(S, null, k(p.reactions, (o) => (d(), l("span", {
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: v([
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
- O(c(o.names) + " ", 1),
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
- E(e.$slots, "picker")
116
+ v(e.$slots, "picker")
117
117
  ]);
118
118
  }
119
119
  const X = /* @__PURE__ */ x(g, [["render", $]]);