igniteui-webcomponents 7.2.4 → 7.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +142 -0
- package/animations/player.js +1 -1
- 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 +7 -6
- package/components/accordion/accordion.js.map +1 -1
- package/components/avatar/avatar.js +3 -3
- package/components/avatar/avatar.js.map +1 -1
- package/components/avatar/themes/themes.d.ts +1 -1
- package/components/avatar/themes/themes.js.map +1 -1
- package/components/badge/badge.d.ts +1 -1
- package/components/badge/badge.js +5 -5
- package/components/badge/badge.js.map +1 -1
- package/components/badge/themes/themes.d.ts +1 -1
- package/components/badge/themes/themes.js.map +1 -1
- package/components/banner/banner.d.ts +2 -2
- package/components/banner/banner.js +8 -8
- package/components/banner/banner.js.map +1 -1
- package/components/banner/themes/themes.d.ts +1 -1
- package/components/banner/themes/themes.js.map +1 -1
- package/components/button/button-base.d.ts +2 -2
- package/components/button/button-base.js +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 +42 -21
- package/components/button-group/button-group.js +101 -106
- package/components/button-group/button-group.js.map +1 -1
- package/components/button-group/themes/button.d.ts +1 -1
- package/components/button-group/themes/button.js.map +1 -1
- package/components/button-group/themes/group.d.ts +1 -1
- package/components/button-group/themes/group.js.map +1 -1
- package/components/button-group/toggle-button.d.ts +17 -10
- package/components/button-group/toggle-button.js +28 -13
- package/components/button-group/toggle-button.js.map +1 -1
- package/components/calendar/base.d.ts +29 -10
- package/components/calendar/base.js +12 -15
- package/components/calendar/base.js.map +1 -1
- package/components/calendar/calendar.d.ts +39 -8
- package/components/calendar/calendar.js +96 -85
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.d.ts +49 -22
- package/components/calendar/days-view/days-view.js +102 -163
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/helpers.d.ts +3 -62
- package/components/calendar/helpers.js +6 -110
- package/components/calendar/helpers.js.map +1 -1
- package/components/calendar/months-view/months-view.d.ts +7 -21
- package/components/calendar/months-view/months-view.js +30 -83
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/selection.d.ts +21 -0
- package/components/calendar/selection.js +42 -0
- package/components/calendar/selection.js.map +1 -0
- package/components/calendar/themes/calendar.d.ts +1 -1
- package/components/calendar/themes/calendar.js.map +1 -1
- package/components/calendar/themes/days.d.ts +1 -1
- package/components/calendar/themes/days.js.map +1 -1
- package/components/calendar/themes/year-month.d.ts +1 -1
- package/components/calendar/themes/year-month.js.map +1 -1
- package/components/calendar/types.d.ts +18 -0
- package/components/calendar/types.js.map +1 -1
- package/components/calendar/year-month-view.base.d.ts +44 -0
- package/components/calendar/year-month-view.base.js +89 -0
- package/components/calendar/year-month-view.base.js.map +1 -0
- package/components/calendar/years-view/years-view.d.ts +7 -20
- package/components/calendar/years-view/years-view.js +25 -79
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/card/card.actions.js +2 -2
- package/components/card/card.actions.js.map +1 -1
- package/components/card/card.content.d.ts +1 -1
- package/components/card/card.content.js +2 -2
- package/components/card/card.content.js.map +1 -1
- package/components/card/card.d.ts +1 -1
- package/components/card/card.header.js +2 -2
- package/components/card/card.header.js.map +1 -1
- package/components/card/card.js +2 -2
- package/components/card/card.js.map +1 -1
- package/components/card/card.media.d.ts +1 -1
- package/components/card/card.media.js +1 -1
- package/components/card/card.media.js.map +1 -1
- package/components/card/themes/actions.d.ts +1 -1
- package/components/card/themes/actions.js.map +1 -1
- package/components/card/themes/container.d.ts +1 -1
- package/components/card/themes/container.js.map +1 -1
- package/components/card/themes/content.d.ts +1 -1
- package/components/card/themes/content.js.map +1 -1
- package/components/card/themes/header.d.ts +1 -1
- package/components/card/themes/header.js.map +1 -1
- package/components/carousel/animations.d.ts +1 -1
- package/components/carousel/animations.js +2 -2
- package/components/carousel/animations.js.map +1 -1
- package/components/carousel/carousel-indicator-container.js +4 -4
- package/components/carousel/carousel-indicator-container.js.map +1 -1
- package/components/carousel/carousel-indicator.d.ts +1 -1
- package/components/carousel/carousel-indicator.js +5 -5
- package/components/carousel/carousel-indicator.js.map +1 -1
- package/components/carousel/carousel-slide.d.ts +1 -1
- package/components/carousel/carousel-slide.js +9 -9
- package/components/carousel/carousel-slide.js.map +1 -1
- package/components/carousel/carousel.d.ts +7 -7
- package/components/carousel/carousel.js +39 -28
- package/components/carousel/carousel.js.map +1 -1
- package/components/carousel/themes/container.d.ts +1 -1
- package/components/carousel/themes/container.js.map +1 -1
- package/components/carousel/themes/indicator-container.d.ts +1 -1
- package/components/carousel/themes/indicator-container.js.map +1 -1
- package/components/chat/chat-input.d.ts +4 -4
- package/components/chat/chat-input.js +9 -8
- package/components/chat/chat-input.js.map +1 -1
- package/components/chat/chat-message.d.ts +1 -1
- package/components/chat/chat-message.js +7 -6
- package/components/chat/chat-message.js.map +1 -1
- package/components/chat/chat-state.d.ts +2 -2
- package/components/chat/chat-state.js +2 -1
- package/components/chat/chat-state.js.map +1 -1
- package/components/chat/chat.d.ts +4 -4
- package/components/chat/chat.js +7 -7
- package/components/chat/chat.js.map +1 -1
- package/components/chat/message-attachments.js +5 -5
- package/components/chat/message-attachments.js.map +1 -1
- package/components/chat/themes/attachments.d.ts +1 -1
- package/components/chat/themes/attachments.js.map +1 -1
- package/components/chat/themes/input.d.ts +1 -1
- package/components/chat/themes/input.js.map +1 -1
- package/components/chat/themes/message.d.ts +1 -1
- package/components/chat/themes/message.js.map +1 -1
- package/components/chat/themes/themes.d.ts +1 -1
- package/components/chat/themes/themes.js.map +1 -1
- package/components/chat/types.d.ts +2 -2
- package/components/chat/types.js.map +1 -1
- package/components/chat/utils.d.ts +1 -1
- package/components/chat/utils.js +3 -3
- package/components/chat/utils.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +7 -7
- package/components/checkbox/checkbox-base.js +7 -7
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.js +7 -6
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.js +7 -6
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/themes/checkbox-themes.d.ts +1 -1
- package/components/checkbox/themes/checkbox-themes.js.map +1 -1
- package/components/checkbox/themes/switch-themes.d.ts +1 -1
- package/components/checkbox/themes/switch-themes.js.map +1 -1
- package/components/checkbox/validators.d.ts +1 -1
- package/components/checkbox/validators.js +1 -1
- package/components/checkbox/validators.js.map +1 -1
- package/components/chip/chip.d.ts +9 -3
- package/components/chip/chip.js +10 -6
- package/components/chip/chip.js.map +1 -1
- package/components/chip/themes/chip.base.css.js +1 -1
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/dark/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/dark/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/dark/chip.fluent.css.js +1 -1
- package/components/chip/themes/dark/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/dark/chip.indigo.css.js +1 -1
- package/components/chip/themes/dark/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/dark/chip.material.css.js +1 -1
- package/components/chip/themes/dark/chip.material.css.js.map +1 -1
- package/components/chip/themes/light/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/light/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/light/chip.fluent.css.js +1 -1
- package/components/chip/themes/light/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/light/chip.indigo.css.js +1 -1
- package/components/chip/themes/light/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/light/chip.material.css.js +1 -1
- package/components/chip/themes/light/chip.material.css.js.map +1 -1
- package/components/chip/themes/light/chip.shared.css.js +1 -1
- package/components/chip/themes/light/chip.shared.css.js.map +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/shared/chip.common.css.js +1 -1
- package/components/chip/themes/shared/chip.common.css.js.map +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/themes.d.ts +1 -1
- package/components/chip/themes/themes.js.map +1 -1
- package/components/combo/combo-header.js +2 -2
- package/components/combo/combo-header.js.map +1 -1
- package/components/combo/combo-item.d.ts +0 -2
- package/components/combo/combo-item.js +4 -7
- package/components/combo/combo-item.js.map +1 -1
- package/components/combo/combo.d.ts +84 -27
- package/components/combo/combo.js +194 -157
- package/components/combo/combo.js.map +1 -1
- package/components/combo/controllers/data.d.ts +30 -3
- package/components/combo/controllers/data.js +34 -9
- package/components/combo/controllers/data.js.map +1 -1
- package/components/combo/controllers/navigation.d.ts +8 -2
- package/components/combo/controllers/navigation.js +11 -12
- package/components/combo/controllers/navigation.js.map +1 -1
- package/components/combo/operations/filter.d.ts +17 -1
- package/components/combo/operations/filter.js +29 -9
- package/components/combo/operations/filter.js.map +1 -1
- package/components/combo/operations/group.js +1 -1
- package/components/combo/operations/group.js.map +1 -1
- package/components/combo/themes/combo.base.css.js +1 -1
- package/components/combo/themes/combo.base.css.js.map +1 -1
- package/components/combo/themes/themes.d.ts +1 -1
- package/components/combo/themes/themes.js.map +1 -1
- package/components/combo/types.d.ts +8 -4
- package/components/combo/types.js.map +1 -1
- package/components/combo/validators.d.ts +1 -1
- package/components/combo/validators.js.map +1 -1
- package/components/date-picker/date-picker.base.d.ts +294 -0
- package/components/date-picker/date-picker.base.js +480 -0
- package/components/date-picker/date-picker.base.js.map +1 -0
- package/components/date-picker/date-picker.d.ts +53 -174
- package/components/date-picker/date-picker.js +88 -399
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/themes/themes.d.ts +1 -1
- package/components/date-picker/themes/themes.js.map +1 -1
- package/components/date-picker/validators.d.ts +1 -1
- package/components/date-picker/validators.js +2 -2
- package/components/date-picker/validators.js.map +1 -1
- package/components/date-range-picker/date-range-input.d.ts +12 -14
- package/components/date-range-picker/date-range-input.js +42 -98
- package/components/date-range-picker/date-range-input.js.map +1 -1
- package/components/date-range-picker/date-range-mask-parser.d.ts +22 -34
- package/components/date-range-picker/date-range-mask-parser.js +38 -69
- package/components/date-range-picker/date-range-mask-parser.js.map +1 -1
- package/components/date-range-picker/date-range-picker.d.ts +97 -191
- package/components/date-range-picker/date-range-picker.js +210 -532
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/predefined-ranges-area.d.ts +2 -2
- package/components/date-range-picker/predefined-ranges-area.js +5 -5
- package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
- package/components/date-range-picker/themes/ranges-themes.d.ts +1 -1
- package/components/date-range-picker/themes/ranges-themes.js.map +1 -1
- package/components/date-range-picker/themes/themes.d.ts +1 -1
- package/components/date-range-picker/themes/themes.js.map +1 -1
- package/components/date-range-picker/validators.d.ts +1 -1
- package/components/date-range-picker/validators.js +15 -22
- package/components/date-range-picker/validators.js.map +1 -1
- package/components/date-time-input/date-part.d.ts +18 -1
- package/components/date-time-input/date-part.js +10 -0
- package/components/date-time-input/date-part.js.map +1 -1
- package/components/date-time-input/date-time-input.base.d.ts +72 -25
- package/components/date-time-input/date-time-input.base.js +100 -36
- package/components/date-time-input/date-time-input.base.js.map +1 -1
- package/components/date-time-input/date-time-input.d.ts +13 -23
- package/components/date-time-input/date-time-input.js +45 -65
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/datetime-mask-parser.d.ts +45 -109
- package/components/date-time-input/datetime-mask-parser.js +88 -139
- package/components/date-time-input/datetime-mask-parser.js.map +1 -1
- package/components/date-time-input/validators.d.ts +1 -1
- package/components/date-time-input/validators.js +2 -2
- package/components/date-time-input/validators.js.map +1 -1
- package/components/dialog/dialog.d.ts +2 -2
- package/components/dialog/dialog.js +17 -18
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/themes/themes.d.ts +1 -1
- package/components/dialog/themes/themes.js.map +1 -1
- package/components/divider/divider.d.ts +2 -1
- package/components/divider/divider.js +3 -3
- package/components/divider/divider.js.map +1 -1
- package/components/divider/themes/themes.d.ts +1 -1
- package/components/divider/themes/themes.js.map +1 -1
- package/components/dropdown/dropdown-group.d.ts +10 -3
- package/components/dropdown/dropdown-group.js +21 -5
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown-header.d.ts +2 -2
- package/components/dropdown/dropdown-header.js +7 -2
- package/components/dropdown/dropdown-header.js.map +1 -1
- package/components/dropdown/dropdown-item.d.ts +4 -4
- package/components/dropdown/dropdown-item.js +3 -3
- package/components/dropdown/dropdown-item.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +75 -32
- package/components/dropdown/dropdown.js +189 -110
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/themes/container.d.ts +1 -1
- package/components/dropdown/themes/container.js.map +1 -1
- package/components/dropdown/themes/group.d.ts +1 -1
- package/components/dropdown/themes/group.js.map +1 -1
- package/components/dropdown/themes/header.d.ts +1 -1
- package/components/dropdown/themes/header.js.map +1 -1
- package/components/dropdown/themes/item.d.ts +1 -1
- package/components/dropdown/themes/item.js.map +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +14 -5
- package/components/expansion-panel/expansion-panel.js +10 -9
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/expansion-panel/themes/themes.d.ts +1 -1
- package/components/expansion-panel/themes/themes.js.map +1 -1
- package/components/file-input/file-input.d.ts +20 -12
- package/components/file-input/file-input.js +17 -12
- package/components/file-input/file-input.js.map +1 -1
- package/components/file-input/themes/themes.d.ts +1 -1
- package/components/file-input/themes/themes.js.map +1 -1
- package/components/file-input/validators.d.ts +1 -1
- package/components/file-input/validators.js +1 -1
- package/components/file-input/validators.js.map +1 -1
- package/components/focus-trap/focus-trap.js +3 -2
- package/components/focus-trap/focus-trap.js.map +1 -1
- package/components/highlight/highlight.js +2 -2
- package/components/highlight/highlight.js.map +1 -1
- package/components/highlight/service.d.ts +4 -1
- package/components/highlight/service.js +23 -7
- package/components/highlight/service.js.map +1 -1
- package/components/highlight/themes/themes.d.ts +1 -1
- package/components/highlight/themes/themes.js.map +1 -1
- package/components/icon/icon-references.d.ts +3 -2
- package/components/icon/icon-references.js +103 -491
- package/components/icon/icon-references.js.map +1 -1
- package/components/icon/icon-state.broadcast.d.ts +14 -17
- package/components/icon/icon-state.broadcast.js +19 -20
- package/components/icon/icon-state.broadcast.js.map +1 -1
- package/components/icon/icon.d.ts +12 -24
- 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 +15 -12
- package/components/input/input.js +8 -9
- 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 -24
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/mask-input/mask-parser.d.ts +20 -2
- package/components/mask-input/mask-parser.js +21 -13
- package/components/mask-input/mask-parser.js.map +1 -1
- package/components/mask-input/validators.d.ts +1 -1
- package/components/mask-input/validators.js +1 -1
- package/components/mask-input/validators.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -1
- package/components/nav-drawer/nav-drawer-header-item.js +2 -2
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.d.ts +2 -2
- package/components/nav-drawer/nav-drawer-item.js +4 -4
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.d.ts +3 -3
- package/components/nav-drawer/nav-drawer.js +11 -14
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/nav-drawer/themes/container.base.css.js +1 -1
- package/components/nav-drawer/themes/container.base.css.js.map +1 -1
- package/components/nav-drawer/themes/container.d.ts +1 -1
- package/components/nav-drawer/themes/container.js +2 -3
- package/components/nav-drawer/themes/container.js.map +1 -1
- package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js +1 -1
- package/components/nav-drawer/themes/dark/container/nav-drawer.shared.css.js.map +1 -1
- package/components/nav-drawer/themes/header-item.d.ts +1 -1
- package/components/nav-drawer/themes/header-item.js.map +1 -1
- package/components/nav-drawer/themes/item.d.ts +1 -1
- package/components/nav-drawer/themes/item.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.fluent.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js +1 -1
- package/components/nav-drawer/themes/light/container/nav-drawer.shared.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.material.css.js.map +1 -1
- package/components/navbar/navbar.js +2 -2
- package/components/navbar/navbar.js.map +1 -1
- package/components/navbar/themes/themes.d.ts +1 -1
- package/components/navbar/themes/themes.js.map +1 -1
- package/components/popover/popover.d.ts +10 -3
- package/components/popover/popover.js +114 -99
- package/components/popover/popover.js.map +1 -1
- package/components/progress/base.d.ts +1 -1
- package/components/progress/base.js +5 -4
- package/components/progress/base.js.map +1 -1
- package/components/progress/circular-gradient.d.ts +2 -2
- package/components/progress/circular-gradient.js +1 -1
- package/components/progress/circular-gradient.js.map +1 -1
- package/components/progress/circular-progress.d.ts +15 -15
- package/components/progress/circular-progress.js +7 -6
- package/components/progress/circular-progress.js.map +1 -1
- package/components/progress/linear-progress.d.ts +12 -12
- package/components/progress/linear-progress.js +4 -4
- package/components/progress/linear-progress.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js +1 -1
- package/components/progress/themes/circular/circular.progress.base.css.js.map +1 -1
- package/components/progress/themes/circular/themes.d.ts +1 -1
- package/components/progress/themes/circular/themes.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
- package/components/progress/themes/linear/themes.d.ts +1 -1
- package/components/progress/themes/linear/themes.js.map +1 -1
- package/components/qr-code/model/encode.d.ts +20 -0
- package/components/qr-code/model/encode.js +166 -0
- package/components/qr-code/model/encode.js.map +1 -0
- package/components/qr-code/model/error-correction.d.ts +15 -0
- package/components/qr-code/model/error-correction.js +1114 -0
- package/components/qr-code/model/error-correction.js.map +1 -0
- package/components/qr-code/model/mask.d.ts +11 -0
- package/components/qr-code/model/mask.js +161 -0
- package/components/qr-code/model/mask.js.map +1 -0
- package/components/qr-code/model/matrix.d.ts +15 -0
- package/components/qr-code/model/matrix.js +277 -0
- package/components/qr-code/model/matrix.js.map +1 -0
- package/components/qr-code/qr-code.d.ts +134 -0
- package/components/qr-code/qr-code.js +221 -0
- package/components/qr-code/qr-code.js.map +1 -0
- package/components/qr-code/renderer/constants.d.ts +26 -0
- package/components/qr-code/renderer/constants.js +5 -0
- package/components/qr-code/renderer/constants.js.map +1 -0
- package/components/qr-code/renderer/corner.d.ts +23 -0
- package/components/qr-code/renderer/corner.js +25 -0
- package/components/qr-code/renderer/corner.js.map +1 -0
- package/components/qr-code/renderer/dots.d.ts +14 -0
- package/components/qr-code/renderer/dots.js +7 -0
- package/components/qr-code/renderer/dots.js.map +1 -0
- package/components/qr-code/renderer/helpers.d.ts +18 -0
- package/components/qr-code/renderer/helpers.js +158 -0
- package/components/qr-code/renderer/helpers.js.map +1 -0
- package/components/qr-code/renderer/image.d.ts +23 -0
- package/components/qr-code/renderer/image.js +29 -0
- package/components/qr-code/renderer/image.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.bootstrap.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.bootstrap.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.fluent.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.indigo.css.js.map +1 -0
- package/components/qr-code/themes/dark/qr-code.material.css.d.ts +1 -0
- package/components/qr-code/themes/dark/qr-code.material.css.js +3 -0
- package/components/qr-code/themes/dark/qr-code.material.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.bootstrap.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.fluent.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.indigo.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.material.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.material.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.material.css.js.map +1 -0
- package/components/qr-code/themes/light/qr-code.shared.css.d.ts +1 -0
- package/components/qr-code/themes/light/qr-code.shared.css.js +3 -0
- package/components/qr-code/themes/light/qr-code.shared.css.js.map +1 -0
- package/components/qr-code/themes/qr-code.base.css.d.ts +1 -0
- package/components/qr-code/themes/qr-code.base.css.js +3 -0
- package/components/qr-code/themes/qr-code.base.css.js.map +1 -0
- package/components/qr-code/themes/shared/qr-code.common.css.d.ts +1 -0
- package/components/qr-code/themes/shared/qr-code.common.css.js +3 -0
- package/components/qr-code/themes/shared/qr-code.common.css.js.map +1 -0
- package/components/qr-code/themes/themes.d.ts +2 -0
- package/components/qr-code/themes/themes.js +46 -0
- package/components/qr-code/themes/themes.js.map +1 -0
- package/components/qr-code/types.d.ts +16 -0
- package/components/qr-code/types.js +2 -0
- package/components/qr-code/types.js.map +1 -0
- package/components/radio/controller.d.ts +35 -0
- package/components/radio/controller.js +100 -0
- package/components/radio/controller.js.map +1 -0
- package/components/radio/radio.d.ts +26 -14
- package/components/radio/radio.js +47 -36
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/themes.d.ts +1 -1
- package/components/radio/themes/themes.js.map +1 -1
- package/components/radio/validators.d.ts +1 -1
- package/components/radio/validators.js +5 -3
- package/components/radio/validators.js.map +1 -1
- package/components/radio-group/radio-group.d.ts +19 -10
- package/components/radio-group/radio-group.js +50 -41
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/radio-group/themes/themes.d.ts +1 -1
- package/components/radio-group/themes/themes.js.map +1 -1
- package/components/rating/rating-symbol.d.ts +1 -1
- package/components/rating/rating-symbol.js +1 -1
- package/components/rating/rating-symbol.js.map +1 -1
- package/components/rating/rating.d.ts +6 -6
- package/components/rating/rating.js +12 -9
- package/components/rating/rating.js.map +1 -1
- package/components/rating/themes/themes.d.ts +1 -1
- package/components/rating/themes/themes.js.map +1 -1
- package/components/resize-container/resize-container.d.ts +4 -4
- package/components/resize-container/resize-container.js +4 -4
- package/components/resize-container/resize-container.js.map +1 -1
- package/components/resize-container/resize-controller.js +2 -2
- package/components/resize-container/resize-controller.js.map +1 -1
- package/components/resize-container/themes/themes.d.ts +1 -1
- package/components/resize-container/themes/themes.js.map +1 -1
- package/components/ripple/ripple.d.ts +1 -1
- package/components/ripple/ripple.js +3 -2
- package/components/ripple/ripple.js.map +1 -1
- package/components/select/select-group.d.ts +9 -2
- package/components/select/select-group.js +21 -5
- package/components/select/select-group.js.map +1 -1
- package/components/select/select-header.d.ts +1 -1
- package/components/select/select-header.js +7 -2
- package/components/select/select-header.js.map +1 -1
- package/components/select/select-item.d.ts +4 -4
- package/components/select/select-item.js +3 -3
- package/components/select/select-item.js.map +1 -1
- package/components/select/select.d.ts +48 -27
- package/components/select/select.js +128 -74
- package/components/select/select.js.map +1 -1
- package/components/select/themes/select.base.css.js +1 -1
- package/components/select/themes/select.base.css.js.map +1 -1
- package/components/select/themes/themes.d.ts +1 -1
- package/components/select/themes/themes.js.map +1 -1
- package/components/select/validators.d.ts +1 -1
- package/components/select/validators.js +1 -1
- package/components/select/validators.js.map +1 -1
- package/components/slider/range-slider.d.ts +2 -2
- package/components/slider/range-slider.js +3 -3
- package/components/slider/range-slider.js.map +1 -1
- package/components/slider/slider-base.js +9 -5
- package/components/slider/slider-base.js.map +1 -1
- package/components/slider/slider-label.js +1 -1
- package/components/slider/slider-label.js.map +1 -1
- package/components/slider/slider.d.ts +3 -3
- package/components/slider/slider.js +6 -6
- package/components/slider/slider.js.map +1 -1
- package/components/slider/themes/themes.d.ts +1 -1
- package/components/slider/themes/themes.js.map +1 -1
- package/components/snackbar/snackbar.d.ts +3 -3
- package/components/snackbar/snackbar.js +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 +106 -23
- package/components/splitter/splitter.js +234 -147
- package/components/splitter/splitter.js.map +1 -1
- package/components/splitter/themes/themes.d.ts +1 -1
- package/components/splitter/themes/themes.js.map +1 -1
- package/components/splitter/types.d.ts +14 -3
- package/components/splitter/types.js.map +1 -1
- package/components/stepper/common/animations.d.ts +1 -1
- package/components/stepper/common/animations.js +2 -2
- package/components/stepper/common/animations.js.map +1 -1
- package/components/stepper/step.d.ts +1 -1
- package/components/stepper/step.js +7 -7
- package/components/stepper/step.js.map +1 -1
- package/components/stepper/stepper.d.ts +5 -5
- package/components/stepper/stepper.js +12 -9
- package/components/stepper/stepper.js.map +1 -1
- package/components/stepper/themes/step/themes.d.ts +1 -1
- package/components/stepper/themes/step/themes.js.map +1 -1
- package/components/tabs/tab-dom.d.ts +31 -28
- package/components/tabs/tab-dom.js +84 -34
- package/components/tabs/tab-dom.js.map +1 -1
- package/components/tabs/tab.d.ts +24 -6
- package/components/tabs/tab.js +34 -13
- package/components/tabs/tab.js.map +1 -1
- package/components/tabs/tabs.d.ts +36 -22
- package/components/tabs/tabs.js +113 -102
- package/components/tabs/tabs.js.map +1 -1
- package/components/tabs/themes/shared/tabs/tabs.indigo.css.js +1 -1
- package/components/tabs/themes/shared/tabs/tabs.indigo.css.js.map +1 -1
- package/components/tabs/themes/tab-themes.d.ts +1 -1
- package/components/tabs/themes/tab-themes.js.map +1 -1
- package/components/tabs/themes/tabs-themes.d.ts +1 -1
- package/components/tabs/themes/tabs-themes.js.map +1 -1
- package/components/tabs/themes/tabs.base.css.js +1 -1
- package/components/tabs/themes/tabs.base.css.js.map +1 -1
- package/components/textarea/textarea.d.ts +19 -14
- package/components/textarea/textarea.js +22 -17
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/themes.d.ts +1 -1
- package/components/textarea/themes/themes.js.map +1 -1
- package/components/textarea/validators.d.ts +1 -1
- package/components/textarea/validators.js +1 -1
- package/components/textarea/validators.js.map +1 -1
- package/components/theme-provider/theme-provider.d.ts +1 -1
- package/components/theme-provider/theme-provider.js +2 -2
- package/components/theme-provider/theme-provider.js.map +1 -1
- package/components/tile-manager/position.d.ts +1 -1
- package/components/tile-manager/position.js +2 -2
- package/components/tile-manager/position.js.map +1 -1
- package/components/tile-manager/resize-state.js +4 -3
- package/components/tile-manager/resize-state.js.map +1 -1
- package/components/tile-manager/themes/container.d.ts +1 -1
- package/components/tile-manager/themes/container.js.map +1 -1
- package/components/tile-manager/themes/tile.d.ts +1 -1
- package/components/tile-manager/themes/tile.js.map +1 -1
- package/components/tile-manager/tile-ghost-util.js +1 -1
- package/components/tile-manager/tile-ghost-util.js.map +1 -1
- package/components/tile-manager/tile-manager.d.ts +1 -1
- package/components/tile-manager/tile-manager.js +7 -7
- package/components/tile-manager/tile-manager.js.map +1 -1
- package/components/tile-manager/tile.d.ts +4 -4
- package/components/tile-manager/tile.js +16 -13
- package/components/tile-manager/tile.js.map +1 -1
- package/components/toast/themes/themes.d.ts +1 -1
- package/components/toast/themes/themes.js.map +1 -1
- package/components/toast/toast.d.ts +1 -1
- package/components/toast/toast.js +3 -3
- package/components/toast/toast.js.map +1 -1
- package/components/tooltip/controller.d.ts +18 -16
- package/components/tooltip/controller.js +62 -41
- package/components/tooltip/controller.js.map +1 -1
- package/components/tooltip/service.d.ts +2 -1
- package/components/tooltip/service.js +10 -15
- package/components/tooltip/service.js.map +1 -1
- package/components/tooltip/themes/shared/tooltip.common.css.js +1 -1
- package/components/tooltip/themes/shared/tooltip.common.css.js.map +1 -1
- package/components/tooltip/themes/shared/tooltip.indigo.css.js +1 -1
- package/components/tooltip/themes/shared/tooltip.indigo.css.js.map +1 -1
- package/components/tooltip/themes/themes.d.ts +1 -1
- package/components/tooltip/themes/themes.js.map +1 -1
- package/components/tooltip/themes/tooltip.base.css.js +1 -1
- package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
- package/components/tooltip/tooltip.d.ts +64 -18
- package/components/tooltip/tooltip.js +110 -60
- 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 +21 -14
- package/components/tree/tree.js +64 -72
- package/components/tree/tree.js.map +1 -1
- package/components/tree/tree.navigation.d.ts +39 -29
- package/components/tree/tree.navigation.js +140 -192
- package/components/tree/tree.navigation.js.map +1 -1
- package/components/tree/tree.selection.d.ts +32 -31
- package/components/tree/tree.selection.js +184 -178
- package/components/tree/tree.selection.js.map +1 -1
- package/components/types.js.map +1 -1
- package/components/validation-container/validation-container.d.ts +1 -1
- 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 +92 -0
- package/components/virtualization/engine.js +217 -0
- package/components/virtualization/engine.js.map +1 -0
- package/components/virtualization/types.d.ts +53 -0
- package/components/virtualization/types.js +14 -0
- package/components/virtualization/types.js.map +1 -0
- package/components/virtualization/virtualization.d.ts +235 -0
- package/components/virtualization/virtualization.js +474 -0
- package/components/virtualization/virtualization.js.map +1 -0
- package/components/visually-hidden/visually-hidden.js +1 -1
- package/components/visually-hidden/visually-hidden.js.map +1 -1
- package/custom-elements.json +57745 -48130
- 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/{components/common → internals}/controllers/drag.js +3 -2
- package/internals/controllers/drag.js.map +1 -0
- package/{components/common → internals}/controllers/focus-ring.js +5 -2
- package/internals/controllers/focus-ring.js.map +1 -0
- package/{components/common → internals}/controllers/fullscreen.js +6 -3
- package/internals/controllers/fullscreen.js.map +1 -0
- package/{components/common → internals}/controllers/gestures.d.ts +1 -1
- package/{components/common → internals}/controllers/gestures.js +4 -4
- package/internals/controllers/gestures.js.map +1 -0
- package/{components/common → internals}/controllers/id-resolver.js +15 -21
- package/internals/controllers/id-resolver.js.map +1 -0
- package/{components/common → internals}/controllers/internals.d.ts +39 -3
- package/{components/common → internals}/controllers/internals.js +28 -0
- package/internals/controllers/internals.js.map +1 -0
- package/{components/common → internals}/controllers/key-bindings.d.ts +3 -6
- package/{components/common → internals}/controllers/key-bindings.js +43 -29
- package/internals/controllers/key-bindings.js.map +1 -0
- package/{components/common → internals}/controllers/mutation-observer.d.ts +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/{components/common → internals}/controllers/slot.d.ts +17 -1
- package/{components/common → internals}/controllers/slot.js +18 -6
- package/internals/controllers/slot.js.map +1 -0
- package/internals/date/compare.d.ts +2 -0
- package/internals/date/compare.js +23 -0
- package/internals/date/compare.js.map +1 -0
- package/internals/date/converters.d.ts +18 -0
- package/internals/date/converters.js +73 -0
- package/internals/date/converters.js.map +1 -0
- package/{components/calendar → internals/date}/model.d.ts +6 -3
- package/{components/calendar → internals/date}/model.js +23 -0
- package/internals/date/model.js.map +1 -0
- package/internals/decorators/blazorAdditionalDependencies.js.map +1 -0
- package/internals/decorators/blazorDeepImport.js.map +1 -0
- package/internals/decorators/blazorInclude.js.map +1 -0
- package/internals/decorators/blazorIndirectRender.js.map +1 -0
- package/internals/decorators/blazorSuppressComponent.js.map +1 -0
- package/internals/decorators/shadow-options.js.map +1 -0
- package/internals/decorators/watch.js.map +1 -0
- package/internals/definitions/defineAllComponents.js +153 -0
- package/internals/definitions/defineAllComponents.js.map +1 -0
- package/internals/definitions/defineComponents.js.map +1 -0
- package/internals/definitions/register.js.map +1 -0
- package/{components/common → internals}/i18n/EN/calendar.resources.js +1 -1
- package/internals/i18n/EN/calendar.resources.js.map +1 -0
- package/internals/i18n/EN/chat.resources.js.map +1 -0
- package/internals/i18n/EN/date-picker.resources.js.map +1 -0
- package/internals/i18n/EN/date-range-picker.resources.js.map +1 -0
- package/internals/i18n/i18n-controller.js.map +1 -0
- package/{components/common → internals}/i18n/utils.js +1 -1
- package/internals/i18n/utils.js.map +1 -0
- package/{components/common → internals}/mixins/alert.d.ts +2 -2
- package/{components/common → internals}/mixins/alert.js +3 -3
- package/internals/mixins/alert.js.map +1 -0
- package/{components/common → internals}/mixins/combo-box.d.ts +10 -2
- package/{components/common → internals}/mixins/combo-box.js +9 -4
- package/internals/mixins/combo-box.js.map +1 -0
- package/internals/mixins/constructor.js.map +1 -0
- package/internals/mixins/event-emitter.js.map +1 -0
- package/{components/common → internals}/mixins/forms/associated-required.js +10 -19
- package/internals/mixins/forms/associated-required.js.map +1 -0
- package/{components/common → internals}/mixins/forms/associated.js +45 -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 +5 -6
- package/internals/mixins/forms/types.js.map +1 -0
- package/{components/common → internals}/mixins/mask-behavior.d.ts +11 -3
- package/{components/common → internals}/mixins/mask-behavior.js +117 -29
- package/internals/mixins/mask-behavior.js.map +1 -0
- package/{components/common → internals}/mixins/option.d.ts +0 -2
- package/{components/common → internals}/mixins/option.js +1 -4
- package/internals/mixins/option.js.map +1 -0
- package/internals/part-map.js.map +1 -0
- package/{components/common → internals}/templates/input-shell.d.ts +8 -1
- package/{components/common → internals}/templates/input-shell.js +14 -4
- package/internals/templates/input-shell.js.map +1 -0
- package/{components/common → internals}/templates/masked-input.d.ts +8 -4
- package/{components/common → internals}/templates/masked-input.js +4 -3
- package/internals/templates/masked-input.js.map +1 -0
- package/internals/utils/arrays.d.ts +53 -0
- package/internals/utils/arrays.js +31 -0
- package/internals/utils/arrays.js.map +1 -0
- package/internals/utils/dom.d.ts +92 -0
- package/internals/utils/dom.js +143 -0
- package/internals/utils/dom.js.map +1 -0
- package/internals/utils/events.d.ts +41 -0
- package/internals/utils/events.js +37 -0
- package/internals/utils/events.js.map +1 -0
- package/internals/utils/lit.d.ts +8 -0
- package/internals/utils/lit.js +15 -0
- package/internals/utils/lit.js.map +1 -0
- package/internals/utils/math.d.ts +50 -0
- package/internals/utils/math.js +38 -0
- package/internals/utils/math.js.map +1 -0
- package/internals/utils/objects.d.ts +25 -0
- package/internals/utils/objects.js +125 -0
- package/internals/utils/objects.js.map +1 -0
- package/internals/utils/strings.d.ts +44 -0
- package/internals/utils/strings.js +46 -0
- package/internals/utils/strings.js.map +1 -0
- package/internals/utils/types.d.ts +13 -0
- package/internals/utils/types.js +31 -0
- package/internals/utils/types.js.map +1 -0
- package/{components/common → internals}/validators.d.ts +1 -1
- package/{components/common → internals}/validators.js +4 -2
- package/internals/validators.js.map +1 -0
- package/package.json +15 -7
- package/themes/dark/bootstrap.css +1 -1
- package/themes/dark/fluent.css +1 -1
- package/themes/dark/indigo.css +1 -1
- package/themes/dark/material.css +1 -1
- package/themes/light/bootstrap.css +1 -1
- package/themes/light/fluent.css +1 -1
- package/themes/light/indigo.css +1 -1
- package/themes/light/material.css +1 -1
- package/theming/theming-controller.d.ts +2 -2
- package/theming/theming-controller.js.map +1 -1
- package/web-types.json +3 -3
- package/components/calendar/model.js.map +0 -1
- package/components/combo/combo-list.d.ts +0 -11
- package/components/combo/combo-list.js +0 -13
- package/components/combo/combo-list.js.map +0 -1
- package/components/common/abort-handler.js.map +0 -1
- package/components/common/context.d.ts +0 -25
- package/components/common/context.js.map +0 -1
- package/components/common/controllers/adopt-styles.d.ts +0 -124
- package/components/common/controllers/adopt-styles.js +0 -75
- package/components/common/controllers/adopt-styles.js.map +0 -1
- package/components/common/controllers/async-consumer.js.map +0 -1
- package/components/common/controllers/command.js.map +0 -1
- package/components/common/controllers/drag.js.map +0 -1
- package/components/common/controllers/focus-ring.js.map +0 -1
- package/components/common/controllers/fullscreen.js.map +0 -1
- package/components/common/controllers/gestures.js.map +0 -1
- package/components/common/controllers/id-resolver.js.map +0 -1
- package/components/common/controllers/internals.js.map +0 -1
- package/components/common/controllers/key-bindings.js.map +0 -1
- package/components/common/controllers/mutation-observer.js.map +0 -1
- package/components/common/controllers/resize-observer.js.map +0 -1
- package/components/common/controllers/root-click.js.map +0 -1
- package/components/common/controllers/root-scroll.js +0 -63
- package/components/common/controllers/root-scroll.js.map +0 -1
- package/components/common/controllers/slot.js.map +0 -1
- package/components/common/decorators/blazorAdditionalDependencies.js.map +0 -1
- package/components/common/decorators/blazorDeepImport.js.map +0 -1
- package/components/common/decorators/blazorInclude.js.map +0 -1
- package/components/common/decorators/blazorIndirectRender.js.map +0 -1
- package/components/common/decorators/blazorSuppressComponent.js.map +0 -1
- package/components/common/decorators/shadow-options.js.map +0 -1
- package/components/common/decorators/watch.js.map +0 -1
- package/components/common/definitions/defineAllComponents.js +0 -151
- package/components/common/definitions/defineAllComponents.js.map +0 -1
- package/components/common/definitions/defineComponents.js.map +0 -1
- package/components/common/definitions/register.js.map +0 -1
- package/components/common/i18n/EN/calendar.resources.js.map +0 -1
- package/components/common/i18n/EN/chat.resources.js.map +0 -1
- package/components/common/i18n/EN/date-picker.resources.js.map +0 -1
- package/components/common/i18n/EN/date-range-picker.resources.js.map +0 -1
- package/components/common/i18n/i18n-controller.js.map +0 -1
- package/components/common/i18n/utils.js.map +0 -1
- package/components/common/mixins/alert.js.map +0 -1
- package/components/common/mixins/combo-box.js.map +0 -1
- package/components/common/mixins/constructor.js.map +0 -1
- package/components/common/mixins/event-emitter.js.map +0 -1
- package/components/common/mixins/forms/associated-required.js.map +0 -1
- package/components/common/mixins/forms/associated.js.map +0 -1
- package/components/common/mixins/forms/form-transformers.js.map +0 -1
- package/components/common/mixins/forms/form-value.js.map +0 -1
- package/components/common/mixins/forms/types.js.map +0 -1
- package/components/common/mixins/mask-behavior.js.map +0 -1
- package/components/common/mixins/option.js.map +0 -1
- package/components/common/part-map.js.map +0 -1
- package/components/common/templates/input-shell.js.map +0 -1
- package/components/common/templates/masked-input.js.map +0 -1
- package/components/common/util.d.ts +0 -196
- package/components/common/util.js +0 -390
- package/components/common/util.js.map +0 -1
- package/components/common/validators.js.map +0 -1
- package/components/icon/registry/default-map.d.ts +0 -107
- package/components/icon/registry/default-map.js +0 -25
- package/components/icon/registry/default-map.js.map +0 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js +0 -3
- package/components/nav-drawer/themes/shared/container/nav-drawer.fluent.css.js.map +0 -1
- package/components/radio/utils.d.ts +0 -13
- package/components/radio/utils.js +0 -37
- package/components/radio/utils.js.map +0 -1
- /package/components/{nav-drawer/themes/shared/container/nav-drawer.fluent.css.d.ts → qr-code/themes/dark/qr-code.bootstrap.css.d.ts} +0 -0
- /package/{components/common → internals}/abort-handler.d.ts +0 -0
- /package/{components/common → internals}/abort-handler.js +0 -0
- /package/{components/common → internals}/controllers/async-consumer.d.ts +0 -0
- /package/{components/common → internals}/controllers/command.d.ts +0 -0
- /package/{components/common → internals}/controllers/command.js +0 -0
- /package/{components/common → internals}/controllers/drag.d.ts +0 -0
- /package/{components/common → internals}/controllers/focus-ring.d.ts +0 -0
- /package/{components/common → internals}/controllers/fullscreen.d.ts +0 -0
- /package/{components/common → internals}/controllers/id-resolver.d.ts +0 -0
- /package/{components/common → internals}/controllers/root-click.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorAdditionalDependencies.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorAdditionalDependencies.js +0 -0
- /package/{components/common → internals}/decorators/blazorDeepImport.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorDeepImport.js +0 -0
- /package/{components/common → internals}/decorators/blazorInclude.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorInclude.js +0 -0
- /package/{components/common → internals}/decorators/blazorIndirectRender.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorIndirectRender.js +0 -0
- /package/{components/common → internals}/decorators/blazorSuppressComponent.d.ts +0 -0
- /package/{components/common → internals}/decorators/blazorSuppressComponent.js +0 -0
- /package/{components/common → internals}/decorators/shadow-options.d.ts +0 -0
- /package/{components/common → internals}/decorators/shadow-options.js +0 -0
- /package/{components/common → internals}/decorators/watch.d.ts +0 -0
- /package/{components/common → internals}/decorators/watch.js +0 -0
- /package/{components/common → internals}/definitions/defineAllComponents.d.ts +0 -0
- /package/{components/common → internals}/definitions/defineComponents.d.ts +0 -0
- /package/{components/common → internals}/definitions/defineComponents.js +0 -0
- /package/{components/common → internals}/definitions/register.d.ts +0 -0
- /package/{components/common → internals}/definitions/register.js +0 -0
- /package/{components/common → internals}/i18n/EN/calendar.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/chat.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/chat.resources.js +0 -0
- /package/{components/common → internals}/i18n/EN/date-picker.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/date-picker.resources.js +0 -0
- /package/{components/common → internals}/i18n/EN/date-range-picker.resources.d.ts +0 -0
- /package/{components/common → internals}/i18n/EN/date-range-picker.resources.js +0 -0
- /package/{components/common → internals}/i18n/i18n-controller.d.ts +0 -0
- /package/{components/common → internals}/i18n/i18n-controller.js +0 -0
- /package/{components/common → internals}/i18n/utils.d.ts +0 -0
- /package/{components/common → internals}/mixins/constructor.d.ts +0 -0
- /package/{components/common → internals}/mixins/constructor.js +0 -0
- /package/{components/common → internals}/mixins/event-emitter.d.ts +0 -0
- /package/{components/common → internals}/mixins/event-emitter.js +0 -0
- /package/{components/common → internals}/mixins/forms/associated-required.d.ts +0 -0
- /package/{components/common → internals}/mixins/forms/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":"splitter.js","sourceRoot":"","sources":["../../../src/components/splitter/splitter.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { eventOptions, property, query, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { type StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { addInternalsController } from '../common/controllers/internals.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n endKey,\n homeKey,\n} from '../common/controllers/key-bindings.js';\nimport { createResizeObserverController } from '../common/controllers/resize-observer.js';\nimport { addSlotController, setSlots } from '../common/controllers/slot.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { Constructor } from '../common/mixins/constructor.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { partMap } from '../common/part-map.js';\nimport {\n asNumber,\n asPercent,\n bindIf,\n clamp,\n isLTR,\n roundPrecise,\n} from '../common/util.js';\nimport type { SplitterOrientation } from '../types.js';\nimport IgcVisuallyHiddenComponent from '../visually-hidden/visually-hidden.js';\nimport { styles as shared } from './themes/shared/splitter.common.css.js';\nimport { styles } from './themes/splitter.base.css.js';\nimport { all } from './themes/themes.js';\nimport type {\n IgcSplitterComponentEventMap,\n IgcSplitterResizeEventArgs,\n IgcSplitterResizeEventDetail,\n PanePosition,\n PaneResizeSnapshot,\n SplitterPaneState,\n SplitterResizeState,\n} from './types.js';\n\nconst KEYBOARD_RESIZE_STEP = 10;\n\nconst DEFAULT_RESIZE_STATE: SplitterResizeState = {\n startPane: null,\n endPane: null,\n isDragging: false,\n dragStartPosition: { x: 0, y: 0 },\n dragPointerId: -1,\n};\n\n/**\n * The `igc-splitter` component provides a resizable split-pane layout that divides the view\n * into two panels — *start* and *end* — separated by a draggable bar.\n *\n * Panels can be resized by dragging the bar, using keyboard shortcuts, or collapsed/expanded\n * using the built-in collapse buttons or the programmatic `toggle()` API.\n * Nested splitters are supported for more complex layouts.\n *\n * @example\n * ```html\n * <!-- Basic horizontal splitter -->\n * <igc-splitter>\n * <div slot=\"start\">Start panel</div>\n * <div slot=\"end\">End panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```html\n * <!-- Vertical splitter with size constraints -->\n * <igc-splitter orientation=\"vertical\" start-min-size=\"100px\" end-min-size=\"100px\">\n * <div slot=\"start\">Top panel</div>\n * <div slot=\"end\">Bottom panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```html\n * <!-- Nested splitters for a multi-pane layout -->\n * <igc-splitter style=\"height: 600px;\">\n * <igc-splitter slot=\"start\" orientation=\"vertical\">\n * <div slot=\"start\">Top left</div>\n * <div slot=\"end\">Bottom left</div>\n * </igc-splitter>\n * <div slot=\"end\">Right panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```ts\n * // Programmatically collapse/expand a pane\n * const splitter = document.querySelector('igc-splitter');\n * splitter.toggle('start'); // collapse start pane\n * splitter.toggle('start'); // expand start pane\n * ```\n *\n * ## Keyboard interactions\n *\n * When the splitter bar is focused:\n *\n * | Key | Action |\n * |---|---|\n * | `Arrow Left` / `Arrow Right` | Resize panes (horizontal orientation) |\n * | `Arrow Up` / `Arrow Down` | Resize panes (vertical orientation) |\n * | `Home` | Snap start pane to its minimum size |\n * | `End` | Snap start pane to its maximum size |\n * | `Ctrl + Arrow Left` / `Ctrl + Arrow Up` | Collapse or expand the start pane |\n * | `Ctrl + Arrow Right` / `Ctrl + Arrow Down` | Collapse or expand the end pane |\n *\n * @element igc-splitter\n *\n * @fires igcResizeStart - Emitted once when a resize operation begins (pointer drag or keyboard).\n * @fires igcResizing - Emitted continuously while a pane is being resized.\n * @fires igcResizeEnd - Emitted once when a resize operation completes.\n *\n * @slot start - Content projected into the start (left/top) panel.\n * @slot end - Content projected into the end (right/bottom) panel.\n *\n * @csspart splitter-bar - The resizable bar element between the two panels.\n * @csspart drag-handle - The drag handle icon/element on the splitter bar.\n * @csspart start-pane - The container for the start panel content.\n * @csspart end-pane - The container for the end panel content.\n * @csspart start-collapse-btn - The button to collapse the start panel.\n * @csspart end-collapse-btn - The button to collapse the end panel.\n * @csspart start-expand-btn - The button to expand the start panel when collapsed.\n * @csspart end-expand-btn - The button to expand the end panel when collapsed.\n */\nexport default class IgcSplitterComponent extends EventEmitterMixin<\n IgcSplitterComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-splitter';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcSplitterComponent, IgcVisuallyHiddenComponent);\n }\n\n //#region Private Properties\n\n private readonly _internals = addInternalsController(this);\n\n private readonly _separatorRef = createRef<HTMLElement>();\n\n private _startPaneState: SplitterPaneState = { size: 'auto', styles: {} };\n private _endPaneState: SplitterPaneState = { size: 'auto', styles: {} };\n\n @state()\n private _collapsedPane: PanePosition | null = null;\n\n @state()\n private _resizeState: SplitterResizeState = { ...DEFAULT_RESIZE_STATE };\n\n @query('[part~=\"base\"]', true)\n private readonly _base!: HTMLElement;\n\n @query('[part~=\"start-pane\"]', true)\n private readonly _startPane!: HTMLElement;\n\n @query('[part~=\"end-pane\"]', true)\n private readonly _endPane!: HTMLElement;\n\n private get _separator(): HTMLElement | undefined {\n return this._separatorRef.value;\n }\n\n private get _resizeDisallowed(): boolean {\n return this.disableResize || this._collapsedPane != null;\n }\n\n private get _isHorizontal(): boolean {\n return this.orientation === 'horizontal';\n }\n\n private get _separatorCursor(): string {\n if (this._resizeDisallowed) {\n return 'default';\n }\n return this._isHorizontal ? 'col-resize' : 'row-resize';\n }\n\n //#endregion\n\n //#region Public Properties\n\n /**\n * The orientation of the splitter, which determines the direction of resizing and collapsing.\n *\n * @attr orientation\n * @default 'horizontal'\n */\n @property({ reflect: true })\n public orientation: SplitterOrientation = 'horizontal';\n\n /**\n * When true, prevents the user from collapsing either pane.\n * This also hides the expand/collapse buttons on the splitter bar.\n *\n * @attr disable-collapse\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-collapse' })\n public disableCollapse = false;\n\n /**\n * When true, prevents the user from resizing the panes by dragging the splitter bar or using keyboard shortcuts.\n * This also hides the drag handle on the splitter bar.\n *\n * @attr disable-resize\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-resize' })\n public disableResize = false;\n\n /**\n * When true, hides the expand/collapse buttons on the splitter bar.\n *\n * Note that the buttons will also be hidden if `disable-collapse` is true or\n * if a pane is currently collapsed.\n *\n * @attr hide-collapse-buttons\n * @default false\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'hide-collapse-buttons',\n })\n public hideCollapseButtons = false;\n\n /**\n * When true, hides the drag handle on the splitter bar.\n *\n * Note that the drag handle will also be hidden if `disable-resize` is true.\n *\n * @attr hide-drag-handle\n * @default false\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'hide-drag-handle',\n })\n public hideDragHandle = false;\n\n /**\n * The minimum size of the start pane.\n *\n * @attr start-min-size\n */\n @property({ attribute: 'start-min-size' })\n public set startMinSize(value: string | undefined) {\n this._startPaneState.minSize = this._normalizeValue(value);\n }\n\n public get startMinSize(): string | undefined {\n return this._startPaneState.minSize;\n }\n\n /**\n * The minimum size of the end pane.\n *\n * @attr end-min-size\n */\n @property({ attribute: 'end-min-size' })\n public set endMinSize(value: string | undefined) {\n this._endPaneState.minSize = this._normalizeValue(value);\n }\n\n public get endMinSize(): string | undefined {\n return this._endPaneState.minSize;\n }\n\n /**\n * The maximum size of the start pane.\n *\n * @attr start-max-size\n */\n @property({ attribute: 'start-max-size' })\n public set startMaxSize(value: string | undefined) {\n this._startPaneState.maxSize = this._normalizeValue(value);\n }\n\n public get startMaxSize(): string | undefined {\n return this._startPaneState.maxSize;\n }\n\n /**\n * The maximum size of the end pane.\n *\n * @attr end-max-size\n */\n @property({ attribute: 'end-max-size' })\n public set endMaxSize(value: string | undefined) {\n this._endPaneState.maxSize = this._normalizeValue(value);\n }\n\n public get endMaxSize(): string | undefined {\n return this._endPaneState.maxSize;\n }\n\n /**\n * The size of the start pane.\n *\n * @attr start-size\n */\n @property({ attribute: 'start-size' })\n public set startSize(value: string | undefined) {\n this._startPaneState.size = this._normalizeValue(value, 'auto');\n }\n\n public get startSize(): string | undefined {\n return this._startPaneState.size;\n }\n\n /**\n * The size of the end pane.\n *\n * @attr end-size\n */\n @property({ attribute: 'end-size' })\n public set endSize(value: string | undefined) {\n this._endPaneState.size = this._normalizeValue(value, 'auto');\n }\n\n public get endSize(): string | undefined {\n return this._endPaneState.size;\n }\n\n //#endregion\n\n //#region Lifecycle\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addSlotController(this, { slots: setSlots('start', 'end') });\n\n createResizeObserverController(this, {\n callback: () => this.requestUpdate(),\n });\n\n addKeybindings(this, {\n ref: this._separatorRef,\n })\n .set(arrowUp, () => this._handleResizePanes(-1, 'vertical'))\n .set(arrowDown, () => this._handleResizePanes(1, 'vertical'))\n .set(arrowLeft, () => this._handleResizePanes(-1, 'horizontal'))\n .set(arrowRight, () => this._handleResizePanes(1, 'horizontal'))\n .set(homeKey, () => this._handleMinMaxResize('min'))\n .set(endKey, () => this._handleMinMaxResize('max'))\n .set([ctrlKey, arrowUp], () =>\n this._handleArrowsExpandCollapse('start', 'vertical')\n )\n .set([ctrlKey, arrowDown], () =>\n this._handleArrowsExpandCollapse('end', 'vertical')\n )\n .set([ctrlKey, arrowLeft], () =>\n this._handleArrowsExpandCollapse('start', 'horizontal')\n )\n .set([ctrlKey, arrowRight], () =>\n this._handleArrowsExpandCollapse('end', 'horizontal')\n );\n }\n\n protected override update(changed: PropertyValues<this>): void {\n if (changed.get('orientation') != null) {\n for (const pane of ['start', 'end'] as PanePosition[]) {\n const state = this._getPaneState(pane);\n state.size = 'auto';\n state.minSize = undefined;\n state.maxSize = undefined;\n }\n }\n\n if (this.hasUpdated) {\n this._updatePanes();\n }\n\n super.update(changed);\n }\n\n protected override updated(): void {\n this._updateBarAria();\n }\n\n //#endregion\n\n //#region Resize Event Handlers\n\n private _handleBarPointerDown(e: PointerEvent): void {\n if (e.button !== 0) {\n return;\n }\n\n e.preventDefault();\n\n this._resizeState = {\n ...this._resizeState,\n isDragging: true,\n dragPointerId: e.pointerId,\n dragStartPosition: { x: e.clientX, y: e.clientY },\n };\n\n this._resizeStart();\n this._separator?.setPointerCapture(this._resizeState.dragPointerId);\n }\n\n private _getDragDelta(e: PointerEvent): number {\n const deltaX = e.clientX - this._resizeState.dragStartPosition.x;\n const deltaY = e.clientY - this._resizeState.dragStartPosition.y;\n return this._resolveDelta(deltaX, deltaY);\n }\n\n private _handleBarPointerMove(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n const delta = this._getDragDelta(e);\n\n if (delta !== 0) {\n this._resizing(delta);\n }\n }\n\n private _handleEndDrag(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n const delta = this._getDragDelta(e);\n\n if (delta !== 0) {\n this._resizeEnd(delta);\n }\n\n this._endDrag();\n }\n\n private _endDrag(): void {\n if (this._resizeState.dragPointerId !== -1) {\n this._separator?.releasePointerCapture(this._resizeState.dragPointerId);\n }\n this._resizeState = { ...DEFAULT_RESIZE_STATE };\n }\n\n //#endregion\n\n //#region Public Methods\n\n /** Toggles the collapsed state of the specified pane. */\n public toggle(position: PanePosition): void {\n if (this._collapsedPane === null) {\n this._savePaneSizes();\n }\n\n // If the requested pane is already collapsed, expand it (set to null)\n // Otherwise, collapse the requested pane (this also handles switching from one collapsed pane to another)\n this._collapsedPane = this._collapsedPane === position ? null : position;\n\n this._internals.setState('start-collapsed', this._isCollapsed('start'));\n this._internals.setState('end-collapsed', this._isCollapsed('end'));\n\n this._restoreSizesOnExpandCollapse();\n }\n\n //#endregion\n\n //#region Internal API\n\n private _savePaneSizes(): void {\n this._startPaneState.savedSize = `${this._paneRectAsPercent(0)}%`;\n this._endPaneState.savedSize = `${this._paneRectAsPercent(1)}%`;\n }\n\n /* Reset sizes on collapse; restore saved sizes on expand */\n private _restoreSizesOnExpandCollapse(): void {\n if (this._collapsedPane !== null) {\n this._startPaneState.size = 'auto';\n this._endPaneState.size = 'auto';\n } else {\n this._startPaneState.size =\n this._startPaneState.savedSize ?? this.startSize;\n this._endPaneState.size = this._endPaneState.savedSize ?? this.endSize;\n }\n }\n\n /** Measures the actual rendered size of a pane and returns it as a percentage of total size. */\n private _paneRectAsPercent(paneIndex: 0 | 1): number {\n const totalSize = this._getTotalSize();\n if (totalSize === 0) {\n return 0;\n }\n return roundPrecise(asPercent(this._rectSize()[paneIndex], totalSize), 0);\n }\n\n /** Converts a CSS size string (px or %) to a percentage of total size. */\n private _sizeToPercent(sizeValue: string): number {\n const totalSize = this._getTotalSize();\n if (totalSize === 0) {\n return 0;\n }\n\n if (sizeValue.includes('%')) {\n return asNumber(sizeValue);\n }\n\n const pxValue = asNumber(sizeValue);\n return roundPrecise(asPercent(pxValue, totalSize), 0);\n }\n\n private _getStartPaneSizePercent(): number {\n if (!this._startPane || this._isCollapsed('start')) {\n return 0;\n }\n\n if (this._isCollapsed('end')) {\n return 100;\n }\n\n return this._paneRectAsPercent(0);\n }\n\n private _getMinMaxAsPercent(type: 'min' | 'max'): number {\n const value = type === 'min' ? this.startMinSize : this.startMaxSize;\n const defaultValue = type === 'min' ? 0 : 100;\n\n return value ? this._sizeToPercent(value) : defaultValue;\n }\n\n private _isCollapsed(which: PanePosition): boolean {\n return this._collapsedPane === which;\n }\n\n private _updateBarAria(): void {\n if (this._separator) {\n this._separator.ariaValueNow = this._getStartPaneSizePercent().toString();\n this._separator.ariaValueMin = this._getMinMaxAsPercent('min').toString();\n this._separator.ariaValueMax = this._getMinMaxAsPercent('max').toString();\n }\n }\n\n private _getPaneState(which: PanePosition): SplitterPaneState {\n return which === 'start' ? this._startPaneState : this._endPaneState;\n }\n\n private _isPercentageSize(which: PanePosition): boolean {\n const { size } = this._getPaneState(which);\n return !!size && size.includes('%');\n }\n\n private _isAutoSize(which: PanePosition): boolean {\n return this._getPaneState(which).size === 'auto';\n }\n\n private _normalizeValue(\n value: string | undefined,\n fallback?: 'auto'\n ): string | undefined {\n const trimmed = value?.trim();\n if (!trimmed || trimmed === 'auto') {\n return fallback;\n }\n\n const numericValue = asNumber(trimmed, -1);\n if (numericValue < 0) return fallback;\n if (trimmed.includes('%') && numericValue > 100) return fallback;\n\n return trimmed;\n }\n\n private _getFlex(which: PanePosition): string {\n const isAuto = this._isAutoSize(which);\n const size = isAuto ? '0px' : this._getPaneState(which).size;\n return `${isAuto ? 1 : 0} 1 ${size}`;\n }\n\n private _handleResizePanes(\n direction: -1 | 1,\n validOrientation: SplitterOrientation\n ): void {\n if (this._resizeDisallowed || this.orientation !== validOrientation) {\n return;\n }\n const delta = this._resolveDelta(\n KEYBOARD_RESIZE_STEP,\n KEYBOARD_RESIZE_STEP,\n direction\n );\n\n this._resizeStart();\n this._resizing(delta);\n this._resizeEnd(delta);\n }\n\n @eventOptions({ passive: false })\n private _preventDefaultForEvent(e: Event): void {\n e.preventDefault();\n }\n\n private _resolveDelta(\n deltaX: number,\n deltaY: number,\n direction?: -1 | 1\n ): number {\n const isHorizontal = this._isHorizontal;\n const rtlMultiplier = isHorizontal && !isLTR(this) ? -1 : 1;\n const delta = isHorizontal ? deltaX : deltaY;\n return delta * rtlMultiplier * (direction ?? 1);\n }\n\n private _handleMinMaxResize(type: 'min' | 'max'): void {\n if (this._resizeDisallowed) {\n return;\n }\n\n const totalSize = this._getTotalSize();\n const boundaryValue =\n type === 'min' ? this.startMinSize : this.startMaxSize;\n const isPercentage = boundaryValue\n ? boundaryValue.includes('%')\n : type === 'max';\n\n const targetStartSizePx =\n this._setMinMaxInPx('start', type) ?? (type === 'min' ? 0 : totalSize);\n const targetEndSizePx = totalSize - targetStartSizePx;\n\n if (isPercentage) {\n this.startSize = `${roundPrecise(asPercent(targetStartSizePx, totalSize), 2)}%`;\n this.endSize = `${roundPrecise(asPercent(targetEndSizePx, totalSize), 2)}%`;\n } else {\n this.startSize = `${targetStartSizePx}px`;\n this.endSize = `${targetEndSizePx}px`;\n }\n }\n\n private _handleExpanderAction(pane: PanePosition): void {\n const other: PanePosition = pane === 'start' ? 'end' : 'start';\n this.toggle(this._collapsedPane === other ? other : pane);\n }\n\n private _handleArrowsExpandCollapse(\n target: PanePosition,\n validOrientation: SplitterOrientation\n ): void {\n if (this.disableCollapse || this.orientation !== validOrientation) {\n return;\n }\n const effectiveTarget: PanePosition =\n validOrientation === 'horizontal' && !isLTR(this)\n ? target === 'start'\n ? 'end'\n : 'start'\n : target;\n this._handleExpanderAction(effectiveTarget);\n }\n\n private _resizeStart(): void {\n const [startSize, endSize] = this._rectSize();\n const totalSize = this._getTotalSize();\n\n this._resizeState.startPane = this._createPaneState(\n 'start',\n startSize,\n totalSize\n );\n this._resizeState.endPane = this._createPaneState(\n 'end',\n endSize,\n totalSize\n );\n\n this.emitEvent('igcResizeStart', {\n detail: { startPanelSize: startSize, endPanelSize: endSize },\n });\n }\n\n private _createPaneState(\n pane: PanePosition,\n size: number,\n totalSize?: number\n ): PaneResizeSnapshot {\n return {\n initialSize: size,\n isPercentageBased: this._isPercentageSize(pane) || this._isAutoSize(pane),\n minSizePx: this._setMinMaxInPx(pane, 'min', totalSize),\n maxSizePx: this._setMinMaxInPx(pane, 'max', totalSize),\n };\n }\n\n private _setMinMaxInPx(\n pane: PanePosition,\n type: 'min' | 'max',\n totalSize?: number\n ): number | undefined {\n const paneState = this._getPaneState(pane);\n const value = type === 'max' ? paneState.maxSize : paneState.minSize;\n const valueAsNumber = asNumber(value);\n\n if (!value) {\n return undefined;\n }\n\n return value.includes('%')\n ? (valueAsNumber / 100) * (totalSize ?? this._getTotalSize())\n : valueAsNumber;\n }\n\n private _resizing(delta: number): void {\n const [startPaneSize, endPaneSize] = this._calcNewSizes(delta);\n\n this.startSize = `${startPaneSize}px`;\n this.endSize = `${endPaneSize}px`;\n\n this.emitEvent('igcResizing', {\n detail: {\n startPanelSize: startPaneSize,\n endPanelSize: endPaneSize,\n delta,\n },\n });\n }\n\n private _computeSize(\n pane: PaneResizeSnapshot,\n paneSize: number,\n totalSize: number\n ): string {\n return pane.isPercentageBased\n ? `${asPercent(paneSize, totalSize)}%`\n : `${roundPrecise(paneSize, 0)}px`;\n }\n\n private _resizeEnd(delta: number): void {\n if (!this._resizeState.startPane || !this._resizeState.endPane) {\n return;\n }\n\n const [startPaneSize, endPaneSize] = this._calcNewSizes(delta);\n const totalSize = this._getTotalSize();\n\n this.startSize = this._computeSize(\n this._resizeState.startPane,\n startPaneSize,\n totalSize\n );\n this.endSize = this._computeSize(\n this._resizeState.endPane,\n endPaneSize,\n totalSize\n );\n\n this.emitEvent('igcResizeEnd', {\n detail: {\n startPanelSize: startPaneSize,\n endPanelSize: endPaneSize,\n delta,\n },\n });\n }\n\n private _rectSize(): [number, number] {\n const axis = this._isHorizontal ? 'width' : 'height';\n const startPaneRect = this._startPane.getBoundingClientRect();\n const endPaneRect = this._endPane.getBoundingClientRect();\n\n return [startPaneRect[axis], endPaneRect[axis]];\n }\n\n private _calcNewSizes(delta: number): [number, number] {\n if (!this._resizeState.startPane || !this._resizeState.endPane)\n return [0, 0];\n\n const start = this._resizeState.startPane;\n const end = this._resizeState.endPane;\n const minStart = start.minSizePx || 0;\n const minEnd = end.minSizePx || 0;\n const maxStart =\n start.maxSizePx || start.initialSize + end.initialSize - minEnd;\n const maxEnd =\n end.maxSizePx || start.initialSize + end.initialSize - minStart;\n\n const maxPosDelta = Math.min(\n maxStart - start.initialSize,\n end.initialSize - minEnd\n );\n const maxNegDelta = Math.min(\n start.initialSize - minStart,\n maxEnd - end.initialSize\n );\n const finalDelta = clamp(delta, -maxNegDelta, maxPosDelta);\n\n return [start.initialSize + finalDelta, end.initialSize - finalDelta];\n }\n\n private _getTotalSize(): number {\n if (!this._base) {\n return 0;\n }\n\n const axis = this._isHorizontal ? 'width' : 'height';\n const barSize = this._separator\n ? roundPrecise(this._separator.getBoundingClientRect()[axis])\n : 0;\n\n const rect = this._base.getBoundingClientRect();\n const size = rect[axis];\n return size - barSize;\n }\n\n private _updatePanes(): void {\n const totalSize = this._getTotalSize();\n const isCollapsed = this._collapsedPane !== null;\n\n for (const pane of ['start', 'end'] as PanePosition[]) {\n const state = this._getPaneState(pane);\n if (isCollapsed) {\n state.size = 'auto';\n state.minSize = undefined;\n state.maxSize = undefined;\n }\n this._setPaneMinMaxSizes(\n pane,\n isCollapsed ? '0' : state.minSize,\n isCollapsed ? '100%' : state.maxSize,\n totalSize\n );\n this._updatePaneStyles(pane, { flex: this._getFlex(pane) });\n }\n }\n\n private _updatePaneStyles(pane: PanePosition, styles: StyleInfo): void {\n Object.assign(this._getPaneState(pane).styles, styles);\n }\n\n private _setPaneMinMaxSizes(\n pane: PanePosition,\n minSize?: string,\n maxSize?: string,\n totalSize?: number\n ): void {\n const min =\n this._ensureMinConstraintIsWithinBounds(pane, minSize, totalSize) ?? 0;\n const max = maxSize ?? '100%';\n\n this._updatePaneStyles(\n pane,\n this._isHorizontal\n ? { minWidth: min, maxWidth: max, minHeight: 0, maxHeight: '100%' }\n : { minWidth: 0, maxWidth: '100%', minHeight: min, maxHeight: max }\n );\n }\n\n private _ensureMinConstraintIsWithinBounds(\n pane: PanePosition,\n minSize?: string,\n totalSize?: number\n ): string | undefined {\n const total = totalSize ?? this._getTotalSize();\n\n if (minSize && total > 0) {\n const minPx = this._setMinMaxInPx(pane, 'min', total) ?? 0;\n const other: PanePosition = pane === 'start' ? 'end' : 'start';\n const otherMinPx = this._getPaneState(other).minSize\n ? (this._setMinMaxInPx(other, 'min', total) ?? 0)\n : 0;\n\n // Ignore constraint if it exceeds total or combined exceeds total to prevent content overflow\n // Once container grows to accommodate the constraint, it will be applied\n if (minPx > total || minPx + otherMinPx > total) {\n return undefined;\n }\n }\n return minSize;\n }\n\n private _handleExpanderClick(pane: PanePosition, event: PointerEvent): void {\n // Prevent resize action being initiated\n event.stopPropagation();\n this._handleExpanderAction(pane);\n }\n\n //#endregion\n\n //#region Rendering\n\n private _resolvePartNames(expander: PanePosition): Record<string, boolean> {\n const other: PanePosition = expander === 'start' ? 'end' : 'start';\n const otherIsCollapsed = this._isCollapsed(other);\n\n return {\n [`${other}-expand-btn`]: otherIsCollapsed,\n [`${expander}-collapse-btn`]: !otherIsCollapsed,\n };\n }\n\n private _renderBarControls() {\n const dragHandleHidden = this.hideDragHandle || this.disableResize;\n const hidden = this.disableCollapse || this.hideCollapseButtons;\n const prevButtonHidden = hidden || this._isCollapsed('start');\n const nextButtonHidden = hidden || this._isCollapsed('end');\n\n return html`\n <div\n part=\"${partMap(this._resolvePartNames('start'))}\"\n ?hidden=${prevButtonHidden}\n @pointerdown=${(e: PointerEvent) =>\n this._handleExpanderClick('start', e)}\n ></div>\n <div part=\"drag-handle\" ?hidden=${dragHandleHidden}></div>\n <div\n part=\"${partMap(this._resolvePartNames('end'))}\"\n ?hidden=${nextButtonHidden}\n @pointerdown=${(e: PointerEvent) => this._handleExpanderClick('end', e)}\n ></div>\n `;\n }\n\n private _renderAccessibleLabel() {\n return html`\n <igc-visually-hidden id=\"splitter-label\">\n ${\n this._isCollapsed('start')\n ? 'Start pane collapsed'\n : 'Start pane expanded'\n }\n and\n ${this._isCollapsed('end') ? 'End pane collapsed' : 'End pane expanded'}\n </igc-visually-hidden>\n `;\n }\n\n private _renderSeparator() {\n const isDragging = this._resizeState.isDragging;\n const canResize = !this._resizeDisallowed;\n\n return html`\n <div\n ${ref(this._separatorRef)}\n part=\"splitter-bar\"\n role=\"separator\"\n tabindex=${this.disableCollapse && this.disableResize ? -1 : 0}\n aria-controls=\"start-pane end-pane\"\n aria-labelledby=\"splitter-label\"\n aria-orientation=${this.orientation}\n style=${styleMap({ '--cursor': this._separatorCursor })}\n @touchstart=${bindIf(canResize, this._preventDefaultForEvent)}\n @contextmenu=${bindIf(canResize, this._preventDefaultForEvent)}\n @pointerdown=${bindIf(canResize, this._handleBarPointerDown)}\n @pointermove=${bindIf(isDragging, this._handleBarPointerMove)}\n @pointerup=${bindIf(isDragging, this._handleEndDrag)}\n @lostpointercapture=${bindIf(isDragging, this._handleEndDrag)}\n @pointercancel=${bindIf(isDragging, this._endDrag)}\n >\n ${this._renderBarControls()}\n </div>\n `;\n }\n\n protected override render() {\n return html`\n ${this._renderAccessibleLabel()}\n <div part=\"base\">\n <div\n part=\"start-pane\"\n id=\"start-pane\"\n style=${styleMap(this._startPaneState.styles)}\n >\n <slot name=\"start\"></slot>\n </div>\n ${this._renderSeparator()}\n <div\n part=\"end-pane\"\n id=\"end-pane\"\n style=${styleMap(this._endPaneState.styles)}\n >\n <slot name=\"end\"></slot>\n </div>\n </div>\n `;\n }\n\n //#endregion\n}\n\nexport type {\n IgcSplitterComponentEventMap,\n IgcSplitterResizeEventArgs,\n IgcSplitterResizeEventDetail,\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-splitter': IgcSplitterComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"splitter.js","sourceRoot":"","sources":["../../../src/components/splitter/splitter.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { eventOptions, property, query, state } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { type StyleInfo, styleMap } from 'lit/directives/style-map.js';\nimport { addInternalsController } from '#internals/controllers/internals.js';\nimport {\n addKeybindings,\n arrowDown,\n arrowLeft,\n arrowRight,\n arrowUp,\n ctrlKey,\n endKey,\n homeKey,\n} from '#internals/controllers/key-bindings.js';\nimport { createResizeObserverController } from '#internals/controllers/resize-observer.js';\nimport { addSlotController, setSlots } from '#internals/controllers/slot.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport type { Constructor } from '#internals/mixins/constructor.js';\nimport { EventEmitterMixin } from '#internals/mixins/event-emitter.js';\nimport { partMap } from '#internals/part-map.js';\nimport { isLTR, resolveCssLength } from '#internals/utils/dom.js';\nimport { bindIf } from '#internals/utils/lit.js';\nimport {\n asNumber,\n asPercent,\n clamp,\n roundPrecise,\n} from '#internals/utils/math.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport type { SplitterOrientation } from '../types.js';\nimport IgcVisuallyHiddenComponent from '../visually-hidden/visually-hidden.js';\nimport { styles as shared } from './themes/shared/splitter.common.css.js';\nimport { styles } from './themes/splitter.base.css.js';\nimport { all } from './themes/themes.js';\nimport type {\n IgcSplitterComponentEventMap,\n IgcSplitterLayoutChangedEventArgs,\n IgcSplitterResizeEventArgs,\n IgcSplitterResizeEventDetail,\n PanePosition,\n PaneResizeSnapshot,\n SplitterPaneState,\n SplitterResizeState,\n} from './types.js';\n\nconst KEYBOARD_RESIZE_STEP = 10;\n\nconst PANES = ['start', 'end'] as const satisfies readonly PanePosition[];\n\n/** A number carrying a percentage sign or one of the CSS length units. */\nconst CSS_LENGTH =\n /^[+-]?(\\d+\\.?\\d*|\\.\\d+)(%|px|em|rem|ch|ex|cap|ic|lh|rlh|vw|vh|vi|vb|vmin|vmax|cm|mm|q|in|pt|pc)$/i;\n\n/** A bare number, with no unit at all. */\nconst UNITLESS_NUMBER = /^[+-]?(\\d+\\.?\\d*|\\.\\d+)$/;\n\nconst DEFAULT_RESIZE_STATE: SplitterResizeState = {\n startPane: null,\n endPane: null,\n dragStartPosition: { x: 0, y: 0 },\n dragPointerId: -1,\n};\n\n/**\n * A splitter component that provides a resizable split-pane layout, dividing the view\n * into two panels — *start* and *end* — separated by a draggable bar.\n *\n * Panels can be resized by dragging the bar, using keyboard shortcuts, or collapsed/expanded\n * using the built-in collapse buttons or the programmatic `toggle()` API.\n * Nested splitters are supported for more complex layouts.\n *\n * @example\n * ```html\n * <!-- Basic horizontal splitter -->\n * <igc-splitter>\n * <div slot=\"start\">Start panel</div>\n * <div slot=\"end\">End panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```html\n * <!-- Vertical splitter with size constraints -->\n * <igc-splitter orientation=\"vertical\" start-min-size=\"100px\" end-min-size=\"100px\">\n * <div slot=\"start\">Top panel</div>\n * <div slot=\"end\">Bottom panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```html\n * <!-- Nested splitters for a multi-pane layout -->\n * <igc-splitter style=\"height: 600px;\">\n * <igc-splitter slot=\"start\" orientation=\"vertical\">\n * <div slot=\"start\">Top left</div>\n * <div slot=\"end\">Bottom left</div>\n * </igc-splitter>\n * <div slot=\"end\">Right panel</div>\n * </igc-splitter>\n * ```\n *\n * @example\n * ```ts\n * // Programmatically collapse/expand a pane\n * const splitter = document.querySelector('igc-splitter');\n * splitter.toggle('start'); // collapse start pane\n * splitter.toggle('start'); // expand start pane\n * ```\n *\n * ## Keyboard interactions\n *\n * When the splitter bar is focused:\n *\n * | Key | Action |\n * |---|---|\n * | `Arrow Left` / `Arrow Right` | Resize panes (horizontal orientation) |\n * | `Arrow Up` / `Arrow Down` | Resize panes (vertical orientation) |\n * | `Home` | Snap start pane to its minimum size |\n * | `End` | Snap start pane to its maximum size |\n * | `Ctrl + Arrow Left` / `Ctrl + Arrow Up` | Collapse or expand the start pane |\n * | `Ctrl + Arrow Right` / `Ctrl + Arrow Down` | Collapse or expand the end pane |\n *\n * @element igc-splitter\n *\n * @fires igcResizeStart - Emitted once when a resize operation begins (pointer drag or keyboard).\n * @fires igcResizing - Emitted continuously while a pane is being resized.\n * @fires igcResizeEnd - Emitted once when a resize operation completes.\n * @fires igcLayoutChanged - Emitted after a user-driven resize or expansion change, with a full\n * snapshot of the current layout (pane sizes and collapsed states).\n *\n * @slot start - Content projected into the start (left/top) panel.\n * @slot end - Content projected into the end (right/bottom) panel.\n *\n * @csspart splitter-bar - The resizable bar element between the two panels.\n * @csspart drag-handle - The drag handle icon/element on the splitter bar.\n * @csspart start-pane - The container for the start panel content.\n * @csspart end-pane - The container for the end panel content.\n * @csspart start-collapse-btn - The button to collapse the start panel.\n * @csspart end-collapse-btn - The button to collapse the end panel.\n * @csspart start-expand-btn - The button to expand the start panel when collapsed.\n * @csspart end-expand-btn - The button to expand the end panel when collapsed.\n *\n * @remarks\n * The bar holds two expander elements, one on either side of the drag handle,\n * and each carries whichever part name applies to the current collapsed state.\n * A part name is therefore not tied to a fixed side: with the end pane\n * collapsed, `end-expand-btn` lands on the *first* of the two.\n */\nexport default class IgcSplitterComponent extends EventEmitterMixin<\n IgcSplitterComponentEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-splitter';\n public static styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcSplitterComponent, IgcVisuallyHiddenComponent);\n }\n\n //#region Private Properties\n\n private readonly _internals = addInternalsController(this);\n\n private readonly _separatorRef = createRef<HTMLElement>();\n\n private readonly _startPaneState: SplitterPaneState = {\n size: 'auto',\n styles: {},\n };\n private readonly _endPaneState: SplitterPaneState = {\n size: 'auto',\n styles: {},\n };\n\n @state()\n private _collapsedPane: PanePosition | null = null;\n\n private _resizeState: SplitterResizeState = { ...DEFAULT_RESIZE_STATE };\n\n private _measurement: { container: number; bar: number } | null = null;\n\n /** Container extent at the last resize notification we acted on. */\n private _observedSize = -1;\n\n @query('[part~=\"base\"]')\n private readonly _base!: HTMLElement;\n\n @query('[part~=\"start-pane\"]', true)\n private readonly _startPane!: HTMLElement;\n\n @query('[part~=\"end-pane\"]', true)\n private readonly _endPane!: HTMLElement;\n\n private get _separator(): HTMLElement | undefined {\n return this._separatorRef.value;\n }\n\n private get _isDragging(): boolean {\n return this._resizeState.dragPointerId !== -1;\n }\n\n private get _resizeDisallowed(): boolean {\n return this.disableResize || this._collapsedPane != null;\n }\n\n private get _isHorizontal(): boolean {\n return this.orientation === 'horizontal';\n }\n\n private get _separatorCursor(): string {\n if (this._resizeDisallowed) {\n return 'default';\n }\n return this._isHorizontal ? 'col-resize' : 'row-resize';\n }\n\n //#endregion\n\n //#region Public Properties\n\n /**\n * The orientation of the splitter, which determines the direction of resizing and collapsing.\n *\n * Changing the orientation after the initial render clears the pane sizes and\n * their min/max constraints, along with the corresponding attributes - a size\n * authored for one axis rarely makes sense on the other.\n * @attr orientation\n * @default 'horizontal'\n */\n @property({ reflect: true })\n public orientation: SplitterOrientation = 'horizontal';\n\n /**\n * Whether collapsing either pane is disabled. When `true`, this also hides\n * the expand/collapse buttons on the splitter bar.\n * @attr disable-collapse\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-collapse' })\n public disableCollapse = false;\n\n /**\n * Whether resizing the panes by dragging the splitter bar or using keyboard\n * shortcuts is disabled. When `true`, this also hides the drag handle on the\n * splitter bar.\n * @attr disable-resize\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'disable-resize' })\n public disableResize = false;\n\n /**\n * Whether the expand/collapse buttons on the splitter bar are hidden.\n *\n * Note that the buttons will also be hidden if `disable-collapse` is true or\n * if a pane is currently collapsed.\n * @attr hide-collapse-buttons\n * @default false\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'hide-collapse-buttons',\n })\n public hideCollapseButtons = false;\n\n /**\n * Whether the drag handle on the splitter bar is hidden.\n *\n * Note that the drag handle will also be hidden if `disable-resize` is true.\n * @attr hide-drag-handle\n * @default false\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'hide-drag-handle',\n })\n public hideDragHandle = false;\n\n /**\n * The minimum size of the start pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `100px` or `20%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr start-min-size\n */\n @property({ attribute: 'start-min-size' })\n public set startMinSize(value: string | undefined) {\n this._startPaneState.minSize = this._normalizeValue(value);\n }\n\n public get startMinSize(): string | undefined {\n return this._startPaneState.minSize;\n }\n\n /**\n * The minimum size of the end pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `100px` or `20%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr end-min-size\n */\n @property({ attribute: 'end-min-size' })\n public set endMinSize(value: string | undefined) {\n this._endPaneState.minSize = this._normalizeValue(value);\n }\n\n public get endMinSize(): string | undefined {\n return this._endPaneState.minSize;\n }\n\n /**\n * The maximum size of the start pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `500px` or `80%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr start-max-size\n */\n @property({ attribute: 'start-max-size' })\n public set startMaxSize(value: string | undefined) {\n this._startPaneState.maxSize = this._normalizeValue(value);\n }\n\n public get startMaxSize(): string | undefined {\n return this._startPaneState.maxSize;\n }\n\n /**\n * The maximum size of the end pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `500px` or `80%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 removes the constraint.\n * @attr end-max-size\n */\n @property({ attribute: 'end-max-size' })\n public set endMaxSize(value: string | undefined) {\n this._endPaneState.maxSize = this._normalizeValue(value);\n }\n\n public get endMaxSize(): string | undefined {\n return this._endPaneState.maxSize;\n }\n\n /**\n * The size of the start pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `200px` or `50%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 falls back to automatic sizing.\n * @attr start-size\n */\n @property({ attribute: 'start-size' })\n public set startSize(value: string | undefined) {\n this._setPaneSize('start', value);\n }\n\n public get startSize(): string | undefined {\n return this._startPaneState.size;\n }\n\n /**\n * The size of the end pane.\n *\n * Accepts a CSS length with an explicit unit, e.g. `200px` or `50%`, or a\n * unitless `0`. Setting `auto`, any other unitless or unparsable value, a\n * negative value, or a percentage above 100 falls back to automatic sizing.\n * @attr end-size\n */\n @property({ attribute: 'end-size' })\n public set endSize(value: string | undefined) {\n this._setPaneSize('end', value);\n }\n\n public get endSize(): string | undefined {\n return this._endPaneState.size;\n }\n\n /**\n * Whether the start pane is currently collapsed. Set this property to\n * collapse or expand the pane programmatically.\n * @attr start-collapsed\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'start-collapsed' })\n public set startCollapsed(value: boolean) {\n this._setCollapsed('start', value);\n }\n\n public get startCollapsed(): boolean {\n return this._isCollapsed('start');\n }\n\n /**\n * Whether the end pane is currently collapsed. Set this property to\n * collapse or expand the pane programmatically.\n * @attr end-collapsed\n * @default false\n */\n @property({ type: Boolean, reflect: true, attribute: 'end-collapsed' })\n public set endCollapsed(value: boolean) {\n this._setCollapsed('end', value);\n }\n\n public get endCollapsed(): boolean {\n return this._isCollapsed('end');\n }\n\n //#endregion\n\n //#region Lifecycle\n\n constructor() {\n super();\n\n addThemingController(this, all);\n\n addSlotController(this, { slots: setSlots('start', 'end') });\n\n createResizeObserverController(this, {\n callback: () => this._handleContainerResize(),\n });\n\n addKeybindings(this, {\n ref: this._separatorRef,\n })\n .set(arrowUp, () => this._handleResizePanes(-1, 'vertical'))\n .set(arrowDown, () => this._handleResizePanes(1, 'vertical'))\n .set(arrowLeft, () => this._handleResizePanes(-1, 'horizontal'))\n .set(arrowRight, () => this._handleResizePanes(1, 'horizontal'))\n .set(homeKey, () => this._handleMinMaxResize('min'))\n .set(endKey, () => this._handleMinMaxResize('max'))\n .set([ctrlKey, arrowUp], () =>\n this._handleArrowsExpandCollapse('start', 'vertical')\n )\n .set([ctrlKey, arrowDown], () =>\n this._handleArrowsExpandCollapse('end', 'vertical')\n )\n .set([ctrlKey, arrowLeft], () =>\n this._handleArrowsExpandCollapse('start', 'horizontal')\n )\n .set([ctrlKey, arrowRight], () =>\n this._handleArrowsExpandCollapse('end', 'horizontal')\n );\n }\n\n protected override update(changed: PropertyValues<this>): void {\n this._measurement = null;\n\n if (changed.get('orientation') != null) {\n this._resetPaneSizes();\n }\n\n if (this.hasUpdated) {\n this._updatePanes();\n }\n\n super.update(changed);\n }\n\n protected override updated(): void {\n // Layout has just been committed; the `update()` measurements are stale.\n this._measurement = null;\n this._updateBarAria();\n }\n\n public override disconnectedCallback(): void {\n this._endDrag();\n super.disconnectedCallback();\n }\n\n //#endregion\n\n //#region Resize Event Handlers\n\n private _handleBarPointerDown(e: PointerEvent): void {\n if (e.button !== 0 || this._isDragging) {\n return;\n }\n\n e.preventDefault();\n\n this._resizeState = {\n ...this._resizeState,\n dragPointerId: e.pointerId,\n dragStartPosition: { x: e.clientX, y: e.clientY },\n };\n\n this._resizeStart();\n this._separator?.setPointerCapture(this._resizeState.dragPointerId);\n }\n\n private _getDragDelta(e: PointerEvent): number {\n const deltaX = e.clientX - this._resizeState.dragStartPosition.x;\n const deltaY = e.clientY - this._resizeState.dragStartPosition.y;\n return this._resolveDelta(deltaX, deltaY);\n }\n\n private _handleBarPointerMove(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n const delta = this._getDragDelta(e);\n\n if (delta !== 0) {\n this._resizing(delta);\n }\n }\n\n private _handleEndDrag(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n this._resizeEnd(this._getDragDelta(e));\n this._endDrag();\n }\n\n /** A cancelled gesture reverts, but still reports an end for the start it emitted. */\n private _handleCancelDrag(e: PointerEvent): void {\n if (e.pointerId !== this._resizeState.dragPointerId) {\n return;\n }\n\n this._resizeEnd(0);\n this._endDrag();\n }\n\n private _endDrag(): void {\n const { dragPointerId } = this._resizeState;\n\n // `releasePointerCapture` throws for a pointer that is no longer active.\n if (this._separator?.hasPointerCapture(dragPointerId)) {\n this._separator.releasePointerCapture(dragPointerId);\n }\n\n this._resizeState = { ...DEFAULT_RESIZE_STATE };\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * Toggles the collapsed state of the specified pane.\n *\n * Does not emit `igcLayoutChanged` - that event reports user-driven changes,\n * and a programmatic call is already known to the caller.\n */\n public toggle(position: PanePosition): void {\n this._applyCollapse(this._collapsedPane === position ? null : position);\n }\n\n //#endregion\n\n //#region Internal API\n\n private _applyCollapse(target: PanePosition | null): void {\n if (this._collapsedPane === null && target !== null) {\n this._savePaneSizes();\n }\n\n const wasStartCollapsed = this._isCollapsed('start');\n const wasEndCollapsed = this._isCollapsed('end');\n\n this._collapsedPane = target;\n\n // `toggle()`, the expanders and Ctrl + arrow bypass the decorated accessors,\n // and one assignment can change both flags. Request both so Lit reflects\n // them from their getters instead of leaving one stale.\n this.requestUpdate('startCollapsed', wasStartCollapsed);\n this.requestUpdate('endCollapsed', wasEndCollapsed);\n\n this._internals.setState('start-collapsed', this._isCollapsed('start'));\n this._internals.setState('end-collapsed', this._isCollapsed('end'));\n\n this._restoreSizesOnExpandCollapse();\n }\n\n private _setPaneSize(pane: PanePosition, value: string | undefined): void {\n this._getPaneState(pane).size = this._normalizeValue(value, 'auto');\n\n // A size authored while collapsed outranks the pre-collapse snapshot. The\n // whole snapshot goes - keeping the other pane's share would over-subscribe\n // the container and leave both panes shrinking to fit.\n if (this._collapsedPane !== null) {\n for (const target of PANES) {\n this._getPaneState(target).savedSize = undefined;\n }\n }\n }\n\n /** Drops the authored sizes and their attributes, which would otherwise diverge. */\n private _resetPaneSizes(): void {\n for (const pane of PANES) {\n const state = this._getPaneState(pane);\n state.size = 'auto';\n state.minSize = undefined;\n state.maxSize = undefined;\n state.savedSize = undefined;\n\n for (const suffix of ['size', 'min-size', 'max-size']) {\n this.removeAttribute(`${pane}-${suffix}`);\n }\n }\n }\n\n private _setCollapsed(pane: PanePosition, value: boolean): void {\n if (this._isCollapsed(pane) === value) {\n return;\n }\n this._applyCollapse(value ? pane : null);\n }\n\n private _savePaneSizes(): void {\n // Not measurable yet (collapsed before the first render) - keep the\n // explicit size rather than lose it to the 'auto' reset.\n if (this._getTotalSize() === 0) {\n this._startPaneState.savedSize = this._startPaneState.size;\n this._endPaneState.savedSize = this._endPaneState.size;\n return;\n }\n // Higher precision than the ARIA percent so restored layouts don't drift.\n const [start, end] = this._rectSize();\n this._startPaneState.savedSize = `${this._asPercentOfContainer(start, 2)}%`;\n this._endPaneState.savedSize = `${this._asPercentOfContainer(end, 2)}%`;\n }\n\n /* Reset sizes on collapse; restore saved sizes on expand */\n private _restoreSizesOnExpandCollapse(): void {\n if (this._collapsedPane !== null) {\n this._startPaneState.size = 'auto';\n this._endPaneState.size = 'auto';\n } else {\n this._startPaneState.size =\n this._startPaneState.savedSize ?? this.startSize;\n this._endPaneState.size = this._endPaneState.savedSize ?? this.endSize;\n }\n }\n\n /**\n * The container is what the browser resolves a percentage `flex-basis`\n * against, so a value measured this way survives a round trip through CSS.\n */\n private _asPercentOfContainer(size: number, precision = 0): number {\n const containerSize = this._getContainerSize();\n return containerSize === 0\n ? 0\n : roundPrecise(asPercent(size, containerSize), precision);\n }\n\n /** Resolves a CSS length to pixels, percentages against the container. */\n private _toPixels(value: string): number {\n if (value.endsWith('%')) {\n return (asNumber(value) / 100) * this._getContainerSize();\n }\n\n return this._base ? resolveCssLength(this._base, value) : 0;\n }\n\n private _getStartPaneSizePercent(): number {\n if (!this._startPane || this._isCollapsed('start')) {\n return 0;\n }\n\n if (this._isCollapsed('end')) {\n return 100;\n }\n\n return this._asPercentOfContainer(this._rectSize()[0]);\n }\n\n private _getMinMaxAsPercent(type: 'min' | 'max'): number {\n const value = type === 'min' ? this.startMinSize : this.startMaxSize;\n\n if (!value) {\n return type === 'min' ? 0 : 100;\n }\n\n return this._asPercentOfContainer(this._toPixels(value));\n }\n\n private _isCollapsed(which: PanePosition): boolean {\n return this._collapsedPane === which;\n }\n\n private _otherPane(pane: PanePosition): PanePosition {\n return pane === 'start' ? 'end' : 'start';\n }\n\n private _updateBarAria(): void {\n const separator = this._separator;\n\n if (separator) {\n const value = this._getStartPaneSizePercent();\n\n separator.ariaValueNow = value.toString();\n separator.ariaValueText = `${value}%`;\n separator.ariaValueMin = this._getMinMaxAsPercent('min').toString();\n separator.ariaValueMax = this._getMinMaxAsPercent('max').toString();\n }\n }\n\n private _getPaneState(which: PanePosition): SplitterPaneState {\n return which === 'start' ? this._startPaneState : this._endPaneState;\n }\n\n private _isPercentageSize(which: PanePosition): boolean {\n const { size } = this._getPaneState(which);\n return !!size && size.includes('%');\n }\n\n private _isAutoSize(which: PanePosition): boolean {\n return this._getPaneState(which).size === 'auto';\n }\n\n private _normalizeValue(\n value: string | undefined,\n fallback?: 'auto'\n ): string | undefined {\n const trimmed = value?.trim();\n if (!trimmed || trimmed === 'auto') {\n return fallback;\n }\n\n const numericValue = asNumber(trimmed, -1);\n if (numericValue < 0) return fallback;\n if (trimmed.includes('%') && numericValue > 100) return fallback;\n\n // Zero is the one length that needs no unit; any other bare number is\n // invalid CSS and would silently drop the whole `flex` shorthand.\n const isUnitlessZero = numericValue === 0 && UNITLESS_NUMBER.test(trimmed);\n\n return isUnitlessZero || CSS_LENGTH.test(trimmed) ? trimmed : fallback;\n }\n\n private _getFlex(which: PanePosition, forceAuto = false): string {\n const isAuto = forceAuto || this._isAutoSize(which);\n const size = isAuto ? '0px' : this._getPaneState(which).size;\n return `${isAuto ? 1 : 0} 1 ${size}`;\n }\n\n private _handleResizePanes(\n direction: -1 | 1,\n validOrientation: SplitterOrientation\n ): void {\n if (this._resizeDisallowed || this.orientation !== validOrientation) {\n return;\n }\n const delta = this._resolveDelta(\n KEYBOARD_RESIZE_STEP,\n KEYBOARD_RESIZE_STEP,\n direction\n );\n\n this._runResize(delta);\n }\n\n /**\n * A complete resize for a non-pointer gesture. Sharing `_calcNewSizes` with\n * the drag path is what keeps both panes' constraints honoured and the\n * emitted sizes equal to the ones that actually render.\n */\n private _runResize(delta: number): void {\n this._resizeStart();\n this._resizing(delta);\n this._resizeEnd(delta);\n this._endDrag();\n }\n\n @eventOptions({ passive: false })\n private _preventDefaultForEvent(e: Event): void {\n e.preventDefault();\n }\n\n private _resolveDelta(\n deltaX: number,\n deltaY: number,\n direction?: -1 | 1\n ): number {\n const isHorizontal = this._isHorizontal;\n const rtlMultiplier = isHorizontal && !isLTR(this) ? -1 : 1;\n const delta = isHorizontal ? deltaX : deltaY;\n return delta * rtlMultiplier * (direction ?? 1);\n }\n\n /** Snaps the start pane to its minimum or maximum size. */\n private _handleMinMaxResize(type: 'min' | 'max'): void {\n if (this._resizeDisallowed) {\n return;\n }\n\n const targetStartSizePx =\n this._getConstraintInPx('start', type) ??\n (type === 'min' ? 0 : this._getTotalSize());\n\n this._runResize(targetStartSizePx - this._rectSize()[0]);\n }\n\n private _handleExpanderAction(pane: PanePosition): void {\n const other = this._otherPane(pane);\n this._toggleWithEvent(this._collapsedPane === other ? other : pane);\n }\n\n private _toggleWithEvent(position: PanePosition): void {\n this.toggle(position);\n this._emitLayoutChanged();\n }\n\n // Both sizes render as 'auto' while collapsed, so report the pre-collapse\n // ones instead - those are what a consumer needs to restore the layout.\n private _reportedSize(pane: PanePosition): string {\n const state = this._getPaneState(pane);\n return (\n (this._collapsedPane !== null ? state.savedSize : state.size) ?? 'auto'\n );\n }\n\n private _emitLayoutChanged(): void {\n const detail: IgcSplitterLayoutChangedEventArgs = {\n startSize: this._reportedSize('start'),\n endSize: this._reportedSize('end'),\n startCollapsed: this.startCollapsed,\n endCollapsed: this.endCollapsed,\n };\n this.emitEvent('igcLayoutChanged', { detail });\n }\n\n private _handleArrowsExpandCollapse(\n target: PanePosition,\n validOrientation: SplitterOrientation\n ): void {\n if (this.disableCollapse || this.orientation !== validOrientation) {\n return;\n }\n const isFlipped = validOrientation === 'horizontal' && !isLTR(this);\n this._handleExpanderAction(isFlipped ? this._otherPane(target) : target);\n }\n\n private _resizeStart(): void {\n const [startSize, endSize] = this._rectSize();\n\n this._resizeState.startPane = this._createPaneState('start', startSize);\n this._resizeState.endPane = this._createPaneState('end', endSize);\n\n this.emitEvent('igcResizeStart', {\n detail: { startPanelSize: startSize, endPanelSize: endSize },\n });\n }\n\n private _createPaneState(\n pane: PanePosition,\n size: number\n ): PaneResizeSnapshot {\n return {\n initialSize: size,\n isPercentageBased: this._isPercentageSize(pane) || this._isAutoSize(pane),\n minSizePx: this._getConstraintInPx(pane, 'min'),\n maxSizePx: this._getConstraintInPx(pane, 'max'),\n };\n }\n\n private _getConstraintInPx(\n pane: PanePosition,\n type: 'min' | 'max'\n ): number | undefined {\n const { minSize, maxSize } = this._getPaneState(pane);\n const value = type === 'max' ? maxSize : minSize;\n\n return value ? this._toPixels(value) : undefined;\n }\n\n private _resizing(delta: number): void {\n if (!this._resizeState.startPane || !this._resizeState.endPane) {\n return;\n }\n\n const [startPaneSize, endPaneSize] = this._calcNewSizes(delta);\n\n this.startSize = `${startPaneSize}px`;\n this.endSize = `${endPaneSize}px`;\n\n this.emitEvent('igcResizing', {\n detail: {\n startPanelSize: startPaneSize,\n endPanelSize: endPaneSize,\n delta,\n },\n });\n }\n\n private _computeSize(\n pane: PaneResizeSnapshot,\n paneSize: number,\n containerSize: number\n ): string {\n return pane.isPercentageBased\n ? `${asPercent(paneSize, containerSize)}%`\n : `${roundPrecise(paneSize, 0)}px`;\n }\n\n private _resizeEnd(delta: number): void {\n const { startPane, endPane } = this._resizeState;\n\n if (!startPane || !endPane) {\n return;\n }\n\n // A cancelled gesture reverts to the sizes captured at `_resizeStart`.\n const [startPaneSize, endPaneSize] =\n delta === 0\n ? [startPane.initialSize, endPane.initialSize]\n : this._calcNewSizes(delta);\n const containerSize = this._getContainerSize();\n\n this.startSize = this._computeSize(startPane, startPaneSize, containerSize);\n this.endSize = this._computeSize(endPane, endPaneSize, containerSize);\n\n this.emitEvent('igcResizeEnd', {\n detail: {\n startPanelSize: startPaneSize,\n endPanelSize: endPaneSize,\n delta,\n },\n });\n this._emitLayoutChanged();\n }\n\n private _rectSize(): [number, number] {\n const axis = this._isHorizontal ? 'width' : 'height';\n const startPaneRect = this._startPane.getBoundingClientRect();\n const endPaneRect = this._endPane.getBoundingClientRect();\n\n return [startPaneRect[axis], endPaneRect[axis]];\n }\n\n private _calcNewSizes(delta: number): [number, number] {\n if (!this._resizeState.startPane || !this._resizeState.endPane)\n return [0, 0];\n\n const start = this._resizeState.startPane;\n const end = this._resizeState.endPane;\n const minStart = start.minSizePx || 0;\n const minEnd = end.minSizePx || 0;\n const maxStart =\n start.maxSizePx || start.initialSize + end.initialSize - minEnd;\n const maxEnd =\n end.maxSizePx || start.initialSize + end.initialSize - minStart;\n\n const maxPosDelta = Math.min(\n maxStart - start.initialSize,\n end.initialSize - minEnd\n );\n const maxNegDelta = Math.min(\n start.initialSize - minStart,\n maxEnd - end.initialSize\n );\n const finalDelta = clamp(delta, -maxNegDelta, maxPosDelta);\n\n return [start.initialSize + finalDelta, end.initialSize - finalDelta];\n }\n\n /**\n * Reads the container and bar extents once per update pass - both\n * `_updatePanes` and `_updateBarAria` need them, and the style writes in\n * between would force a reflow for every repeated read.\n */\n private _measure(): { container: number; bar: number } {\n const axis = this._isHorizontal ? 'width' : 'height';\n\n this._measurement ??= {\n container: this._base ? this._base.getBoundingClientRect()[axis] : 0,\n bar: this._separator\n ? roundPrecise(this._separator.getBoundingClientRect()[axis])\n : 0,\n };\n\n return this._measurement;\n }\n\n /** The content box of the flex container - the basis for every percentage. */\n private _getContainerSize(): number {\n return this._measure().container;\n }\n\n /** The space left for the panes once the bar has taken its own. */\n private _getTotalSize(): number {\n const { container, bar } = this._measure();\n return container === 0 ? 0 : container - bar;\n }\n\n private _handleContainerResize(): void {\n this._measurement = null;\n const size = this._getContainerSize();\n\n if (size !== this._observedSize) {\n this._observedSize = size;\n this.requestUpdate();\n }\n }\n\n private _updatePanes(): void {\n const isCollapsed = this._collapsedPane !== null;\n\n // A collapsed pane renders as `auto` with its constraints lifted, while the\n // authored values stay untouched so they survive the round trip.\n for (const pane of PANES) {\n const { minSize, maxSize } = this._getPaneState(pane);\n\n this._setPaneMinMaxSizes(\n pane,\n isCollapsed ? '0' : minSize,\n isCollapsed ? '100%' : maxSize\n );\n this._updatePaneStyles(pane, { flex: this._getFlex(pane, isCollapsed) });\n }\n }\n\n private _updatePaneStyles(pane: PanePosition, styles: StyleInfo): void {\n Object.assign(this._getPaneState(pane).styles, styles);\n }\n\n private _setPaneMinMaxSizes(\n pane: PanePosition,\n minSize?: string,\n maxSize?: string\n ): void {\n const min = this._ensureMinConstraintIsWithinBounds(pane, minSize) ?? 0;\n const max = maxSize ?? '100%';\n\n this._updatePaneStyles(\n pane,\n this._isHorizontal\n ? { minWidth: min, maxWidth: max, minHeight: 0, maxHeight: '100%' }\n : { minWidth: 0, maxWidth: '100%', minHeight: min, maxHeight: max }\n );\n }\n\n private _ensureMinConstraintIsWithinBounds(\n pane: PanePosition,\n minSize?: string\n ): string | undefined {\n const total = this._getTotalSize();\n\n if (!minSize || total <= 0) {\n return minSize;\n }\n\n const minPx = this._getConstraintInPx(pane, 'min') ?? 0;\n const otherMinPx =\n this._getConstraintInPx(this._otherPane(pane), 'min') ?? 0;\n\n // Dropping a constraint the panes cannot both satisfy keeps content from\n // overflowing. It is reapplied once the container grows to accommodate it.\n return minPx + otherMinPx > total ? undefined : minSize;\n }\n\n private _handleExpanderClick(pane: PanePosition, event: PointerEvent): void {\n // Keep the bar from starting a resize\n event.stopPropagation();\n this._handleExpanderAction(pane);\n }\n\n //#endregion\n\n //#region Rendering\n\n private _resolvePartNames(expander: PanePosition): Record<string, boolean> {\n const other = this._otherPane(expander);\n const otherIsCollapsed = this._isCollapsed(other);\n\n return {\n [`${other}-expand-btn`]: otherIsCollapsed,\n [`${expander}-collapse-btn`]: !otherIsCollapsed,\n };\n }\n\n private _renderBarControls() {\n const dragHandleHidden = this.hideDragHandle || this.disableResize;\n const hidden = this.disableCollapse || this.hideCollapseButtons;\n const prevButtonHidden = hidden || this._isCollapsed('start');\n const nextButtonHidden = hidden || this._isCollapsed('end');\n\n return html`\n <div\n part=\"${partMap(this._resolvePartNames('start'))}\"\n ?hidden=${prevButtonHidden}\n @pointerdown=${(e: PointerEvent) =>\n this._handleExpanderClick('start', e)}\n ></div>\n <div part=\"drag-handle\" ?hidden=${dragHandleHidden}></div>\n <div\n part=\"${partMap(this._resolvePartNames('end'))}\"\n ?hidden=${nextButtonHidden}\n @pointerdown=${(e: PointerEvent) => this._handleExpanderClick('end', e)}\n ></div>\n `;\n }\n\n private _renderAccessibleLabel() {\n return html`\n <igc-visually-hidden id=\"splitter-label\"\n >Resize panes</igc-visually-hidden\n >\n <igc-visually-hidden id=\"splitter-state\">\n ${\n this._isCollapsed('start')\n ? 'Start pane collapsed'\n : 'Start pane expanded'\n }\n and\n ${this._isCollapsed('end') ? 'End pane collapsed' : 'End pane expanded'}\n </igc-visually-hidden>\n `;\n }\n\n private _renderSeparator() {\n const canResize = !this._resizeDisallowed;\n\n return html`\n <div\n ${ref(this._separatorRef)}\n part=\"splitter-bar\"\n role=\"separator\"\n tabindex=${this.disableCollapse && this.disableResize ? -1 : 0}\n aria-controls=\"start-pane end-pane\"\n aria-labelledby=\"splitter-label\"\n aria-describedby=\"splitter-state\"\n aria-orientation=${this.orientation}\n style=${styleMap({ '--cursor': this._separatorCursor })}\n @touchstart=${bindIf(canResize, this._preventDefaultForEvent)}\n @contextmenu=${bindIf(canResize, this._preventDefaultForEvent)}\n @pointerdown=${bindIf(canResize, this._handleBarPointerDown)}\n @pointermove=${this._handleBarPointerMove}\n @pointerup=${this._handleEndDrag}\n @lostpointercapture=${this._handleEndDrag}\n @pointercancel=${this._handleCancelDrag}\n >\n ${this._renderBarControls()}\n </div>\n `;\n }\n\n protected override render() {\n return html`\n ${this._renderAccessibleLabel()}\n <div part=\"base\">\n <div\n part=\"start-pane\"\n id=\"start-pane\"\n style=${styleMap(this._startPaneState.styles)}\n >\n <slot name=\"start\"></slot>\n </div>\n ${this._renderSeparator()}\n <div\n part=\"end-pane\"\n id=\"end-pane\"\n style=${styleMap(this._endPaneState.styles)}\n >\n <slot name=\"end\"></slot>\n </div>\n </div>\n `;\n }\n\n //#endregion\n}\n\nexport type {\n IgcSplitterComponentEventMap,\n IgcSplitterLayoutChangedEventArgs,\n IgcSplitterResizeEventArgs,\n IgcSplitterResizeEventDetail,\n};\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-splitter': IgcSplitterComponent;\n }\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/splitter/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEnE,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,MAAM,IAAI,WAAW;GACxB;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,MAAM,IAAI,UAAU;GACvB;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/splitter/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEnE,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,MAAM,IAAI,WAAW;GACxB;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,MAAM,IAAI,UAAU;GACvB;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// Dark Overrides\nimport { styles as bootstrapDark } from './dark/splitter.bootstrap.css.js';\nimport { styles as fluentDark } from './dark/splitter.fluent.css.js';\nimport { styles as indigoDark } from './dark/splitter.indigo.css.js';\nimport { styles as materialDark } from './dark/splitter.material.css.js';\nimport { styles as sharedDark } from './dark/splitter.shared.css.js';\n// Light Overrides\nimport { styles as bootstrapLight } from './light/splitter.bootstrap.css.js';\nimport { styles as fluentLight } from './light/splitter.fluent.css.js';\nimport { styles as indigoLight } from './light/splitter.indigo.css.js';\nimport { styles as materialLight } from './light/splitter.material.css.js';\nimport { styles as sharedLight } from './light/splitter.shared.css.js';\n//Shared Styles\nimport { styles as indigo } from './shared/splitter.indigo.css.js';\n\nconst light = {\n shared: css`\n ${sharedLight}\n `,\n bootstrap: css`\n ${bootstrapLight}\n `,\n material: css`\n ${materialLight}\n `,\n fluent: css`\n ${fluentLight}\n `,\n indigo: css`\n ${indigo} ${indigoLight}\n `,\n};\n\nconst dark = {\n shared: css`\n ${sharedDark}\n `,\n bootstrap: css`\n ${bootstrapDark}\n `,\n material: css`\n ${materialDark}\n `,\n fluent: css`\n ${fluentDark}\n `,\n indigo: css`\n ${indigo} ${indigoDark}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
|
|
@@ -16,11 +16,11 @@ interface PaneResizeSnapshot {
|
|
|
16
16
|
interface SplitterResizeState {
|
|
17
17
|
startPane: PaneResizeSnapshot | null;
|
|
18
18
|
endPane: PaneResizeSnapshot | null;
|
|
19
|
-
isDragging: boolean;
|
|
20
19
|
dragStartPosition: {
|
|
21
20
|
x: number;
|
|
22
21
|
y: number;
|
|
23
22
|
};
|
|
23
|
+
/** The active pointer id, or `-1` when no drag is in progress. */
|
|
24
24
|
dragPointerId: number;
|
|
25
25
|
}
|
|
26
26
|
interface IgcSplitterResizeEventArgs {
|
|
@@ -33,13 +33,24 @@ interface IgcSplitterResizeEventArgs {
|
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* @hidden
|
|
36
|
-
* @deprecated
|
|
36
|
+
* @deprecated since 7.1.0. Use the `IgcSplitterResizeEventArgs` type instead.
|
|
37
37
|
*/
|
|
38
38
|
interface IgcSplitterResizeEventDetail extends IgcSplitterResizeEventArgs {
|
|
39
39
|
}
|
|
40
|
+
interface IgcSplitterLayoutChangedEventArgs {
|
|
41
|
+
/** The current size of the start pane */
|
|
42
|
+
startSize: string;
|
|
43
|
+
/** The current size of the end pane */
|
|
44
|
+
endSize: string;
|
|
45
|
+
/** Whether the start pane is currently collapsed */
|
|
46
|
+
startCollapsed: boolean;
|
|
47
|
+
/** Whether the end pane is currently collapsed */
|
|
48
|
+
endCollapsed: boolean;
|
|
49
|
+
}
|
|
40
50
|
interface IgcSplitterComponentEventMap {
|
|
41
51
|
igcResizeStart: CustomEvent<IgcSplitterResizeEventArgs>;
|
|
42
52
|
igcResizing: CustomEvent<IgcSplitterResizeEventArgs>;
|
|
43
53
|
igcResizeEnd: CustomEvent<IgcSplitterResizeEventArgs>;
|
|
54
|
+
igcLayoutChanged: CustomEvent<IgcSplitterLayoutChangedEventArgs>;
|
|
44
55
|
}
|
|
45
|
-
export type { IgcSplitterComponentEventMap, IgcSplitterResizeEventArgs, IgcSplitterResizeEventDetail, PanePosition, PaneResizeSnapshot, SplitterPaneState, SplitterResizeState, };
|
|
56
|
+
export type { IgcSplitterComponentEventMap, IgcSplitterLayoutChangedEventArgs, IgcSplitterResizeEventArgs, IgcSplitterResizeEventDetail, PanePosition, PaneResizeSnapshot, SplitterPaneState, SplitterResizeState, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/splitter/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { StyleInfo } from 'lit/directives/style-map.js';\n\ntype PanePosition = 'start' | 'end';\n\ninterface SplitterPaneState {\n size?: string;\n minSize?: string;\n maxSize?: string;\n savedSize?: string;\n styles: StyleInfo;\n}\n\ninterface PaneResizeSnapshot {\n initialSize: number;\n isPercentageBased: boolean;\n minSizePx?: number;\n maxSizePx?: number;\n}\n\ninterface SplitterResizeState {\n startPane: PaneResizeSnapshot | null;\n endPane: PaneResizeSnapshot | null;\n
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/splitter/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { StyleInfo } from 'lit/directives/style-map.js';\n\ntype PanePosition = 'start' | 'end';\n\ninterface SplitterPaneState {\n size?: string;\n minSize?: string;\n maxSize?: string;\n savedSize?: string;\n styles: StyleInfo;\n}\n\ninterface PaneResizeSnapshot {\n initialSize: number;\n isPercentageBased: boolean;\n minSizePx?: number;\n maxSizePx?: number;\n}\n\ninterface SplitterResizeState {\n startPane: PaneResizeSnapshot | null;\n endPane: PaneResizeSnapshot | null;\n dragStartPosition: { x: number; y: number };\n /** The active pointer id, or `-1` when no drag is in progress. */\n dragPointerId: number;\n}\n\n/* jsonAPIPlainObject */\ninterface IgcSplitterResizeEventArgs {\n /** The current size of the start panel in pixels */\n startPanelSize: number;\n /** The current size of the end panel in pixels */\n endPanelSize: number;\n /** The change in size since the resize operation started (only for igcResizing and igcResizeEnd) */\n delta?: number;\n}\n\n/**\n * @hidden\n * @deprecated since 7.1.0. Use the `IgcSplitterResizeEventArgs` type instead.\n */\ninterface IgcSplitterResizeEventDetail extends IgcSplitterResizeEventArgs {}\n\n/* jsonAPIPlainObject */\ninterface IgcSplitterLayoutChangedEventArgs {\n /** The current size of the start pane */\n startSize: string;\n /** The current size of the end pane */\n endSize: string;\n /** Whether the start pane is currently collapsed */\n startCollapsed: boolean;\n /** Whether the end pane is currently collapsed */\n endCollapsed: boolean;\n}\n\ninterface IgcSplitterComponentEventMap {\n igcResizeStart: CustomEvent<IgcSplitterResizeEventArgs>;\n igcResizing: CustomEvent<IgcSplitterResizeEventArgs>;\n igcResizeEnd: CustomEvent<IgcSplitterResizeEventArgs>;\n igcLayoutChanged: CustomEvent<IgcSplitterLayoutChangedEventArgs>;\n}\n\nexport type {\n IgcSplitterComponentEventMap,\n IgcSplitterLayoutChangedEventArgs,\n IgcSplitterResizeEventArgs,\n IgcSplitterResizeEventDetail,\n PanePosition,\n PaneResizeSnapshot,\n SplitterPaneState,\n SplitterResizeState,\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AnimationReferenceMetadata } from '
|
|
1
|
+
import { type AnimationReferenceMetadata } from '#animations/types.js';
|
|
2
2
|
import type { HorizontalTransitionAnimation, StepperVerticalAnimation } from '../../types.js';
|
|
3
3
|
export type Animation = StepperVerticalAnimation | HorizontalTransitionAnimation;
|
|
4
4
|
export type AnimationOptions = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EaseOut } from '
|
|
2
|
-
import { animation, } from '
|
|
1
|
+
import { EaseOut } from '#animations/easings.js';
|
|
2
|
+
import { animation, } from '#animations/types.js';
|
|
3
3
|
const baseOptions = {
|
|
4
4
|
duration: 320,
|
|
5
5
|
easing: EaseOut.Quad,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animations.js","sourceRoot":"","sources":["../../../../src/components/stepper/common/animations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"animations.js","sourceRoot":"","sources":["../../../../src/components/stepper/common/animations.ts"],"names":[],"mappings":"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","sourcesContent":["import { EaseOut } from '#animations/easings.js';\nimport {\n type AnimationReferenceMetadata,\n animation,\n} from '#animations/types.js';\nimport type {\n HorizontalTransitionAnimation,\n StepperVerticalAnimation,\n} from '../../types.js';\n\nconst baseOptions: KeyframeAnimationOptions = {\n duration: 320,\n easing: EaseOut.Quad,\n};\n\nexport type Animation =\n | StepperVerticalAnimation\n | HorizontalTransitionAnimation;\n\nexport type AnimationOptions = {\n keyframe: KeyframeAnimationOptions;\n step?: object;\n};\n\nconst fadeIn = (options: AnimationOptions = { keyframe: baseOptions }) =>\n animation([{ opacity: 0 }, { opacity: 1 }], options.keyframe);\n\nconst fadeOut = (options: AnimationOptions = { keyframe: baseOptions }) =>\n animation([{ opacity: 1 }, { opacity: 0 }], options.keyframe);\n\nconst slideInHor = (\n options: AnimationOptions = {\n keyframe: baseOptions,\n }\n) =>\n animation(\n [{ transform: 'translateX(100%)' }, { transform: 'translateX(0)' }],\n options.keyframe\n );\n\nconst slideOutHor = (\n options: AnimationOptions = {\n keyframe: baseOptions,\n }\n) =>\n animation(\n [{ transform: 'translateX(0)' }, { transform: 'translateX(-100%)' }],\n options.keyframe\n );\n\nconst growVerIn = (\n options: AnimationOptions = {\n keyframe: baseOptions,\n step: {},\n }\n) =>\n animation(\n [\n { opacity: 1, ...options.step },\n { opacity: 1, height: 'auto' },\n ],\n options.keyframe\n );\n\nconst growVerOut = (\n options: AnimationOptions = {\n keyframe: baseOptions,\n step: {},\n }\n) =>\n animation(\n [\n { opacity: 1, height: 'auto' },\n { opacity: 1, ...options.step },\n ],\n options.keyframe\n );\n\nconst noopAnimation = () => animation([], {});\n\nconst animationPair = (animations: {\n in: (options: AnimationOptions) => AnimationReferenceMetadata;\n out: (options: AnimationOptions) => AnimationReferenceMetadata;\n}) => {\n return new Map(\n Object.entries({\n in: animations.in,\n out: animations.out,\n })\n );\n};\n\nexport const bodyAnimations = new Map(\n Object.entries({\n grow: animationPair({\n in: growVerIn,\n out: growVerOut,\n }),\n fade: animationPair({\n in: noopAnimation,\n out: noopAnimation,\n }),\n slide: animationPair({\n in: slideInHor,\n out: slideOutHor,\n }),\n none: animationPair({\n in: noopAnimation,\n out: noopAnimation,\n }),\n })\n);\n\nexport const contentAnimations = new Map(\n Object.entries({\n grow: animationPair({\n in: fadeIn,\n out: fadeOut,\n }),\n fade: animationPair({\n in: fadeIn,\n out: fadeOut,\n }),\n slide: animationPair({\n in: fadeIn,\n out: fadeOut,\n }),\n none: animationPair({\n in: noopAnimation,\n out: noopAnimation,\n }),\n })\n);\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LitElement, type PropertyValues } from 'lit';
|
|
2
2
|
/**
|
|
3
|
-
* A step component used within
|
|
3
|
+
* A step component used within a stepper to represent an individual step in a wizard-like workflow.
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
* Each step has a header (with an indicator, title, and subtitle) and a content area.
|
|
@@ -8,13 +8,13 @@ import { html, LitElement, nothing } from 'lit';
|
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
9
|
import { cache } from 'lit/directives/cache.js';
|
|
10
10
|
import { createRef, ref } from 'lit/directives/ref.js';
|
|
11
|
-
import { EaseInOut } from '
|
|
12
|
-
import { addAnimationController } from '
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
11
|
+
import { EaseInOut } from '#animations/easings.js';
|
|
12
|
+
import { addAnimationController } from '#animations/player.js';
|
|
13
|
+
import { createAsyncContext } from '#internals/controllers/async-consumer.js';
|
|
14
|
+
import { addSlotController, setSlots } from '#internals/controllers/slot.js';
|
|
15
|
+
import { registerComponent } from '#internals/definitions/register.js';
|
|
16
|
+
import { partMap } from '#internals/part-map.js';
|
|
17
|
+
import { addThemingController } from '#theming/theming-controller.js';
|
|
18
18
|
import { bodyAnimations, contentAnimations } from './common/animations.js';
|
|
19
19
|
import { STEPPER_CONTEXT } from './common/context.js';
|
|
20
20
|
import { styles as shared } from './themes/step/shared/step.common.css.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/components/stepper/step.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { EaseInOut } from '../../animations/easings.js';\nimport { addAnimationController } from '../../animations/player.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { createAsyncContext } from '../common/controllers/async-consumer.js';\nimport { addSlotController, setSlots } from '../common/controllers/slot.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport { partMap } from '../common/part-map.js';\nimport type {\n HorizontalTransitionAnimation,\n StepperOrientation,\n StepperStepType,\n StepperTitlePosition,\n StepperVerticalAnimation,\n} from '../types.js';\nimport { bodyAnimations, contentAnimations } from './common/animations.js';\nimport { STEPPER_CONTEXT, type StepperContext } from './common/context.js';\nimport type { StepperState } from './common/state.js';\nimport type IgcStepperComponent from './stepper.js';\nimport { styles as shared } from './themes/step/shared/step.common.css.js';\nimport { styles } from './themes/step/step.base.css.js';\nimport { all } from './themes/step/themes.js';\n\n/**\n * A step component used within an `igc-stepper` to represent an individual step in a wizard-like workflow.\n *\n * @remarks\n * Each step has a header (with an indicator, title, and subtitle) and a content area.\n * Steps can be marked as `active`, `complete`, `disabled`, `optional`, or `invalid`\n * to control their appearance and behavior within the stepper.\n *\n * Custom indicators can be provided via the `indicator` slot, and the content area\n * is rendered in the default slot.\n *\n * @element igc-step\n *\n * @slot - Renders the content of the step.\n * @slot indicator - Renders the indicator of the step. By default, it displays the step index + 1.\n * @slot title - Renders the title of the step.\n * @slot subtitle - Renders the subtitle of the step.\n *\n * @csspart header-container - Wrapper of the step's `header` and its separators.\n * @csspart disabled - Indicates a disabled state. Applies to `header-container`.\n * @csspart complete-start - Indicates a complete state of the current step. Applies to `header-container`.\n * @csspart complete-end - Indicates a complete state of the previous step. Applies to `header-container`.\n * @csspart optional - Indicates an optional state. Applies to `header-container`.\n * @csspart invalid - Indicates an invalid state. Applies to `header-container`.\n * @csspart top - Indicates that the title should be above the indicator. Applies to `header-container`.\n * @csspart bottom - Indicates that the title should be below the indicator. Applies to `header-container`.\n * @csspart start - Indicates that the title should be before the indicator. Applies to `header-container`.\n * @csspart end - Indicates that the title should be after the indicator. Applies to `header-container`.\n * @csspart header - Wrapper of the step's `indicator` and `text`.\n * @csspart indicator - The indicator of the step.\n * @csspart text - Wrapper of the step's `title` and `subtitle`.\n * @csspart empty - Indicates that no title and subtitle have been provided to the step. Applies to `text`.\n * @csspart title - The title of the step.\n * @csspart subtitle - The subtitle of the step.\n * @csspart body - Wrapper of the step's `content`.\n * @csspart content - The step's `content`.\n *\n * @example\n * ```html\n * <igc-step>\n * <igc-icon slot=\"indicator\" name=\"home\"></igc-icon>\n * <span slot=\"title\">Home</span>\n * <span slot=\"subtitle\">Return to the home page</span>\n * <p>Welcome! This is the first step.</p>\n * </igc-step>\n * ```\n *\n * @example Step with state attributes\n * ```html\n * <igc-step complete>\n * <span slot=\"title\">Completed step</span>\n * <p>This step has been completed.</p>\n * </igc-step>\n *\n * <igc-step active invalid>\n * <span slot=\"title\">Current step</span>\n * <p>This step has validation errors.</p>\n * </igc-step>\n *\n * <igc-step disabled>\n * <span slot=\"title\">Disabled step</span>\n * <p>This step is not accessible.</p>\n * </igc-step>\n * ```\n */\nexport default class IgcStepComponent extends LitElement {\n public static readonly tagName = 'igc-step';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcStepComponent);\n }\n\n //#region Internal state and properties\n\n private readonly _bodyRef = createRef<HTMLElement>();\n private readonly _contentRef = createRef<HTMLElement>();\n\n private readonly _bodyPlayer = addAnimationController(this, this._bodyRef);\n private readonly _contentPlayer = addAnimationController(\n this,\n this._contentRef\n );\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots('indicator', 'title', 'subtitle'),\n });\n\n private _stepperContext?: StepperContext;\n\n private get _stepper(): IgcStepperComponent | undefined {\n return this._stepperContext?.stepper;\n }\n\n private get _state(): StepperState | undefined {\n return this._stepperContext?.state;\n }\n\n private get _isHorizontal(): boolean {\n return this._orientation === 'horizontal';\n }\n\n private get _hasTitle(): boolean {\n return this._slots.hasAssignedElements('title');\n }\n\n private get _hasSubtitle(): boolean {\n return this._slots.hasAssignedElements('subtitle');\n }\n\n private get _animation():\n StepperVerticalAnimation | HorizontalTransitionAnimation {\n const animation = this._isHorizontal\n ? this._stepper?.horizontalAnimation\n : this._stepper?.verticalAnimation;\n\n return animation ?? (this._isHorizontal ? 'slide' : 'grow');\n }\n\n private get _animationDuration(): number {\n return this._stepper?.animationDuration ?? 320;\n }\n\n private get _contentTop(): boolean {\n return this._stepper?.contentTop ?? false;\n }\n\n private get _index(): number {\n return this._stepper?.steps.indexOf(this) ?? -1;\n }\n\n private get _orientation(): StepperOrientation {\n return this._stepper?.orientation ?? 'horizontal';\n }\n\n private get _titlePosition(): StepperTitlePosition {\n return this._stepper?.titlePosition ?? 'auto';\n }\n\n private get _stepType(): StepperStepType {\n return this._stepper?.stepType ?? 'full';\n }\n\n private get _previousComplete(): boolean {\n return this._state?.get(this)?.previousCompleted ?? false;\n }\n\n private get _visited(): boolean {\n return this._state?.get(this)?.visited ?? false;\n }\n\n private get _isAccessible(): boolean {\n return this._state?.isAccessible(this) ?? true;\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Whether the step is invalid.\n *\n * Invalid steps are styled with an error state and are not\n * interactive when the stepper is in linear mode.\n *\n * @attr invalid\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n /**\n * Whether the step is active.\n *\n * Active steps are styled with an active state and their content is visible.\n *\n * @attr active\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n /**\n * Whether the step is optional.\n *\n * Optional steps validity does not affect the default behavior when the stepper is in linear mode i.e.\n * if optional step is invalid the user could still move to the next step.\n *\n * @attr optional\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public optional = false;\n\n /**\n * Whether the step is disabled.\n *\n * Disabled steps are styled with a disabled state and are not interactive.\n *\n * @attr disabled\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Whether the step is completed.\n *\n * @attr complete\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public complete = false;\n\n //#endregion\n\n constructor() {\n super();\n\n addThemingController(this, all);\n createAsyncContext(this, STEPPER_CONTEXT, (context) => {\n this._stepperContext = context;\n });\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (\n changed.has('active') ||\n changed.has('complete') ||\n changed.has('disabled') ||\n changed.has('invalid') ||\n changed.has('optional')\n ) {\n this._state?.onStepPropertyChanged(this, changed);\n }\n }\n\n /**\n * @hidden @internal\n * @deprecated since 5.4.0. Use the Stepper's `navigateTo` method instead.\n */\n public async toggleAnimation(\n type: 'in' | 'out',\n direction: 'normal' | 'reverse' = 'normal'\n ) {\n const bodyAnimation = bodyAnimations.get(this._animation)!.get(type)!;\n const contentAnimation = contentAnimations.get(this._animation)!.get(type)!;\n const bodyHeight = getComputedStyle(this).getPropertyValue(\n '--vertical-body-height'\n );\n\n const options: KeyframeAnimationOptions = {\n duration: this._animationDuration,\n easing: EaseInOut.Quad,\n direction,\n };\n\n const step = {\n height: bodyHeight,\n };\n\n const result = await Promise.all([\n this._bodyPlayer.playExclusive(\n bodyAnimation({ keyframe: options, step })\n ),\n this._contentPlayer.playExclusive(\n contentAnimation({ keyframe: options, step })\n ),\n ]);\n\n return result.every(Boolean);\n }\n\n private get _headerContainerParts() {\n return {\n 'header-container': true,\n disabled: !this._isAccessible,\n 'complete-start': this.complete,\n 'complete-end': this._previousComplete,\n optional: this.optional,\n invalid:\n this.invalid && this._visited && !this.active && this._isAccessible,\n top: this._titlePosition === 'top',\n bottom:\n this._titlePosition === 'bottom' ||\n (this._isHorizontal && this._titlePosition === 'auto'),\n start: this._titlePosition === 'start',\n end:\n this._titlePosition === 'end' ||\n (!this._isHorizontal && this._titlePosition === 'auto'),\n };\n }\n\n private get _textParts() {\n const hasText = this._hasTitle || this._hasSubtitle;\n\n return {\n text: true,\n empty:\n this._stepType === 'indicator' ||\n (this._stepType === 'full' && !hasText),\n };\n }\n\n private _renderIndicator() {\n return this._stepType !== 'title'\n ? html`\n <div part=\"indicator\">\n <slot name=\"indicator\">\n <span>${this._index + 1}</span>\n </slot>\n </div>\n `\n : nothing;\n }\n\n private _renderTitleAndSubtitle() {\n return html`\n <div part=${partMap(this._textParts)}>\n <div part=\"title\">\n <slot name=\"title\"></slot>\n </div>\n <div part=\"subtitle\">\n <slot name=\"subtitle\"></slot>\n </div>\n </div>\n `;\n }\n\n private _renderHeader() {\n const index = this._index + 1;\n const size = this._stepper?.steps.length ?? 0;\n\n return html`\n <div part=${partMap(this._headerContainerParts)}>\n <div\n data-step-header\n role=\"tab\"\n part=\"header\"\n id=\"igc-step-header-${index}\"\n aria-selected=${this.active}\n aria-controls=\"igc-step-content-${index}\"\n aria-posinset=${index}\n aria-setsize=${size}\n tabindex=${this.active ? 0 : -1}\n >\n ${this._renderIndicator()} ${this._renderTitleAndSubtitle()}\n </div>\n </div>\n `;\n }\n\n private _renderContent() {\n const index = this._index + 1;\n\n return html`\n <div\n ${ref(this._bodyRef)}\n id=\"igc-step-content-${index}\"\n part=\"body\"\n role=\"tabpanel\"\n aria-labelledby=\"igc-step-header-${index}\"\n >\n <div ${ref(this._contentRef)} part=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n protected override render() {\n const renderBeforeHeader = this._contentTop && this._isHorizontal;\n\n return html`\n ${cache(\n renderBeforeHeader\n ? html`${this._renderContent()} ${this._renderHeader()}`\n : html`${this._renderHeader()} ${this._renderContent()}`\n )}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-step': IgcStepComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/components/stepper/step.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { EaseInOut } from '#animations/easings.js';\nimport { addAnimationController } from '#animations/player.js';\nimport { createAsyncContext } from '#internals/controllers/async-consumer.js';\nimport { addSlotController, setSlots } from '#internals/controllers/slot.js';\nimport { registerComponent } from '#internals/definitions/register.js';\nimport { partMap } from '#internals/part-map.js';\nimport { addThemingController } from '#theming/theming-controller.js';\nimport type {\n HorizontalTransitionAnimation,\n StepperOrientation,\n StepperStepType,\n StepperTitlePosition,\n StepperVerticalAnimation,\n} from '../types.js';\nimport { bodyAnimations, contentAnimations } from './common/animations.js';\nimport { STEPPER_CONTEXT, type StepperContext } from './common/context.js';\nimport type { StepperState } from './common/state.js';\nimport type IgcStepperComponent from './stepper.js';\nimport { styles as shared } from './themes/step/shared/step.common.css.js';\nimport { styles } from './themes/step/step.base.css.js';\nimport { all } from './themes/step/themes.js';\n\n/**\n * A step component used within a stepper to represent an individual step in a wizard-like workflow.\n *\n * @remarks\n * Each step has a header (with an indicator, title, and subtitle) and a content area.\n * Steps can be marked as `active`, `complete`, `disabled`, `optional`, or `invalid`\n * to control their appearance and behavior within the stepper.\n *\n * Custom indicators can be provided via the `indicator` slot, and the content area\n * is rendered in the default slot.\n *\n * @element igc-step\n *\n * @slot - Renders the content of the step.\n * @slot indicator - Renders the indicator of the step. By default, it displays the step index + 1.\n * @slot title - Renders the title of the step.\n * @slot subtitle - Renders the subtitle of the step.\n *\n * @csspart header-container - Wrapper of the step's `header` and its separators.\n * @csspart disabled - Indicates a disabled state. Applies to `header-container`.\n * @csspart complete-start - Indicates a complete state of the current step. Applies to `header-container`.\n * @csspart complete-end - Indicates a complete state of the previous step. Applies to `header-container`.\n * @csspart optional - Indicates an optional state. Applies to `header-container`.\n * @csspart invalid - Indicates an invalid state. Applies to `header-container`.\n * @csspart top - Indicates that the title should be above the indicator. Applies to `header-container`.\n * @csspart bottom - Indicates that the title should be below the indicator. Applies to `header-container`.\n * @csspart start - Indicates that the title should be before the indicator. Applies to `header-container`.\n * @csspart end - Indicates that the title should be after the indicator. Applies to `header-container`.\n * @csspart header - Wrapper of the step's `indicator` and `text`.\n * @csspart indicator - The indicator of the step.\n * @csspart text - Wrapper of the step's `title` and `subtitle`.\n * @csspart empty - Indicates that no title and subtitle have been provided to the step. Applies to `text`.\n * @csspart title - The title of the step.\n * @csspart subtitle - The subtitle of the step.\n * @csspart body - Wrapper of the step's `content`.\n * @csspart content - The step's `content`.\n *\n * @example\n * ```html\n * <igc-step>\n * <igc-icon slot=\"indicator\" name=\"home\"></igc-icon>\n * <span slot=\"title\">Home</span>\n * <span slot=\"subtitle\">Return to the home page</span>\n * <p>Welcome! This is the first step.</p>\n * </igc-step>\n * ```\n *\n * @example Step with state attributes\n * ```html\n * <igc-step complete>\n * <span slot=\"title\">Completed step</span>\n * <p>This step has been completed.</p>\n * </igc-step>\n *\n * <igc-step active invalid>\n * <span slot=\"title\">Current step</span>\n * <p>This step has validation errors.</p>\n * </igc-step>\n *\n * <igc-step disabled>\n * <span slot=\"title\">Disabled step</span>\n * <p>This step is not accessible.</p>\n * </igc-step>\n * ```\n */\nexport default class IgcStepComponent extends LitElement {\n public static readonly tagName = 'igc-step';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register(): void {\n registerComponent(IgcStepComponent);\n }\n\n //#region Internal state and properties\n\n private readonly _bodyRef = createRef<HTMLElement>();\n private readonly _contentRef = createRef<HTMLElement>();\n\n private readonly _bodyPlayer = addAnimationController(this, this._bodyRef);\n private readonly _contentPlayer = addAnimationController(\n this,\n this._contentRef\n );\n\n private readonly _slots = addSlotController(this, {\n slots: setSlots('indicator', 'title', 'subtitle'),\n });\n\n private _stepperContext?: StepperContext;\n\n private get _stepper(): IgcStepperComponent | undefined {\n return this._stepperContext?.stepper;\n }\n\n private get _state(): StepperState | undefined {\n return this._stepperContext?.state;\n }\n\n private get _isHorizontal(): boolean {\n return this._orientation === 'horizontal';\n }\n\n private get _hasTitle(): boolean {\n return this._slots.hasAssignedElements('title');\n }\n\n private get _hasSubtitle(): boolean {\n return this._slots.hasAssignedElements('subtitle');\n }\n\n private get _animation():\n | StepperVerticalAnimation\n | HorizontalTransitionAnimation {\n const animation = this._isHorizontal\n ? this._stepper?.horizontalAnimation\n : this._stepper?.verticalAnimation;\n\n return animation ?? (this._isHorizontal ? 'slide' : 'grow');\n }\n\n private get _animationDuration(): number {\n return this._stepper?.animationDuration ?? 320;\n }\n\n private get _contentTop(): boolean {\n return this._stepper?.contentTop ?? false;\n }\n\n private get _index(): number {\n return this._stepper?.steps.indexOf(this) ?? -1;\n }\n\n private get _orientation(): StepperOrientation {\n return this._stepper?.orientation ?? 'horizontal';\n }\n\n private get _titlePosition(): StepperTitlePosition {\n return this._stepper?.titlePosition ?? 'auto';\n }\n\n private get _stepType(): StepperStepType {\n return this._stepper?.stepType ?? 'full';\n }\n\n private get _previousComplete(): boolean {\n return this._state?.get(this)?.previousCompleted ?? false;\n }\n\n private get _visited(): boolean {\n return this._state?.get(this)?.visited ?? false;\n }\n\n private get _isAccessible(): boolean {\n return this._state?.isAccessible(this) ?? true;\n }\n\n //#endregion\n\n //#region Public attributes and properties\n\n /**\n * Whether the step is invalid.\n *\n * Invalid steps are styled with an error state and are not\n * interactive when the stepper is in linear mode.\n *\n * @attr invalid\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public invalid = false;\n\n /**\n * Whether the step is active.\n *\n * Active steps are styled with an active state and their content is visible.\n *\n * @attr active\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n /**\n * Whether the step is optional.\n *\n * Optional steps validity does not affect the default behavior when the stepper is in linear mode i.e.\n * if optional step is invalid the user could still move to the next step.\n *\n * @attr optional\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public optional = false;\n\n /**\n * Whether the step is disabled.\n *\n * Disabled steps are styled with a disabled state and are not interactive.\n *\n * @attr disabled\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Whether the step is completed.\n *\n * @attr complete\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public complete = false;\n\n //#endregion\n\n constructor() {\n super();\n\n addThemingController(this, all);\n createAsyncContext(this, STEPPER_CONTEXT, (context) => {\n this._stepperContext = context;\n });\n }\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (\n changed.has('active') ||\n changed.has('complete') ||\n changed.has('disabled') ||\n changed.has('invalid') ||\n changed.has('optional')\n ) {\n this._state?.onStepPropertyChanged(this, changed);\n }\n }\n\n /**\n * @hidden @internal\n * @deprecated since 5.4.0. Use the Stepper's `navigateTo` method instead.\n */\n public async toggleAnimation(\n type: 'in' | 'out',\n direction: 'normal' | 'reverse' = 'normal'\n ) {\n const bodyAnimation = bodyAnimations.get(this._animation)!.get(type)!;\n const contentAnimation = contentAnimations.get(this._animation)!.get(type)!;\n const bodyHeight = getComputedStyle(this).getPropertyValue(\n '--vertical-body-height'\n );\n\n const options: KeyframeAnimationOptions = {\n duration: this._animationDuration,\n easing: EaseInOut.Quad,\n direction,\n };\n\n const step = {\n height: bodyHeight,\n };\n\n const result = await Promise.all([\n this._bodyPlayer.playExclusive(\n bodyAnimation({ keyframe: options, step })\n ),\n this._contentPlayer.playExclusive(\n contentAnimation({ keyframe: options, step })\n ),\n ]);\n\n return result.every(Boolean);\n }\n\n private get _headerContainerParts() {\n return {\n 'header-container': true,\n disabled: !this._isAccessible,\n 'complete-start': this.complete,\n 'complete-end': this._previousComplete,\n optional: this.optional,\n invalid:\n this.invalid && this._visited && !this.active && this._isAccessible,\n top: this._titlePosition === 'top',\n bottom:\n this._titlePosition === 'bottom' ||\n (this._isHorizontal && this._titlePosition === 'auto'),\n start: this._titlePosition === 'start',\n end:\n this._titlePosition === 'end' ||\n (!this._isHorizontal && this._titlePosition === 'auto'),\n };\n }\n\n private get _textParts() {\n const hasText = this._hasTitle || this._hasSubtitle;\n\n return {\n text: true,\n empty:\n this._stepType === 'indicator' ||\n (this._stepType === 'full' && !hasText),\n };\n }\n\n private _renderIndicator() {\n return this._stepType !== 'title'\n ? html`\n <div part=\"indicator\">\n <slot name=\"indicator\">\n <span>${this._index + 1}</span>\n </slot>\n </div>\n `\n : nothing;\n }\n\n private _renderTitleAndSubtitle() {\n return html`\n <div part=${partMap(this._textParts)}>\n <div part=\"title\">\n <slot name=\"title\"></slot>\n </div>\n <div part=\"subtitle\">\n <slot name=\"subtitle\"></slot>\n </div>\n </div>\n `;\n }\n\n private _renderHeader() {\n const index = this._index + 1;\n const size = this._stepper?.steps.length ?? 0;\n\n return html`\n <div part=${partMap(this._headerContainerParts)}>\n <div\n data-step-header\n role=\"tab\"\n part=\"header\"\n id=\"igc-step-header-${index}\"\n aria-selected=${this.active}\n aria-controls=\"igc-step-content-${index}\"\n aria-posinset=${index}\n aria-setsize=${size}\n tabindex=${this.active ? 0 : -1}\n >\n ${this._renderIndicator()} ${this._renderTitleAndSubtitle()}\n </div>\n </div>\n `;\n }\n\n private _renderContent() {\n const index = this._index + 1;\n\n return html`\n <div\n ${ref(this._bodyRef)}\n id=\"igc-step-content-${index}\"\n part=\"body\"\n role=\"tabpanel\"\n aria-labelledby=\"igc-step-header-${index}\"\n >\n <div ${ref(this._contentRef)} part=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n protected override render() {\n const renderBeforeHeader = this._contentTop && this._isHorizontal;\n\n return html`\n ${cache(\n renderBeforeHeader\n ? html`${this._renderContent()} ${this._renderHeader()}`\n : html`${this._renderHeader()} ${this._renderContent()}`\n )}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-step': IgcStepComponent;\n }\n}\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { LitElement, type PropertyValues } from 'lit';
|
|
2
|
-
import type { Constructor } from '
|
|
2
|
+
import type { Constructor } from '#internals/mixins/constructor.js';
|
|
3
3
|
import type { HorizontalTransitionAnimation, StepperOrientation, StepperStepType, StepperTitlePosition, StepperVerticalAnimation } from '../types.js';
|
|
4
4
|
import type { IgcStepperComponentEventMap } from './common/types.js';
|
|
5
5
|
import IgcStepComponent from './step.js';
|
|
6
|
-
declare const IgcStepperComponent_base: Constructor<import("
|
|
6
|
+
declare const IgcStepperComponent_base: Constructor<import("#internals/mixins/event-emitter.js").EventEmitterInterface<IgcStepperComponentEventMap>> & Constructor<LitElement>;
|
|
7
7
|
/**
|
|
8
8
|
* A stepper component that provides a wizard-like workflow by dividing content into logical steps.
|
|
9
9
|
*
|
|
10
10
|
* @remarks
|
|
11
|
-
* The stepper component allows the user to navigate between multiple
|
|
11
|
+
* The stepper component allows the user to navigate between multiple step children.
|
|
12
12
|
* It supports horizontal and vertical orientation, linear and non-linear navigation,
|
|
13
13
|
* keyboard navigation, and provides API methods to control the active step.
|
|
14
14
|
*
|
|
@@ -17,7 +17,7 @@ declare const IgcStepperComponent_base: Constructor<import("../common/mixins/eve
|
|
|
17
17
|
*
|
|
18
18
|
* @element igc-stepper
|
|
19
19
|
*
|
|
20
|
-
* @slot - Renders
|
|
20
|
+
* @slot - Renders the steps of the stepper inside the default slot.
|
|
21
21
|
*
|
|
22
22
|
* @fires igcActiveStepChanging - Emitted when the active step is about to change. Cancelable.
|
|
23
23
|
* @fires igcActiveStepChanged - Emitted after the active step has changed.
|
|
@@ -156,7 +156,7 @@ export default class IgcStepperComponent extends IgcStepperComponent_base {
|
|
|
156
156
|
/** Activates the previous enabled step. */
|
|
157
157
|
prev(): void;
|
|
158
158
|
/**
|
|
159
|
-
* Resets the stepper to its initial state i.e. activates the first step.
|
|
159
|
+
* Resets the stepper to its initial state, i.e. activates the first step.
|
|
160
160
|
*
|
|
161
161
|
* @remarks
|
|
162
162
|
* The steps' content will not be automatically reset.
|