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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-trap.js","sourceRoot":"","sources":["../../../src/components/focus-trap/focus-trap.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"focus-trap.js","sourceRoot":"","sources":["../../../src/components/focus-trap/focus-trap.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, html, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\n\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { addSafeEventListener } from '#internals/utils/events.js';\nimport { isDefined } from '#internals/utils/types.js';\n\n/* blazorSuppress */\n/**\n *\n * @element igc-focus-trap\n *\n * @slot - The content of the focus trap component\n */\nexport default class IgcFocusTrapComponent extends LitElement {\n public static readonly tagName = 'igc-focus-trap';\n public static override styles = css`\n :host {\n display: contents;\n }\n `;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcFocusTrapComponent);\n }\n\n @state()\n protected _focused = false;\n\n /**\n * Whether to manage focus state for the slotted children.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Whether focus in currently inside the trap component.\n */\n public get focused() {\n return this._focused;\n }\n\n /** An array of focusable elements including elements in Shadow roots */\n public get focusableElements() {\n return Array.from(getFocusableElements<HTMLElement>(this));\n }\n\n constructor() {\n super();\n\n addSafeEventListener(this, 'focusin', this.onFocusIn);\n addSafeEventListener(this, 'focusout', this.onFocusOut);\n }\n\n private onFocusIn() {\n this._focused = true;\n }\n\n private onFocusOut() {\n this._focused = false;\n }\n\n public focusFirstElement() {\n this.focusableElements.at(0)?.focus();\n }\n\n public focusLastElement() {\n this.focusableElements.at(-1)?.focus();\n }\n\n protected override render() {\n const tabStop = !this.focused || this.disabled ? -1 : 0;\n\n return html`\n <div\n id=\"start\"\n tabindex=${tabStop}\n @focus=${this.disabled ? nothing : this.focusLastElement}\n ></div>\n <slot></slot>\n <div\n id=\"end\"\n tabindex=${tabStop}\n @focus=${this.disabled ? nothing : this.focusFirstElement}\n ></div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-focus-trap': IgcFocusTrapComponent;\n }\n}\n\nconst defaultSelectors = [\n '[tabindex]',\n 'a[href]',\n 'button',\n 'input',\n 'select',\n 'textarea',\n];\n\n/** Returns whether the element is hidden. */\nfunction isHidden(node: HTMLElement) {\n return (\n node.hasAttribute('hidden') ||\n node.hasAttribute('inert') ||\n (node.hasAttribute('aria-hidden') &&\n node.getAttribute('aria-hidden') !== 'false')\n );\n}\n\n/** Returns whether the element is disabled. */\nfunction isDisabled(node: HTMLElement) {\n return node.hasAttribute('disabled') || node.hasAttribute('inert');\n}\n\nfunction isContentEditable(node: HTMLElement) {\n return (\n node.hasAttribute('contenteditable') &&\n node.getAttribute('contenteditable') !== 'false'\n );\n}\n\n/**\n * Returns whether the element can be focused.\n */\nfunction isFocusable(node: HTMLElement) {\n if (isHidden(node) || isDisabled(node)) {\n return false;\n }\n\n if (isContentEditable(node)) {\n return true;\n }\n\n if (node.tabIndex === -1) {\n return false;\n }\n\n return defaultSelectors.some((selector) => node.matches(selector));\n}\n\n/**\n * Filter function for the tree walker instance skipping over nodes and their children\n * if the `node` is hidden/disabled or it was already visited and resides in `cache`.\n */\nfunction shouldSkipElements(node: Node, cache?: WeakSet<HTMLElement>) {\n const element = node as HTMLElement;\n\n return isHidden(element) || isDisabled(element) || cache?.has(element)\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT;\n}\n\n/** Returns the slotted elements and the parent element containing the slot */\nfunction getSlottedElements(node: HTMLElement) {\n const slot = node as HTMLSlotElement;\n const elements = slot.assignedElements() as HTMLElement[];\n return { elements, parent: elements.at(0)?.parentElement };\n}\n\n/**\n * Traverses and yields all focusable elements starting at `root`.\n */\nfunction* getFocusableElements<T extends HTMLElement>(\n root: HTMLElement | ShadowRoot,\n cache?: WeakSet<HTMLElement>\n): Generator<T> {\n if (!isDefined(globalThis.document)) {\n return;\n }\n\n let node: T;\n const _cache = cache ?? new WeakSet<HTMLElement>();\n\n const visitor = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n (node) => shouldSkipElements(node, _cache)\n );\n\n while ((node = visitor.nextNode() as T)) {\n if (_cache.has(node)) {\n continue;\n }\n\n if (node.shadowRoot) {\n yield* getFocusableElements(node.shadowRoot, _cache);\n continue;\n }\n\n if (node.tagName === 'SLOT') {\n const { elements, parent } = getSlottedElements(node);\n\n if (elements.length > 0) {\n for (const element of elements) {\n yield* getFocusableElements(parent!, _cache);\n _cache.add(element);\n }\n }\n continue;\n }\n\n if (isFocusable(node)) {\n yield node;\n }\n }\n}\n"]}
|
|
@@ -18,7 +18,7 @@ import { type HighlightNavigation } from './service.js';
|
|
|
18
18
|
* @cssproperty --background-active - The background color for the active highlighted text node.
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
|
-
* Basic usage
|
|
21
|
+
* Basic usage - wrap your text and set the `search-text` attribute:
|
|
22
22
|
* ```html
|
|
23
23
|
* <igc-highlight search-text="world">
|
|
24
24
|
* <p>Hello, world! The world is a wonderful place.</p>
|
|
@@ -29,7 +29,7 @@ import { type HighlightNavigation } from './service.js';
|
|
|
29
29
|
* Case-sensitive search:
|
|
30
30
|
* ```html
|
|
31
31
|
* <igc-highlight search-text="Hello" case-sensitive>
|
|
32
|
-
* <p>Hello hello HELLO
|
|
32
|
+
* <p>Hello hello HELLO - only the first one matches.</p>
|
|
33
33
|
* </igc-highlight>
|
|
34
34
|
* ```
|
|
35
35
|
*
|
|
@@ -67,8 +67,8 @@ export default class IgcHighlightComponent extends LitElement {
|
|
|
67
67
|
static styles: import("lit").CSSResult[];
|
|
68
68
|
static register(): void;
|
|
69
69
|
private readonly _service;
|
|
70
|
-
|
|
71
|
-
private
|
|
70
|
+
/** Shared config for the properties that trigger a new search when changed. */
|
|
71
|
+
private static readonly _search;
|
|
72
72
|
/**
|
|
73
73
|
* Whether to match the searched text with case sensitivity in mind.
|
|
74
74
|
* When `true`, only exact-case occurrences of `searchText` are highlighted.
|
|
@@ -76,8 +76,7 @@ export default class IgcHighlightComponent extends LitElement {
|
|
|
76
76
|
* @attr case-sensitive
|
|
77
77
|
* @default false
|
|
78
78
|
*/
|
|
79
|
-
|
|
80
|
-
get caseSensitive(): boolean;
|
|
79
|
+
caseSensitive: boolean;
|
|
81
80
|
/**
|
|
82
81
|
* The string to search and highlight in the DOM content of the component.
|
|
83
82
|
* Setting this property triggers a new search automatically.
|
|
@@ -85,8 +84,7 @@ export default class IgcHighlightComponent extends LitElement {
|
|
|
85
84
|
*
|
|
86
85
|
* @attr search-text
|
|
87
86
|
*/
|
|
88
|
-
|
|
89
|
-
get searchText(): string;
|
|
87
|
+
searchText: string;
|
|
90
88
|
/** The total number of matches found for the current `searchText`. Returns `0` when there are no matches or `searchText` is empty. */
|
|
91
89
|
get size(): number;
|
|
92
90
|
/** The zero-based index of the currently active (focused) match. Returns `0` when there are no matches. */
|
|
@@ -6,8 +6,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { html, LitElement } from 'lit';
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
|
-
import {
|
|
10
|
-
import { registerComponent } from '
|
|
9
|
+
import { coercedProperty, } from '#internals/decorators/coerced-property.js';
|
|
10
|
+
import { registerComponent } from '#internals/definitions/register.js';
|
|
11
|
+
import { addThemingController } from '#theming/theming-controller.js';
|
|
11
12
|
import { createHighlightController, } from './service.js';
|
|
12
13
|
import { styles as shared } from './themes/shared/highlight.common.css.js';
|
|
13
14
|
import { all } from './themes/themes.js';
|
|
@@ -17,20 +18,9 @@ export default class IgcHighlightComponent extends LitElement {
|
|
|
17
18
|
static register() {
|
|
18
19
|
registerComponent(IgcHighlightComponent);
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
get caseSensitive() {
|
|
25
|
-
return this._caseSensitive;
|
|
26
|
-
}
|
|
27
|
-
set searchText(value) {
|
|
28
|
-
this._searchText = value;
|
|
29
|
-
this.search();
|
|
30
|
-
}
|
|
31
|
-
get searchText() {
|
|
32
|
-
return this._searchText;
|
|
33
|
-
}
|
|
21
|
+
static { this._search = {
|
|
22
|
+
onChange: ({ host }) => host.search(),
|
|
23
|
+
}; }
|
|
34
24
|
get size() {
|
|
35
25
|
return this._service.size;
|
|
36
26
|
}
|
|
@@ -40,8 +30,8 @@ export default class IgcHighlightComponent extends LitElement {
|
|
|
40
30
|
constructor() {
|
|
41
31
|
super();
|
|
42
32
|
this._service = createHighlightController(this);
|
|
43
|
-
this.
|
|
44
|
-
this.
|
|
33
|
+
this.caseSensitive = false;
|
|
34
|
+
this.searchText = '';
|
|
45
35
|
addThemingController(this, all, {
|
|
46
36
|
themeChange: this._addStylesheet,
|
|
47
37
|
});
|
|
@@ -69,9 +59,11 @@ export default class IgcHighlightComponent extends LitElement {
|
|
|
69
59
|
}
|
|
70
60
|
}
|
|
71
61
|
__decorate([
|
|
72
|
-
property({ type: Boolean, reflect: true, attribute: 'case-sensitive' })
|
|
73
|
-
|
|
62
|
+
property({ type: Boolean, reflect: true, attribute: 'case-sensitive' }),
|
|
63
|
+
coercedProperty(IgcHighlightComponent._search)
|
|
64
|
+
], IgcHighlightComponent.prototype, "caseSensitive", void 0);
|
|
74
65
|
__decorate([
|
|
75
|
-
property({ attribute: 'search-text' })
|
|
76
|
-
|
|
66
|
+
property({ attribute: 'search-text' }),
|
|
67
|
+
coercedProperty(IgcHighlightComponent._search)
|
|
68
|
+
], IgcHighlightComponent.prototype, "searchText", void 0);
|
|
77
69
|
//# sourceMappingURL=highlight.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlight.js","sourceRoot":"","sources":["../../../src/components/highlight/highlight.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"highlight.js","sourceRoot":"","sources":["../../../src/components/highlight/highlight.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,eAAe,GAEhB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EACL,yBAAyB,GAE1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAgEzC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,UAAU;aACpC,YAAO,GAAG,eAAe,AAAlB,CAAmB;aAC1B,WAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;IAGlC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC3C,CAAC;aAOuB,YAAO,GAG3B;QACF,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;KACtC,AAL8B,CAK7B;IA6BF,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAGD,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAID;QACE,KAAK,EAAE,CAAC;QAjDO,aAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAuBrD,kBAAa,GAAG,KAAK,CAAC;QAWtB,eAAU,GAAG,EAAE,CAAC;QAiBrB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE;YAC9B,WAAW,EAAE,IAAI,CAAC,cAAc;SACjC,CAAC,CAAC;IACL,CAAC;IAIO,cAAc;QACpB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;IAYM,IAAI,CAAC,OAA6B;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAQM,QAAQ,CAAC,OAA6B;QAC3C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAQM,SAAS,CAAC,KAAa,EAAE,OAA6B;QAC3D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAQM,MAAM;QACX,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAIkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AA1FM;IAFN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IACvE,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC;4DAClB;AAWtB;IAFN,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IACtC,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC;yDACxB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport {\n coercedProperty,\n type CoercedPropertyConfig,\n} from '#internals/decorators/coerced-property.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport {\n createHighlightController,\n type HighlightNavigation,\n} from './service.js';\nimport { styles as shared } from './themes/shared/highlight.common.css.js';\nimport { all } from './themes/themes.js';\n\n/**\n * The highlight component provides efficient searching and highlighting of text\n * projected into it via its default slot. It uses the native CSS Custom Highlight API\n * to apply highlight styles to matched text nodes without modifying the DOM.\n *\n * The component supports case-sensitive matching, programmatic navigation between\n * matches, and automatic scroll-into-view of the active match.\n *\n * @element igc-highlight\n *\n * @slot - The default slot. Place the text content you want to search and highlight here.\n *\n * @cssproperty --foreground - The text color for a highlighted text node.\n * @cssproperty --background - The background color for a highlighted text node.\n * @cssproperty --foreground-active - The text color for the active highlighted text node.\n * @cssproperty --background-active - The background color for the active highlighted text node.\n *\n * @example\n * Basic usage - wrap your text and set the `search-text` attribute:\n * ```html\n * <igc-highlight search-text=\"world\">\n * <p>Hello, world! The world is a wonderful place.</p>\n * </igc-highlight>\n * ```\n *\n * @example\n * Case-sensitive search:\n * ```html\n * <igc-highlight search-text=\"Hello\" case-sensitive>\n * <p>Hello hello HELLO - only the first one matches.</p>\n * </igc-highlight>\n * ```\n *\n * @example\n * Navigating between matches programmatically:\n * ```typescript\n * const highlight = document.querySelector('igc-highlight');\n *\n * highlight.searchText = 'world';\n * console.log(highlight.size); // total number of matches\n * console.log(highlight.current); // index of the active match (0-based)\n *\n * highlight.next(); // move to the next match\n * highlight.previous(); // move to the previous match\n * highlight.setActive(2); // jump to a specific match by index\n * ```\n *\n * @example\n * Prevent scroll-into-view when navigating:\n * ```typescript\n * const highlight = document.querySelector('igc-highlight');\n * highlight.next({ preventScroll: true });\n * ```\n *\n * @example\n * Re-run search after dynamic content changes (e.g. lazy-loaded text):\n * ```typescript\n * const highlight = document.querySelector('igc-highlight');\n * // After slotted content has been updated:\n * highlight.search();\n * ```\n */\nexport default class IgcHighlightComponent extends LitElement {\n public static readonly tagName = 'igc-highlight';\n public static override styles = [shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcHighlightComponent);\n }\n\n //#region Internal properties and state\n\n private readonly _service = createHighlightController(this);\n\n /** Shared config for the properties that trigger a new search when changed. */\n private static readonly _search: CoercedPropertyConfig<\n unknown,\n IgcHighlightComponent\n > = {\n onChange: ({ host }) => host.search(),\n };\n\n //#endregion\n\n //#region Public properties and attributes\n\n /**\n * Whether to match the searched text with case sensitivity in mind.\n * When `true`, only exact-case occurrences of `searchText` are highlighted.\n *\n * @attr case-sensitive\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'case-sensitive' })\n @coercedProperty(IgcHighlightComponent._search)\n public caseSensitive = false;\n\n /**\n * The string to search and highlight in the DOM content of the component.\n * Setting this property triggers a new search automatically.\n * An empty string clears all highlights.\n *\n * @attr search-text\n */\n @property({ attribute: 'search-text' })\n @coercedProperty(IgcHighlightComponent._search)\n public searchText = '';\n\n /** The total number of matches found for the current `searchText`. Returns `0` when there are no matches or `searchText` is empty. */\n public get size(): number {\n return this._service.size;\n }\n\n /** The zero-based index of the currently active (focused) match. Returns `0` when there are no matches. */\n public get current(): number {\n return this._service.current;\n }\n\n //#endregion\n\n constructor() {\n super();\n\n addThemingController(this, all, {\n themeChange: this._addStylesheet,\n });\n }\n\n //#region Internal methods\n\n private _addStylesheet(): void {\n this._service.attachStylesheet();\n }\n\n //#endregion\n\n //#region Public methods\n\n /**\n * Moves the active highlight to the next match.\n * Wraps around to the first match after the last one.\n *\n * @param options - Optional navigation options (e.g. `preventScroll`).\n */\n public next(options?: HighlightNavigation): void {\n this._service.next(options);\n }\n\n /**\n * Moves the active highlight to the previous match.\n * Wraps around to the last match when going back from the first one.\n *\n * @param options - Optional navigation options (e.g. `preventScroll`).\n */\n public previous(options?: HighlightNavigation): void {\n this._service.previous(options);\n }\n\n /**\n * Moves the active highlight to the match at the specified zero-based index.\n *\n * @param index - The zero-based index of the match to activate.\n * @param options - Optional navigation options (e.g. `preventScroll`).\n */\n public setActive(index: number, options?: HighlightNavigation): void {\n this._service.setActive(index, options);\n }\n\n /**\n * Re-runs the highlight search based on the current `searchText` and `caseSensitive` values.\n *\n * Call this method after the slotted content changes dynamically (e.g. after lazy loading\n * or programmatic DOM mutations) to ensure all matches are up to date.\n */\n public search(): void {\n if (this.hasUpdated) {\n this._service.clear();\n this._service.find(this.searchText);\n }\n }\n\n //#endregion\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-highlight': IgcHighlightComponent;\n }\n}\n"]}
|
|
@@ -13,6 +13,7 @@ declare class HighlightService implements ReactiveController {
|
|
|
13
13
|
private readonly _activeId;
|
|
14
14
|
private readonly _styles;
|
|
15
15
|
private readonly _styleSheet?;
|
|
16
|
+
private _attachedRoot;
|
|
16
17
|
private _highlight;
|
|
17
18
|
private _activeHighlight;
|
|
18
19
|
private _ranges;
|
|
@@ -37,8 +38,10 @@ declare class HighlightService implements ReactiveController {
|
|
|
37
38
|
private _updateActiveHighlight;
|
|
38
39
|
private _goTo;
|
|
39
40
|
/**
|
|
40
|
-
* Attaches the service's stylesheet to the
|
|
41
|
+
* Attaches the service's stylesheet to the tree scope of the host's slotted content.
|
|
41
42
|
* Necessary for the component to apply highlight styles to its content.
|
|
43
|
+
*
|
|
44
|
+
* Idempotent, and re-targets the stylesheet if the host has moved to another tree scope.
|
|
42
45
|
*/
|
|
43
46
|
attachStylesheet(): void;
|
|
44
47
|
/**
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { isServer } from 'lit';
|
|
2
|
-
import {
|
|
2
|
+
import { getRoot, iterNodes, scrollIntoView } from '#internals/utils/dom.js';
|
|
3
|
+
import { wrap } from '#internals/utils/math.js';
|
|
4
|
+
import { escapeRegex, nanoid } from '#internals/utils/strings.js';
|
|
5
|
+
function getStyleRoot(host) {
|
|
6
|
+
const root = getRoot(host);
|
|
7
|
+
return 'adoptedStyleSheets' in root ? root : null;
|
|
8
|
+
}
|
|
3
9
|
function* matchText(nodes, regexp) {
|
|
4
10
|
for (const node of nodes) {
|
|
5
11
|
if (node.textContent) {
|
|
@@ -18,6 +24,7 @@ class HighlightService {
|
|
|
18
24
|
return this._current;
|
|
19
25
|
}
|
|
20
26
|
constructor(host) {
|
|
27
|
+
this._attachedRoot = null;
|
|
21
28
|
this._ranges = [];
|
|
22
29
|
this._current = 0;
|
|
23
30
|
this._host = host;
|
|
@@ -40,6 +47,7 @@ class HighlightService {
|
|
|
40
47
|
}
|
|
41
48
|
hostConnected() {
|
|
42
49
|
this._createHighlightEntries();
|
|
50
|
+
this.attachStylesheet();
|
|
43
51
|
this.find(this._host.searchText);
|
|
44
52
|
}
|
|
45
53
|
hostDisconnected() {
|
|
@@ -47,10 +55,11 @@ class HighlightService {
|
|
|
47
55
|
this._removeStyleSheet();
|
|
48
56
|
}
|
|
49
57
|
_removeStyleSheet() {
|
|
50
|
-
const root = this.
|
|
51
|
-
if (this._styleSheet) {
|
|
58
|
+
const root = this._attachedRoot;
|
|
59
|
+
if (root && this._styleSheet) {
|
|
52
60
|
root.adoptedStyleSheets = root.adoptedStyleSheets.filter((sheet) => sheet !== this._styleSheet);
|
|
53
61
|
}
|
|
62
|
+
this._attachedRoot = null;
|
|
54
63
|
}
|
|
55
64
|
_createHighlightEntries() {
|
|
56
65
|
this._highlight = new Highlight();
|
|
@@ -90,11 +99,18 @@ class HighlightService {
|
|
|
90
99
|
}
|
|
91
100
|
}
|
|
92
101
|
attachStylesheet() {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
102
|
+
if (!this._styleSheet) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const root = getStyleRoot(this._host);
|
|
106
|
+
if (this._attachedRoot !== root) {
|
|
107
|
+
this._removeStyleSheet();
|
|
108
|
+
}
|
|
109
|
+
if (!root || root.adoptedStyleSheets.includes(this._styleSheet)) {
|
|
110
|
+
return;
|
|
97
111
|
}
|
|
112
|
+
root.adoptedStyleSheets.push(this._styleSheet);
|
|
113
|
+
this._attachedRoot = root;
|
|
98
114
|
}
|
|
99
115
|
find(value) {
|
|
100
116
|
if (!value?.trim()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/components/highlight/service.ts"],"names":[],"mappings":"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","sourcesContent":["import { isServer, type ReactiveController } from 'lit';\nimport {\n escapeRegex,\n iterNodes,\n nanoid,\n scrollIntoView,\n wrap,\n} from '../common/util.js';\nimport type IgcHighlightComponent from './highlight.js';\n\ntype Match = { node: Node; indices: [start: number, end: number] };\n\n/* jsonAPIPlainObject */\n/* marshalByValue */\n/**\n * Options for controlling navigation behavior when moving the active highlight.\n */\nexport interface HighlightNavigation {\n /** If true, prevents the component from scrolling the new active match into view. */\n preventScroll?: boolean;\n}\n\nfunction* matchText(\n nodes: IterableIterator<Node>,\n regexp: RegExp\n): Generator<Match> {\n for (const node of nodes) {\n if (node.textContent) {\n for (const match of node.textContent.matchAll(regexp)) {\n const [start, end] = match.indices![0]!;\n yield { node, indices: [start, end] } satisfies Match;\n }\n }\n }\n}\n\nclass HighlightService implements ReactiveController {\n //#region Private properties\n\n private readonly _host: IgcHighlightComponent;\n private readonly _id: string;\n private readonly _activeId: string;\n private readonly _styles: string;\n private readonly _styleSheet?: CSSStyleSheet;\n\n private _highlight!: Highlight;\n private _activeHighlight!: Highlight;\n private _ranges: Range[] = [];\n\n private _current = 0;\n\n //#endregion\n\n //#region Public properties\n\n /**\n * The total number of matches found in the component's content.\n */\n public get size(): number {\n return this._ranges.length;\n }\n\n /**\n * The index of the currently active match. Returns 0 if there are no matches.\n */\n public get current(): number {\n return this._current;\n }\n\n //#endregion\n\n constructor(host: IgcHighlightComponent) {\n this._host = host;\n this._host.addController(this);\n this._id = `igc-highlight-${nanoid()}`;\n this._activeId = `${this._id}-active`;\n\n this._styles = `\n ::highlight(${this._id}) {\n background-color: var(--background, var(--ig-secondary-700));\n color: var(--foreground, var(--ig-secondary-700-contrast));\n }\n ::highlight(${this._activeId}) {\n background-color: var(--background-active, var(--ig-primary-500));\n color: var(--foreground-active, var(--ig-primary-500-contrast));\n }`;\n\n if (!isServer) {\n this._styleSheet = new CSSStyleSheet();\n this._styleSheet.replaceSync(this._styles);\n }\n }\n\n //#region Controller life-cycle\n\n /** @internal */\n public hostConnected(): void {\n this._createHighlightEntries();\n this.find(this._host.searchText);\n }\n\n /** @internal */\n public hostDisconnected(): void {\n this._removeHighlightEntries();\n this._removeStyleSheet();\n }\n\n //#endregion\n\n //#region Private methods\n\n private _removeStyleSheet(): void {\n const root = this._host.renderRoot as ShadowRoot;\n\n if (this._styleSheet) {\n root.adoptedStyleSheets = root.adoptedStyleSheets.filter(\n (sheet) => sheet !== this._styleSheet\n );\n }\n }\n\n private _createHighlightEntries(): void {\n this._highlight = new Highlight();\n this._highlight.priority = 0;\n\n this._activeHighlight = new Highlight();\n this._activeHighlight.priority = 1;\n\n CSS.highlights.set(this._id, this._highlight);\n CSS.highlights.set(this._activeId, this._activeHighlight);\n }\n\n private _removeHighlightEntries(): void {\n CSS.highlights.delete(this._id);\n CSS.highlights.delete(this._activeId);\n this._ranges.length = 0;\n }\n\n private _createRegex(value: string): RegExp {\n return new RegExp(\n escapeRegex(value),\n this._host.caseSensitive ? 'dg' : 'dgi'\n );\n }\n\n private _updateActiveHighlight(): void {\n if (this.size) {\n this._activeHighlight.clear();\n this._activeHighlight.add(this._ranges[this._current]);\n }\n }\n\n private _goTo(index: number, options?: HighlightNavigation): void {\n if (!this.size) {\n return;\n }\n\n this._current = wrap(0, this.size - 1, index);\n const range = this._ranges[this._current];\n\n this._activeHighlight.clear();\n this._activeHighlight.add(range);\n\n if (!options?.preventScroll) {\n scrollIntoView(range.commonAncestorContainer.parentElement, {\n block: 'center',\n inline: 'center',\n });\n }\n }\n\n //#endregion\n\n //#region Public methods\n\n /**\n * Attaches the service's stylesheet to the render root.\n * Necessary for the component to apply highlight styles to its content.\n */\n public attachStylesheet(): void {\n const adoptedSheets = (this._host.renderRoot as ShadowRoot)\n .adoptedStyleSheets;\n\n if (this._styleSheet && !adoptedSheets.includes(this._styleSheet)) {\n adoptedSheets.push(this._styleSheet);\n }\n }\n\n /**\n * Finds matches for the given search text in the component's content and creates highlight ranges for them.\n */\n public find(value: string): void {\n if (!value?.trim()) {\n return;\n }\n\n const iterator = matchText(\n iterNodes(this._host, { show: 'SHOW_TEXT' }),\n this._createRegex(value)\n );\n\n for (const {\n node,\n indices: [start, end],\n } of iterator) {\n const range = new Range();\n range.setStart(node, start);\n range.setEnd(node, end);\n\n this._ranges.push(range);\n this._highlight.add(range);\n }\n\n this._updateActiveHighlight();\n }\n\n /** Moves the active state to the next match. */\n public next(options?: HighlightNavigation): void {\n this._goTo(this._current + 1, options);\n }\n\n /** Moves the active state to the previous match. */\n public previous(options?: HighlightNavigation): void {\n this._goTo(this._current - 1, options);\n }\n\n /** Moves the active state to the given index. */\n public setActive(index: number, options?: HighlightNavigation): void {\n this._goTo(index, options);\n }\n\n /** Clears highlight collections. */\n public clear(): void {\n this._activeHighlight.clear();\n this._highlight.clear();\n this._ranges.length = 0;\n this._current = 0;\n }\n\n //#endregion\n}\n\nexport function createHighlightController(\n host: IgcHighlightComponent\n): HighlightService {\n return new HighlightService(host);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/components/highlight/service.ts"],"names":[],"mappings":"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","sourcesContent":["import { isServer, type ReactiveController } from 'lit';\nimport { getRoot, iterNodes, scrollIntoView } from '#internals/utils/dom.js';\nimport { wrap } from '#internals/utils/math.js';\nimport { escapeRegex, nanoid } from '#internals/utils/strings.js';\nimport type IgcHighlightComponent from './highlight.js';\n\ntype Match = { node: Node; indices: [start: number, end: number] };\n\n/**\n * Resolves the tree scope that must own the `::highlight()` rules.\n *\n * Highlight pseudo-element rules are tree-scoped - they only style text nodes living in the\n * same tree scope as the stylesheet. Since the component highlights slotted content, the\n * relevant scope is the host's root node (the document or an outer shadow root), *not* the\n * component's own render root. Firefox enforces this, Chromium currently does not.\n *\n * Returns `null` while the host is detached or inside a non-styleable fragment.\n */\nfunction getStyleRoot(\n host: IgcHighlightComponent\n): (DocumentOrShadowRoot & Node) | null {\n const root = getRoot(host);\n return 'adoptedStyleSheets' in root ? root : null;\n}\n\n/* jsonAPIPlainObject */\n/* marshalByValue */\n/**\n * Options for controlling navigation behavior when moving the active highlight.\n */\nexport interface HighlightNavigation {\n /** If true, prevents the component from scrolling the new active match into view. */\n preventScroll?: boolean;\n}\n\nfunction* matchText(\n nodes: IterableIterator<Node>,\n regexp: RegExp\n): Generator<Match> {\n for (const node of nodes) {\n if (node.textContent) {\n for (const match of node.textContent.matchAll(regexp)) {\n const [start, end] = match.indices![0]!;\n yield { node, indices: [start, end] } satisfies Match;\n }\n }\n }\n}\n\nclass HighlightService implements ReactiveController {\n //#region Private properties\n\n private readonly _host: IgcHighlightComponent;\n private readonly _id: string;\n private readonly _activeId: string;\n private readonly _styles: string;\n private readonly _styleSheet?: CSSStyleSheet;\n\n private _attachedRoot: (DocumentOrShadowRoot & Node) | null = null;\n\n private _highlight!: Highlight;\n private _activeHighlight!: Highlight;\n private _ranges: Range[] = [];\n\n private _current = 0;\n\n //#endregion\n\n //#region Public properties\n\n /**\n * The total number of matches found in the component's content.\n */\n public get size(): number {\n return this._ranges.length;\n }\n\n /**\n * The index of the currently active match. Returns 0 if there are no matches.\n */\n public get current(): number {\n return this._current;\n }\n\n //#endregion\n\n constructor(host: IgcHighlightComponent) {\n this._host = host;\n this._host.addController(this);\n this._id = `igc-highlight-${nanoid()}`;\n this._activeId = `${this._id}-active`;\n\n this._styles = `\n ::highlight(${this._id}) {\n background-color: var(--background, var(--ig-secondary-700));\n color: var(--foreground, var(--ig-secondary-700-contrast));\n }\n ::highlight(${this._activeId}) {\n background-color: var(--background-active, var(--ig-primary-500));\n color: var(--foreground-active, var(--ig-primary-500-contrast));\n }`;\n\n if (!isServer) {\n this._styleSheet = new CSSStyleSheet();\n this._styleSheet.replaceSync(this._styles);\n }\n }\n\n //#region Controller life-cycle\n\n /** @internal */\n public hostConnected(): void {\n this._createHighlightEntries();\n this.attachStylesheet();\n this.find(this._host.searchText);\n }\n\n /** @internal */\n public hostDisconnected(): void {\n this._removeHighlightEntries();\n this._removeStyleSheet();\n }\n\n //#endregion\n\n //#region Private methods\n\n private _removeStyleSheet(): void {\n const root = this._attachedRoot;\n\n if (root && this._styleSheet) {\n root.adoptedStyleSheets = root.adoptedStyleSheets.filter(\n (sheet) => sheet !== this._styleSheet\n );\n }\n\n this._attachedRoot = null;\n }\n\n private _createHighlightEntries(): void {\n this._highlight = new Highlight();\n this._highlight.priority = 0;\n\n this._activeHighlight = new Highlight();\n this._activeHighlight.priority = 1;\n\n CSS.highlights.set(this._id, this._highlight);\n CSS.highlights.set(this._activeId, this._activeHighlight);\n }\n\n private _removeHighlightEntries(): void {\n CSS.highlights.delete(this._id);\n CSS.highlights.delete(this._activeId);\n this._ranges.length = 0;\n }\n\n private _createRegex(value: string): RegExp {\n return new RegExp(\n escapeRegex(value),\n this._host.caseSensitive ? 'dg' : 'dgi'\n );\n }\n\n private _updateActiveHighlight(): void {\n if (this.size) {\n this._activeHighlight.clear();\n this._activeHighlight.add(this._ranges[this._current]);\n }\n }\n\n private _goTo(index: number, options?: HighlightNavigation): void {\n if (!this.size) {\n return;\n }\n\n this._current = wrap(0, this.size - 1, index);\n const range = this._ranges[this._current];\n\n this._activeHighlight.clear();\n this._activeHighlight.add(range);\n\n if (!options?.preventScroll) {\n scrollIntoView(range.commonAncestorContainer.parentElement, {\n block: 'center',\n inline: 'center',\n });\n }\n }\n\n //#endregion\n\n //#region Public methods\n\n /**\n * Attaches the service's stylesheet to the tree scope of the host's slotted content.\n * Necessary for the component to apply highlight styles to its content.\n *\n * Idempotent, and re-targets the stylesheet if the host has moved to another tree scope.\n */\n public attachStylesheet(): void {\n if (!this._styleSheet) {\n return;\n }\n\n const root = getStyleRoot(this._host);\n\n if (this._attachedRoot !== root) {\n this._removeStyleSheet();\n }\n\n if (!root || root.adoptedStyleSheets.includes(this._styleSheet)) {\n return;\n }\n\n root.adoptedStyleSheets.push(this._styleSheet);\n this._attachedRoot = root;\n }\n\n /**\n * Finds matches for the given search text in the component's content and creates highlight ranges for them.\n */\n public find(value: string): void {\n if (!value?.trim()) {\n return;\n }\n\n const iterator = matchText(\n iterNodes(this._host, { show: 'SHOW_TEXT' }),\n this._createRegex(value)\n );\n\n for (const {\n node,\n indices: [start, end],\n } of iterator) {\n const range = new Range();\n range.setStart(node, start);\n range.setEnd(node, end);\n\n this._ranges.push(range);\n this._highlight.add(range);\n }\n\n this._updateActiveHighlight();\n }\n\n /** Moves the active state to the next match. */\n public next(options?: HighlightNavigation): void {\n this._goTo(this._current + 1, options);\n }\n\n /** Moves the active state to the previous match. */\n public previous(options?: HighlightNavigation): void {\n this._goTo(this._current - 1, options);\n }\n\n /** Moves the active state to the given index. */\n public setActive(index: number, options?: HighlightNavigation): void {\n this._goTo(index, options);\n }\n\n /** Clears highlight collections. */\n public clear(): void {\n this._activeHighlight.clear();\n this._highlight.clear();\n this._ranges.length = 0;\n this._current = 0;\n }\n\n //#endregion\n}\n\nexport function createHighlightController(\n host: IgcHighlightComponent\n): HighlightService {\n return new HighlightService(host);\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Themes } from '
|
|
1
|
+
import type { Themes } from '#theming/types.js';
|
|
2
2
|
export declare const all: Themes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../../src/components/highlight/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAK1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;IACD,SAAS,EAAE,GAAG,CAAA;MACV,cAAc;GACjB;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,aAAa;GAChB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;IACD,SAAS,EAAE,GAAG,CAAA;MACV,aAAa;GAChB;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,YAAY;GACf;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\nimport type { Themes } from '
|
|
1
|
+
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../../src/components/highlight/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAK1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;IACD,SAAS,EAAE,GAAG,CAAA;MACV,cAAc;GACjB;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,aAAa;GAChB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;IACD,SAAS,EAAE,GAAG,CAAA;MACV,aAAa;GAChB;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,YAAY;GACf;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\nimport type { Themes } from '#theming/types.js';\n\n// Dark Overrides\nimport { styles as bootstrapDark } from './dark/highlight.bootstrap.css.js';\nimport { styles as fluentDark } from './dark/highlight.fluent.css.js';\nimport { styles as indigoDark } from './dark/highlight.indigo.css.js';\nimport { styles as materialDark } from './dark/highlight.material.css.js';\nimport { styles as sharedDark } from './dark/highlight.shared.css.js';\n// Light Overrides\nimport { styles as bootstrapLight } from './light/highlight.bootstrap.css.js';\nimport { styles as fluentLight } from './light/highlight.fluent.css.js';\nimport { styles as indigoLight } from './light/highlight.indigo.css.js';\nimport { styles as materialLight } from './light/highlight.material.css.js';\nimport { styles as sharedLight } from './light/highlight.shared.css.js';\n\nconst light = {\n shared: css`\n ${sharedLight}\n `,\n bootstrap: css`\n ${bootstrapLight}\n `,\n material: css`\n ${materialLight}\n `,\n indigo: css`\n ${indigoLight}\n `,\n fluent: css`\n ${fluentLight}\n `,\n};\n\nconst dark = {\n shared: css`\n ${sharedDark}\n `,\n bootstrap: css`\n ${bootstrapDark}\n `,\n material: css`\n ${materialDark}\n `,\n indigo: css`\n ${indigoDark}\n `,\n fluent: css`\n ${fluentDark}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
|
|
@@ -24,5 +24,6 @@
|
|
|
24
24
|
* To get acquainted with which component uses what icon, please make sure to read the
|
|
25
25
|
* [docs](https://infragistics.com/products/ignite-ui-angular/Angular/components/icon-service#internal-usage).
|
|
26
26
|
*/
|
|
27
|
-
import type {
|
|
28
|
-
|
|
27
|
+
import type { IconMeta, IconThemeKey } from './registry/types.js';
|
|
28
|
+
/** Resolved alias name -> theme -> target icon. */
|
|
29
|
+
export declare const ICON_REFERENCES: ReadonlyMap<string, ReadonlyMap<IconThemeKey, IconMeta>>;
|