igniteui-webcomponents 7.2.4 → 7.3.0-beta.1
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 +162 -0
- package/animations/player.d.ts +7 -2
- package/animations/player.js +2 -3
- package/animations/player.js.map +1 -1
- package/animations/view-transition.js +1 -1
- package/animations/view-transition.js.map +1 -1
- package/components/accordion/accordion.d.ts +1 -1
- package/components/accordion/accordion.js +11 -22
- package/components/accordion/accordion.js.map +1 -1
- package/components/avatar/avatar.d.ts +0 -1
- package/components/avatar/avatar.js +8 -12
- 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 +2 -4
- package/components/badge/badge.js +9 -13
- 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 +8 -7
- package/components/banner/banner.js +27 -25
- 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 +3 -3
- package/components/button/button-base.js +9 -8
- 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 +3 -3
- 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 +41 -21
- package/components/button-group/button-group.js +95 -105
- 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 +28 -19
- package/components/calendar/base.js +20 -44
- package/components/calendar/base.js.map +1 -1
- package/components/calendar/calendar.d.ts +38 -7
- 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 +8 -22
- 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 +2 -2
- package/components/carousel/carousel-indicator.js +17 -17
- package/components/carousel/carousel-indicator.js.map +1 -1
- package/components/carousel/carousel-slide.d.ts +1 -3
- package/components/carousel/carousel-slide.js +16 -18
- package/components/carousel/carousel-slide.js.map +1 -1
- package/components/carousel/carousel.d.ts +58 -41
- package/components/carousel/carousel.js +170 -145
- package/components/carousel/carousel.js.map +1 -1
- package/components/carousel/themes/carousel.base.css.js +1 -1
- package/components/carousel/themes/carousel.base.css.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 +28 -27
- 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 -6
- package/components/chat/chat.js +13 -19
- 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.d.ts +3 -5
- package/components/checkbox/checkbox.js +40 -50
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.d.ts +1 -1
- package/components/checkbox/switch.js +30 -40
- 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 -16
- package/components/chip/chip.js +21 -38
- 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 +1 -5
- package/components/combo/combo-item.js +8 -18
- package/components/combo/combo-item.js.map +1 -1
- package/components/combo/combo.d.ts +89 -45
- package/components/combo/combo.js +244 -229
- 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 +297 -0
- package/components/date-picker/date-picker.base.js +473 -0
- package/components/date-picker/date-picker.base.js.map +1 -0
- package/components/date-picker/date-picker.d.ts +53 -174
- package/components/date-picker/date-picker.js +90 -403
- 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 +14 -18
- package/components/date-range-picker/date-range-input.js +39 -126
- 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 +93 -190
- package/components/date-range-picker/date-range-picker.js +208 -543
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/predefined-ranges-area.d.ts +4 -4
- package/components/date-range-picker/predefined-ranges-area.js +8 -10
- 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 +10 -30
- package/components/date-range-picker/validators.js.map +1 -1
- package/components/date-time-input/date-part.d.ts +20 -2
- package/components/date-time-input/date-part.js +48 -75
- package/components/date-time-input/date-part.js.map +1 -1
- package/components/date-time-input/date-time-input.base.d.ts +101 -35
- package/components/date-time-input/date-time-input.base.js +142 -46
- package/components/date-time-input/date-time-input.base.js.map +1 -1
- package/components/date-time-input/date-time-input.d.ts +14 -26
- package/components/date-time-input/date-time-input.js +37 -90
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/datetime-mask-parser.d.ts +53 -109
- package/components/date-time-input/datetime-mask-parser.js +93 -144
- 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 +3 -14
- package/components/date-time-input/validators.js.map +1 -1
- package/components/dialog/dialog.d.ts +8 -9
- package/components/dialog/dialog.js +38 -44
- 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 +3 -5
- package/components/divider/divider.js +11 -20
- 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 +16 -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 +27 -8
- package/components/expansion-panel/expansion-panel.js +33 -43
- 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 +19 -23
- package/components/file-input/file-input.js +21 -34
- 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.d.ts +6 -8
- package/components/highlight/highlight.js +14 -22
- 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 +11 -23
- package/components/icon/icon.js +36 -28
- 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 +10 -25
- package/components/input/input-base.js +14 -23
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.d.ts +23 -30
- package/components/input/input.js +38 -69
- 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 -26
- 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 +10 -10
- package/components/nav-drawer/nav-drawer.js +23 -37
- 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 +5 -8
- package/components/progress/base.js +25 -48
- 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 +222 -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 +7 -0
- package/components/radio/controller.js +14 -0
- package/components/radio/controller.js.map +1 -0
- package/components/radio/radio.d.ts +30 -18
- package/components/radio/radio.js +90 -89
- 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 +17 -9
- package/components/radio-group/radio-group.js +46 -44
- 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 +30 -18
- package/components/rating/rating.js +90 -81
- 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/default-ghost.js +4 -3
- package/components/resize-container/default-ghost.js.map +1 -1
- package/components/resize-container/resize-container.d.ts +3 -3
- package/components/resize-container/resize-container.js +9 -7
- package/components/resize-container/resize-container.js.map +1 -1
- package/components/resize-container/resize-controller.js +6 -5
- 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 +11 -3
- package/components/select/select-group.js +21 -9
- 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 +48 -28
- package/components/select/select.js +143 -94
- 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 +5 -4
- package/components/slider/range-slider.js +25 -73
- package/components/slider/range-slider.js.map +1 -1
- package/components/slider/slider-base.d.ts +9 -6
- package/components/slider/slider-base.js +35 -32
- 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 +15 -11
- 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 +4 -4
- 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 +107 -24
- 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 +4 -1
- package/components/stepper/step.js +16 -12
- package/components/stepper/step.js.map +1 -1
- package/components/stepper/stepper.d.ts +5 -16
- package/components/stepper/stepper.js +27 -89
- 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 +36 -14
- package/components/tabs/tab.js.map +1 -1
- package/components/tabs/tabs.d.ts +37 -27
- package/components/tabs/tabs.js +118 -129
- 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 +24 -20
- package/components/textarea/textarea.js +25 -27
- 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 +3 -5
- package/components/theme-provider/theme-provider.js +13 -23
- 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 +11 -22
- package/components/tile-manager/tile-manager.js +50 -81
- package/components/tile-manager/tile-manager.js.map +1 -1
- package/components/tile-manager/tile.d.ts +14 -22
- package/components/tile-manager/tile.js +66 -80
- 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 +68 -25
- package/components/tooltip/tooltip.js +130 -88
- 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 +198 -208
- 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 +17 -23
- package/components/tree/tree.js +68 -94
- 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 +2 -3
- package/components/validation-container/validation-container.js +7 -6
- package/components/validation-container/validation-container.js.map +1 -1
- package/components/virtualization/engine.d.ts +94 -0
- package/components/virtualization/engine.js +217 -0
- package/components/virtualization/engine.js.map +1 -0
- package/components/virtualization/types.d.ts +54 -0
- package/components/virtualization/types.js +14 -0
- package/components/virtualization/types.js.map +1 -0
- package/components/virtualization/virtualization.d.ts +249 -0
- package/components/virtualization/virtualization.js +482 -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 +50649 -38832
- 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 +17 -12
- 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/internals/controllers/context-provider.d.ts +48 -0
- package/internals/controllers/context-provider.js +29 -0
- package/internals/controllers/context-provider.js.map +1 -0
- package/{components/common → internals}/controllers/drag.js +8 -7
- 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 +7 -4
- package/internals/controllers/gestures.js.map +1 -0
- package/internals/controllers/group.d.ts +64 -0
- package/internals/controllers/group.js +104 -0
- package/internals/controllers/group.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 +52 -3
- package/{components/common → internals}/controllers/internals.js +35 -0
- package/internals/controllers/internals.js.map +1 -0
- package/{components/common → internals}/controllers/key-bindings.d.ts +8 -5
- package/{components/common → internals}/controllers/key-bindings.js +46 -29
- package/internals/controllers/key-bindings.js.map +1 -0
- package/{components/common → internals}/controllers/mutation-observer.d.ts +3 -2
- package/{components/common → internals}/controllers/mutation-observer.js +24 -22
- 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/internals/controllers/roving-focus.d.ts +72 -0
- package/internals/controllers/roving-focus.js +61 -0
- package/internals/controllers/roving-focus.js.map +1 -0
- package/{components/common → internals}/controllers/slot.d.ts +25 -1
- package/{components/common → internals}/controllers/slot.js +22 -6
- package/internals/controllers/slot.js.map +1 -0
- package/internals/controllers/toggle.d.ts +96 -0
- package/internals/controllers/toggle.js +65 -0
- package/internals/controllers/toggle.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 +70 -0
- package/internals/date/converters.js.map +1 -0
- package/{components/calendar → internals/date}/model.d.ts +10 -3
- package/{components/calendar → internals/date}/model.js +29 -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/coerced-property.d.ts +47 -0
- package/internals/decorators/coerced-property.js +36 -0
- package/internals/decorators/coerced-property.js.map +1 -0
- package/internals/decorators/shadow-options.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/{components/common → internals}/i18n/i18n-controller.d.ts +22 -3
- package/{components/common → internals}/i18n/i18n-controller.js +28 -6
- 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 +3 -3
- package/{components/common → internals}/mixins/alert.js +8 -6
- package/internals/mixins/alert.js.map +1 -0
- package/{components/common → internals}/mixins/combo-box.d.ts +13 -14
- package/{components/common → internals}/mixins/combo-box.js +15 -36
- 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.js +63 -38
- 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 +25 -7
- package/internals/mixins/forms/types.js.map +1 -0
- package/internals/mixins/i18n.d.ts +31 -0
- package/internals/mixins/i18n.js +36 -0
- package/internals/mixins/i18n.js.map +1 -0
- package/{components/common → internals}/mixins/mask-behavior.d.ts +17 -8
- package/{components/common → internals}/mixins/mask-behavior.js +118 -31
- 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 +5 -6
- 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 -4
- package/{components/common → internals}/templates/masked-input.js +4 -3
- package/internals/templates/masked-input.js.map +1 -0
- package/internals/templates/slotted-icon.d.ts +32 -0
- package/internals/templates/slotted-icon.js +19 -0
- package/internals/templates/slotted-icon.js.map +1 -0
- package/internals/templates/toggle-shell.d.ts +46 -0
- package/internals/templates/toggle-shell.js +38 -0
- package/internals/templates/toggle-shell.js.map +1 -0
- package/internals/timing.d.ts +32 -0
- package/internals/timing.js +20 -0
- package/internals/timing.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 +114 -0
- package/internals/utils/dom.js +157 -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 +24 -1
- package/{components/common → internals}/validators.js +25 -2
- package/internals/validators.js.map +1 -0
- package/package.json +15 -7
- 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 +5 -5
- 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.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.d.ts +0 -5
- package/components/common/decorators/watch.js +0 -19
- 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}/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/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/associated.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
|
@@ -4,29 +4,37 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { getDateFormatter } from 'igniteui-i18n-core';
|
|
8
7
|
import { LitElement } from 'lit';
|
|
9
|
-
import { eventOptions, property, query
|
|
8
|
+
import { eventOptions, property, query } from 'lit/decorators.js';
|
|
10
9
|
import { cache } from 'lit/directives/cache.js';
|
|
11
|
-
import {
|
|
12
|
-
import { addKeybindings, arrowDown, arrowLeft, arrowRight, arrowUp, ctrlKey, } from '
|
|
13
|
-
import { addSlotController, setSlots } from '
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
10
|
+
import { addAriaTarget } from '#internals/controllers/aria-projection.js';
|
|
11
|
+
import { addKeybindings, arrowDown, arrowLeft, arrowRight, arrowUp, ctrlKey, } from '#internals/controllers/key-bindings.js';
|
|
12
|
+
import { addSlotController, setSlots } from '#internals/controllers/slot.js';
|
|
13
|
+
import { convertToDate } from '#internals/date/converters.js';
|
|
14
|
+
import { blazorDeepImport } from '#internals/decorators/blazorDeepImport.js';
|
|
15
|
+
import { shadowOptions } from '#internals/decorators/shadow-options.js';
|
|
16
|
+
import { addI18nController } from '#internals/i18n/i18n-controller.js';
|
|
17
|
+
import { FormAssociatedRequiredMixin } from '#internals/mixins/forms/associated-required.js';
|
|
18
|
+
import { MaskBehaviorMixin, } from '#internals/mixins/mask-behavior.js';
|
|
19
|
+
import { nextInputId, renderInputShell, resolveInputPartNames, } from '#internals/templates/input-shell.js';
|
|
20
|
+
import { renderMaskedNativeInput } from '#internals/templates/masked-input.js';
|
|
21
|
+
import { equal } from '#internals/utils/objects.js';
|
|
22
|
+
import { DatePartType, DEFAULT_DATE_PARTS_SPIN_DELTAS, } from './date-part.js';
|
|
21
23
|
import { dateTimeInputValidators } from './validators.js';
|
|
22
24
|
const Slots = setSlots('prefix', 'suffix', 'helper-text', 'value-missing', 'range-overflow', 'range-underflow', 'custom-error', 'invalid');
|
|
23
25
|
let IgcDateTimeInputBaseComponent = class IgcDateTimeInputBaseComponent extends MaskBehaviorMixin(FormAssociatedRequiredMixin(LitElement)) {
|
|
24
|
-
get _resolvedLabelElements() {
|
|
25
|
-
return this._labelElements ?? this._internals.labels;
|
|
26
|
-
}
|
|
27
26
|
get __validators() {
|
|
28
27
|
return dateTimeInputValidators;
|
|
29
28
|
}
|
|
29
|
+
get _defaultDisplayFormat() {
|
|
30
|
+
return this._i18nController.localeDisplayFormat;
|
|
31
|
+
}
|
|
32
|
+
get _uncommittedValue() {
|
|
33
|
+
return this._isEditing ? this._parseMask(true) : this.value;
|
|
34
|
+
}
|
|
35
|
+
get _datePartDeltas() {
|
|
36
|
+
return { ...DEFAULT_DATE_PARTS_SPIN_DELTAS, ...this.spinDelta };
|
|
37
|
+
}
|
|
30
38
|
get _targetDatePart() {
|
|
31
39
|
return this._focused
|
|
32
40
|
? this._getDatePartAtCursor()
|
|
@@ -72,14 +80,20 @@ let IgcDateTimeInputBaseComponent = class IgcDateTimeInputBaseComponent extends
|
|
|
72
80
|
super();
|
|
73
81
|
this._slots = addSlotController(this, { slots: Slots });
|
|
74
82
|
this._inputId = nextInputId();
|
|
75
|
-
this.
|
|
83
|
+
this._ariaTarget = addAriaTarget(this, {
|
|
84
|
+
labels: () => this._internals.labels,
|
|
85
|
+
description: () => this._slots.hasAssignedElements('helper-text')
|
|
86
|
+
? this.renderRoot.querySelector('#helper-text')
|
|
87
|
+
: null,
|
|
88
|
+
});
|
|
76
89
|
this._i18nController = addI18nController(this, {
|
|
77
90
|
defaultEN: {},
|
|
78
91
|
onResourceChange: this._handleResourceChange,
|
|
79
92
|
});
|
|
80
93
|
this._min = null;
|
|
81
94
|
this._max = null;
|
|
82
|
-
this.
|
|
95
|
+
this._isEditing = false;
|
|
96
|
+
this._oldValue = null;
|
|
83
97
|
this.outlined = false;
|
|
84
98
|
this.spinLoop = true;
|
|
85
99
|
addKeybindings(this, {
|
|
@@ -93,9 +107,6 @@ let IgcDateTimeInputBaseComponent = class IgcDateTimeInputBaseComponent extends
|
|
|
93
107
|
.set([ctrlKey, arrowRight], this._navigateParts.bind(this, 1));
|
|
94
108
|
}
|
|
95
109
|
update(props) {
|
|
96
|
-
if (props.has('displayFormat')) {
|
|
97
|
-
this._updateDefaultDisplayFormat();
|
|
98
|
-
}
|
|
99
110
|
if (props.has('locale')) {
|
|
100
111
|
this._initializeDefaultMask();
|
|
101
112
|
}
|
|
@@ -118,6 +129,29 @@ let IgcDateTimeInputBaseComponent = class IgcDateTimeInputBaseComponent extends
|
|
|
118
129
|
this._maskedValue = this._buildMaskedValue();
|
|
119
130
|
}
|
|
120
131
|
}
|
|
132
|
+
async _handleFocus() {
|
|
133
|
+
this._focused = true;
|
|
134
|
+
if (this.readOnly) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
this._oldValue = this.value;
|
|
138
|
+
if (this._isValueEmpty()) {
|
|
139
|
+
this._maskedValue = this._parser.emptyMask;
|
|
140
|
+
this._historyResync();
|
|
141
|
+
await this.updateComplete;
|
|
142
|
+
this.select();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (this.displayFormat !== this.inputFormat) {
|
|
146
|
+
this._updateMaskDisplay();
|
|
147
|
+
}
|
|
148
|
+
this._historyResync();
|
|
149
|
+
}
|
|
150
|
+
_handleBlur() {
|
|
151
|
+
this._focused = false;
|
|
152
|
+
this._commitEdit();
|
|
153
|
+
super._handleBlur();
|
|
154
|
+
}
|
|
121
155
|
async _handleWheel(event) {
|
|
122
156
|
if (!this._focused || this.readOnly)
|
|
123
157
|
return;
|
|
@@ -144,14 +178,83 @@ let IgcDateTimeInputBaseComponent = class IgcDateTimeInputBaseComponent extends
|
|
|
144
178
|
if (!part)
|
|
145
179
|
return;
|
|
146
180
|
const { start, end } = this._inputSelection;
|
|
147
|
-
|
|
148
|
-
this._commitSpunValue(newValue);
|
|
181
|
+
this._setDraftValue(this._calculateSpunValue(part, delta, isDecrement));
|
|
149
182
|
this.updateComplete.then(() => this._input?.setSelectionRange(start, end));
|
|
150
183
|
}
|
|
151
184
|
_updateMaskDisplay() {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
185
|
+
if (!this._focused) {
|
|
186
|
+
this._maskedValue = this._buildDisplayValue();
|
|
187
|
+
}
|
|
188
|
+
else if (!this._isEditing) {
|
|
189
|
+
this._maskedValue = this._buildMaskedValue();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
_buildMaskedValue() {
|
|
193
|
+
const masked = this._formatValue(this.value);
|
|
194
|
+
return masked === this._parser.emptyMask
|
|
195
|
+
? this._maskedValue || masked
|
|
196
|
+
: masked;
|
|
197
|
+
}
|
|
198
|
+
_setDraftValue(value) {
|
|
199
|
+
if (!this._focused) {
|
|
200
|
+
this.value = value;
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
const next = this._formatValue(value);
|
|
204
|
+
this._recordHistory('atomic', next, this._inputSelection.start);
|
|
205
|
+
this._isEditing = true;
|
|
206
|
+
this._maskedValue = next;
|
|
207
|
+
this.requestUpdate();
|
|
208
|
+
}
|
|
209
|
+
_isValueEmpty() {
|
|
210
|
+
return !this.value;
|
|
211
|
+
}
|
|
212
|
+
_applyValue(value) {
|
|
213
|
+
if (equal(this._formValue.value, value)) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
this._isEditing = false;
|
|
217
|
+
this._formValue.setValueAndFormState(value);
|
|
218
|
+
this._updateMaskDisplay();
|
|
219
|
+
}
|
|
220
|
+
_readAmPmFromMask(part) {
|
|
221
|
+
return part?.type === DatePartType.AmPm
|
|
222
|
+
? this._maskedValue.substring(part.start, part.end)
|
|
223
|
+
: undefined;
|
|
224
|
+
}
|
|
225
|
+
_applyDraft() {
|
|
226
|
+
this._isEditing = false;
|
|
227
|
+
this.value = this._parseMask(true);
|
|
228
|
+
this._updateMaskDisplay();
|
|
229
|
+
}
|
|
230
|
+
_commitEdit() {
|
|
231
|
+
if (this._isEditing) {
|
|
232
|
+
this._isEditing = false;
|
|
233
|
+
const parsed = this._parseMask(false);
|
|
234
|
+
if (parsed === null) {
|
|
235
|
+
this.clear();
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
this.value = parsed;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
this._updateMaskDisplay();
|
|
242
|
+
if (!this.readOnly && !equal(this._oldValue, this.value)) {
|
|
243
|
+
this._oldValue = this.value;
|
|
244
|
+
this.emitEvent('igcChange', { detail: this.value });
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
_syncValueFromMask() {
|
|
248
|
+
if (this._focused) {
|
|
249
|
+
this._isEditing = true;
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
this._applyDraft();
|
|
253
|
+
}
|
|
254
|
+
_restoreDefaultValue() {
|
|
255
|
+
this._isEditing = false;
|
|
256
|
+
super._restoreDefaultValue();
|
|
257
|
+
this._updateMaskDisplay();
|
|
155
258
|
}
|
|
156
259
|
_isMaskComplete() {
|
|
157
260
|
return !this._maskedValue.includes(this.prompt);
|
|
@@ -163,26 +266,13 @@ let IgcDateTimeInputBaseComponent = class IgcDateTimeInputBaseComponent extends
|
|
|
163
266
|
this.placeholder = this._parser.mask;
|
|
164
267
|
}
|
|
165
268
|
}
|
|
166
|
-
_updateDefaultDisplayFormat() {
|
|
167
|
-
this._defaultDisplayFormat = getDateFormatter().getLocaleDateTimeFormat(this.locale);
|
|
168
|
-
}
|
|
169
269
|
_initializeDefaultMask() {
|
|
170
|
-
this._updateDefaultDisplayFormat();
|
|
171
270
|
if (!this._inputFormat) {
|
|
172
|
-
this._applyMask(
|
|
271
|
+
this._applyMask(this._i18nController.localeInputFormat);
|
|
173
272
|
}
|
|
174
273
|
}
|
|
175
274
|
_resolvePartNames(base) {
|
|
176
|
-
return
|
|
177
|
-
[base]: true,
|
|
178
|
-
prefixed: this._slots.hasAssignedElements('prefix', {
|
|
179
|
-
selector: '[slot="prefix"]:not([hidden])',
|
|
180
|
-
}),
|
|
181
|
-
suffixed: this._slots.hasAssignedElements('suffix', {
|
|
182
|
-
selector: '[slot="suffix"]:not([hidden])',
|
|
183
|
-
}),
|
|
184
|
-
filled: !this._isEmptyMask,
|
|
185
|
-
};
|
|
275
|
+
return resolveInputPartNames(this._slots, base, !this._isEmptyMask);
|
|
186
276
|
}
|
|
187
277
|
select() {
|
|
188
278
|
this._input?.select();
|
|
@@ -199,9 +289,18 @@ let IgcDateTimeInputBaseComponent = class IgcDateTimeInputBaseComponent extends
|
|
|
199
289
|
stepDown(datePart, delta) {
|
|
200
290
|
this._performStep(datePart, delta, true);
|
|
201
291
|
}
|
|
292
|
+
setRangeText(replacement, start, end, selectMode) {
|
|
293
|
+
super.setRangeText(replacement, start, end, selectMode);
|
|
294
|
+
this._applyDraft();
|
|
295
|
+
}
|
|
296
|
+
clear() {
|
|
297
|
+
this._isEditing = false;
|
|
298
|
+
this._maskedValue = '';
|
|
299
|
+
this.value = null;
|
|
300
|
+
this._updateMaskDisplay();
|
|
301
|
+
}
|
|
202
302
|
_renderInput() {
|
|
203
303
|
const hasNegativeTabIndex = this.getAttribute('tabindex') === '-1';
|
|
204
|
-
const hasHelperText = this._slots.hasAssignedElements('helper-text');
|
|
205
304
|
return renderMaskedNativeInput({
|
|
206
305
|
id: this._inputId,
|
|
207
306
|
partNames: this._resolvePartNames('input'),
|
|
@@ -211,9 +310,9 @@ let IgcDateTimeInputBaseComponent = class IgcDateTimeInputBaseComponent extends
|
|
|
211
310
|
readOnly: this.readOnly,
|
|
212
311
|
disabled: this.disabled,
|
|
213
312
|
tabindex: hasNegativeTabIndex ? -1 : undefined,
|
|
214
|
-
|
|
215
|
-
ariaLabelledByElements: this._resolvedLabelElements,
|
|
313
|
+
aria: this._ariaTarget.resolveBindings(),
|
|
216
314
|
onInput: this._handleInput,
|
|
315
|
+
onBeforeInput: this._handleBeforeInput,
|
|
217
316
|
onFocus: this._handleFocus,
|
|
218
317
|
onBlur: this._handleBlur,
|
|
219
318
|
onClick: this._handleClick,
|
|
@@ -238,9 +337,6 @@ let IgcDateTimeInputBaseComponent = class IgcDateTimeInputBaseComponent extends
|
|
|
238
337
|
__decorate([
|
|
239
338
|
query('input')
|
|
240
339
|
], IgcDateTimeInputBaseComponent.prototype, "_input", void 0);
|
|
241
|
-
__decorate([
|
|
242
|
-
state()
|
|
243
|
-
], IgcDateTimeInputBaseComponent.prototype, "_labelElements", void 0);
|
|
244
340
|
__decorate([
|
|
245
341
|
property({ type: Boolean, reflect: true })
|
|
246
342
|
], IgcDateTimeInputBaseComponent.prototype, "outlined", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-input.base.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-time-input.base.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDateFormatter } from 'igniteui-i18n-core';\nimport { LitElement, type PropertyValues, type TemplateResult } from 'lit';\nimport { eventOptions, property, query, state } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport type { ThemingController } from '../../theming/theming-controller.js';\nimport { convertToDate } from '../calendar/helpers.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n} from '../common/controllers/key-bindings.js';\nimport { addSlotController, setSlots } from '../common/controllers/slot.js';\nimport { blazorDeepImport } from '../common/decorators/blazorDeepImport.js';\nimport { shadowOptions } from '../common/decorators/shadow-options.js';\nimport {\n addI18nController,\n getDefaultDateTimeFormat,\n} from '../common/i18n/i18n-controller.js';\nimport { FormAssociatedRequiredMixin } from '../common/mixins/forms/associated-required.js';\nimport {\n MaskBehaviorMixin,\n type MaskSelection,\n} from '../common/mixins/mask-behavior.js';\nimport {\n nextInputId,\n renderInputShell,\n} from '../common/templates/input-shell.js';\nimport { renderMaskedNativeInput } from '../common/templates/masked-input.js';\nimport type { DatePartDeltas } from './date-part.js';\nimport { dateTimeInputValidators } from './validators.js';\n\nexport type { MaskSelection };\n\nconst Slots = setSlots(\n 'prefix',\n 'suffix',\n 'helper-text',\n 'value-missing',\n 'range-overflow',\n 'range-underflow',\n 'custom-error',\n 'invalid'\n);\n\n/* blazorIndirectRender */\n/* blazorSupportsVisualChildren */\n@blazorDeepImport\n@shadowOptions({ delegatesFocus: true })\nexport abstract class IgcDateTimeInputBaseComponent extends MaskBehaviorMixin(\n FormAssociatedRequiredMixin(LitElement)\n) {\n // #region Internal state and properties\n\n protected abstract readonly _themes: ThemingController;\n\n protected readonly _slots = addSlotController(this, { slots: Slots });\n\n protected readonly _inputId = nextInputId();\n\n @query('input')\n protected override readonly _input?: HTMLInputElement;\n\n /**\n * Externally supplied label elements forwarded by a composite host (e.g. `igc-date-picker`)\n * so that the host's associated labels reach the inner native input. When set, these take\n * precedence over the component's own `ElementInternals` labels.\n *\n * @hidden @internal\n */\n @state()\n public _labelElements: ReadonlyArray<Element> | null = null;\n\n /**\n * Resolves the label elements applied to the native input as `aria-labelledby` targets,\n * preferring forwarded labels over the component's own `ElementInternals` labels.\n *\n * @hidden @internal\n */\n protected get _resolvedLabelElements(): ReadonlyArray<Element> | null {\n return this._labelElements ?? this._internals.labels;\n }\n\n protected override get __validators() {\n return dateTimeInputValidators;\n }\n\n private readonly _i18nController = addI18nController(this, {\n defaultEN: {},\n onResourceChange: this._handleResourceChange,\n });\n\n protected _min: Date | null = null;\n protected _max: Date | null = null;\n\n protected _defaultMask!: string;\n\n protected _defaultDisplayFormat = '';\n protected _displayFormat?: string;\n protected _inputFormat?: string;\n\n protected get _targetDatePart(): unknown {\n return this._focused\n ? this._getDatePartAtCursor()\n : this._getDefaultDatePart();\n }\n\n // #endregion\n\n // #region Public attributes and properties\n\n /**\n * Whether the control will have outlined appearance.\n *\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public outlined = false;\n\n /**\n * The placeholder attribute of the control.\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /**\n * The label for the control.\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * The date format to apply on the input.\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public get inputFormat(): string {\n return this._inputFormat || this._parser.mask;\n }\n\n public set inputFormat(val: string) {\n if (val) {\n this._applyMask(val);\n this._inputFormat = val;\n this._updateMaskDisplay();\n }\n }\n\n /**\n * The minimum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set min(value: Date | string | null | undefined) {\n this._min = convertToDate(value);\n this._validate();\n }\n\n public get min(): Date | null {\n return this._min;\n }\n\n /**\n * The maximum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set max(value: Date | string | null | undefined) {\n this._max = convertToDate(value);\n this._validate();\n }\n\n public get max(): Date | null {\n return this._max;\n }\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the locale format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public set displayFormat(value: string) {\n this._displayFormat = value;\n }\n\n public get displayFormat(): string {\n return (\n this._displayFormat ?? this._inputFormat ?? this._defaultDisplayFormat\n );\n }\n\n /**\n * Delta values used to increment or decrement each date part on step actions.\n * All values default to `1`.\n */\n @property({ attribute: false })\n public spinDelta?: DatePartDeltas;\n\n /**\n * Sets whether to loop over the currently spun segment.\n * @attr spin-loop\n */\n @property({ type: Boolean, attribute: 'spin-loop' })\n public spinLoop = true;\n\n /**\n * Gets/Sets the locale used for formatting the display value.\n * @attr locale\n */\n @property()\n public set locale(value: string) {\n this._i18nController.locale = value;\n }\n\n public get locale(): string {\n return this._i18nController.locale;\n }\n\n // #endregion\n\n //#region Lifecycle Hooks\n\n constructor() {\n super();\n\n addKeybindings(this, {\n skip: () => this.readOnly,\n bindingDefaults: { repeat: true },\n })\n .set([ctrlKey, ';'], this._setCurrentDateTime)\n .set(arrowUp, this._keyboardSpin.bind(this, 'up'))\n .set(arrowDown, this._keyboardSpin.bind(this, 'down'))\n .set([ctrlKey, arrowLeft], this._navigateParts.bind(this, 0))\n .set([ctrlKey, arrowRight], this._navigateParts.bind(this, 1));\n }\n\n protected override update(props: PropertyValues<this>): void {\n if (props.has('displayFormat')) {\n this._updateDefaultDisplayFormat();\n }\n\n if (props.has('locale')) {\n this._initializeDefaultMask();\n }\n\n if (props.has('displayFormat') || props.has('locale')) {\n this._updateMaskDisplay();\n }\n\n super.update(props);\n }\n\n //#endregion\n\n // #region Event handlers\n\n private _handleResourceChange(): void {\n this._initializeDefaultMask();\n this._updateMaskDisplay();\n }\n\n protected _handleDragLeave(): void {\n if (!this._focused) {\n this._updateMaskDisplay();\n }\n }\n\n protected _handleDragEnter(): void {\n if (!this._focused) {\n this._maskedValue = this._buildMaskedValue();\n }\n }\n\n /**\n * Handles wheel events for spinning date parts.\n */\n @eventOptions({ passive: false })\n protected async _handleWheel(event: WheelEvent): Promise<void> {\n if (!this._focused || this.readOnly) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n const { start, end } = this._inputSelection;\n event.deltaY > 0 ? this.stepDown() : this.stepUp();\n this._emitInputEvent();\n\n await this.updateComplete;\n this.setSelectionRange(start, end);\n }\n\n // #endregion\n\n //#region Keybindings\n\n /**\n * Navigates to the previous or next date part.\n */\n protected _navigateParts(direction: number): void {\n const position = this._calculatePartNavigationPosition(\n this._input?.value ?? '',\n direction\n );\n this.setSelectionRange(position, position);\n }\n\n /**\n * Handles keyboard-triggered spinning (arrow up/down).\n */\n protected async _keyboardSpin(direction: 'up' | 'down'): Promise<void> {\n direction === 'up' ? this.stepUp() : this.stepDown();\n this._emitInputEvent();\n await this.updateComplete;\n this.setSelectionRange(this._maskSelection.start, this._maskSelection.end);\n }\n\n // #endregion\n\n //#region Internal API\n\n /**\n * Common logic for stepping up or down a date part.\n * @internal\n */\n protected _performStep(\n datePart: unknown,\n delta: number | undefined,\n isDecrement: boolean\n ): void {\n const part = datePart || this._targetDatePart;\n if (!part) return;\n\n const { start, end } = this._inputSelection;\n const newValue = this._calculateSpunValue(part, delta, isDecrement);\n this._commitSpunValue(newValue);\n this.updateComplete.then(() => this._input?.setSelectionRange(start, end));\n }\n\n /**\n * Updates the displayed mask value based on focus state.\n * When focused, shows the editable mask. When unfocused, defers to the leaf's display formatter.\n */\n protected _updateMaskDisplay(): void {\n this._maskedValue = this._focused\n ? this._buildMaskedValue()\n : this._buildDisplayValue();\n }\n\n /**\n * Checks if all mask positions are filled (no prompt characters remain).\n */\n protected _isMaskComplete(): boolean {\n return !this._maskedValue.includes(this.prompt);\n }\n\n /**\n * Applies a mask pattern to the input, parsing the format string into date parts.\n */\n protected _applyMask(formatString: string): void {\n const previous = this._parser.mask;\n this._parser.mask = formatString;\n\n // Update placeholder if not set or if it matches the old format\n if (!this.placeholder || previous === this.placeholder) {\n this.placeholder = this._parser.mask;\n }\n }\n\n /**\n * Updates the default display format based on current locale.\n */\n private _updateDefaultDisplayFormat(): void {\n this._defaultDisplayFormat = getDateFormatter().getLocaleDateTimeFormat(\n this.locale\n );\n }\n\n protected _initializeDefaultMask(): void {\n this._updateDefaultDisplayFormat();\n\n if (!this._inputFormat) {\n this._applyMask(getDefaultDateTimeFormat(this.locale));\n }\n }\n\n /**\n * Resolves the part names for the container based on the current state.\n */\n protected _resolvePartNames(base: string): Record<string, boolean> {\n return {\n [base]: true,\n prefixed: this._slots.hasAssignedElements('prefix', {\n selector: '[slot=\"prefix\"]:not([hidden])',\n }),\n suffixed: this._slots.hasAssignedElements('suffix', {\n selector: '[slot=\"suffix\"]:not([hidden])',\n }),\n filled: !this._isEmptyMask,\n };\n }\n\n // #endregion\n\n // #region Public API\n\n /** Selects all the text inside the input. */\n public select(): void {\n this._input?.select();\n }\n\n /* alternateName: focusComponent */\n /** Sets focus on the control. */\n public override focus(options?: FocusOptions): void {\n this._input?.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the control. */\n public override blur(): void {\n this._input?.blur();\n }\n\n /* blazorSuppress */\n /** Increments a date/time portion. */\n public stepUp(datePart?: unknown, delta?: number): void {\n this._performStep(datePart, delta, false);\n }\n\n /* blazorSuppress */\n /** Decrements a date/time portion. */\n public stepDown(datePart?: unknown, delta?: number): void {\n this._performStep(datePart, delta, true);\n }\n\n /** Clears the input element of user input. */\n public abstract clear(): void;\n\n //#endregion\n\n //#region Render\n\n protected _renderInput(): TemplateResult {\n const hasNegativeTabIndex = this.getAttribute('tabindex') === '-1';\n const hasHelperText = this._slots.hasAssignedElements('helper-text');\n\n return renderMaskedNativeInput({\n id: this._inputId,\n partNames: this._resolvePartNames('input'),\n name: this.name,\n value: this._maskedValue,\n placeholder: this.placeholder || this._parser.emptyMask,\n readOnly: this.readOnly,\n disabled: this.disabled,\n tabindex: hasNegativeTabIndex ? -1 : undefined,\n ariaDescribedBy: hasHelperText ? 'helper-text' : undefined,\n ariaLabelledByElements: this._resolvedLabelElements,\n onInput: this._handleInput,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n onClick: this._handleClick,\n onSetMaskSelection: this._setMaskSelection,\n onCompositionStart: this._handleCompositionStart,\n onCompositionEnd: this._handleCompositionEnd,\n onWheel: this._handleWheel,\n onDragEnter: this._handleDragEnter,\n onDragLeave: this._handleDragLeave,\n });\n }\n\n protected override render() {\n return cache(\n renderInputShell(this, {\n theme: this._themes.theme,\n label: this.label,\n labelId: this._inputId,\n containerParts: this._resolvePartNames('container'),\n renderInput: this._renderInput,\n })\n );\n }\n\n //#endregion\n\n // #region Abstract methods and properties\n\n protected abstract get _datePartDeltas(): DatePartDeltas;\n\n protected abstract _buildMaskedValue(): string;\n protected abstract _buildDisplayValue(): string;\n protected abstract override _syncValueFromMask(): void;\n protected abstract _calculatePartNavigationPosition(\n value: string,\n direction: number\n ): number;\n protected abstract _calculateSpunValue(\n part: unknown,\n delta: number | undefined,\n isDecrement: boolean\n ): unknown;\n protected abstract _commitSpunValue(value: unknown): void;\n protected abstract _setCurrentDateTime(): void;\n protected abstract _handleFocus(): Promise<void>;\n protected abstract _getDatePartAtCursor(): unknown;\n protected abstract _getDefaultDatePart(): unknown;\n\n public abstract hasDateParts(): boolean;\n public abstract hasTimeParts(): boolean;\n\n // #endregion\n}\n"]}
|
|
1
|
+
{"version":3,"file":"date-time-input.base.js","sourceRoot":"","sources":["../../../src/components/date-time-input/date-time-input.base.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, type PropertyValues, type TemplateResult } from 'lit';\nimport { eventOptions, property, query } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { addAriaTarget } from '#internals/controllers/aria-projection.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n} from '#internals/controllers/key-bindings.js';\nimport { addSlotController, setSlots } from '#internals/controllers/slot.js';\nimport { convertToDate } from '#internals/date/converters.js';\nimport { blazorDeepImport } from '#internals/decorators/blazorDeepImport.js';\nimport { shadowOptions } from '#internals/decorators/shadow-options.js';\nimport { addI18nController } from '#internals/i18n/i18n-controller.js';\nimport { FormAssociatedRequiredMixin } from '#internals/mixins/forms/associated-required.js';\nimport type { FormValue } from '#internals/mixins/forms/form-value.js';\nimport {\n MaskBehaviorMixin,\n type MaskSelection,\n} from '#internals/mixins/mask-behavior.js';\nimport {\n nextInputId,\n renderInputShell,\n resolveInputPartNames,\n} from '#internals/templates/input-shell.js';\nimport { renderMaskedNativeInput } from '#internals/templates/masked-input.js';\nimport { equal } from '#internals/utils/objects.js';\nimport type { ThemingController } from '#theming/theming-controller.js';\nimport type { RangeTextSelectMode } from '../types.js';\nimport {\n type DatePartDeltas,\n DatePartType,\n DEFAULT_DATE_PARTS_SPIN_DELTAS,\n type IDatePart,\n} from './date-part.js';\nimport { dateTimeInputValidators } from './validators.js';\n\nexport type { MaskSelection };\n\nconst Slots = setSlots(\n 'prefix',\n 'suffix',\n 'helper-text',\n 'value-missing',\n 'range-overflow',\n 'range-underflow',\n 'custom-error',\n 'invalid'\n);\n\n/* blazorIndirectRender */\n/* blazorSupportsVisualChildren */\n/* omitModule */\n@blazorDeepImport\n@shadowOptions({ delegatesFocus: true })\nexport abstract class IgcDateTimeInputBaseComponent<\n T,\n> extends MaskBehaviorMixin(FormAssociatedRequiredMixin(LitElement)) {\n // #region Internal state and properties\n\n protected abstract readonly _themes: ThemingController;\n\n protected readonly _slots = addSlotController(this, { slots: Slots });\n\n protected readonly _inputId = nextInputId();\n\n @query('input')\n protected override readonly _input?: HTMLInputElement;\n\n /**\n * Receives ARIA semantics projected by a composite host\n * (e.g. `igc-date-picker`) onto the inner native input.\n * See {@link addAriaTarget}.\n */\n protected readonly _ariaTarget = addAriaTarget(this, {\n labels: () => this._internals.labels,\n description: () =>\n this._slots.hasAssignedElements('helper-text')\n ? this.renderRoot.querySelector('#helper-text')\n : null,\n });\n\n protected override get __validators() {\n return dateTimeInputValidators;\n }\n\n private readonly _i18nController = addI18nController(this, {\n defaultEN: {},\n onResourceChange: this._handleResourceChange,\n });\n\n protected _min: Date | null = null;\n protected _max: Date | null = null;\n\n protected _displayFormat?: string;\n protected _inputFormat?: string;\n\n /** The locale-default display format, resolved by the i18n controller. */\n protected get _defaultDisplayFormat(): string {\n return this._i18nController.localeDisplayFormat;\n }\n\n /**\n * Whether the user has an uncommitted edit in progress.\n *\n * While set, the masked text - not the public `value` - is the source of truth:\n * typing updates the mask only, and the parsed result reaches `value` (together\n * with `igcChange`) when the edit is committed on blur. Keeping `value` in sync\n * with the last emitted `igcChange` is what stops a host that two-way binds the\n * property from clobbering a half-typed mask on an unrelated re-render.\n */\n protected _isEditing = false;\n\n /** The value the input was focused with, used to detect a committed change. */\n protected _oldValue: T | null = null;\n\n /**\n * The value currently in the editor - the parsed draft while an edit is in\n * progress, otherwise the committed public value.\n *\n * @hidden @internal\n */\n public get _uncommittedValue(): T | null {\n return this._isEditing ? this._parseMask(true) : this.value;\n }\n\n /** The spin amount for each date part - the defaults overlaid with `spinDelta`. */\n protected get _datePartDeltas(): DatePartDeltas {\n return { ...DEFAULT_DATE_PARTS_SPIN_DELTAS, ...this.spinDelta };\n }\n\n protected get _targetDatePart(): unknown {\n return this._focused\n ? this._getDatePartAtCursor()\n : this._getDefaultDatePart();\n }\n\n // #endregion\n\n // #region Public attributes and properties\n\n /**\n * Whether the control will have outlined appearance.\n *\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public outlined = false;\n\n /**\n * The placeholder text of the control.\n * @attr\n */\n @property()\n public placeholder!: string;\n\n /**\n * The label for the control.\n * @attr\n */\n @property()\n public label!: string;\n\n /**\n * The date format to apply on the input.\n * @attr input-format\n */\n @property({ attribute: 'input-format' })\n public get inputFormat(): string {\n return this._inputFormat || this._parser.mask;\n }\n\n public set inputFormat(val: string) {\n if (val) {\n this._applyMask(val);\n this._inputFormat = val;\n this._updateMaskDisplay();\n }\n }\n\n /**\n * The minimum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set min(value: Date | string | null | undefined) {\n this._min = convertToDate(value);\n this._validate();\n }\n\n public get min(): Date | null {\n return this._min;\n }\n\n /**\n * The maximum value required for the input to remain valid.\n * @attr\n */\n @property({ converter: convertToDate })\n public set max(value: Date | string | null | undefined) {\n this._max = convertToDate(value);\n this._validate();\n }\n\n public get max(): Date | null {\n return this._max;\n }\n\n /**\n * Format to display the value in when not editing.\n * Defaults to the locale format if not set.\n * @attr display-format\n */\n @property({ attribute: 'display-format' })\n public set displayFormat(value: string) {\n this._displayFormat = value;\n }\n\n public get displayFormat(): string {\n return (\n this._displayFormat ?? this._inputFormat ?? this._defaultDisplayFormat\n );\n }\n\n /**\n * Delta values used to increment or decrement each date part on step actions.\n * All values default to `1`.\n */\n @property({ attribute: false })\n public spinDelta?: DatePartDeltas;\n\n /**\n * Sets whether to loop over the currently spun segment.\n * @attr spin-loop\n */\n @property({ type: Boolean, attribute: 'spin-loop' })\n public spinLoop = true;\n\n /**\n * The locale used to format the display value and to resolve the\n * component's resource strings. Falls back to the global locale when not set.\n * @attr locale\n */\n @property()\n public set locale(value: string) {\n this._i18nController.locale = value;\n }\n\n public get locale(): string {\n return this._i18nController.locale;\n }\n\n // #endregion\n\n //#region Lifecycle Hooks\n\n constructor() {\n super();\n\n addKeybindings(this, {\n skip: () => this.readOnly,\n bindingDefaults: { repeat: true },\n })\n .set([ctrlKey, ';'], this._setCurrentDateTime)\n .set(arrowUp, this._keyboardSpin.bind(this, 'up'))\n .set(arrowDown, this._keyboardSpin.bind(this, 'down'))\n .set([ctrlKey, arrowLeft], this._navigateParts.bind(this, 0))\n .set([ctrlKey, arrowRight], this._navigateParts.bind(this, 1));\n }\n\n protected override update(props: PropertyValues<this>): void {\n if (props.has('locale')) {\n this._initializeDefaultMask();\n }\n\n if (props.has('displayFormat') || props.has('locale')) {\n this._updateMaskDisplay();\n }\n\n super.update(props);\n }\n\n //#endregion\n\n // #region Event handlers\n\n private _handleResourceChange(): void {\n this._initializeDefaultMask();\n this._updateMaskDisplay();\n }\n\n protected _handleDragLeave(): void {\n if (!this._focused) {\n this._updateMaskDisplay();\n }\n }\n\n protected _handleDragEnter(): void {\n if (!this._focused) {\n this._maskedValue = this._buildMaskedValue();\n }\n }\n\n protected 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._isValueEmpty()) {\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 protected override _handleBlur(): void {\n this._focused = false;\n this._commitEdit();\n super._handleBlur();\n }\n\n /**\n * Handles wheel events for spinning date parts.\n */\n @eventOptions({ passive: false })\n protected async _handleWheel(event: WheelEvent): Promise<void> {\n if (!this._focused || this.readOnly) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n const { start, end } = this._inputSelection;\n event.deltaY > 0 ? this.stepDown() : this.stepUp();\n this._emitInputEvent();\n\n await this.updateComplete;\n this.setSelectionRange(start, end);\n }\n\n // #endregion\n\n //#region Keybindings\n\n /**\n * Navigates to the previous or next date part.\n */\n protected _navigateParts(direction: number): void {\n const position = this._calculatePartNavigationPosition(\n this._input?.value ?? '',\n direction\n );\n this.setSelectionRange(position, position);\n }\n\n /**\n * Handles keyboard-triggered spinning (arrow up/down).\n */\n protected async _keyboardSpin(direction: 'up' | 'down'): Promise<void> {\n direction === 'up' ? this.stepUp() : this.stepDown();\n this._emitInputEvent();\n await this.updateComplete;\n this.setSelectionRange(this._maskSelection.start, this._maskSelection.end);\n }\n\n // #endregion\n\n //#region Internal API\n\n /**\n * Common logic for stepping up or down a date part.\n * @internal\n */\n protected _performStep(\n datePart: unknown,\n delta: number | undefined,\n isDecrement: boolean\n ): void {\n const part = datePart || this._targetDatePart;\n if (!part) return;\n\n const { start, end } = this._inputSelection;\n this._setDraftValue(this._calculateSpunValue(part, delta, isDecrement));\n this.updateComplete.then(() => this._input?.setSelectionRange(start, end));\n }\n\n /**\n * Updates the displayed mask value based on focus state.\n * When focused, shows the editable mask. When unfocused, defers to the leaf's display formatter.\n */\n protected _updateMaskDisplay(): void {\n if (!this._focused) {\n this._maskedValue = this._buildDisplayValue();\n } else if (!this._isEditing) {\n // An edit in progress owns the masked text. Rebuilding it from `value` here\n // would discard whatever the user has typed so far.\n this._maskedValue = this._buildMaskedValue();\n }\n }\n\n /** Builds the editable mask shown while the input is focused. */\n protected _buildMaskedValue(): string {\n const masked = this._formatValue(this.value);\n\n // A value-less mask formats to the empty mask; prefer whatever is already in\n // the editor so that a partially typed mask survives a re-render.\n return masked === this._parser.emptyMask\n ? this._maskedValue || masked\n : masked;\n }\n\n /**\n * Applies a value produced by an interactive edit (spinning, `Ctrl + ;`).\n * While focused this only moves the draft; outside of an editing session - e.g. a\n * programmatic `stepUp()` - there is no blur coming to commit it.\n */\n protected _setDraftValue(value: T): void {\n if (!this._focused) {\n this.value = value;\n return;\n }\n\n const next = this._formatValue(value);\n\n this._recordHistory('atomic', next, this._inputSelection.start);\n\n this._isEditing = true;\n this._maskedValue = next;\n this.requestUpdate();\n }\n\n /**\n * Whether the committed value is empty, i.e. gaining focus should start the\n * edit from the empty mask rather than the formatted value.\n */\n protected _isValueEmpty(): boolean {\n return !this.value;\n }\n\n /**\n * Applies a programmatic value assignment: bails when the value is unchanged,\n * cancels any edit in progress, and re-renders the mask from the new value.\n */\n protected _applyValue(value: T | null): void {\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 /**\n * Reads the AM/PM designator as currently typed in the mask for the given\n * format part, so spinning it toggles from what the user sees rather than\n * from the underlying date.\n */\n protected _readAmPmFromMask(part?: IDatePart): string | undefined {\n return part?.type === DatePartType.AmPm\n ? this._maskedValue.substring(part.start, part.end)\n : undefined;\n }\n\n /** Applies the masked text to the public value without emitting anything. */\n protected _applyDraft(): void {\n this._isEditing = false;\n this.value = this._parseMask(true);\n this._updateMaskDisplay();\n }\n\n /**\n * Commits the current draft to the public value, emitting `igcChange` when the\n * committed value differs from the one the input was focused with.\n */\n protected _commitEdit(): void {\n // Only an actual edit is re-parsed. Without this guard a mask holding a\n // display-formatted value - a read-only or untouched input - would be read back\n // under the input format and mangled.\n if (this._isEditing) {\n this._isEditing = false;\n\n // A partially filled mask is parsed leniently, missing parts falling back to\n // their defaults; only a mask that resolves to nothing clears the value.\n const parsed = this._parseMask(false);\n\n if (parsed === null) {\n this.clear();\n } else {\n this.value = parsed;\n }\n }\n\n // The assignments above are no-ops when the value did not change, so the mask\n // still has to be flipped back to the display format explicitly.\n this._updateMaskDisplay();\n\n // The value can also have moved without an edit - `clear()` or a programmatic\n // assignment while focused - and that is a committed change just the same.\n if (!this.readOnly && !equal(this._oldValue, this.value)) {\n this._oldValue = this.value;\n this.emitEvent('igcChange', { detail: this.value });\n }\n }\n\n /**\n * Marks the masked text as an uncommitted edit. The parsed result deliberately\n * does not reach the public `value` here - that happens on commit - so that the\n * property stays in sync with the last emitted `igcChange`. See {@link _isEditing}.\n */\n protected override _syncValueFromMask(): void {\n if (this._focused) {\n this._isEditing = true;\n return;\n }\n\n // A mask mutation outside of an editing session - e.g. text dropped onto an\n // unfocused input - has no blur coming to commit it.\n this._applyDraft();\n }\n\n protected override _restoreDefaultValue(): void {\n this._isEditing = false;\n super._restoreDefaultValue();\n this._updateMaskDisplay();\n }\n\n /**\n * Checks if all mask positions are filled (no prompt characters remain).\n */\n protected _isMaskComplete(): boolean {\n return !this._maskedValue.includes(this.prompt);\n }\n\n /**\n * Applies a mask pattern to the input, parsing the format string into date parts.\n */\n protected _applyMask(formatString: string): void {\n const previous = this._parser.mask;\n this._parser.mask = formatString;\n\n // Update placeholder if not set or if it matches the old format\n if (!this.placeholder || previous === this.placeholder) {\n this.placeholder = this._parser.mask;\n }\n }\n\n /** Applies the locale-default mask, unless an explicit input format is set. */\n protected _initializeDefaultMask(): void {\n if (!this._inputFormat) {\n this._applyMask(this._i18nController.localeInputFormat);\n }\n }\n\n /**\n * Resolves the part names for the container based on the current state.\n */\n protected _resolvePartNames(base: string): Record<string, boolean> {\n return resolveInputPartNames(this._slots, base, !this._isEmptyMask);\n }\n\n // #endregion\n\n // #region Public API\n\n /** Selects all the text inside the input. */\n public select(): void {\n this._input?.select();\n }\n\n /* alternateName: focusComponent */\n /** Sets focus on the control. */\n public override focus(options?: FocusOptions): void {\n this._input?.focus(options);\n }\n\n /* alternateName: blurComponent */\n /** Removes focus from the control. */\n public override blur(): void {\n this._input?.blur();\n }\n\n /* blazorSuppress */\n /** Increments a date/time portion. */\n public stepUp(datePart?: unknown, delta?: number): void {\n this._performStep(datePart, delta, false);\n }\n\n /* blazorSuppress */\n /** Decrements a date/time portion. */\n public stepDown(datePart?: unknown, delta?: number): void {\n this._performStep(datePart, delta, true);\n }\n\n /* blazorSuppress */\n /** Replaces the selected text in the control and re-applies the mask. */\n public override setRangeText(\n replacement: string,\n start?: number,\n end?: number,\n selectMode?: RangeTextSelectMode\n ): void {\n super.setRangeText(replacement, start, end, selectMode);\n this._applyDraft();\n }\n\n /** Clears the input element of user input. */\n public clear(): void {\n this._isEditing = false;\n this._maskedValue = '';\n this.value = null;\n this._updateMaskDisplay();\n }\n\n //#endregion\n\n //#region Render\n\n protected _renderInput(): TemplateResult {\n const hasNegativeTabIndex = this.getAttribute('tabindex') === '-1';\n\n return renderMaskedNativeInput({\n id: this._inputId,\n partNames: this._resolvePartNames('input'),\n name: this.name,\n value: this._maskedValue,\n placeholder: this.placeholder || this._parser.emptyMask,\n readOnly: this.readOnly,\n disabled: this.disabled,\n tabindex: hasNegativeTabIndex ? -1 : undefined,\n aria: this._ariaTarget.resolveBindings(),\n onInput: this._handleInput,\n onBeforeInput: this._handleBeforeInput,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n onClick: this._handleClick,\n onSetMaskSelection: this._setMaskSelection,\n onCompositionStart: this._handleCompositionStart,\n onCompositionEnd: this._handleCompositionEnd,\n onWheel: this._handleWheel,\n onDragEnter: this._handleDragEnter,\n onDragLeave: this._handleDragLeave,\n });\n }\n\n protected override render() {\n return cache(\n renderInputShell(this, {\n theme: this._themes.theme,\n label: this.label,\n labelId: this._inputId,\n containerParts: this._resolvePartNames('container'),\n renderInput: this._renderInput,\n })\n );\n }\n\n //#endregion\n\n // #region Abstract methods and properties\n\n protected abstract override readonly _formValue: FormValue<T | null>;\n\n /** Provided by `EventEmitterMixin` in the concrete components. */\n public abstract emitEvent(name: string, init?: CustomEventInit): boolean;\n\n /** The committed value of the input. */\n public abstract get value(): T | null;\n public abstract set value(value: T | null);\n\n /**\n * Parses the current masked text into the leaf's value type.\n *\n * A `strict` parse mirrors the committed value semantics - an incomplete mask has\n * no value yet and resolves to `null` rather than to a defaults-filled one. A lenient\n * parse completes the missing parts from their defaults, an empty mask excepted - that\n * one holds no value to complete and resolves to `null` as well.\n */\n protected abstract _parseMask(strict: boolean): T | null;\n\n /** Formats a value into the editable mask. */\n protected abstract _formatValue(value: T | null): string;\n\n protected abstract _buildDisplayValue(): string;\n protected abstract _calculatePartNavigationPosition(\n value: string,\n direction: number\n ): number;\n protected abstract _calculateSpunValue(\n part: unknown,\n delta: number | undefined,\n isDecrement: boolean\n ): T;\n protected abstract _setCurrentDateTime(): void;\n protected abstract _getDatePartAtCursor(): unknown;\n protected abstract _getDefaultDatePart(): unknown;\n\n public abstract hasDateParts(): boolean;\n public abstract hasTimeParts(): boolean;\n\n // #endregion\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AbstractConstructor } from '
|
|
2
|
-
import { DatePart
|
|
1
|
+
import type { AbstractConstructor } from '#internals/mixins/constructor.js';
|
|
2
|
+
import { DatePart } from './date-part.js';
|
|
3
3
|
import { IgcDateTimeInputBaseComponent } from './date-time-input.base.js';
|
|
4
4
|
import { DateTimeMaskParser } from './datetime-mask-parser.js';
|
|
5
5
|
export interface IgcDateTimeInputComponentEventMap {
|
|
@@ -8,7 +8,7 @@ export interface IgcDateTimeInputComponentEventMap {
|
|
|
8
8
|
focus: FocusEvent;
|
|
9
9
|
blur: FocusEvent;
|
|
10
10
|
}
|
|
11
|
-
declare const IgcDateTimeInputComponent_base: import("
|
|
11
|
+
declare const IgcDateTimeInputComponent_base: import("#internals/mixins/constructor.js").Constructor<import("#internals/mixins/event-emitter.js").EventEmitterInterface<IgcDateTimeInputComponentEventMap>> & AbstractConstructor<IgcDateTimeInputBaseComponent<Date>>;
|
|
12
12
|
/**
|
|
13
13
|
* A date time input is an input field that lets you set and edit the date and time in a chosen input element
|
|
14
14
|
* using customizable display and input formats.
|
|
@@ -38,20 +38,22 @@ export default class IgcDateTimeInputComponent extends IgcDateTimeInputComponent
|
|
|
38
38
|
static readonly tagName = "igc-date-time-input";
|
|
39
39
|
static styles: import("lit").CSSResult[];
|
|
40
40
|
static register(): void;
|
|
41
|
-
protected readonly _themes: import("
|
|
41
|
+
protected readonly _themes: import("#theming/theming-controller.js").ThemingController;
|
|
42
42
|
protected readonly _parser: DateTimeMaskParser;
|
|
43
|
-
protected readonly _formValue: import("
|
|
44
|
-
protected get __validators(): import("
|
|
45
|
-
protected get _datePartDeltas(): DatePartDeltas;
|
|
46
|
-
protected _oldValue: Date | null;
|
|
43
|
+
protected readonly _formValue: import("#internals/mixins/forms/form-value.js").FormValue<Date | null>;
|
|
44
|
+
protected get __validators(): import("../../internals/validators.js").Validator<IgcDateTimeInputComponent>[];
|
|
47
45
|
/**
|
|
48
46
|
* The value of the input.
|
|
47
|
+
*
|
|
48
|
+
* Only ever holds a committed value. While the user is typing, the intermediate
|
|
49
|
+
* state lives in the masked text and is committed - together with an `igcChange`
|
|
50
|
+
* event - when the edit is committed on blur. Use the `igcInput` event to observe
|
|
51
|
+
* the value as it is being typed.
|
|
52
|
+
*
|
|
49
53
|
* @attr
|
|
50
54
|
*/
|
|
51
55
|
set value(value: Date | string | null | undefined);
|
|
52
56
|
get value(): Date | null;
|
|
53
|
-
protected _handleFocus(): Promise<void>;
|
|
54
|
-
protected _handleBlur(): void;
|
|
55
57
|
/**
|
|
56
58
|
* Calculates the new cursor position when navigating between date parts.
|
|
57
59
|
* direction = 0: navigate to start of previous part
|
|
@@ -69,19 +71,12 @@ export default class IgcDateTimeInputComponent extends IgcDateTimeInputComponent
|
|
|
69
71
|
* Prioritizes: Date > Hours > First available part
|
|
70
72
|
*/
|
|
71
73
|
protected _getDefaultDatePart(): DatePart | undefined;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
* Returns empty mask if no value, or existing masked value if incomplete.
|
|
75
|
-
*/
|
|
76
|
-
protected _buildMaskedValue(): string;
|
|
74
|
+
protected _parseMask(strict: boolean): Date | null;
|
|
75
|
+
protected _formatValue(value: Date | null): string;
|
|
77
76
|
/**
|
|
78
77
|
* Builds the formatted display value shown when the input is not focused.
|
|
79
78
|
*/
|
|
80
79
|
protected _buildDisplayValue(): string;
|
|
81
|
-
/**
|
|
82
|
-
* Commits a value produced by spinning a date part.
|
|
83
|
-
*/
|
|
84
|
-
protected _commitSpunValue(value: unknown): void;
|
|
85
80
|
/**
|
|
86
81
|
* Sets the value to the current date/time.
|
|
87
82
|
*/
|
|
@@ -99,17 +94,10 @@ export default class IgcDateTimeInputComponent extends IgcDateTimeInputComponent
|
|
|
99
94
|
* Spins a specific date part by the given delta.
|
|
100
95
|
*/
|
|
101
96
|
protected _spinDatePart(datePart: DatePart, delta: number): Date;
|
|
102
|
-
/**
|
|
103
|
-
* Updates the internal value based on the current masked input.
|
|
104
|
-
* Only sets a value if the mask is complete and parses to a valid date.
|
|
105
|
-
*/
|
|
106
|
-
protected _syncValueFromMask(): void;
|
|
107
97
|
/** Increments a date/time portion. */
|
|
108
98
|
stepUp(datePart?: DatePart, delta?: number): void;
|
|
109
99
|
/** Decrements a date/time portion. */
|
|
110
100
|
stepDown(datePart?: DatePart, delta?: number): void;
|
|
111
|
-
/** Clears the input element of user input. */
|
|
112
|
-
clear(): void;
|
|
113
101
|
/**
|
|
114
102
|
* Checks whether the current format includes date parts (day, month, year).
|
|
115
103
|
* @internal
|