igniteui-webcomponents 7.2.3 → 7.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +156 -0
- package/animations/player.d.ts +4 -11
- package/animations/player.js +4 -10
- package/animations/player.js.map +1 -1
- package/animations/view-transition.d.ts +44 -0
- package/animations/view-transition.js +81 -0
- package/animations/view-transition.js.map +1 -0
- package/components/accordion/accordion.d.ts +1 -1
- package/components/accordion/accordion.js +7 -6
- package/components/accordion/accordion.js.map +1 -1
- package/components/avatar/avatar.js +10 -10
- package/components/avatar/avatar.js.map +1 -1
- package/components/avatar/themes/themes.d.ts +1 -1
- package/components/avatar/themes/themes.js.map +1 -1
- package/components/badge/badge.d.ts +1 -1
- package/components/badge/badge.js +5 -5
- package/components/badge/badge.js.map +1 -1
- package/components/badge/themes/themes.d.ts +1 -1
- package/components/badge/themes/themes.js.map +1 -1
- package/components/banner/banner.d.ts +2 -2
- package/components/banner/banner.js +8 -8
- package/components/banner/banner.js.map +1 -1
- package/components/banner/themes/themes.d.ts +1 -1
- package/components/banner/themes/themes.js.map +1 -1
- package/components/button/button-base.d.ts +2 -2
- package/components/button/button-base.js +15 -12
- package/components/button/button-base.js.map +1 -1
- package/components/button/button.d.ts +3 -3
- package/components/button/button.js +2 -2
- package/components/button/button.js.map +1 -1
- package/components/button/icon-button.js +12 -12
- package/components/button/icon-button.js.map +1 -1
- package/components/button/themes/button/themes.d.ts +1 -1
- package/components/button/themes/button/themes.js.map +1 -1
- package/components/button/themes/icon-button/themes.d.ts +1 -1
- package/components/button/themes/icon-button/themes.js.map +1 -1
- package/components/button-group/button-group.d.ts +42 -21
- package/components/button-group/button-group.js +101 -106
- package/components/button-group/button-group.js.map +1 -1
- package/components/button-group/themes/button.d.ts +1 -1
- package/components/button-group/themes/button.js.map +1 -1
- package/components/button-group/themes/group.d.ts +1 -1
- package/components/button-group/themes/group.js.map +1 -1
- package/components/button-group/toggle-button.d.ts +17 -10
- package/components/button-group/toggle-button.js +28 -13
- package/components/button-group/toggle-button.js.map +1 -1
- package/components/calendar/base.d.ts +29 -10
- package/components/calendar/base.js +12 -15
- package/components/calendar/base.js.map +1 -1
- package/components/calendar/calendar.d.ts +39 -8
- package/components/calendar/calendar.js +96 -85
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.d.ts +49 -22
- package/components/calendar/days-view/days-view.js +102 -163
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/helpers.d.ts +3 -62
- package/components/calendar/helpers.js +6 -110
- package/components/calendar/helpers.js.map +1 -1
- package/components/calendar/months-view/months-view.d.ts +7 -21
- package/components/calendar/months-view/months-view.js +30 -83
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/selection.d.ts +21 -0
- package/components/calendar/selection.js +42 -0
- package/components/calendar/selection.js.map +1 -0
- package/components/calendar/themes/calendar.d.ts +1 -1
- package/components/calendar/themes/calendar.js.map +1 -1
- package/components/calendar/themes/days.d.ts +1 -1
- package/components/calendar/themes/days.js.map +1 -1
- package/components/calendar/themes/year-month.d.ts +1 -1
- package/components/calendar/themes/year-month.js.map +1 -1
- package/components/calendar/types.d.ts +18 -0
- package/components/calendar/types.js.map +1 -1
- package/components/calendar/year-month-view.base.d.ts +44 -0
- package/components/calendar/year-month-view.base.js +89 -0
- package/components/calendar/year-month-view.base.js.map +1 -0
- package/components/calendar/years-view/years-view.d.ts +7 -20
- package/components/calendar/years-view/years-view.js +25 -79
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/card/card.actions.js +2 -2
- package/components/card/card.actions.js.map +1 -1
- package/components/card/card.content.d.ts +1 -1
- package/components/card/card.content.js +2 -2
- package/components/card/card.content.js.map +1 -1
- package/components/card/card.d.ts +1 -1
- package/components/card/card.header.js +2 -2
- package/components/card/card.header.js.map +1 -1
- package/components/card/card.js +2 -2
- package/components/card/card.js.map +1 -1
- package/components/card/card.media.d.ts +1 -1
- package/components/card/card.media.js +1 -1
- package/components/card/card.media.js.map +1 -1
- package/components/card/themes/actions.d.ts +1 -1
- package/components/card/themes/actions.js.map +1 -1
- package/components/card/themes/container.d.ts +1 -1
- package/components/card/themes/container.js.map +1 -1
- package/components/card/themes/content.d.ts +1 -1
- package/components/card/themes/content.js.map +1 -1
- package/components/card/themes/header.d.ts +1 -1
- package/components/card/themes/header.js.map +1 -1
- package/components/carousel/animations.d.ts +1 -1
- package/components/carousel/animations.js +2 -2
- package/components/carousel/animations.js.map +1 -1
- package/components/carousel/carousel-indicator-container.js +4 -4
- package/components/carousel/carousel-indicator-container.js.map +1 -1
- package/components/carousel/carousel-indicator.d.ts +1 -1
- package/components/carousel/carousel-indicator.js +5 -5
- package/components/carousel/carousel-indicator.js.map +1 -1
- package/components/carousel/carousel-slide.d.ts +1 -1
- package/components/carousel/carousel-slide.js +9 -9
- package/components/carousel/carousel-slide.js.map +1 -1
- package/components/carousel/carousel.d.ts +7 -7
- package/components/carousel/carousel.js +40 -30
- package/components/carousel/carousel.js.map +1 -1
- package/components/carousel/themes/container.d.ts +1 -1
- package/components/carousel/themes/container.js.map +1 -1
- package/components/carousel/themes/indicator-container.d.ts +1 -1
- package/components/carousel/themes/indicator-container.js.map +1 -1
- package/components/chat/chat-input.d.ts +4 -4
- package/components/chat/chat-input.js +13 -12
- package/components/chat/chat-input.js.map +1 -1
- package/components/chat/chat-message.d.ts +1 -1
- package/components/chat/chat-message.js +7 -6
- package/components/chat/chat-message.js.map +1 -1
- package/components/chat/chat-state.d.ts +2 -2
- package/components/chat/chat-state.js +2 -1
- package/components/chat/chat-state.js.map +1 -1
- package/components/chat/chat.d.ts +4 -4
- package/components/chat/chat.js +13 -13
- package/components/chat/chat.js.map +1 -1
- package/components/chat/message-attachments.js +5 -5
- package/components/chat/message-attachments.js.map +1 -1
- package/components/chat/themes/attachments.d.ts +1 -1
- package/components/chat/themes/attachments.js.map +1 -1
- package/components/chat/themes/input.d.ts +1 -1
- package/components/chat/themes/input.js.map +1 -1
- package/components/chat/themes/message.d.ts +1 -1
- package/components/chat/themes/message.js.map +1 -1
- package/components/chat/themes/themes.d.ts +1 -1
- package/components/chat/themes/themes.js.map +1 -1
- package/components/chat/types.d.ts +2 -2
- package/components/chat/types.js.map +1 -1
- package/components/chat/utils.d.ts +1 -1
- package/components/chat/utils.js +3 -3
- package/components/chat/utils.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +7 -7
- package/components/checkbox/checkbox-base.js +7 -7
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.js +7 -6
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.js +7 -6
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/themes/checkbox-themes.d.ts +1 -1
- package/components/checkbox/themes/checkbox-themes.js.map +1 -1
- package/components/checkbox/themes/switch-themes.d.ts +1 -1
- package/components/checkbox/themes/switch-themes.js.map +1 -1
- package/components/checkbox/validators.d.ts +1 -1
- package/components/checkbox/validators.js +1 -1
- package/components/checkbox/validators.js.map +1 -1
- package/components/chip/chip.d.ts +9 -3
- package/components/chip/chip.js +10 -6
- package/components/chip/chip.js.map +1 -1
- package/components/chip/themes/chip.base.css.js +1 -1
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/dark/chip.fluent.css.js +1 -1
- package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/dark/chip.indigo.css.js +1 -1
- package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/dark/chip.material.css.js +1 -1
- package/components/chip/themes/dark/chip.material.css.js.map +1 -1
- package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/light/chip.fluent.css.js +1 -1
- package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/light/chip.indigo.css.js +1 -1
- package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/light/chip.material.css.js +1 -1
- package/components/chip/themes/light/chip.material.css.js.map +1 -1
- package/components/chip/themes/light/chip.shared.css.js +1 -1
- package/components/chip/themes/light/chip.shared.css.js.map +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/shared/chip.common.css.js +1 -1
- package/components/chip/themes/shared/chip.common.css.js.map +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/themes.d.ts +1 -1
- package/components/chip/themes/themes.js.map +1 -1
- package/components/combo/combo-header.js +2 -2
- package/components/combo/combo-header.js.map +1 -1
- package/components/combo/combo-item.d.ts +0 -2
- package/components/combo/combo-item.js +4 -7
- package/components/combo/combo-item.js.map +1 -1
- package/components/combo/combo.d.ts +84 -26
- package/components/combo/combo.js +197 -152
- package/components/combo/combo.js.map +1 -1
- package/components/combo/controllers/data.d.ts +30 -3
- package/components/combo/controllers/data.js +34 -9
- package/components/combo/controllers/data.js.map +1 -1
- package/components/combo/controllers/navigation.d.ts +8 -2
- package/components/combo/controllers/navigation.js +11 -12
- package/components/combo/controllers/navigation.js.map +1 -1
- package/components/combo/operations/filter.d.ts +17 -1
- package/components/combo/operations/filter.js +29 -9
- package/components/combo/operations/filter.js.map +1 -1
- package/components/combo/operations/group.js +1 -1
- package/components/combo/operations/group.js.map +1 -1
- package/components/combo/themes/combo.base.css.js +1 -1
- package/components/combo/themes/combo.base.css.js.map +1 -1
- package/components/combo/themes/themes.d.ts +1 -1
- package/components/combo/themes/themes.js.map +1 -1
- package/components/combo/types.d.ts +8 -4
- package/components/combo/types.js.map +1 -1
- package/components/combo/validators.d.ts +1 -1
- package/components/combo/validators.js.map +1 -1
- package/components/date-picker/date-picker.base.d.ts +294 -0
- package/components/date-picker/date-picker.base.js +480 -0
- package/components/date-picker/date-picker.base.js.map +1 -0
- package/components/date-picker/date-picker.d.ts +52 -172
- package/components/date-picker/date-picker.js +88 -393
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/themes/themes.d.ts +1 -1
- package/components/date-picker/themes/themes.js.map +1 -1
- package/components/date-picker/validators.d.ts +1 -1
- package/components/date-picker/validators.js +2 -2
- package/components/date-picker/validators.js.map +1 -1
- package/components/date-range-picker/date-range-input.d.ts +12 -14
- package/components/date-range-picker/date-range-input.js +42 -98
- package/components/date-range-picker/date-range-input.js.map +1 -1
- package/components/date-range-picker/date-range-mask-parser.d.ts +22 -34
- package/components/date-range-picker/date-range-mask-parser.js +38 -69
- package/components/date-range-picker/date-range-mask-parser.js.map +1 -1
- package/components/date-range-picker/date-range-picker.d.ts +98 -191
- package/components/date-range-picker/date-range-picker.js +210 -530
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/predefined-ranges-area.d.ts +2 -2
- package/components/date-range-picker/predefined-ranges-area.js +5 -5
- package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
- package/components/date-range-picker/themes/ranges-themes.d.ts +1 -1
- package/components/date-range-picker/themes/ranges-themes.js.map +1 -1
- package/components/date-range-picker/themes/themes.d.ts +1 -1
- package/components/date-range-picker/themes/themes.js.map +1 -1
- package/components/date-range-picker/validators.d.ts +1 -1
- package/components/date-range-picker/validators.js +15 -22
- package/components/date-range-picker/validators.js.map +1 -1
- package/components/date-time-input/date-part.d.ts +18 -1
- package/components/date-time-input/date-part.js +10 -0
- package/components/date-time-input/date-part.js.map +1 -1
- package/components/date-time-input/date-time-input.base.d.ts +74 -12
- package/components/date-time-input/date-time-input.base.js +99 -27
- package/components/date-time-input/date-time-input.base.js.map +1 -1
- package/components/date-time-input/date-time-input.d.ts +13 -23
- package/components/date-time-input/date-time-input.js +45 -65
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/datetime-mask-parser.d.ts +45 -109
- package/components/date-time-input/datetime-mask-parser.js +88 -139
- package/components/date-time-input/datetime-mask-parser.js.map +1 -1
- package/components/date-time-input/validators.d.ts +1 -1
- package/components/date-time-input/validators.js +2 -2
- package/components/date-time-input/validators.js.map +1 -1
- package/components/dialog/dialog.d.ts +2 -2
- package/components/dialog/dialog.js +21 -22
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/themes/themes.d.ts +1 -1
- package/components/dialog/themes/themes.js.map +1 -1
- package/components/divider/divider.d.ts +2 -1
- package/components/divider/divider.js +3 -3
- package/components/divider/divider.js.map +1 -1
- package/components/divider/themes/themes.d.ts +1 -1
- package/components/divider/themes/themes.js.map +1 -1
- package/components/dropdown/dropdown-group.d.ts +10 -3
- package/components/dropdown/dropdown-group.js +21 -5
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown-header.d.ts +2 -2
- package/components/dropdown/dropdown-header.js +7 -2
- package/components/dropdown/dropdown-header.js.map +1 -1
- package/components/dropdown/dropdown-item.d.ts +4 -4
- package/components/dropdown/dropdown-item.js +3 -3
- package/components/dropdown/dropdown-item.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +75 -32
- package/components/dropdown/dropdown.js +189 -110
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/themes/container.d.ts +1 -1
- package/components/dropdown/themes/container.js.map +1 -1
- package/components/dropdown/themes/group.d.ts +1 -1
- package/components/dropdown/themes/group.js.map +1 -1
- package/components/dropdown/themes/header.d.ts +1 -1
- package/components/dropdown/themes/header.js.map +1 -1
- package/components/dropdown/themes/item.d.ts +1 -1
- package/components/dropdown/themes/item.js.map +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +14 -5
- package/components/expansion-panel/expansion-panel.js +10 -9
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/expansion-panel/themes/themes.d.ts +1 -1
- package/components/expansion-panel/themes/themes.js.map +1 -1
- package/components/file-input/file-input.d.ts +20 -12
- package/components/file-input/file-input.js +17 -12
- package/components/file-input/file-input.js.map +1 -1
- package/components/file-input/themes/themes.d.ts +1 -1
- package/components/file-input/themes/themes.js.map +1 -1
- package/components/file-input/validators.d.ts +1 -1
- package/components/file-input/validators.js +1 -1
- package/components/file-input/validators.js.map +1 -1
- package/components/focus-trap/focus-trap.js +3 -2
- package/components/focus-trap/focus-trap.js.map +1 -1
- package/components/highlight/highlight.js +2 -2
- package/components/highlight/highlight.js.map +1 -1
- package/components/highlight/service.d.ts +4 -1
- package/components/highlight/service.js +23 -7
- package/components/highlight/service.js.map +1 -1
- package/components/highlight/themes/themes.d.ts +1 -1
- package/components/highlight/themes/themes.js.map +1 -1
- package/components/icon/icon-references.d.ts +3 -2
- package/components/icon/icon-references.js +103 -491
- package/components/icon/icon-references.js.map +1 -1
- package/components/icon/icon-state.broadcast.d.ts +14 -17
- package/components/icon/icon-state.broadcast.js +19 -20
- package/components/icon/icon-state.broadcast.js.map +1 -1
- package/components/icon/icon.d.ts +14 -25
- package/components/icon/icon.js +37 -24
- package/components/icon/icon.js.map +1 -1
- package/components/icon/icon.registry.d.ts +69 -131
- package/components/icon/icon.registry.js +51 -53
- package/components/icon/icon.registry.js.map +1 -1
- package/components/icon/internal-icons-lib.js +2 -2
- package/components/icon/internal-icons-lib.js.map +1 -1
- package/components/icon/registry/parser.d.ts +15 -3
- package/components/icon/registry/parser.js +36 -11
- package/components/icon/registry/parser.js.map +1 -1
- package/components/icon/registry/types.d.ts +55 -11
- package/components/icon/registry/types.js.map +1 -1
- package/components/icon/themes/icon.base.css.js +1 -1
- package/components/icon/themes/icon.base.css.js.map +1 -1
- package/components/icon/themes/shared/icon.common.css.js +1 -1
- package/components/icon/themes/shared/icon.common.css.js.map +1 -1
- package/components/icon/themes/themes.d.ts +1 -1
- package/components/icon/themes/themes.js.map +1 -1
- package/components/input/input-base.d.ts +12 -12
- package/components/input/input-base.js +13 -15
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.d.ts +15 -12
- package/components/input/input.js +8 -8
- package/components/input/input.js.map +1 -1
- package/components/input/themes/input.base.css.js +1 -1
- package/components/input/themes/input.base.css.js.map +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/shared/input.common.css.js +1 -1
- package/components/input/themes/shared/input.common.css.js.map +1 -1
- package/components/input/themes/shared/input.fluent.css.js +1 -1
- package/components/input/themes/shared/input.fluent.css.js.map +1 -1
- package/components/input/themes/shared/input.indigo.css.js +1 -1
- package/components/input/themes/shared/input.indigo.css.js.map +1 -1
- package/components/input/themes/shared/input.material.css.js +1 -1
- package/components/input/themes/shared/input.material.css.js.map +1 -1
- package/components/input/themes/themes.d.ts +1 -1
- package/components/input/themes/themes.js.map +1 -1
- package/components/input/validators.d.ts +1 -1
- package/components/input/validators.js +1 -1
- package/components/input/validators.js.map +1 -1
- package/components/list/list-header.js +3 -3
- package/components/list/list-header.js.map +1 -1
- package/components/list/list-item.js +3 -3
- package/components/list/list-item.js.map +1 -1
- package/components/list/list.js +3 -3
- package/components/list/list.js.map +1 -1
- package/components/list/themes/container.d.ts +1 -1
- package/components/list/themes/container.js.map +1 -1
- package/components/list/themes/header.d.ts +1 -1
- package/components/list/themes/header.js.map +1 -1
- package/components/list/themes/item.d.ts +1 -1
- package/components/list/themes/item.js.map +1 -1
- package/components/mask-input/mask-history.d.ts +99 -0
- package/components/mask-input/mask-history.js +95 -0
- package/components/mask-input/mask-history.js.map +1 -0
- package/components/mask-input/mask-input.d.ts +14 -9
- package/components/mask-input/mask-input.js +20 -23
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/mask-input/mask-parser.d.ts +20 -2
- package/components/mask-input/mask-parser.js +21 -13
- package/components/mask-input/mask-parser.js.map +1 -1
- package/components/mask-input/validators.d.ts +1 -1
- package/components/mask-input/validators.js +1 -1
- package/components/mask-input/validators.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
- package/components/nav-drawer/nav-drawer-header-item.js +2 -2
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.d.ts +2 -2
- package/components/nav-drawer/nav-drawer-item.js +4 -4
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.d.ts +3 -3
- package/components/nav-drawer/nav-drawer.js +11 -14
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/nav-drawer/themes/container.base.css.js +1 -1
- package/components/nav-drawer/themes/container.base.css.js.map +1 -1
- package/components/nav-drawer/themes/container.d.ts +1 -1
- package/components/nav-drawer/themes/container.js +2 -3
- package/components/nav-drawer/themes/container.js.map +1 -1
- package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
- package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
- package/components/nav-drawer/themes/header-item.d.ts +1 -1
- package/components/nav-drawer/themes/header-item.js.map +1 -1
- package/components/nav-drawer/themes/item.d.ts +1 -1
- package/components/nav-drawer/themes/item.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
- package/components/navbar/navbar.js +2 -2
- package/components/navbar/navbar.js.map +1 -1
- package/components/navbar/themes/themes.d.ts +1 -1
- package/components/navbar/themes/themes.js.map +1 -1
- package/components/popover/popover.d.ts +10 -3
- package/components/popover/popover.js +114 -99
- package/components/popover/popover.js.map +1 -1
- package/components/progress/base.d.ts +1 -1
- package/components/progress/base.js +5 -4
- package/components/progress/base.js.map +1 -1
- package/components/progress/circular-gradient.d.ts +2 -2
- package/components/progress/circular-gradient.js +1 -1
- package/components/progress/circular-gradient.js.map +1 -1
- package/components/progress/circular-progress.d.ts +15 -15
- package/components/progress/circular-progress.js +7 -6
- package/components/progress/circular-progress.js.map +1 -1
- package/components/progress/linear-progress.d.ts +12 -12
- package/components/progress/linear-progress.js +4 -4
- package/components/progress/linear-progress.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
- package/components/progress/themes/circular/themes.d.ts +1 -1
- package/components/progress/themes/circular/themes.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
- package/components/progress/themes/linear/themes.d.ts +1 -1
- package/components/progress/themes/linear/themes.js.map +1 -1
- package/components/qr-code/model/encode.d.ts +20 -0
- package/components/qr-code/model/encode.js +166 -0
- package/components/qr-code/model/encode.js.map +1 -0
- package/components/qr-code/model/error-correction.d.ts +15 -0
- package/components/qr-code/model/error-correction.js +1114 -0
- package/components/qr-code/model/error-correction.js.map +1 -0
- package/components/qr-code/model/mask.d.ts +11 -0
- package/components/qr-code/model/mask.js +161 -0
- package/components/qr-code/model/mask.js.map +1 -0
- package/components/qr-code/model/matrix.d.ts +15 -0
- package/components/qr-code/model/matrix.js +277 -0
- package/components/qr-code/model/matrix.js.map +1 -0
- package/components/qr-code/qr-code.d.ts +134 -0
- package/components/qr-code/qr-code.js +221 -0
- package/components/qr-code/qr-code.js.map +1 -0
- package/components/qr-code/renderer/constants.d.ts +26 -0
- package/components/qr-code/renderer/constants.js +5 -0
- package/components/qr-code/renderer/constants.js.map +1 -0
- package/components/qr-code/renderer/corner.d.ts +23 -0
- package/components/qr-code/renderer/corner.js +25 -0
- package/components/qr-code/renderer/corner.js.map +1 -0
- package/components/qr-code/renderer/dots.d.ts +14 -0
- package/components/qr-code/renderer/dots.js +7 -0
- package/components/qr-code/renderer/dots.js.map +1 -0
- package/components/qr-code/renderer/helpers.d.ts +18 -0
- package/components/qr-code/renderer/helpers.js +158 -0
- package/components/qr-code/renderer/helpers.js.map +1 -0
- package/components/qr-code/renderer/image.d.ts +23 -0
- package/components/qr-code/renderer/image.js +29 -0
- package/components/qr-code/renderer/image.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.bootstrap.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.bootstrap.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.material.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.material.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.material.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.material.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.material.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.material.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.shared.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.shared.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.shared.css.js.map +1 -0
- package/components/qr-code/themes/qr-code.base.css.d.ts +1 -0
- package/components/qr-code/themes/qr-code.base.css.js +3 -0
- package/components/qr-code/themes/qr-code.base.css.js.map +1 -0
- package/components/qr-code/themes/shared/qr-code.common.css.d.ts +1 -0
- package/components/qr-code/themes/shared/qr-code.common.css.js +3 -0
- package/components/qr-code/themes/shared/qr-code.common.css.js.map +1 -0
- package/components/qr-code/themes/themes.d.ts +2 -0
- package/components/qr-code/themes/themes.js +46 -0
- package/components/qr-code/themes/themes.js.map +1 -0
- package/components/qr-code/types.d.ts +16 -0
- package/components/qr-code/types.js +2 -0
- package/components/qr-code/types.js.map +1 -0
- package/components/radio/controller.d.ts +35 -0
- package/components/radio/controller.js +100 -0
- package/components/radio/controller.js.map +1 -0
- package/components/radio/radio.d.ts +26 -14
- package/components/radio/radio.js +47 -36
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/themes.d.ts +1 -1
- package/components/radio/themes/themes.js.map +1 -1
- package/components/radio/validators.d.ts +1 -1
- package/components/radio/validators.js +5 -3
- package/components/radio/validators.js.map +1 -1
- package/components/radio-group/radio-group.d.ts +19 -10
- package/components/radio-group/radio-group.js +50 -41
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/radio-group/themes/themes.d.ts +1 -1
- package/components/radio-group/themes/themes.js.map +1 -1
- package/components/rating/rating-symbol.d.ts +1 -1
- package/components/rating/rating-symbol.js +1 -1
- package/components/rating/rating-symbol.js.map +1 -1
- package/components/rating/rating.d.ts +6 -6
- package/components/rating/rating.js +12 -9
- package/components/rating/rating.js.map +1 -1
- package/components/rating/themes/themes.d.ts +1 -1
- package/components/rating/themes/themes.js.map +1 -1
- package/components/resize-container/resize-container.d.ts +4 -4
- package/components/resize-container/resize-container.js +4 -4
- package/components/resize-container/resize-container.js.map +1 -1
- package/components/resize-container/resize-controller.js +2 -2
- package/components/resize-container/resize-controller.js.map +1 -1
- package/components/resize-container/themes/themes.d.ts +1 -1
- package/components/resize-container/themes/themes.js.map +1 -1
- package/components/ripple/ripple.d.ts +1 -1
- package/components/ripple/ripple.js +3 -2
- package/components/ripple/ripple.js.map +1 -1
- package/components/select/select-group.d.ts +9 -2
- package/components/select/select-group.js +21 -5
- package/components/select/select-group.js.map +1 -1
- package/components/select/select-header.d.ts +1 -1
- package/components/select/select-header.js +7 -2
- package/components/select/select-header.js.map +1 -1
- package/components/select/select-item.d.ts +4 -4
- package/components/select/select-item.js +3 -3
- package/components/select/select-item.js.map +1 -1
- package/components/select/select.d.ts +49 -22
- package/components/select/select.js +132 -67
- package/components/select/select.js.map +1 -1
- package/components/select/themes/select.base.css.js +1 -1
- package/components/select/themes/select.base.css.js.map +1 -1
- package/components/select/themes/themes.d.ts +1 -1
- package/components/select/themes/themes.js.map +1 -1
- package/components/select/validators.d.ts +1 -1
- package/components/select/validators.js +1 -1
- package/components/select/validators.js.map +1 -1
- package/components/slider/range-slider.d.ts +2 -2
- package/components/slider/range-slider.js +8 -8
- package/components/slider/range-slider.js.map +1 -1
- package/components/slider/slider-base.js +18 -14
- package/components/slider/slider-base.js.map +1 -1
- package/components/slider/slider-label.js +1 -1
- package/components/slider/slider-label.js.map +1 -1
- package/components/slider/slider.d.ts +3 -3
- package/components/slider/slider.js +6 -6
- package/components/slider/slider.js.map +1 -1
- package/components/slider/themes/themes.d.ts +1 -1
- package/components/slider/themes/themes.js.map +1 -1
- package/components/snackbar/snackbar.d.ts +3 -3
- package/components/snackbar/snackbar.js +8 -8
- package/components/snackbar/snackbar.js.map +1 -1
- package/components/snackbar/themes/themes.d.ts +1 -1
- package/components/snackbar/themes/themes.js.map +1 -1
- package/components/splitter/splitter.d.ts +106 -23
- package/components/splitter/splitter.js +234 -147
- package/components/splitter/splitter.js.map +1 -1
- package/components/splitter/themes/themes.d.ts +1 -1
- package/components/splitter/themes/themes.js.map +1 -1
- package/components/splitter/types.d.ts +14 -3
- package/components/splitter/types.js.map +1 -1
- package/components/stepper/common/animations.d.ts +1 -1
- package/components/stepper/common/animations.js +2 -2
- package/components/stepper/common/animations.js.map +1 -1
- package/components/stepper/step.d.ts +1 -1
- package/components/stepper/step.js +7 -7
- package/components/stepper/step.js.map +1 -1
- package/components/stepper/stepper.d.ts +5 -5
- package/components/stepper/stepper.js +12 -9
- package/components/stepper/stepper.js.map +1 -1
- package/components/stepper/themes/step/themes.d.ts +1 -1
- package/components/stepper/themes/step/themes.js.map +1 -1
- package/components/tabs/tab-dom.d.ts +31 -28
- package/components/tabs/tab-dom.js +84 -34
- package/components/tabs/tab-dom.js.map +1 -1
- package/components/tabs/tab.d.ts +24 -6
- package/components/tabs/tab.js +34 -13
- package/components/tabs/tab.js.map +1 -1
- package/components/tabs/tabs.d.ts +36 -22
- package/components/tabs/tabs.js +118 -88
- package/components/tabs/tabs.js.map +1 -1
- package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +1 -1
- package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -1
- package/components/tabs/themes/tab-themes.d.ts +1 -1
- package/components/tabs/themes/tab-themes.js.map +1 -1
- package/components/tabs/themes/tabs-themes.d.ts +1 -1
- package/components/tabs/themes/tabs-themes.js.map +1 -1
- package/components/tabs/themes/tabs.base.css.js +1 -1
- package/components/tabs/themes/tabs.base.css.js.map +1 -1
- package/components/textarea/textarea.d.ts +19 -14
- package/components/textarea/textarea.js +22 -16
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/themes.d.ts +1 -1
- package/components/textarea/themes/themes.js.map +1 -1
- package/components/textarea/validators.d.ts +1 -1
- package/components/textarea/validators.js +1 -1
- package/components/textarea/validators.js.map +1 -1
- package/components/theme-provider/theme-provider.d.ts +1 -1
- package/components/theme-provider/theme-provider.js +2 -2
- package/components/theme-provider/theme-provider.js.map +1 -1
- package/components/tile-manager/position.d.ts +1 -1
- package/components/tile-manager/position.js +2 -2
- package/components/tile-manager/position.js.map +1 -1
- package/components/tile-manager/resize-state.js +4 -3
- package/components/tile-manager/resize-state.js.map +1 -1
- package/components/tile-manager/themes/container.d.ts +1 -1
- package/components/tile-manager/themes/container.js.map +1 -1
- package/components/tile-manager/themes/tile.d.ts +1 -1
- package/components/tile-manager/themes/tile.js.map +1 -1
- package/components/tile-manager/tile-ghost-util.js +1 -1
- package/components/tile-manager/tile-ghost-util.js.map +1 -1
- package/components/tile-manager/tile-manager.d.ts +1 -1
- package/components/tile-manager/tile-manager.js +7 -7
- package/components/tile-manager/tile-manager.js.map +1 -1
- package/components/tile-manager/tile.d.ts +4 -4
- package/components/tile-manager/tile.js +29 -25
- package/components/tile-manager/tile.js.map +1 -1
- package/components/toast/themes/themes.d.ts +1 -1
- package/components/toast/themes/themes.js.map +1 -1
- package/components/toast/toast.d.ts +1 -1
- package/components/toast/toast.js +3 -3
- package/components/toast/toast.js.map +1 -1
- package/components/tooltip/controller.d.ts +18 -16
- package/components/tooltip/controller.js +62 -41
- package/components/tooltip/controller.js.map +1 -1
- package/components/tooltip/service.d.ts +2 -1
- package/components/tooltip/service.js +10 -15
- package/components/tooltip/service.js.map +1 -1
- package/components/tooltip/themes/shared/tooltip.common.css.js +1 -1
- package/components/tooltip/themes/shared/tooltip.common.css.js.map +1 -1
- package/components/tooltip/themes/shared/tooltip.indigo.css.js +1 -1
- package/components/tooltip/themes/shared/tooltip.indigo.css.js.map +1 -1
- package/components/tooltip/themes/themes.d.ts +1 -1
- package/components/tooltip/themes/themes.js.map +1 -1
- package/components/tooltip/themes/tooltip.base.css.js +1 -1
- package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
- package/components/tooltip/tooltip.d.ts +64 -18
- package/components/tooltip/tooltip.js +112 -62
- package/components/tooltip/tooltip.js.map +1 -1
- package/components/tree/themes/container.base.css.js +1 -1
- package/components/tree/themes/container.base.css.js.map +1 -1
- package/components/tree/themes/container.d.ts +1 -1
- package/components/tree/themes/container.js.map +1 -1
- package/components/tree/themes/item.base.css.js +1 -1
- package/components/tree/themes/item.base.css.js.map +1 -1
- package/components/tree/themes/item.d.ts +1 -1
- package/components/tree/themes/item.js.map +1 -1
- package/components/tree/tree-item.d.ts +62 -36
- package/components/tree/tree-item.js +223 -233
- package/components/tree/tree-item.js.map +1 -1
- package/components/tree/tree.common.d.ts +16 -1
- package/components/tree/tree.common.js +40 -1
- package/components/tree/tree.common.js.map +1 -1
- package/components/tree/tree.d.ts +21 -14
- package/components/tree/tree.js +64 -72
- package/components/tree/tree.js.map +1 -1
- package/components/tree/tree.navigation.d.ts +39 -29
- package/components/tree/tree.navigation.js +140 -192
- package/components/tree/tree.navigation.js.map +1 -1
- package/components/tree/tree.selection.d.ts +32 -31
- package/components/tree/tree.selection.js +184 -178
- package/components/tree/tree.selection.js.map +1 -1
- package/components/types.js.map +1 -1
- package/components/validation-container/validation-container.d.ts +33 -6
- package/components/validation-container/validation-container.js +81 -70
- package/components/validation-container/validation-container.js.map +1 -1
- package/components/virtualization/engine.d.ts +92 -0
- package/components/virtualization/engine.js +217 -0
- package/components/virtualization/engine.js.map +1 -0
- package/components/virtualization/types.d.ts +53 -0
- package/components/virtualization/types.js +14 -0
- package/components/virtualization/types.js.map +1 -0
- package/components/virtualization/virtualization.d.ts +235 -0
- package/components/virtualization/virtualization.js +474 -0
- package/components/virtualization/virtualization.js.map +1 -0
- package/components/visually-hidden/visually-hidden.js +1 -1
- package/components/visually-hidden/visually-hidden.js.map +1 -1
- package/custom-elements.json +57500 -47242
- package/extras/chat-markdown-renderer.d.ts +1 -1
- package/extras/chat-markdown-renderer.js.map +1 -1
- package/igniteui-webcomponents.css-data.json +2 -2
- package/igniteui-webcomponents.html-data.json +1 -1
- package/index.d.ts +20 -15
- package/index.js +11 -9
- package/index.js.map +1 -1
- package/internals/abort-handler.js.map +1 -0
- package/internals/context.d.ts +39 -0
- package/{components/common → internals}/context.js +2 -1
- package/internals/context.js.map +1 -0
- package/internals/controllers/adopt-styles.d.ts +76 -0
- package/internals/controllers/adopt-styles.js +173 -0
- package/internals/controllers/adopt-styles.js.map +1 -0
- package/internals/controllers/aria-projection.d.ts +144 -0
- package/internals/controllers/aria-projection.js +138 -0
- package/internals/controllers/aria-projection.js.map +1 -0
- package/{components/common → internals}/controllers/async-consumer.js +8 -7
- package/internals/controllers/async-consumer.js.map +1 -0
- package/internals/controllers/command.js.map +1 -0
- package/{components/common → internals}/controllers/drag.js +3 -2
- package/internals/controllers/drag.js.map +1 -0
- package/{components/common → internals}/controllers/focus-ring.js +5 -2
- package/internals/controllers/focus-ring.js.map +1 -0
- package/{components/common → internals}/controllers/fullscreen.js +6 -3
- package/internals/controllers/fullscreen.js.map +1 -0
- package/{components/common → internals}/controllers/gestures.d.ts +1 -1
- package/{components/common → internals}/controllers/gestures.js +4 -4
- package/internals/controllers/gestures.js.map +1 -0
- package/{components/common → internals}/controllers/id-resolver.js +15 -21
- package/internals/controllers/id-resolver.js.map +1 -0
- package/{components/common → internals}/controllers/internals.d.ts +48 -3
- package/{components/common → internals}/controllers/internals.js +32 -0
- package/internals/controllers/internals.js.map +1 -0
- package/{components/common → internals}/controllers/key-bindings.d.ts +3 -6
- package/{components/common → internals}/controllers/key-bindings.js +43 -29
- package/internals/controllers/key-bindings.js.map +1 -0
- package/{components/common → internals}/controllers/mutation-observer.d.ts +5 -4
- package/internals/controllers/mutation-observer.js +74 -0
- package/internals/controllers/mutation-observer.js.map +1 -0
- package/{components/common → internals}/controllers/resize-observer.d.ts +11 -1
- package/{components/common → internals}/controllers/resize-observer.js +13 -2
- package/internals/controllers/resize-observer.js.map +1 -0
- package/{components/common → internals}/controllers/root-click.js +8 -13
- package/internals/controllers/root-click.js.map +1 -0
- package/{components/common → internals}/controllers/root-scroll.d.ts +11 -8
- package/internals/controllers/root-scroll.js +71 -0
- package/internals/controllers/root-scroll.js.map +1 -0
- package/{components/common → internals}/controllers/slot.d.ts +18 -2
- package/{components/common → internals}/controllers/slot.js +21 -6
- package/internals/controllers/slot.js.map +1 -0
- package/internals/date/compare.d.ts +2 -0
- package/internals/date/compare.js +23 -0
- package/internals/date/compare.js.map +1 -0
- package/internals/date/converters.d.ts +18 -0
- package/internals/date/converters.js +73 -0
- package/internals/date/converters.js.map +1 -0
- package/{components/calendar → internals/date}/model.d.ts +6 -3
- package/{components/calendar → internals/date}/model.js +23 -0
- package/internals/date/model.js.map +1 -0
- package/internals/decorators/blazorAdditionalDependencies.js.map +1 -0
- package/internals/decorators/blazorDeepImport.js.map +1 -0
- package/internals/decorators/blazorInclude.js.map +1 -0
- package/internals/decorators/blazorIndirectRender.js.map +1 -0
- package/internals/decorators/blazorSuppressComponent.js.map +1 -0
- package/internals/decorators/shadow-options.js.map +1 -0
- package/internals/decorators/watch.js.map +1 -0
- package/internals/definitions/defineAllComponents.js +153 -0
- package/internals/definitions/defineAllComponents.js.map +1 -0
- package/internals/definitions/defineComponents.js.map +1 -0
- package/internals/definitions/register.js.map +1 -0
- package/{components/common → internals}/i18n/EN/calendar.resources.js +1 -1
- package/internals/i18n/EN/calendar.resources.js.map +1 -0
- package/internals/i18n/EN/chat.resources.js.map +1 -0
- package/internals/i18n/EN/date-picker.resources.js.map +1 -0
- package/internals/i18n/EN/date-range-picker.resources.js.map +1 -0
- package/internals/i18n/i18n-controller.js.map +1 -0
- package/{components/common → internals}/i18n/utils.js +1 -1
- package/internals/i18n/utils.js.map +1 -0
- package/{components/common → internals}/mixins/alert.d.ts +2 -2
- package/{components/common → internals}/mixins/alert.js +3 -3
- package/internals/mixins/alert.js.map +1 -0
- package/{components/common → internals}/mixins/combo-box.d.ts +10 -2
- package/{components/common → internals}/mixins/combo-box.js +9 -4
- package/internals/mixins/combo-box.js.map +1 -0
- package/internals/mixins/constructor.js.map +1 -0
- package/internals/mixins/event-emitter.js.map +1 -0
- package/{components/common → internals}/mixins/forms/associated-required.js +10 -19
- package/internals/mixins/forms/associated-required.js.map +1 -0
- package/{components/common → internals}/mixins/forms/associated.d.ts +1 -1
- package/{components/common → internals}/mixins/forms/associated.js +66 -51
- package/internals/mixins/forms/associated.js.map +1 -0
- package/{components/common → internals}/mixins/forms/form-transformers.d.ts +1 -1
- package/{components/common → internals}/mixins/forms/form-transformers.js +2 -2
- package/internals/mixins/forms/form-transformers.js.map +1 -0
- package/internals/mixins/forms/form-value.js.map +1 -0
- package/{components/common → internals}/mixins/forms/types.d.ts +7 -7
- package/internals/mixins/forms/types.js.map +1 -0
- package/{components/common → internals}/mixins/mask-behavior.d.ts +11 -3
- package/{components/common → internals}/mixins/mask-behavior.js +117 -29
- package/internals/mixins/mask-behavior.js.map +1 -0
- package/{components/common → internals}/mixins/option.d.ts +0 -2
- package/{components/common → internals}/mixins/option.js +1 -4
- package/internals/mixins/option.js.map +1 -0
- package/internals/part-map.js.map +1 -0
- package/{components/common → internals}/templates/input-shell.d.ts +8 -1
- package/{components/common → internals}/templates/input-shell.js +14 -4
- package/internals/templates/input-shell.js.map +1 -0
- package/{components/common → internals}/templates/masked-input.d.ts +8 -2
- package/{components/common → internals}/templates/masked-input.js +5 -3
- package/internals/templates/masked-input.js.map +1 -0
- package/internals/utils/arrays.d.ts +53 -0
- package/internals/utils/arrays.js +31 -0
- package/internals/utils/arrays.js.map +1 -0
- package/internals/utils/dom.d.ts +92 -0
- package/internals/utils/dom.js +143 -0
- package/internals/utils/dom.js.map +1 -0
- package/internals/utils/events.d.ts +41 -0
- package/internals/utils/events.js +37 -0
- package/internals/utils/events.js.map +1 -0
- package/internals/utils/lit.d.ts +8 -0
- package/internals/utils/lit.js +15 -0
- package/internals/utils/lit.js.map +1 -0
- package/internals/utils/math.d.ts +50 -0
- package/internals/utils/math.js +38 -0
- package/internals/utils/math.js.map +1 -0
- package/internals/utils/objects.d.ts +25 -0
- package/internals/utils/objects.js +125 -0
- package/internals/utils/objects.js.map +1 -0
- package/internals/utils/strings.d.ts +44 -0
- package/internals/utils/strings.js +46 -0
- package/internals/utils/strings.js.map +1 -0
- package/internals/utils/types.d.ts +13 -0
- package/internals/utils/types.js +31 -0
- package/internals/utils/types.js.map +1 -0
- package/{components/common → internals}/validators.d.ts +1 -1
- package/{components/common → internals}/validators.js +4 -2
- package/internals/validators.js.map +1 -0
- package/package.json +15 -7
- package/skills/igniteui-wc-generate-from-image-design/references/gotchas.md +15 -1
- package/themes/dark/bootstrap.css +1 -1
- package/themes/dark/fluent.css +1 -1
- package/themes/dark/indigo.css +1 -1
- package/themes/dark/material.css +1 -1
- package/themes/light/bootstrap.css +1 -1
- package/themes/light/fluent.css +1 -1
- package/themes/light/indigo.css +1 -1
- package/themes/light/material.css +1 -1
- package/theming/theming-controller.d.ts +2 -2
- package/theming/theming-controller.js.map +1 -1
- package/web-types.json +3 -3
- package/components/calendar/model.js.map +0 -1
- package/components/combo/combo-list.d.ts +0 -11
- package/components/combo/combo-list.js +0 -13
- package/components/combo/combo-list.js.map +0 -1
- package/components/common/abort-handler.js.map +0 -1
- package/components/common/context.d.ts +0 -25
- package/components/common/context.js.map +0 -1
- package/components/common/controllers/adopt-styles.d.ts +0 -124
- package/components/common/controllers/adopt-styles.js +0 -75
- package/components/common/controllers/adopt-styles.js.map +0 -1
- package/components/common/controllers/async-consumer.js.map +0 -1
- package/components/common/controllers/command.js.map +0 -1
- package/components/common/controllers/drag.js.map +0 -1
- package/components/common/controllers/focus-ring.js.map +0 -1
- package/components/common/controllers/fullscreen.js.map +0 -1
- package/components/common/controllers/gestures.js.map +0 -1
- package/components/common/controllers/id-resolver.js.map +0 -1
- package/components/common/controllers/internals.js.map +0 -1
- package/components/common/controllers/key-bindings.js.map +0 -1
- package/components/common/controllers/mutation-observer.js +0 -69
- package/components/common/controllers/mutation-observer.js.map +0 -1
- package/components/common/controllers/resize-observer.js.map +0 -1
- package/components/common/controllers/root-click.js.map +0 -1
- package/components/common/controllers/root-scroll.js +0 -63
- package/components/common/controllers/root-scroll.js.map +0 -1
- package/components/common/controllers/slot.js.map +0 -1
- package/components/common/decorators/blazorAdditionalDependencies.js.map +0 -1
- package/components/common/decorators/blazorDeepImport.js.map +0 -1
- package/components/common/decorators/blazorInclude.js.map +0 -1
- package/components/common/decorators/blazorIndirectRender.js.map +0 -1
- package/components/common/decorators/blazorSuppressComponent.js.map +0 -1
- package/components/common/decorators/shadow-options.js.map +0 -1
- package/components/common/decorators/watch.js.map +0 -1
- package/components/common/definitions/defineAllComponents.js +0 -151
- package/components/common/definitions/defineAllComponents.js.map +0 -1
- package/components/common/definitions/defineComponents.js.map +0 -1
- package/components/common/definitions/register.js.map +0 -1
- package/components/common/i18n/EN/calendar.resources.js.map +0 -1
- package/components/common/i18n/EN/chat.resources.js.map +0 -1
- package/components/common/i18n/EN/date-picker.resources.js.map +0 -1
- package/components/common/i18n/EN/date-range-picker.resources.js.map +0 -1
- package/components/common/i18n/i18n-controller.js.map +0 -1
- package/components/common/i18n/utils.js.map +0 -1
- package/components/common/mixins/alert.js.map +0 -1
- package/components/common/mixins/combo-box.js.map +0 -1
- package/components/common/mixins/constructor.js.map +0 -1
- package/components/common/mixins/event-emitter.js.map +0 -1
- package/components/common/mixins/forms/associated-required.js.map +0 -1
- package/components/common/mixins/forms/associated.js.map +0 -1
- package/components/common/mixins/forms/form-transformers.js.map +0 -1
- package/components/common/mixins/forms/form-value.js.map +0 -1
- package/components/common/mixins/forms/types.js.map +0 -1
- package/components/common/mixins/mask-behavior.js.map +0 -1
- package/components/common/mixins/option.js.map +0 -1
- package/components/common/part-map.js.map +0 -1
- package/components/common/templates/input-shell.js.map +0 -1
- package/components/common/templates/masked-input.js.map +0 -1
- package/components/common/util.d.ts +0 -196
- package/components/common/util.js +0 -390
- package/components/common/util.js.map +0 -1
- package/components/common/validators.js.map +0 -1
- package/components/icon/registry/default-map.d.ts +0 -107
- package/components/icon/registry/default-map.js +0 -25
- package/components/icon/registry/default-map.js.map +0 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js +0 -3
- package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js.map +0 -1
- package/components/radio/utils.d.ts +0 -13
- package/components/radio/utils.js +0 -37
- package/components/radio/utils.js.map +0 -1
- /package/components/{nav-drawer/themes/shared/container/nav-drawer.fluent.css.d.ts → qr-code/themes/dark/qr-code.bootstrap.css.d.ts} +0 -0
- /package/{components/common → internals}/abort-handler.d.ts +0 -0
- /package/{components/common → internals}/abort-handler.js +0 -0
- /package/{components/common → internals}/controllers/async-consumer.d.ts +0 -0
- /package/{components/common → internals}/controllers/command.d.ts +0 -0
- /package/{components/common → internals}/controllers/command.js +0 -0
- /package/{components/common → internals}/controllers/drag.d.ts +0 -0
- /package/{components/common → internals}/controllers/focus-ring.d.ts +0 -0
- /package/{components/common → internals}/controllers/fullscreen.d.ts +0 -0
- /package/{components/common → internals}/controllers/id-resolver.d.ts +0 -0
- /package/{components/common → internals}/controllers/root-click.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorAdditionalDependencies.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorAdditionalDependencies.js +0 -0
- /package/{components/common → internals}/decorators/blazorDeepImport.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorDeepImport.js +0 -0
- /package/{components/common → internals}/decorators/blazorInclude.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorInclude.js +0 -0
- /package/{components/common → internals}/decorators/blazorIndirectRender.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorIndirectRender.js +0 -0
- /package/{components/common → internals}/decorators/blazorSuppressComponent.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorSuppressComponent.js +0 -0
- /package/{components/common → internals}/decorators/shadow-options.d.ts +0 -0
- /package/{components/common → internals}/decorators/shadow-options.js +0 -0
- /package/{components/common → internals}/decorators/watch.d.ts +0 -0
- /package/{components/common → internals}/decorators/watch.js +0 -0
- /package/{components/common → internals}/definitions/defineAllComponents.d.ts +0 -0
- /package/{components/common → internals}/definitions/defineComponents.d.ts +0 -0
- /package/{components/common → internals}/definitions/defineComponents.js +0 -0
- /package/{components/common → internals}/definitions/register.d.ts +0 -0
- /package/{components/common → internals}/definitions/register.js +0 -0
- /package/{components/common → internals}/i18n/EN/calendar.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/chat.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/chat.resources.js +0 -0
- /package/{components/common → internals}/i18n/EN/date-picker.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/date-picker.resources.js +0 -0
- /package/{components/common → internals}/i18n/EN/date-range-picker.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/date-range-picker.resources.js +0 -0
- /package/{components/common → internals}/i18n/i18n-controller.d.ts +0 -0
- /package/{components/common → internals}/i18n/i18n-controller.js +0 -0
- /package/{components/common → internals}/i18n/utils.d.ts +0 -0
- /package/{components/common → internals}/mixins/constructor.d.ts +0 -0
- /package/{components/common → internals}/mixins/constructor.js +0 -0
- /package/{components/common → internals}/mixins/event-emitter.d.ts +0 -0
- /package/{components/common → internals}/mixins/event-emitter.js +0 -0
- /package/{components/common → internals}/mixins/forms/associated-required.d.ts +0 -0
- /package/{components/common → internals}/mixins/forms/form-value.d.ts +0 -0
- /package/{components/common → internals}/mixins/forms/form-value.js +0 -0
- /package/{components/common → internals}/mixins/forms/types.js +0 -0
- /package/{components/common → internals}/part-map.d.ts +0 -0
- /package/{components/common → internals}/part-map.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-input.js","sourceRoot":"","sources":["../../../src/components/date-range-picker/date-range-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { property } from 'lit/decorators.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { CalendarDay } from '../calendar/model.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { formatDisplayDate } from '../common/i18n/i18n-controller.js';\nimport type { AbstractConstructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { FormValueDateRangeTransformers } from '../common/mixins/forms/form-transformers.js';\nimport { createFormValueState } from '../common/mixins/forms/form-value.js';\nimport { equal } from '../common/util.js';\nimport {\n type DatePart,\n type DatePartDeltas,\n DatePartType,\n} from '../date-time-input/date-part.js';\nimport { IgcDateTimeInputBaseComponent } from '../date-time-input/date-time-input.base.js';\nimport { DateParts } from '../date-time-input/datetime-mask-parser.js';\nimport { styles } from '../input/themes/input.base.css.js';\nimport { styles as shared } from '../input/themes/shared/input.common.css.js';\nimport { all } from '../input/themes/themes.js';\nimport type { DateRangeValue } from '../types.js';\nimport {\n DateRangeMaskParser,\n type DateRangePart,\n DateRangePosition,\n} from './date-range-mask-parser.js';\n\nexport interface IgcDateRangeInputComponentEventMap {\n /* alternateName: inputOcurred */\n igcInput: CustomEvent<string>;\n /* blazorSuppress */\n igcChange: CustomEvent<DateRangeValue | null>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n}\n\n/* blazorSuppress */\nexport default class IgcDateRangeInputComponent extends EventEmitterMixin<\n IgcDateRangeInputComponentEventMap,\n AbstractConstructor<IgcDateTimeInputBaseComponent>\n>(IgcDateTimeInputBaseComponent) {\n public static readonly tagName = 'igc-date-range-input';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDateRangeInputComponent);\n }\n\n //#region Private state and properties\n\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: { start: null, end: null },\n transformers: FormValueDateRangeTransformers,\n });\n\n protected override readonly _themes = addThemingController(this, all);\n protected override readonly _parser = new DateRangeMaskParser();\n\n protected override get _datePartDeltas(): DatePartDeltas {\n return { date: 1, month: 1, year: 1 };\n }\n\n protected _oldValue: DateRangeValue | null = null;\n\n // #endregion\n\n // #region Public attributes and properties\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false, true) */\n /**\n * The value of the date range input.\n * @attr\n */\n @property({ attribute: false })\n public set value(value: DateRangeValue | null) {\n this._formValue.setValueAndFormState(value);\n this._updateMaskDisplay();\n }\n\n public get value(): DateRangeValue | null {\n return this._formValue.value;\n }\n\n // #endregion\n\n // #region Lifecycle Hooks\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this._initializeDefaultMask();\n this._updateMaskDisplay();\n }\n\n // #endregion\n\n // #region Event Handlers Overrides\n\n protected override async _handleFocus(): Promise<void> {\n this._focused = true;\n\n if (this.readOnly) {\n return;\n }\n\n this._oldValue = this.value;\n\n if (!this.value || (!this.value.start && !this.value.end)) {\n this._maskedValue = this._parser.emptyMask;\n await this.updateComplete;\n this.select();\n } else if (this.displayFormat !== this.inputFormat) {\n this._updateMaskDisplay();\n }\n }\n\n protected override _handleBlur(): void {\n const isSameValue = equal(this._oldValue, this.value);\n\n this._focused = false;\n\n if (!(this._isMaskComplete() || this._isEmptyMask)) {\n const parsed = this._parser.parseDateRange(this._maskedValue);\n\n if (parsed && (parsed.start || parsed.end)) {\n this.value = parsed;\n } else {\n this.value = null;\n this._maskedValue = '';\n }\n } else {\n this._updateMaskDisplay();\n }\n\n if (!(this.readOnly || isSameValue)) {\n this.emitEvent('igcChange', { detail: this.value });\n }\n\n super._handleBlur();\n }\n\n // #endregion\n\n // #region Keybindings overrides\n\n protected override _setCurrentDateTime(): void {\n const today = CalendarDay.today.native;\n this.value = { start: today, end: today };\n this._emitInputEvent();\n }\n\n protected override _calculatePartNavigationPosition(\n inputValue: string,\n direction: number\n ): number {\n const cursorPos = this._maskSelection.start;\n const rangeParts = this._parser.rangeParts;\n\n const currentPart = rangeParts.find(\n (p) =>\n p.type !== DateParts.Literal &&\n cursorPos >= p.start &&\n cursorPos <= p.end\n );\n\n const isStartOrEndPart =\n currentPart &&\n (currentPart.position === DateRangePosition.Start ||\n currentPart.position === DateRangePosition.End);\n\n if (direction === 0) {\n // Backward: if inside a start/end part, move to its start; else, move to previous part's start\n if (isStartOrEndPart && cursorPos !== currentPart.start) {\n return currentPart.start;\n }\n const prevPart = [...rangeParts]\n .reverse()\n .find((p) => p.type !== DateParts.Literal && p.end < cursorPos);\n return prevPart?.start ?? 0;\n }\n\n // Forward: if inside a start/end part, move to its end; else, move to next part's end\n if (isStartOrEndPart && cursorPos !== currentPart.end) {\n return currentPart.end;\n }\n const nextPart = rangeParts.find(\n (p) => p.type !== DateParts.Literal && p.start > cursorPos\n );\n return nextPart?.end ?? inputValue.length;\n }\n\n // #endregion\n\n // #region Internal API Overrides\n\n protected override _updateMaskDisplay(): void {\n if (this._focused) {\n // Only reset mask from value when value is non-null (i.e. after spinning or programmatic set).\n // When value is null the user is mid-typing — leave _maskedValue unchanged.\n if (this.value?.start || this.value?.end) {\n this._maskedValue = this._buildMaskedValue();\n } else if (!this._maskedValue) {\n this._maskedValue = this._parser.emptyMask;\n }\n return;\n }\n\n this._maskedValue = this._buildDisplayValue();\n }\n\n protected override _performStep(\n datePart: unknown,\n delta: number | undefined,\n isDecrement: boolean\n ): void {\n // If no value exists, set to today's date first\n if (!this.value?.start && !this.value?.end) {\n const today = CalendarDay.today.native;\n this.value = { start: today, end: today };\n const { start, end } = this._inputSelection;\n this.updateComplete.then(() =>\n this._input?.setSelectionRange(start, end)\n );\n return;\n }\n\n super._performStep(datePart, delta, isDecrement);\n }\n\n protected override _commitSpunValue(value: unknown): void {\n this.value = value as DateRangeValue;\n }\n\n protected override _buildDisplayValue(): string {\n if (!this.value?.start && !this.value?.end) {\n return '';\n }\n\n const { start, end } = this.value;\n const startStr = start\n ? formatDisplayDate(start, this.locale, this.displayFormat)\n : '';\n const endStr = end\n ? formatDisplayDate(end, this.locale, this.displayFormat)\n : '';\n return startStr && endStr\n ? `${startStr}${this._parser.separator}${endStr}`\n : startStr || endStr;\n }\n\n protected override _calculateSpunValue(\n datePart: unknown,\n delta: number | undefined,\n isDecrement: boolean\n ): DateRangeValue {\n const range = datePart as DateRangePart;\n const part = this._parser.getPartByTypeAndPosition(\n range.part as DatePartType,\n range.position\n );\n\n const today = CalendarDay.today.native;\n const defaultValue = { start: today, end: today };\n\n if (!part) {\n return this.value || defaultValue;\n }\n\n const effectiveDelta =\n delta ?? this._datePartDeltas[range.part as keyof DatePartDeltas] ?? 1;\n const spinAmount = effectiveDelta * (isDecrement ? -1 : 1);\n\n // For AM/PM spinning, extract the current AM/PM value from the mask\n const amPmValue =\n part.type === DatePartType.AmPm\n ? this._maskedValue.substring(part.start, part.end)\n : undefined;\n\n return this._parser.spinDateRangePart(\n part,\n spinAmount,\n this.value,\n this.spinLoop,\n amPmValue\n );\n }\n\n /**\n * Gets the date range part at the current cursor position.\n * If the cursor is at a literal, finds the nearest non-literal part.\n * Returns undefined if no valid part is found.\n */\n protected override _getDatePartAtCursor(): DateRangePart | undefined {\n const cursorPos = this._inputSelection.start;\n let part = this._parser.getDateRangePartForCursor(cursorPos);\n\n // If cursor is at a literal, find the nearest non-literal part\n if (part?.type === DatePartType.Literal) {\n const nextPart = this._parser.rangeParts.find(\n (p) => p.start >= cursorPos && p.type !== DatePartType.Literal\n );\n if (nextPart) {\n part = nextPart;\n } else {\n part = this._parser.rangeParts.findLast(\n (p) => p.end <= cursorPos && p.type !== DatePartType.Literal\n );\n }\n }\n\n if (part && part.type !== DatePartType.Literal) {\n return {\n part: part.type as DatePart,\n position: part.position,\n };\n }\n\n return undefined;\n }\n\n /**\n * Gets the default date range part to target when the input is not focused.\n * Returns the first date part at the start position.\n */\n protected override _getDefaultDatePart(): DateRangePart | undefined {\n const firstPart = this._parser.getFirstDatePartForPosition(\n DateRangePosition.Start\n );\n if (firstPart) {\n return {\n part: firstPart.type as DatePart,\n position: DateRangePosition.Start,\n };\n }\n\n return undefined;\n }\n\n protected override _buildMaskedValue(): string {\n return this._parser.formatDateRange(this.value);\n }\n\n protected override _applyMask(string: string): void {\n const previous = this._parser.mask;\n\n this._parser.mask = string;\n this._defaultMask = string;\n this._parser.prompt = this.prompt;\n\n // Update placeholder if not set or if it matches the previous format\n if (!this.placeholder || previous === this.placeholder) {\n this.placeholder = this._parser.mask;\n }\n }\n\n protected override _syncValueFromMask(): void {\n if (!this._isMaskComplete()) {\n this.value = null;\n return;\n }\n\n const parsed = this._parser.parseDateRange(this._maskedValue);\n this.value = parsed?.start || parsed?.end ? parsed : null;\n }\n\n // #region Public API Overrides\n\n /** Increments a date/time portion. */\n public override stepUp(datePart?: DateRangePart, delta?: number): void {\n super.stepUp(datePart, delta);\n }\n\n /** Decrements a date/time portion. */\n public override stepDown(datePart?: DateRangePart, delta?: number): void {\n super.stepDown(datePart, delta);\n }\n\n /** Clears the input element of user input. */\n public override clear(): void {\n this._maskedValue = '';\n this.value = null;\n }\n\n public override hasDateParts(): boolean {\n return this._parser.rangeParts.some(\n (p) =>\n p.type === DatePartType.Date ||\n p.type === DatePartType.Month ||\n p.type === DatePartType.Year\n );\n }\n\n public override hasTimeParts(): boolean {\n return this._parser.rangeParts.some(\n (p) =>\n p.type === DatePartType.Hours ||\n p.type === DatePartType.Minutes ||\n p.type === DatePartType.Seconds\n );\n }\n\n // #endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-range-input': IgcDateRangeInputComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"date-range-input.js","sourceRoot":"","sources":["../../../src/components/date-range-picker/date-range-input.ts"],"names":[],"mappings":"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","sourcesContent":["import { property } from 'lit/decorators.js';\nimport { CalendarDay } from '#internals/date/model.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { formatDisplayDate } from '#internals/i18n/i18n-controller.js';\nimport type { AbstractConstructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { FormValueDateRangeTransformers } from '#internals/mixins/forms/form-transformers.js';\nimport { createFormValueState } from '#internals/mixins/forms/form-value.js';\nimport { equal } from '#internals/utils/objects.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport {\n type DatePart,\n type DatePartDeltas,\n DatePartType,\n} from '../date-time-input/date-part.js';\nimport { IgcDateTimeInputBaseComponent } from '../date-time-input/date-time-input.base.js';\nimport { styles } from '../input/themes/input.base.css.js';\nimport { styles as shared } from '../input/themes/shared/input.common.css.js';\nimport { all } from '../input/themes/themes.js';\nimport type { DateRangeValue } from '../types.js';\nimport {\n DateRangeMaskParser,\n type DateRangePart,\n DateRangePosition,\n} from './date-range-mask-parser.js';\n\nexport interface IgcDateRangeInputComponentEventMap {\n /* alternateName: inputOcurred */\n igcInput: CustomEvent<string>;\n /* blazorSuppress */\n igcChange: CustomEvent<DateRangeValue | null>;\n // For analyzer meta only:\n /* skipWCPrefix */\n focus: FocusEvent;\n /* skipWCPrefix */\n blur: FocusEvent;\n}\n\n/* blazorSuppress */\nexport default class IgcDateRangeInputComponent extends EventEmitterMixin<\n IgcDateRangeInputComponentEventMap,\n AbstractConstructor<IgcDateTimeInputBaseComponent<DateRangeValue>>\n>(IgcDateTimeInputBaseComponent) {\n public static readonly tagName = 'igc-date-range-input';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcDateRangeInputComponent);\n }\n\n //#region Private state and properties\n\n protected override readonly _formValue = createFormValueState(this, {\n initialValue: { start: null, end: null },\n transformers: FormValueDateRangeTransformers,\n });\n\n protected override readonly _themes = addThemingController(this, all);\n protected override readonly _parser = new DateRangeMaskParser();\n\n protected override get _datePartDeltas(): DatePartDeltas {\n return { date: 1, month: 1, year: 1 };\n }\n\n // #endregion\n\n // #region Public attributes and properties\n\n /* @tsTwoWayProperty(true, \"igcChange\", \"detail\", false, true) */\n /**\n * The value of the date range input.\n *\n * Only ever holds a committed value. While the user is typing, the intermediate\n * state lives in the masked text and is committed - together with an `igcChange`\n * event - when the edit is committed on blur.\n *\n * @attr\n */\n @property({ attribute: false })\n public override set value(value: DateRangeValue | null) {\n if (equal(this._formValue.value, value)) {\n return;\n }\n\n this._isEditing = false;\n this._formValue.setValueAndFormState(value);\n this._updateMaskDisplay();\n }\n\n public override get value(): DateRangeValue | null {\n return this._formValue.value;\n }\n\n // #endregion\n\n // #region Lifecycle Hooks\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this._initializeDefaultMask();\n this._updateMaskDisplay();\n }\n\n // #endregion\n\n // #region Event Handlers Overrides\n\n protected override async _handleFocus(): Promise<void> {\n this._focused = true;\n\n if (this.readOnly) {\n return;\n }\n\n this._oldValue = this.value;\n\n if (!this.value || (!this.value.start && !this.value.end)) {\n this._maskedValue = this._parser.emptyMask;\n this._historyResync();\n await this.updateComplete;\n this.select();\n return;\n }\n\n if (this.displayFormat !== this.inputFormat) {\n this._updateMaskDisplay();\n }\n\n this._historyResync();\n }\n\n // #endregion\n\n // #region Keybindings overrides\n\n protected override _setCurrentDateTime(): void {\n const today = CalendarDay.today.native;\n this._setDraftValue({ start: today, end: today });\n this._emitInputEvent();\n }\n\n protected override _calculatePartNavigationPosition(\n inputValue: string,\n direction: number\n ): number {\n const cursorPos = this._maskSelection.start;\n const rangeParts = this._parser.parts;\n\n const currentPart = this._parser.getPartForCursor(cursorPos);\n\n const isStartOrEndPart =\n currentPart &&\n (currentPart.position === DateRangePosition.Start ||\n currentPart.position === DateRangePosition.End);\n\n if (direction === 0) {\n // Backward: if inside a start/end part, move to its start; else, move to previous part's start\n if (isStartOrEndPart && cursorPos !== currentPart.start) {\n return currentPart.start;\n }\n const prevPart = rangeParts.findLast(\n (p) => p.type !== DatePartType.Literal && p.end < cursorPos\n );\n return prevPart?.start ?? 0;\n }\n\n // Forward: if inside a start/end part, move to its end; else, move to next part's end\n if (isStartOrEndPart && cursorPos !== currentPart.end) {\n return currentPart.end;\n }\n const nextPart = rangeParts.find(\n (p) => p.type !== DatePartType.Literal && p.start > cursorPos\n );\n return nextPart?.end ?? inputValue.length;\n }\n\n // #endregion\n\n // #region Internal API Overrides\n\n protected override _performStep(\n datePart: unknown,\n delta: number | undefined,\n isDecrement: boolean\n ): void {\n // If no value exists, set to today's date first\n const current = this._uncommittedValue;\n\n if (!current?.start && !current?.end) {\n const today = CalendarDay.today.native;\n this._setDraftValue({ start: today, end: today });\n const { start, end } = this._inputSelection;\n this.updateComplete.then(() =>\n this._input?.setSelectionRange(start, end)\n );\n return;\n }\n\n super._performStep(datePart, delta, isDecrement);\n }\n\n protected override _buildDisplayValue(): string {\n if (!this.value?.start && !this.value?.end) {\n return '';\n }\n\n const { start, end } = this.value;\n const startStr = start\n ? formatDisplayDate(start, this.locale, this.displayFormat)\n : '';\n const endStr = end\n ? formatDisplayDate(end, this.locale, this.displayFormat)\n : '';\n return startStr && endStr\n ? `${startStr}${this._parser.separator}${endStr}`\n : startStr || endStr;\n }\n\n protected override _calculateSpunValue(\n datePart: unknown,\n delta: number | undefined,\n isDecrement: boolean\n ): DateRangeValue {\n const range = datePart as DateRangePart;\n const part = this._parser.getPartByTypeAndPosition(\n range.part as DatePartType,\n range.position\n );\n\n const today = CalendarDay.today.native;\n const defaultValue = { start: today, end: today };\n const current = this._uncommittedValue;\n\n if (!part) {\n return current || defaultValue;\n }\n\n const effectiveDelta =\n delta ?? this._datePartDeltas[range.part as keyof DatePartDeltas] ?? 1;\n const spinAmount = effectiveDelta * (isDecrement ? -1 : 1);\n\n // For AM/PM spinning, extract the current AM/PM value from the mask\n const amPmValue =\n part.type === DatePartType.AmPm\n ? this._maskedValue.substring(part.start, part.end)\n : undefined;\n\n return this._parser.spinDateRangePart(\n part,\n spinAmount,\n current,\n this.spinLoop,\n amPmValue\n );\n }\n\n /**\n * Gets the date range part at the current cursor position.\n * Returns undefined if the cursor sits outside any part - in the separator, say.\n */\n protected override _getDatePartAtCursor(): DateRangePart | undefined {\n const part = this._parser.getPartForCursor(this._inputSelection.start);\n\n return part\n ? { part: part.type as DatePart, position: part.position }\n : undefined;\n }\n\n /**\n * Gets the default date range part to target when the input is not focused.\n * Returns the first date part at the start position.\n */\n protected override _getDefaultDatePart(): DateRangePart | undefined {\n const firstPart = this._parser.getFirstDatePartForPosition(\n DateRangePosition.Start\n );\n if (firstPart) {\n return {\n part: firstPart.type as DatePart,\n position: DateRangePosition.Start,\n };\n }\n\n return undefined;\n }\n\n protected override _parseMask(strict: boolean): DateRangeValue | null {\n if (strict && !this._isMaskComplete()) {\n return null;\n }\n\n const parsed = this._parser.parseDateRange(this._maskedValue);\n return parsed?.start || parsed?.end ? parsed : null;\n }\n\n protected override _formatValue(value: DateRangeValue | null): string {\n return this._parser.formatDateRange(value);\n }\n\n protected override _applyMask(string: string): void {\n const previous = this._parser.mask;\n\n this._parser.mask = string;\n this._defaultMask = string;\n this._parser.prompt = this.prompt;\n\n // Update placeholder if not set or if it matches the previous format\n if (!this.placeholder || previous === this.placeholder) {\n this.placeholder = this._parser.mask;\n }\n }\n\n // #region Public API Overrides\n\n /** Increments a date/time portion. */\n public override stepUp(datePart?: DateRangePart, delta?: number): void {\n super.stepUp(datePart, delta);\n }\n\n /** Decrements a date/time portion. */\n public override stepDown(datePart?: DateRangePart, delta?: number): void {\n super.stepDown(datePart, delta);\n }\n\n public override hasDateParts(): boolean {\n return this._parser.hasDateParts();\n }\n\n public override hasTimeParts(): boolean {\n return this._parser.hasTimeParts();\n }\n\n // #endregion\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-date-range-input': IgcDateRangeInputComponent;\n }\n}\n"]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { type DatePart, DatePartType, type IDatePart } from '../date-time-input/date-part.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { DateFormatMaskParser } from '../date-time-input/datetime-mask-parser.js';
|
|
3
|
+
import type { MaskOptions } from '../mask-input/mask-parser.js';
|
|
4
4
|
import type { DateRangeValue } from '../types.js';
|
|
5
5
|
/**
|
|
6
|
-
* @
|
|
6
|
+
* @hidden
|
|
7
7
|
*/
|
|
8
8
|
export interface DateRangePart {
|
|
9
9
|
part: DatePart;
|
|
10
10
|
position: DateRangePosition;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* @ignore
|
|
14
13
|
* Position of a date part within the date range
|
|
14
|
+
* @hidden
|
|
15
15
|
*/
|
|
16
16
|
export declare enum DateRangePosition {
|
|
17
17
|
Start = "start",
|
|
@@ -19,14 +19,14 @@ export declare enum DateRangePosition {
|
|
|
19
19
|
Separator = "separator"
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* @ignore
|
|
23
22
|
* Extended date part with range position information
|
|
23
|
+
* @hidden
|
|
24
24
|
*/
|
|
25
25
|
export interface IDateRangePart extends IDatePart {
|
|
26
26
|
position: DateRangePosition;
|
|
27
27
|
}
|
|
28
28
|
/** Options for the DateRangeMaskParser */
|
|
29
|
-
export interface DateRangeMaskOptions extends
|
|
29
|
+
export interface DateRangeMaskOptions extends MaskOptions {
|
|
30
30
|
/** Separator (defaults to ' - ') */
|
|
31
31
|
separator?: string;
|
|
32
32
|
}
|
|
@@ -44,42 +44,40 @@ export interface DateRangeMaskOptions extends DateTimeMaskOptions {
|
|
|
44
44
|
* parser.formatDateRange({ start: date1, end: date2 }); // Returns formatted string
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
|
-
export declare class DateRangeMaskParser extends
|
|
47
|
+
export declare class DateRangeMaskParser extends DateFormatMaskParser<IDateRangePart> {
|
|
48
48
|
private _startParser;
|
|
49
49
|
private _endParser;
|
|
50
|
-
/** Cached date range parts with position information */
|
|
51
|
-
private _rangeParts;
|
|
52
50
|
/** The separator between start and end dates */
|
|
53
51
|
private _separator;
|
|
54
52
|
/** Start position of the separator in the mask */
|
|
55
53
|
private _separatorStart;
|
|
56
54
|
/** End position of the separator in the mask */
|
|
57
55
|
private _separatorEnd;
|
|
58
|
-
/**
|
|
59
|
-
* Gets the parsed date range parts with position information.
|
|
60
|
-
*/
|
|
61
|
-
get rangeParts(): ReadonlyArray<IDateRangePart>;
|
|
62
56
|
/**
|
|
63
57
|
* Gets the separator string used between start and end dates.
|
|
64
58
|
*/
|
|
65
59
|
get separator(): string;
|
|
66
60
|
constructor(options?: DateRangeMaskOptions);
|
|
67
|
-
|
|
68
|
-
* Overrides base class to convert date format to mask format
|
|
69
|
-
* before parsing literals. This ensures date format characters
|
|
70
|
-
* (M, d, y, etc.) are properly converted to mask characters (0, L).
|
|
71
|
-
*/
|
|
72
|
-
protected _parseMaskLiterals(): void;
|
|
73
|
-
/**
|
|
74
|
-
* Builds the range parts array by combining parts from start and end parsers
|
|
75
|
-
* and adding position information.
|
|
76
|
-
*/
|
|
77
|
-
private _buildRangeParts;
|
|
61
|
+
protected _buildParts(): IDateRangePart[];
|
|
78
62
|
/**
|
|
79
63
|
* Sets a new date format and updates both parsers.
|
|
64
|
+
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* Takes the format of a *single* date; the getter returns the combined range format.
|
|
80
67
|
*/
|
|
81
68
|
set mask(value: string);
|
|
82
69
|
get mask(): string;
|
|
70
|
+
/**
|
|
71
|
+
* Sets the prompt character and updates both parsers.
|
|
72
|
+
*
|
|
73
|
+
* @remarks
|
|
74
|
+
* Each half of the range is parsed and formatted by its own sub-parser, so all three
|
|
75
|
+
* have to agree on the prompt. Read back through `super` rather than propagating the
|
|
76
|
+
* argument, since the base setter normalizes it to a single character and rejects one
|
|
77
|
+
* that collides with a mask flag.
|
|
78
|
+
*/
|
|
79
|
+
set prompt(value: string);
|
|
80
|
+
get prompt(): string;
|
|
83
81
|
/**
|
|
84
82
|
* Parses a masked string into a DateRangeValue using the two internal parsers.
|
|
85
83
|
* Returns null if the string cannot be parsed.
|
|
@@ -89,16 +87,6 @@ export declare class DateRangeMaskParser extends MaskParser {
|
|
|
89
87
|
* Formats a DateRangeValue into a masked string using the two internal parsers.
|
|
90
88
|
*/
|
|
91
89
|
formatDateRange(range: DateRangeValue | null): string;
|
|
92
|
-
/**
|
|
93
|
-
* Gets the date range part at a cursor position.
|
|
94
|
-
* Uses exclusive end for precise character targeting.
|
|
95
|
-
*/
|
|
96
|
-
getDateRangePartAtPosition(position: number): IDateRangePart | undefined;
|
|
97
|
-
/**
|
|
98
|
-
* Gets the date range part for cursor (inclusive end).
|
|
99
|
-
* Handles the edge case where cursor is at the end of the last part.
|
|
100
|
-
*/
|
|
101
|
-
getDateRangePartForCursor(position: number): IDateRangePart | undefined;
|
|
102
90
|
/**
|
|
103
91
|
* Gets a specific part type for a position.
|
|
104
92
|
*/
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { DatePartType, } from '../date-time-input/date-part.js';
|
|
2
|
-
import { DateTimeMaskParser, DEFAULT_DATETIME_FORMAT, } from '../date-time-input/datetime-mask-parser.js';
|
|
3
|
-
import { MaskParser } from '../mask-input/mask-parser.js';
|
|
1
|
+
import { createDatePart, DatePartType, } from '../date-time-input/date-part.js';
|
|
2
|
+
import { DateFormatMaskParser, DateTimeMaskParser, DEFAULT_DATETIME_FORMAT, } from '../date-time-input/datetime-mask-parser.js';
|
|
4
3
|
export var DateRangePosition;
|
|
5
4
|
(function (DateRangePosition) {
|
|
6
5
|
DateRangePosition["Start"] = "start";
|
|
@@ -8,10 +7,14 @@ export var DateRangePosition;
|
|
|
8
7
|
DateRangePosition["Separator"] = "separator";
|
|
9
8
|
})(DateRangePosition || (DateRangePosition = {}));
|
|
10
9
|
const DEFAULT_SEPARATOR = ' - ';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
function offsetParts(parts, offset, position) {
|
|
11
|
+
return parts.map((part) => Object.assign(createDatePart(part.type, {
|
|
12
|
+
start: part.start + offset,
|
|
13
|
+
end: part.end + offset,
|
|
14
|
+
format: part.format,
|
|
15
|
+
}), { position }));
|
|
16
|
+
}
|
|
17
|
+
export class DateRangeMaskParser extends DateFormatMaskParser {
|
|
15
18
|
get separator() {
|
|
16
19
|
return this._separator;
|
|
17
20
|
}
|
|
@@ -19,103 +22,69 @@ export class DateRangeMaskParser extends MaskParser {
|
|
|
19
22
|
const format = options?.format || DEFAULT_DATETIME_FORMAT;
|
|
20
23
|
const separator = options?.separator || DEFAULT_SEPARATOR;
|
|
21
24
|
const promptCharacter = options?.promptCharacter;
|
|
22
|
-
|
|
23
|
-
super(options?.promptCharacter
|
|
24
|
-
? { format: rangeFormat, promptCharacter: options.promptCharacter }
|
|
25
|
-
: { format: rangeFormat });
|
|
26
|
-
this._rangeParts = [];
|
|
25
|
+
super({ format: `${format}${separator}${format}`, promptCharacter });
|
|
27
26
|
this._startParser = new DateTimeMaskParser({ format, promptCharacter });
|
|
28
27
|
this._endParser = new DateTimeMaskParser({ format, promptCharacter });
|
|
29
28
|
this._separator = separator;
|
|
30
29
|
this._separatorStart = this._startParser.mask.length;
|
|
31
30
|
this._separatorEnd = this._separatorStart + separator.length;
|
|
32
|
-
this._buildRangeParts();
|
|
33
31
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
super._parseMaskLiterals();
|
|
40
|
-
this._options.format = originalFormat;
|
|
41
|
-
}
|
|
42
|
-
_buildRangeParts() {
|
|
43
|
-
const startParts = this._startParser.dateParts.map((part) => ({
|
|
44
|
-
...part,
|
|
45
|
-
position: DateRangePosition.Start,
|
|
46
|
-
getValue: part.getValue.bind(part),
|
|
47
|
-
validate: part.validate.bind(part),
|
|
48
|
-
spin: part.spin.bind(part),
|
|
49
|
-
}));
|
|
50
|
-
const endParts = this._endParser.dateParts.map((part) => ({
|
|
51
|
-
...part,
|
|
52
|
-
start: part.start + this._separatorEnd,
|
|
53
|
-
end: part.end + this._separatorEnd,
|
|
54
|
-
position: DateRangePosition.End,
|
|
55
|
-
getValue: part.getValue.bind(part),
|
|
56
|
-
validate: part.validate.bind(part),
|
|
57
|
-
spin: part.spin.bind(part),
|
|
58
|
-
}));
|
|
59
|
-
this._rangeParts = [...startParts, ...endParts];
|
|
32
|
+
_buildParts() {
|
|
33
|
+
return [
|
|
34
|
+
...offsetParts(this._startParser.parts, 0, DateRangePosition.Start),
|
|
35
|
+
...offsetParts(this._endParser.parts, this._separatorEnd, DateRangePosition.End),
|
|
36
|
+
];
|
|
60
37
|
}
|
|
61
38
|
set mask(value) {
|
|
62
39
|
this._startParser.mask = value;
|
|
63
40
|
this._endParser.mask = value;
|
|
64
41
|
this._separatorStart = this._startParser.mask.length;
|
|
65
42
|
this._separatorEnd = this._separatorStart + this._separator.length;
|
|
66
|
-
|
|
67
|
-
super.mask = rangeFormat;
|
|
68
|
-
this._buildRangeParts();
|
|
43
|
+
super.mask = `${value}${this._separator}${value}`;
|
|
69
44
|
}
|
|
70
45
|
get mask() {
|
|
71
46
|
return super.mask;
|
|
72
47
|
}
|
|
48
|
+
set prompt(value) {
|
|
49
|
+
super.prompt = value;
|
|
50
|
+
this._startParser.prompt = this.prompt;
|
|
51
|
+
this._endParser.prompt = this.prompt;
|
|
52
|
+
}
|
|
53
|
+
get prompt() {
|
|
54
|
+
return super.prompt;
|
|
55
|
+
}
|
|
73
56
|
parseDateRange(masked) {
|
|
74
57
|
if (!masked || masked === this.emptyMask) {
|
|
75
58
|
return null;
|
|
76
59
|
}
|
|
77
|
-
const
|
|
78
|
-
const
|
|
79
|
-
const start = this._startParser.parseDate(startString);
|
|
80
|
-
const end = this._endParser.parseDate(endString);
|
|
60
|
+
const start = this._startParser.parseDate(masked.substring(0, this._separatorStart));
|
|
61
|
+
const end = this._endParser.parseDate(masked.substring(this._separatorEnd));
|
|
81
62
|
return { start, end };
|
|
82
63
|
}
|
|
83
64
|
formatDateRange(range) {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const endString = range?.end
|
|
88
|
-
? this._endParser.formatDate(range.end)
|
|
89
|
-
: this._endParser.emptyMask;
|
|
90
|
-
return startString + this._separator + endString;
|
|
91
|
-
}
|
|
92
|
-
getDateRangePartAtPosition(position) {
|
|
93
|
-
return this._rangeParts.find((part) => position >= part.start && position < part.end);
|
|
94
|
-
}
|
|
95
|
-
getDateRangePartForCursor(position) {
|
|
96
|
-
return this._rangeParts.find((part) => position >= part.start && position <= part.end);
|
|
65
|
+
const start = this._startParser.formatDate(range?.start ?? null);
|
|
66
|
+
const end = this._endParser.formatDate(range?.end ?? null);
|
|
67
|
+
return start + this._separator + end;
|
|
97
68
|
}
|
|
98
69
|
getPartByTypeAndPosition(type, position) {
|
|
99
|
-
return this.
|
|
70
|
+
return this.parts.find((p) => p.type === type && p.position === position);
|
|
100
71
|
}
|
|
101
72
|
getFirstDatePartForPosition(position) {
|
|
102
|
-
return this.
|
|
73
|
+
return this.parts.find((p) => p.position === position && p.type !== DatePartType.Literal);
|
|
103
74
|
}
|
|
104
75
|
spinDateRangePart(part, delta, currentValue, spinLoop, amPmValue) {
|
|
105
76
|
const value = currentValue || { start: null, end: null };
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
const
|
|
77
|
+
const isStart = part.position === DateRangePosition.Start;
|
|
78
|
+
const originalDate = (isStart ? value.start : value.end) ?? new Date();
|
|
79
|
+
const date = new Date(originalDate.getTime());
|
|
109
80
|
const spinOptions = {
|
|
110
|
-
date
|
|
81
|
+
date,
|
|
111
82
|
spinLoop,
|
|
112
|
-
originalDate
|
|
83
|
+
originalDate,
|
|
113
84
|
amPmValue,
|
|
114
85
|
};
|
|
115
86
|
part.spin(delta, spinOptions);
|
|
116
|
-
return
|
|
117
|
-
? { ...value, start: newDate }
|
|
118
|
-
: { ...value, end: newDate };
|
|
87
|
+
return isStart ? { ...value, start: date } : { ...value, end: date };
|
|
119
88
|
}
|
|
120
89
|
}
|
|
121
90
|
//# sourceMappingURL=date-range-mask-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-mask-parser.js","sourceRoot":"","sources":["../../../src/components/date-range-picker/date-range-mask-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,GAGb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEL,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAiB1D,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,oCAAe,CAAA;IACf,gCAAW,CAAA;IACX,4CAAuB,CAAA;AACzB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAqBD,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAkBhC,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAmBjD,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAKD,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YAAY,OAA8B;QACxC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,uBAAuB,CAAC;QAC1D,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,iBAAiB,CAAC;QAC1D,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,CAAC;QAGjD,MAAM,WAAW,GAAG,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;QAErD,KAAK,CACH,OAAO,EAAE,eAAe;YACtB,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE;YACnE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAC5B,CAAC;QArCI,gBAAW,GAAqB,EAAE,CAAC;QAwCzC,IAAI,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC;QAE7D,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IASkB,kBAAkB;QAGnC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxC,MAAM,UAAU,GACd,kBAAkB,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAG/D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;QAElC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAG3B,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC;IACxC,CAAC;IAQO,gBAAgB;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAChD,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC;YACzB,GAAG,IAAI;YACP,QAAQ,EAAE,iBAAiB,CAAC,KAAK;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3B,CAAC,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAC5C,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC;YACzB,GAAG,IAAI;YAEP,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;YACtC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa;YAClC,QAAQ,EAAE,iBAAiB,CAAC,GAAG;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3B,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC;IAClD,CAAC;IAKD,IAAoB,IAAI,CAAC,KAAa;QACpC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAEnE,MAAM,WAAW,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;QAEzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,IAAoB,IAAI;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAQM,cAAc,CAAC,MAAc;QAClC,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEjD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC;IASM,eAAe,CAAC,KAA4B;QACjD,MAAM,WAAW,GAAG,KAAK,EAAE,KAAK;YAC9B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAEhC,MAAM,SAAS,GAAG,KAAK,EAAE,GAAG;YAC1B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAE9B,OAAO,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACnD,CAAC;IAUM,0BAA0B,CAC/B,QAAgB;QAEhB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CACxD,CAAC;IACJ,CAAC;IAMM,yBAAyB,CAC9B,QAAgB;QAEhB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,CACzD,CAAC;IACJ,CAAC;IAKM,wBAAwB,CAC7B,IAAkB,EAClB,QAA2B;QAE3B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAClD,CAAC;IACJ,CAAC;IAKM,2BAA2B,CAChC,QAA2B;QAE3B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO,CAClE,CAAC;IACJ,CAAC;IAUM,iBAAiB,CACtB,IAAoB,EACpB,KAAa,EACb,YAAmC,EACnC,QAAiB,EACjB,SAAkB;QAElB,MAAM,KAAK,GAAG,YAAY,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QAEzD,MAAM,UAAU,GACd,IAAI,CAAC,QAAQ,KAAK,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAGtE,MAAM,UAAU,GAAG,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC;QAG5C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAG/C,MAAM,WAAW,GAAgB;YAC/B,IAAI,EAAE,OAAO;YACb,QAAQ;YACR,YAAY,EAAE,UAAU;YACxB,SAAS;SACV,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC,QAAQ,KAAK,iBAAiB,CAAC,KAAK;YAC9C,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;YAC9B,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC;CAGF","sourcesContent":["import {\n type DatePart,\n DatePartType,\n type IDatePart,\n type SpinOptions,\n} from '../date-time-input/date-part.js';\nimport {\n type DateTimeMaskOptions,\n DateTimeMaskParser,\n DEFAULT_DATETIME_FORMAT,\n} from '../date-time-input/datetime-mask-parser.js';\nimport { MaskParser } from '../mask-input/mask-parser.js';\nimport type { DateRangeValue } from '../types.js';\n\n//#region Types and Enums\n\n/**\n * @ignore\n */\nexport interface DateRangePart {\n part: DatePart;\n position: DateRangePosition;\n}\n\n/**\n * @ignore\n * Position of a date part within the date range\n */\nexport enum DateRangePosition {\n Start = 'start',\n End = 'end',\n Separator = 'separator',\n}\n\n/**\n * @ignore\n * Extended date part with range position information\n */\nexport interface IDateRangePart extends IDatePart {\n position: DateRangePosition;\n}\n\n/** Options for the DateRangeMaskParser */\nexport interface DateRangeMaskOptions extends DateTimeMaskOptions {\n /** Separator (defaults to ' - ') */\n separator?: string;\n}\n\n//#endregion\n\n//#region Constants\n\n/** Default separator between start and end dates */\nconst DEFAULT_SEPARATOR = ' - ';\n\n//#endregion\n\n/**\n * A specialized mask parser for date range input fields.\n * Uses composition with two DateTimeMaskParser instances to handle start and end dates.\n *\n * Accepts a single date format (e.g., 'MM/dd/yyyy') which creates two parsers\n * internally, one for the start date and one for the end date.\n *\n * @example\n * ```ts\n * const parser = new DateRangeMaskParser({ format: 'MM/dd/yyyy' });\n * parser.parseDateRange('12/25/2023 - 12/31/2023'); // Returns DateRangeValue\n * parser.formatDateRange({ start: date1, end: date2 }); // Returns formatted string\n * ```\n */\nexport class DateRangeMaskParser extends MaskParser {\n private _startParser: DateTimeMaskParser;\n private _endParser: DateTimeMaskParser;\n\n /** Cached date range parts with position information */\n private _rangeParts: IDateRangePart[] = [];\n\n /** The separator between start and end dates */\n private _separator: string;\n\n /** Start position of the separator in the mask */\n private _separatorStart: number;\n\n /** End position of the separator in the mask */\n private _separatorEnd: number;\n\n /**\n * Gets the parsed date range parts with position information.\n */\n public get rangeParts(): ReadonlyArray<IDateRangePart> {\n return this._rangeParts;\n }\n\n /**\n * Gets the separator string used between start and end dates.\n */\n public get separator(): string {\n return this._separator;\n }\n\n constructor(options?: DateRangeMaskOptions) {\n const format = options?.format || DEFAULT_DATETIME_FORMAT;\n const separator = options?.separator || DEFAULT_SEPARATOR;\n const promptCharacter = options?.promptCharacter;\n\n // Build the combined range format for the parent MaskParser\n const rangeFormat = `${format}${separator}${format}`;\n\n super(\n options?.promptCharacter\n ? { format: rangeFormat, promptCharacter: options.promptCharacter }\n : { format: rangeFormat }\n );\n\n // Create two parsers for start and end dates\n this._startParser = new DateTimeMaskParser({ format, promptCharacter });\n this._endParser = new DateTimeMaskParser({ format, promptCharacter });\n this._separator = separator;\n\n this._separatorStart = this._startParser.mask.length;\n this._separatorEnd = this._separatorStart + separator.length;\n\n this._buildRangeParts();\n }\n\n //#region Mask Format Conversion\n\n /**\n * Overrides base class to convert date format to mask format\n * before parsing literals. This ensures date format characters\n * (M, d, y, etc.) are properly converted to mask characters (0, L).\n */\n protected override _parseMaskLiterals(): void {\n // Convert the range format to mask format\n // e.g., \"M/d/yyyy - M/d/yyyy\" → \"0/0/0000 - 0/0/0000\"\n const dateFormat = this._options.format;\n const maskFormat =\n DateTimeMaskParser.convertDateFormatToMaskFormat(dateFormat);\n\n // Temporarily set the converted format for base class parsing\n const originalFormat = this._options.format;\n this._options.format = maskFormat;\n\n super._parseMaskLiterals();\n\n // Restore the original date format\n this._options.format = originalFormat;\n }\n\n //#endregion\n\n /**\n * Builds the range parts array by combining parts from start and end parsers\n * and adding position information.\n */\n private _buildRangeParts(): void {\n const startParts = this._startParser.dateParts.map(\n (part): IDateRangePart => ({\n ...part,\n position: DateRangePosition.Start,\n getValue: part.getValue.bind(part),\n validate: part.validate.bind(part),\n spin: part.spin.bind(part),\n })\n );\n\n const endParts = this._endParser.dateParts.map(\n (part): IDateRangePart => ({\n ...part,\n // Adjust positions for end date (offset by separator)\n start: part.start + this._separatorEnd,\n end: part.end + this._separatorEnd,\n position: DateRangePosition.End,\n getValue: part.getValue.bind(part),\n validate: part.validate.bind(part),\n spin: part.spin.bind(part),\n })\n );\n\n this._rangeParts = [...startParts, ...endParts];\n }\n\n /**\n * Sets a new date format and updates both parsers.\n */\n public override set mask(value: string) {\n this._startParser.mask = value;\n this._endParser.mask = value;\n\n this._separatorStart = this._startParser.mask.length;\n this._separatorEnd = this._separatorStart + this._separator.length;\n\n const rangeFormat = `${value}${this._separator}${value}`;\n super.mask = rangeFormat;\n\n this._buildRangeParts();\n }\n\n public override get mask(): string {\n return super.mask;\n }\n\n //#region Date Range Parsing\n\n /**\n * Parses a masked string into a DateRangeValue using the two internal parsers.\n * Returns null if the string cannot be parsed.\n */\n public parseDateRange(masked: string): DateRangeValue | null {\n if (!masked || masked === this.emptyMask) {\n return null;\n }\n\n const startString = masked.substring(0, this._separatorStart);\n const endString = masked.substring(this._separatorEnd);\n\n const start = this._startParser.parseDate(startString);\n const end = this._endParser.parseDate(endString);\n\n return { start, end };\n }\n\n //#endregion\n\n //#region Date Range Formatting\n\n /**\n * Formats a DateRangeValue into a masked string using the two internal parsers.\n */\n public formatDateRange(range: DateRangeValue | null): string {\n const startString = range?.start\n ? this._startParser.formatDate(range.start)\n : this._startParser.emptyMask;\n\n const endString = range?.end\n ? this._endParser.formatDate(range.end)\n : this._endParser.emptyMask;\n\n return startString + this._separator + endString;\n }\n\n //#endregion\n\n //#region Part Queries\n\n /**\n * Gets the date range part at a cursor position.\n * Uses exclusive end for precise character targeting.\n */\n public getDateRangePartAtPosition(\n position: number\n ): IDateRangePart | undefined {\n return this._rangeParts.find(\n (part) => position >= part.start && position < part.end\n );\n }\n\n /**\n * Gets the date range part for cursor (inclusive end).\n * Handles the edge case where cursor is at the end of the last part.\n */\n public getDateRangePartForCursor(\n position: number\n ): IDateRangePart | undefined {\n return this._rangeParts.find(\n (part) => position >= part.start && position <= part.end\n );\n }\n\n /**\n * Gets a specific part type for a position.\n */\n public getPartByTypeAndPosition(\n type: DatePartType,\n position: DateRangePosition\n ): IDateRangePart | undefined {\n return this._rangeParts.find(\n (p) => p.type === type && p.position === position\n );\n }\n\n /**\n * Gets the first non-literal date part for a position.\n */\n public getFirstDatePartForPosition(\n position: DateRangePosition\n ): IDateRangePart | undefined {\n return this._rangeParts.find(\n (p) => p.position === position && p.type !== DatePartType.Literal\n );\n }\n\n //#endregion\n\n //#region Spinning Support\n\n /**\n * Spins a date part within the range (for stepUp/stepDown functionality).\n * Delegates to the underlying date part's spin method.\n */\n public spinDateRangePart(\n part: IDateRangePart,\n delta: number,\n currentValue: DateRangeValue | null,\n spinLoop: boolean,\n amPmValue?: string\n ): DateRangeValue {\n const value = currentValue || { start: null, end: null };\n\n const targetDate =\n part.position === DateRangePosition.Start ? value.start : value.end;\n\n // If no date exists, create one with today's date\n const dateToSpin = targetDate || new Date();\n\n // Create a new date instance to spin\n const newDate = new Date(dateToSpin.getTime());\n\n // Spin using the part's built-in spin method\n const spinOptions: SpinOptions = {\n date: newDate,\n spinLoop,\n originalDate: dateToSpin,\n amPmValue,\n };\n\n part.spin(delta, spinOptions);\n\n return part.position === DateRangePosition.Start\n ? { ...value, start: newDate }\n : { ...value, end: newDate };\n }\n\n //#endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"date-range-mask-parser.js","sourceRoot":"","sources":["../../../src/components/date-range-picker/date-range-mask-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createDatePart,\n type DatePart,\n DatePartType,\n type IDatePart,\n type SpinOptions,\n} from '../date-time-input/date-part.js';\nimport {\n DateFormatMaskParser,\n DateTimeMaskParser,\n DEFAULT_DATETIME_FORMAT,\n} from '../date-time-input/datetime-mask-parser.js';\nimport type { MaskOptions } from '../mask-input/mask-parser.js';\nimport type { DateRangeValue } from '../types.js';\n\n//#region Types and Enums\n\n/**\n * @hidden\n */\nexport interface DateRangePart {\n part: DatePart;\n position: DateRangePosition;\n}\n\n/**\n * Position of a date part within the date range\n * @hidden\n */\nexport enum DateRangePosition {\n Start = 'start',\n End = 'end',\n Separator = 'separator',\n}\n\n/**\n * Extended date part with range position information\n * @hidden\n */\nexport interface IDateRangePart extends IDatePart {\n position: DateRangePosition;\n}\n\n/** Options for the DateRangeMaskParser */\nexport interface DateRangeMaskOptions extends MaskOptions {\n /** Separator (defaults to ' - ') */\n separator?: string;\n}\n\n//#endregion\n\n//#region Constants\n\n/** Default separator between start and end dates */\nconst DEFAULT_SEPARATOR = ' - ';\n\n//#endregion\n\n/**\n * Re-creates one date's parts at their position within the range. Going back through the\n * factory keeps them real part instances - spreading would copy the data and lose the\n * prototype along with it.\n */\nfunction offsetParts(\n parts: ReadonlyArray<IDatePart>,\n offset: number,\n position: DateRangePosition\n): IDateRangePart[] {\n return parts.map((part) =>\n Object.assign(\n createDatePart(part.type, {\n start: part.start + offset,\n end: part.end + offset,\n format: part.format,\n }),\n { position }\n )\n );\n}\n\n/**\n * A specialized mask parser for date range input fields.\n * Uses composition with two DateTimeMaskParser instances to handle start and end dates.\n *\n * Accepts a single date format (e.g., 'MM/dd/yyyy') which creates two parsers\n * internally, one for the start date and one for the end date.\n *\n * @example\n * ```ts\n * const parser = new DateRangeMaskParser({ format: 'MM/dd/yyyy' });\n * parser.parseDateRange('12/25/2023 - 12/31/2023'); // Returns DateRangeValue\n * parser.formatDateRange({ start: date1, end: date2 }); // Returns formatted string\n * ```\n */\nexport class DateRangeMaskParser extends DateFormatMaskParser<IDateRangePart> {\n private _startParser: DateTimeMaskParser;\n private _endParser: DateTimeMaskParser;\n\n /** The separator between start and end dates */\n private _separator: string;\n\n /** Start position of the separator in the mask */\n private _separatorStart: number;\n\n /** End position of the separator in the mask */\n private _separatorEnd: number;\n\n /**\n * Gets the separator string used between start and end dates.\n */\n public get separator(): string {\n return this._separator;\n }\n\n constructor(options?: DateRangeMaskOptions) {\n const format = options?.format || DEFAULT_DATETIME_FORMAT;\n const separator = options?.separator || DEFAULT_SEPARATOR;\n const promptCharacter = options?.promptCharacter;\n\n super({ format: `${format}${separator}${format}`, promptCharacter });\n\n this._startParser = new DateTimeMaskParser({ format, promptCharacter });\n this._endParser = new DateTimeMaskParser({ format, promptCharacter });\n this._separator = separator;\n this._separatorStart = this._startParser.mask.length;\n this._separatorEnd = this._separatorStart + separator.length;\n }\n\n protected override _buildParts(): IDateRangePart[] {\n return [\n ...offsetParts(this._startParser.parts, 0, DateRangePosition.Start),\n ...offsetParts(\n this._endParser.parts,\n this._separatorEnd,\n DateRangePosition.End\n ),\n ];\n }\n\n /**\n * Sets a new date format and updates both parsers.\n *\n * @remarks\n * Takes the format of a *single* date; the getter returns the combined range format.\n */\n public override set mask(value: string) {\n this._startParser.mask = value;\n this._endParser.mask = value;\n\n this._separatorStart = this._startParser.mask.length;\n this._separatorEnd = this._separatorStart + this._separator.length;\n\n super.mask = `${value}${this._separator}${value}`;\n }\n\n public override get mask(): string {\n return super.mask;\n }\n\n /**\n * Sets the prompt character and updates both parsers.\n *\n * @remarks\n * Each half of the range is parsed and formatted by its own sub-parser, so all three\n * have to agree on the prompt. Read back through `super` rather than propagating the\n * argument, since the base setter normalizes it to a single character and rejects one\n * that collides with a mask flag.\n */\n public override set prompt(value: string) {\n super.prompt = value;\n\n this._startParser.prompt = this.prompt;\n this._endParser.prompt = this.prompt;\n }\n\n public override get prompt(): string {\n return super.prompt;\n }\n\n //#region Date Range Parsing\n\n /**\n * Parses a masked string into a DateRangeValue using the two internal parsers.\n * Returns null if the string cannot be parsed.\n */\n public parseDateRange(masked: string): DateRangeValue | null {\n if (!masked || masked === this.emptyMask) {\n return null;\n }\n\n const start = this._startParser.parseDate(\n masked.substring(0, this._separatorStart)\n );\n const end = this._endParser.parseDate(masked.substring(this._separatorEnd));\n\n return { start, end };\n }\n\n //#endregion\n\n //#region Date Range Formatting\n\n /**\n * Formats a DateRangeValue into a masked string using the two internal parsers.\n */\n public formatDateRange(range: DateRangeValue | null): string {\n const start = this._startParser.formatDate(range?.start ?? null);\n const end = this._endParser.formatDate(range?.end ?? null);\n\n return start + this._separator + end;\n }\n\n //#endregion\n\n //#region Part Queries\n\n /**\n * Gets a specific part type for a position.\n */\n public getPartByTypeAndPosition(\n type: DatePartType,\n position: DateRangePosition\n ): IDateRangePart | undefined {\n return this.parts.find((p) => p.type === type && p.position === position);\n }\n\n /**\n * Gets the first non-literal date part for a position.\n */\n public getFirstDatePartForPosition(\n position: DateRangePosition\n ): IDateRangePart | undefined {\n return this.parts.find(\n (p) => p.position === position && p.type !== DatePartType.Literal\n );\n }\n\n //#endregion\n\n //#region Spinning Support\n\n /**\n * Spins a date part within the range (for stepUp/stepDown functionality).\n * Delegates to the underlying date part's spin method.\n */\n public spinDateRangePart(\n part: IDateRangePart,\n delta: number,\n currentValue: DateRangeValue | null,\n spinLoop: boolean,\n amPmValue?: string\n ): DateRangeValue {\n const value = currentValue || { start: null, end: null };\n const isStart = part.position === DateRangePosition.Start;\n\n // Spin a copy of the targeted date, defaulting to today when the range has no value.\n const originalDate = (isStart ? value.start : value.end) ?? new Date();\n const date = new Date(originalDate.getTime());\n\n const spinOptions: SpinOptions = {\n date,\n spinLoop,\n originalDate,\n amPmValue,\n };\n\n part.spin(delta, spinOptions);\n\n return isStart ? { ...value, start: date } : { ...value, end: date };\n }\n\n //#endregion\n}\n"]}
|