@dialpad/dialtone-vue 3.209.0 → 3.210.0-next.2
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/mixins/keyboard-list-navigation.cjs +1 -1
- package/dist/common/mixins/keyboard-list-navigation.cjs.map +1 -1
- package/dist/common/mixins/keyboard-list-navigation.js +7 -7
- package/dist/common/mixins/keyboard-list-navigation.js.map +1 -1
- package/dist/component-documentation.json +1 -1
- package/dist/dialtone-vue.cjs +1 -1
- package/dist/dialtone-vue.js +422 -386
- package/dist/dialtone-vue.js.map +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
- package/dist/lib/attachment-carousel/attachment-carousel.js +64 -117
- package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
- package/dist/lib/avatar/avatar-constants.cjs +1 -1
- package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
- package/dist/lib/avatar/avatar-constants.js +169 -43
- package/dist/lib/avatar/avatar-constants.js.map +1 -1
- package/dist/lib/avatar/avatar.cjs +1 -1
- package/dist/lib/avatar/avatar.cjs.map +1 -1
- package/dist/lib/avatar/avatar.js +185 -100
- package/dist/lib/avatar/avatar.js.map +1 -1
- package/dist/lib/avatar/index.cjs +1 -1
- package/dist/lib/avatar/index.js +16 -10
- package/dist/lib/badge/badge.cjs +1 -1
- package/dist/lib/badge/badge.cjs.map +1 -1
- package/dist/lib/badge/badge.js +47 -35
- package/dist/lib/badge/badge.js.map +1 -1
- package/dist/lib/button/button-constants.cjs +1 -1
- package/dist/lib/button/button-constants.cjs.map +1 -1
- package/dist/lib/button/button-constants.js +23 -19
- package/dist/lib/button/button-constants.js.map +1 -1
- package/dist/lib/button/button.cjs +1 -1
- package/dist/lib/button/button.cjs.map +1 -1
- package/dist/lib/button/button.js +138 -60
- package/dist/lib/button/button.js.map +1 -1
- package/dist/lib/callbar-button/callbar-button.cjs +1 -1
- package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
- package/dist/lib/callbar-button/callbar-button.js +8 -9
- package/dist/lib/callbar-button/callbar-button.js.map +1 -1
- package/dist/lib/callbox/callbox.cjs +1 -1
- package/dist/lib/callbox/callbox.cjs.map +1 -1
- package/dist/lib/callbox/callbox.js +47 -47
- package/dist/lib/callbox/callbox.js.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
- package/dist/lib/combobox-multi-select/combobox-multi-select.js +31 -31
- package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
- package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
- package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
- package/dist/lib/contact-centers-row/contact-centers-row.js +33 -33
- package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
- package/dist/lib/contact-info/contact-info.cjs +1 -1
- package/dist/lib/contact-info/contact-info.cjs.map +1 -1
- package/dist/lib/contact-info/contact-info.js +56 -56
- package/dist/lib/contact-info/contact-info.js.map +1 -1
- package/dist/lib/contact-row/contact-row.cjs +1 -1
- package/dist/lib/contact-row/contact-row.cjs.map +1 -1
- package/dist/lib/contact-row/contact-row.js +1 -1
- package/dist/lib/contact-row/contact-row.js.map +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 +11 -11
- package/dist/lib/datepicker/datepicker.js.map +1 -1
- package/dist/lib/editor/editor.cjs +1 -1
- package/dist/lib/editor/editor.cjs.map +1 -1
- package/dist/lib/editor/editor.js +13 -12
- package/dist/lib/editor/editor.js.map +1 -1
- package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
- package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
- package/dist/lib/emoji-picker/emoji-picker.js +2 -2
- package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
- package/dist/lib/feed-item-pill/feed-item-pill.js +56 -53
- package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
- package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
- package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
- package/dist/lib/feed-item-row/feed-item-row.js +11 -11
- package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
- package/dist/lib/filter-pill/filter-pill.cjs +2 -0
- package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
- package/dist/lib/filter-pill/filter-pill.js +346 -0
- package/dist/lib/filter-pill/filter-pill.js.map +1 -0
- package/dist/lib/filter-pill/index.cjs +2 -0
- package/dist/lib/filter-pill/index.cjs.map +1 -0
- package/dist/lib/filter-pill/index.js +5 -0
- package/dist/lib/filter-pill/index.js.map +1 -0
- package/dist/lib/general-row/general-row.cjs +1 -1
- package/dist/lib/general-row/general-row.cjs.map +1 -1
- package/dist/lib/general-row/general-row.js +153 -99
- package/dist/lib/general-row/general-row.js.map +1 -1
- package/dist/lib/group-row/group-row.cjs +1 -1
- package/dist/lib/group-row/group-row.cjs.map +1 -1
- package/dist/lib/group-row/group-row.js +1 -1
- package/dist/lib/group-row/group-row.js.map +1 -1
- package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
- package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
- package/dist/lib/grouped-chip/grouped-chip.js +31 -31
- package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
- package/dist/lib/input/input.cjs +1 -1
- package/dist/lib/input/input.cjs.map +1 -1
- package/dist/lib/input/input.js +53 -42
- package/dist/lib/input/input.js.map +1 -1
- package/dist/lib/item-layout/item-layout.cjs +3 -3
- package/dist/lib/item-layout/item-layout.cjs.map +1 -1
- package/dist/lib/item-layout/item-layout.js +74 -39
- package/dist/lib/item-layout/item-layout.js.map +1 -1
- package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
- package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
- package/dist/lib/kitchen-sink/kitchen-sink-view.js +263 -0
- package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
- package/dist/lib/link/link.cjs +1 -1
- package/dist/lib/link/link.cjs.map +1 -1
- package/dist/lib/link/link.js +21 -12
- package/dist/lib/link/link.js.map +1 -1
- package/dist/lib/list-item/list-item.cjs +1 -1
- package/dist/lib/list-item/list-item.cjs.map +1 -1
- package/dist/lib/list-item/list-item.js +25 -15
- package/dist/lib/list-item/list-item.js.map +1 -1
- package/dist/lib/loader/loader.cjs +13 -1
- package/dist/lib/loader/loader.cjs.map +1 -1
- package/dist/lib/loader/loader.js +31 -20
- package/dist/lib/loader/loader.js.map +1 -1
- 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 +44 -43
- package/dist/lib/message-input/message-input.js.map +1 -1
- package/dist/lib/mode-island/index.cjs +2 -0
- package/dist/lib/mode-island/index.cjs.map +1 -0
- package/dist/lib/mode-island/index.js +7 -0
- package/dist/lib/mode-island/index.js.map +1 -0
- package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
- package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
- package/dist/lib/mode-island/mode-island-constants.js +12 -0
- package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
- package/dist/lib/mode-island/mode-island.cjs +2 -0
- package/dist/lib/mode-island/mode-island.cjs.map +1 -0
- package/dist/lib/mode-island/mode-island.js +130 -0
- package/dist/lib/mode-island/mode-island.js.map +1 -0
- package/dist/lib/mode-island/utils.cjs +2 -0
- package/dist/lib/mode-island/utils.cjs.map +1 -0
- package/dist/lib/mode-island/utils.js +32 -0
- package/dist/lib/mode-island/utils.js.map +1 -0
- package/dist/lib/mode-island/validators.cjs +2 -0
- package/dist/lib/mode-island/validators.cjs.map +1 -0
- package/dist/lib/mode-island/validators.js +12 -0
- package/dist/lib/mode-island/validators.js.map +1 -0
- package/dist/lib/pagination/pagination.cjs +1 -1
- package/dist/lib/pagination/pagination.cjs.map +1 -1
- package/dist/lib/pagination/pagination.js +15 -14
- package/dist/lib/pagination/pagination.js.map +1 -1
- package/dist/lib/popover/popover.cjs +1 -1
- package/dist/lib/popover/popover.cjs.map +1 -1
- package/dist/lib/popover/popover.js +1 -1
- package/dist/lib/popover/popover.js.map +1 -1
- package/dist/lib/progress-circle/index.cjs +2 -0
- package/dist/lib/progress-circle/index.cjs.map +1 -0
- package/dist/lib/progress-circle/index.js +10 -0
- package/dist/lib/progress-circle/index.js.map +1 -0
- package/dist/lib/progress-circle/progress-circle-constants.cjs +2 -0
- package/dist/lib/progress-circle/progress-circle-constants.cjs.map +1 -0
- package/dist/lib/progress-circle/progress-circle-constants.js +25 -0
- package/dist/lib/progress-circle/progress-circle-constants.js.map +1 -0
- package/dist/lib/progress-circle/progress-circle.cjs +2 -0
- package/dist/lib/progress-circle/progress-circle.cjs.map +1 -0
- package/dist/lib/progress-circle/progress-circle.js +136 -0
- package/dist/lib/progress-circle/progress-circle.js.map +1 -0
- package/dist/lib/rich-text-editor/rich-text-editor.cjs +2 -2
- package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
- package/dist/lib/rich-text-editor/rich-text-editor.js +115 -97
- package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
- package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
- package/dist/lib/root-layout/root-layout-constants.js +4 -2
- package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
- package/dist/lib/root-layout/root-layout.cjs +1 -1
- package/dist/lib/root-layout/root-layout.cjs.map +1 -1
- package/dist/lib/root-layout/root-layout.js +9 -10
- package/dist/lib/root-layout/root-layout.js.map +1 -1
- package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
- package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
- package/dist/lib/settings-menu-button/settings-menu-button.js +14 -15
- package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
- package/dist/lib/split-button/split-button-alpha.cjs +1 -1
- package/dist/lib/split-button/split-button-alpha.cjs.map +1 -1
- package/dist/lib/split-button/split-button-alpha.js +51 -28
- package/dist/lib/split-button/split-button-alpha.js.map +1 -1
- package/dist/lib/split-button/split-button.cjs +1 -1
- package/dist/lib/split-button/split-button.cjs.map +1 -1
- package/dist/lib/split-button/split-button.js +235 -89
- package/dist/lib/split-button/split-button.js.map +1 -1
- package/dist/lib/text/index.cjs +2 -0
- package/dist/lib/text/index.cjs.map +1 -0
- package/dist/lib/text/index.js +20 -0
- package/dist/lib/text/index.js.map +1 -0
- package/dist/lib/text/text-constants.cjs +2 -0
- package/dist/lib/text/text-constants.cjs.map +1 -0
- package/dist/lib/text/text-constants.js +69 -0
- package/dist/lib/text/text-constants.js.map +1 -0
- package/dist/lib/text/text-tone-tokens.cjs +2 -0
- package/dist/lib/text/text-tone-tokens.cjs.map +1 -0
- package/dist/lib/text/text-tone-tokens.js +33 -0
- package/dist/lib/text/text-tone-tokens.js.map +1 -0
- package/dist/lib/text/text.cjs +2 -0
- package/dist/lib/text/text.cjs.map +1 -0
- package/dist/lib/text/text.js +203 -0
- package/dist/lib/text/text.js.map +1 -0
- package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
- package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
- package/dist/lib/top-banner-info/top-banner-info.js +16 -16
- package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
- package/dist/localization/en-US.cjs +2 -0
- package/dist/localization/en-US.cjs.map +1 -1
- package/dist/localization/en-US.js +2 -0
- package/dist/localization/en-US.js.map +1 -1
- package/dist/localization/es-LA.cjs +1 -1
- package/dist/localization/es-LA.cjs.map +1 -1
- package/dist/localization/es-LA.js +1 -1
- package/dist/localization/es-LA.js.map +1 -1
- package/dist/localization/it-IT.cjs +3 -3
- package/dist/localization/it-IT.cjs.map +1 -1
- package/dist/localization/it-IT.js +3 -3
- package/dist/localization/it-IT.js.map +1 -1
- package/dist/localization/nl-NL.cjs +2 -2
- package/dist/localization/nl-NL.cjs.map +1 -1
- package/dist/localization/nl-NL.js +2 -2
- package/dist/localization/nl-NL.js.map +1 -1
- package/dist/localization/ru-RU.cjs +1 -1
- package/dist/localization/ru-RU.cjs.map +1 -1
- package/dist/localization/ru-RU.js +1 -1
- package/dist/localization/ru-RU.js.map +1 -1
- package/dist/localization/zh-CN.cjs +1 -1
- package/dist/localization/zh-CN.cjs.map +1 -1
- package/dist/localization/zh-CN.js +1 -1
- package/dist/localization/zh-CN.js.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
- package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/common/mixins/keyboard_list_navigation.d.ts.map +1 -1
- package/dist/types/common/sr_only_close_button.vue.d.ts +20 -2
- package/dist/types/components/avatar/avatar.vue.d.ts +71 -25
- package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
- package/dist/types/components/avatar/avatar_constants.d.ts +86 -29
- package/dist/types/components/avatar/avatar_constants.d.ts.map +1 -1
- package/dist/types/components/avatar/index.d.ts +1 -1
- package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
- package/dist/types/components/banner/banner.vue.d.ts +40 -4
- package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
- package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +9 -0
- package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
- package/dist/types/components/breadcrumbs/breadcrumbs.vue.d.ts +9 -0
- package/dist/types/components/button/button.vue.d.ts +20 -2
- package/dist/types/components/button/button.vue.d.ts.map +1 -1
- package/dist/types/components/button/button_constants.d.ts +4 -0
- package/dist/types/components/button/button_constants.d.ts.map +1 -1
- package/dist/types/components/chip/chip.vue.d.ts +20 -2
- package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
- package/dist/types/components/collapsible/collapsible.vue.d.ts +20 -2
- package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
- package/dist/types/components/combobox/combobox.vue.d.ts +79 -13
- package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
- package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +39 -6
- package/dist/types/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
- package/dist/types/components/combobox/combobox_loading-list.vue.d.ts +39 -6
- package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown.vue.d.ts +40 -4
- package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
- package/dist/types/components/filter_pill/filter_pill.vue.d.ts +2016 -0
- package/dist/types/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
- package/dist/types/components/filter_pill/index.d.ts +2 -0
- package/dist/types/components/filter_pill/index.d.ts.map +1 -0
- package/dist/types/components/hovercard/hovercard.vue.d.ts +80 -8
- package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts +40 -4
- package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
- package/dist/types/components/input/input.vue.d.ts.map +1 -1
- package/dist/types/components/item_layout/item_layout.vue.d.ts +36 -5
- package/dist/types/components/item_layout/item_layout.vue.d.ts.map +1 -1
- package/dist/types/components/link/link.vue.d.ts +9 -0
- package/dist/types/components/list_item/list_item.vue.d.ts +39 -6
- package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
- package/dist/types/components/loader/loader.vue.d.ts +1 -32
- package/dist/types/components/loader/loader.vue.d.ts.map +1 -1
- package/dist/types/components/modal/modal.vue.d.ts +40 -4
- package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
- package/dist/types/components/mode_island/index.d.ts +3 -0
- package/dist/types/components/mode_island/index.d.ts.map +1 -0
- package/dist/types/components/mode_island/mode_island.vue.d.ts +3 -0
- package/dist/types/components/mode_island/mode_island.vue.d.ts.map +1 -0
- package/dist/types/components/mode_island/mode_island_constants.d.ts +10 -0
- package/dist/types/components/mode_island/mode_island_constants.d.ts.map +1 -0
- package/dist/types/components/mode_island/utils.d.ts +12 -0
- package/dist/types/components/mode_island/utils.d.ts.map +1 -0
- package/dist/types/components/mode_island/validators.d.ts +6 -0
- package/dist/types/components/mode_island/validators.d.ts.map +1 -0
- package/dist/types/components/notice/notice.vue.d.ts +40 -4
- package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
- package/dist/types/components/notice/notice_action.vue.d.ts +40 -4
- package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
- package/dist/types/components/pagination/pagination.vue.d.ts +20 -2
- package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover.vue.d.ts +40 -4
- package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
- package/dist/types/components/popover/popover_header_footer.vue.d.ts +20 -2
- package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
- package/dist/types/components/progress_circle/index.d.ts +3 -0
- package/dist/types/components/progress_circle/index.d.ts.map +1 -0
- package/dist/types/components/progress_circle/progress_circle.vue.d.ts +70 -0
- package/dist/types/components/progress_circle/progress_circle.vue.d.ts.map +1 -0
- package/dist/types/components/progress_circle/progress_circle_constants.d.ts +23 -0
- package/dist/types/components/progress_circle/progress_circle_constants.d.ts.map +1 -0
- package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +9 -0
- package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +9 -0
- package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +71 -25
- package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +39 -6
- package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +61 -6
- package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
- package/dist/types/components/rich_text_editor/extensions/variable/variable.d.ts.map +1 -1
- package/dist/types/components/root_layout/root_layout_constants.d.ts +2 -0
- package/dist/types/components/root_layout/root_layout_constants.d.ts.map +1 -1
- package/dist/types/components/split_button/split_button-alpha.vue.d.ts +21 -3
- package/dist/types/components/split_button/split_button-alpha.vue.d.ts.map +1 -1
- package/dist/types/components/split_button/split_button-omega.vue.d.ts +20 -2
- package/dist/types/components/split_button/split_button-omega.vue.d.ts.map +1 -1
- package/dist/types/components/split_button/split_button.vue.d.ts +214 -28
- package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
- package/dist/types/components/tab/tab.vue.d.ts +20 -2
- package/dist/types/components/text/index.d.ts +3 -0
- package/dist/types/components/text/index.d.ts.map +1 -0
- package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts +3 -0
- package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts.map +1 -0
- package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts +3 -0
- package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts.map +1 -0
- package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts +1 -0
- package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts.map +1 -0
- package/dist/types/components/text/text.vue.d.ts +141 -0
- package/dist/types/components/text/text.vue.d.ts.map +1 -0
- package/dist/types/components/text/text_constants.d.ts +73 -0
- package/dist/types/components/text/text_constants.d.ts.map +1 -0
- package/dist/types/components/text/text_tone_tokens.d.ts +3 -0
- package/dist/types/components/text/text_tone_tokens.d.ts.map +1 -0
- package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +40 -4
- package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
- package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +40 -4
- package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
- package/dist/types/components/toast/toast.vue.d.ts +160 -16
- package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +20 -2
- package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
- package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +80 -8
- package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
- package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +80 -8
- package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
- package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +60 -6
- package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
- package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +20 -2
- package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
- package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +198 -30
- package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +124 -12
- package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +104 -10
- package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +20 -2
- package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +60 -6
- package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +60 -6
- package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +20 -2
- package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +56 -7
- package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +110 -31
- package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +56 -7
- package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts +20 -2
- package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts +80 -8
- package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
- package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +20 -2
- package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
- package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +20 -2
- package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
- package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +107 -30
- package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts +71 -25
- package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +20 -2
- package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +449 -28
- package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +378 -3
- package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +378 -3
- package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
- package/dist/types/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
- package/package.json +6 -5
- package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts +0 -30
- package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker.cjs","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(\n selectMonth.value, selectYear.value, highlightedDay.value,\n props.minDate, props.maxDate, props.weekStartsOn,\n );\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 weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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 } 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, props.weekStartsOn);\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 weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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 :week-starts-on=\"weekStartsOn\"\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 :week-starts-on=\"weekStartsOn\"\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 /**\n * Day the week starts on. 0 = Sunday, 1 = Monday, ... 6 = Saturday.\n *\n * @values 0, 1, 2, 3, 4, 5, 6\n */\n weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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","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.cjs","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(\n selectMonth.value, selectYear.value, highlightedDay.value,\n props.minDate, props.maxDate, props.weekStartsOn,\n );\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 weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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 } 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(i18n.currentLocale, props.weekStartsOn);\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 weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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 :week-starts-on=\"weekStartsOn\"\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 :week-starts-on=\"weekStartsOn\"\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 /**\n * Day the week starts on. 0 = Sunday, 1 = Monday, ... 6 = Saturday.\n *\n * @values 0, 1, 2, 3, 4, 5, 6\n */\n weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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","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,6 +1,6 @@
|
|
|
1
|
-
import { ref as E, computed as N, watch as x, onMounted as Z, openBlock as $, createBlock as ee, unref as t, withCtx as k, createVNode as d, createElementVNode as w, toDisplayString as Y, nextTick as
|
|
1
|
+
import { ref as E, computed as N, watch as x, onMounted as Z, openBlock as $, createBlock as ee, unref as t, withCtx as k, createVNode as d, createElementVNode as w, toDisplayString as Y, nextTick as L, createElementBlock as g, Fragment as B, renderList as V, normalizeClass as ne, createTextVNode as le, getCurrentInstance as re } from "vue";
|
|
2
2
|
import { DtIconChevronsLeft as oe, DtIconChevronLeft as se, DtIconChevronRight as ue, DtIconChevronsRight as ie } from "@dialpad/dialtone-icons/vue3";
|
|
3
|
-
import { getMonth as G, getYear as q, subMonths as j, endOfMonth as J, startOfDay as
|
|
3
|
+
import { getMonth as G, getYear as q, subMonths as j, endOfMonth as J, startOfDay as O, addMonths as Q, startOfMonth as W, getDate as ce, set as de } from "date-fns";
|
|
4
4
|
import { getCalendarDays as fe, formatMonth as De, getWeekDayNames as ve, calculateNextFocusDate as me, calculatePrevFocusDate as ke, formatDate as be } from "./utils.js";
|
|
5
5
|
import { INTL_MONTH_FORMAT as te } from "./datepicker-constants.js";
|
|
6
6
|
import { returnFirstEl as v, warnIfUnmounted as pe } from "../../common/utils/index.js";
|
|
@@ -19,19 +19,19 @@ function ye(n, o) {
|
|
|
19
19
|
)), b = N(() => {
|
|
20
20
|
if (!n.minDate) return !1;
|
|
21
21
|
const e = j(new Date(a.value, u.value, 1), 1);
|
|
22
|
-
return J(e) <
|
|
22
|
+
return J(e) < O(n.minDate);
|
|
23
23
|
}), _ = N(() => {
|
|
24
24
|
if (!n.maxDate) return !1;
|
|
25
25
|
const e = Q(new Date(a.value, u.value, 1), 1);
|
|
26
|
-
return W(e) >
|
|
26
|
+
return W(e) > O(n.maxDate);
|
|
27
27
|
}), p = N(() => {
|
|
28
28
|
if (!n.minDate) return !1;
|
|
29
29
|
const e = new Date(a.value - 1, u.value, 1);
|
|
30
|
-
return J(e) <
|
|
30
|
+
return J(e) < O(n.minDate);
|
|
31
31
|
}), T = N(() => {
|
|
32
32
|
if (!n.maxDate) return !1;
|
|
33
33
|
const e = new Date(a.value + 1, u.value, 1);
|
|
34
|
-
return W(e) >
|
|
34
|
+
return W(e) > O(n.maxDate);
|
|
35
35
|
});
|
|
36
36
|
x(u, () => {
|
|
37
37
|
M(), o("calendar-days", h.value);
|
|
@@ -353,7 +353,7 @@ const he = {
|
|
|
353
353
|
}
|
|
354
354
|
};
|
|
355
355
|
function $e(n, o) {
|
|
356
|
-
const u = E(null), a = E(0), l = E([]), r = new U(), m = N(() => ve(
|
|
356
|
+
const u = E(null), a = E(0), l = E([]), r = new U(), m = N(() => ve(r.currentLocale, n.weekStartsOn));
|
|
357
357
|
x(() => n.calendarDays, () => {
|
|
358
358
|
a.value = 0, l.value = [], u.value = null;
|
|
359
359
|
});
|
|
@@ -371,7 +371,7 @@ function $e(n, o) {
|
|
|
371
371
|
v(l.value[a.value].el.$el).focus();
|
|
372
372
|
} catch {
|
|
373
373
|
const i = ke(l.value[a.value + 7].day.value);
|
|
374
|
-
o("go-to-prev-month"),
|
|
374
|
+
o("go-to-prev-month"), L(() => {
|
|
375
375
|
v(l.value[i - 1].el.$el).focus(), a.value += i - 1;
|
|
376
376
|
});
|
|
377
377
|
}
|
|
@@ -382,7 +382,7 @@ function $e(n, o) {
|
|
|
382
382
|
v(l.value[a.value].el.$el).focus();
|
|
383
383
|
} catch {
|
|
384
384
|
const i = me(l.value[a.value - 7].day.value);
|
|
385
|
-
o("go-to-next-month"),
|
|
385
|
+
o("go-to-next-month"), L(() => {
|
|
386
386
|
v(l.value[i - 1].el.$el).focus(), a.value += i - 1;
|
|
387
387
|
});
|
|
388
388
|
}
|
|
@@ -402,12 +402,12 @@ function $e(n, o) {
|
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
404
|
function _() {
|
|
405
|
-
a.value = 0,
|
|
405
|
+
a.value = 0, L(() => {
|
|
406
406
|
v(l.value[a.value].el.$el).focus();
|
|
407
407
|
});
|
|
408
408
|
}
|
|
409
409
|
function p() {
|
|
410
|
-
|
|
410
|
+
L(() => {
|
|
411
411
|
a.value = l.value.length - 1, v(l.value[a.value].el.$el).focus();
|
|
412
412
|
});
|
|
413
413
|
}
|
|
@@ -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, 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(\n selectMonth.value, selectYear.value, highlightedDay.value,\n props.minDate, props.maxDate, props.weekStartsOn,\n );\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 weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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 } 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, props.weekStartsOn);\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 weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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 :week-starts-on=\"weekStartsOn\"\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 :week-starts-on=\"weekStartsOn\"\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 /**\n * Day the week starts on. 0 = Sunday, 1 = Monday, ... 6 = Saturday.\n *\n * @values 0, 1, 2, 3, 4, 5, 6\n */\n weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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","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(\n selectMonth.value, selectYear.value, highlightedDay.value,\n props.minDate, props.maxDate, props.weekStartsOn,\n );\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 weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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 } 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(i18n.currentLocale, props.weekStartsOn);\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 weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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 :week-starts-on=\"weekStartsOn\"\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 :week-starts-on=\"weekStartsOn\"\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 /**\n * Day the week starts on. 0 = Sunday, 1 = Monday, ... 6 = Saturday.\n *\n * @values 0, 1, 2, 3, 4, 5, 6\n */\n weekStartsOn: {\n type: Number,\n default: 0,\n validator: (v) => Number.isInteger(v) && v >= 0 && v <= 6,\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","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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"}
|