igniteui-webcomponents 4.0.0 → 4.1.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 +10 -0
- package/components/accordion/accordion.d.ts +4 -0
- package/components/accordion/accordion.js +3 -3
- package/components/accordion/accordion.js.map +1 -1
- package/components/accordion/themes/accordion.base.css.js +1 -1
- package/components/accordion/themes/accordion.base.css.js.map +1 -1
- package/components/avatar/avatar.d.ts +16 -4
- package/components/avatar/avatar.js +6 -6
- package/components/avatar/avatar.js.map +1 -1
- package/components/avatar/themes/avatar.base.css.js +1 -1
- package/components/avatar/themes/avatar.base.css.js.map +1 -1
- package/components/avatar/themes/avatar.bootstrap.css.js +1 -1
- package/components/avatar/themes/avatar.bootstrap.css.js.map +1 -1
- package/components/badge/badge.d.ts +12 -3
- package/components/badge/badge.js.map +1 -1
- package/components/badge/themes/light/badge.base.css.js +1 -1
- package/components/badge/themes/light/badge.base.css.js.map +1 -1
- package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
- package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
- package/components/button/button-base.d.ts +15 -3
- package/components/button/button-base.js.map +1 -1
- package/components/button/button.d.ts +4 -1
- package/components/button/button.js.map +1 -1
- package/components/button/icon-button.d.ts +16 -4
- package/components/button/icon-button.js.map +1 -1
- package/components/button/themes/button/dark/button.fluent.css.js +1 -1
- package/components/button/themes/button/dark/button.fluent.css.js.map +1 -1
- package/components/button/themes/button/light/button.base.css.js +1 -1
- package/components/button/themes/button/light/button.base.css.js.map +1 -1
- package/components/button/themes/button/light/button.bootstrap.css.js +1 -1
- package/components/button/themes/button/light/button.bootstrap.css.js.map +1 -1
- package/components/button/themes/button/light/button.fluent.css.js +1 -1
- package/components/button/themes/button/light/button.fluent.css.js.map +1 -1
- package/components/button/themes/button/light/button.indigo.css.js +1 -1
- package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
- package/components/button/themes/button/light/button.material.css.js +1 -1
- package/components/button/themes/button/light/button.material.css.js.map +1 -1
- package/components/button/themes/icon-button/dark/icon-button.fluent.css.js +1 -1
- package/components/button/themes/icon-button/dark/icon-button.fluent.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.base.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.base.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.bootstrap.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.fluent.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.fluent.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.indigo.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.indigo.css.js.map +1 -1
- package/components/button/themes/icon-button/light/icon-button.material.css.js +1 -1
- package/components/button/themes/icon-button/light/icon-button.material.css.js.map +1 -1
- package/components/calendar/calendar.js +3 -3
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/common/calendar-base.js.map +1 -1
- package/components/calendar/common/calendar.model.d.ts +1 -1
- package/components/calendar/days-view/days-view.js +6 -6
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/months-view/months-view.js +3 -3
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js +1 -1
- package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js.map +1 -1
- package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js +1 -1
- package/components/calendar/themes/bootstrap/days-view.bootstrap.css.js.map +1 -1
- package/components/calendar/themes/bootstrap/year-month-view.bootstrap.css.js +1 -1
- package/components/calendar/themes/bootstrap/year-month-view.bootstrap.css.js.map +1 -1
- package/components/calendar/themes/calendar.base.css.js +1 -1
- package/components/calendar/themes/calendar.base.css.js.map +1 -1
- package/components/calendar/themes/days-view.base.css.js +1 -1
- package/components/calendar/themes/days-view.base.css.js.map +1 -1
- package/components/calendar/themes/fluent/calendar.fluent.css.js +1 -1
- package/components/calendar/themes/fluent/calendar.fluent.css.js.map +1 -1
- package/components/calendar/themes/fluent/days-view.fluent.css.js +1 -1
- package/components/calendar/themes/fluent/days-view.fluent.css.js.map +1 -1
- package/components/calendar/themes/fluent/year-month-view.fluent.css.js +1 -1
- package/components/calendar/themes/fluent/year-month-view.fluent.css.js.map +1 -1
- package/components/calendar/themes/year-month-view.base.css.js +1 -1
- package/components/calendar/themes/year-month-view.base.css.js.map +1 -1
- package/components/calendar/years-view/years-view.js +3 -3
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/card/card.actions.d.ts +4 -1
- package/components/card/card.actions.js.map +1 -1
- package/components/card/card.content.js.map +1 -1
- package/components/card/card.d.ts +4 -1
- package/components/card/card.header.js.map +1 -1
- package/components/card/card.js.map +1 -1
- package/components/card/themes/light/card.actions.bootstrap.css.js +1 -1
- package/components/card/themes/light/card.actions.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.actions.material.css.js +1 -1
- package/components/card/themes/light/card.actions.material.css.js.map +1 -1
- package/components/card/themes/light/card.bootstrap.css.js +1 -1
- package/components/card/themes/light/card.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.content.bootstrap.css.js +1 -1
- package/components/card/themes/light/card.content.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.content.indigo.css.js +1 -1
- package/components/card/themes/light/card.content.indigo.css.js.map +1 -1
- package/components/card/themes/light/card.content.material.css.js +1 -1
- package/components/card/themes/light/card.content.material.css.js.map +1 -1
- package/components/card/themes/light/card.fluent.css.js +1 -1
- package/components/card/themes/light/card.fluent.css.js.map +1 -1
- package/components/card/themes/light/card.header.bootstrap.css.js +1 -1
- package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
- package/components/card/themes/light/card.header.fluent.css.js +1 -1
- package/components/card/themes/light/card.header.fluent.css.js.map +1 -1
- package/components/card/themes/light/card.header.indigo.css.js +1 -1
- package/components/card/themes/light/card.header.indigo.css.js.map +1 -1
- package/components/card/themes/light/card.header.material.css.js +1 -1
- package/components/card/themes/light/card.header.material.css.js.map +1 -1
- package/components/card/themes/light/card.material.css.js +1 -1
- package/components/card/themes/light/card.material.css.js.map +1 -1
- package/components/card/themes/light/card.media.material.css.js +1 -1
- package/components/card/themes/light/card.media.material.css.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +31 -7
- package/components/checkbox/checkbox-base.js +14 -1
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.d.ts +4 -1
- package/components/checkbox/checkbox.js +1 -0
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.js +1 -0
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/themes/dark/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/dark/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/dark/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/dark/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/dark/switch.fluent.css.js +1 -1
- package/components/checkbox/themes/dark/switch.fluent.css.js.map +1 -1
- package/components/checkbox/themes/dark/switch.indigo.css.js +1 -1
- package/components/checkbox/themes/dark/switch.indigo.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.base.css.js +2 -8
- package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.bootstrap.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.material.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.material.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.base.css.js +2 -8
- package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.bootstrap.css.js +1 -1
- package/components/checkbox/themes/light/switch.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.fluent.css.js +1 -1
- package/components/checkbox/themes/light/switch.fluent.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.indigo.css.js +1 -1
- package/components/checkbox/themes/light/switch.indigo.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.material.css.js +1 -1
- package/components/checkbox/themes/light/switch.material.css.js.map +1 -1
- package/components/chip/chip.d.ts +20 -5
- 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/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/chip.fluent.css.js +1 -1
- package/components/chip/themes/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/chip.indigo.css.js +1 -1
- package/components/chip/themes/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/chip.material.css.js +1 -1
- package/components/chip/themes/chip.material.css.js.map +1 -1
- package/components/combo/combo-header.d.ts +11 -0
- package/components/combo/combo-header.js +23 -0
- package/components/combo/combo-header.js.map +1 -0
- package/components/combo/combo-item.d.ts +22 -0
- package/components/combo/combo-item.js +67 -0
- package/components/combo/combo-item.js.map +1 -0
- package/components/combo/combo-list.d.ts +11 -0
- package/components/combo/combo-list.js +14 -0
- package/components/combo/combo-list.js.map +1 -0
- package/components/combo/combo.d.ts +254 -0
- package/components/combo/combo.js +518 -0
- package/components/combo/combo.js.map +1 -0
- package/components/combo/controllers/data.d.ts +17 -0
- package/components/combo/controllers/data.js +36 -0
- package/components/combo/controllers/data.js.map +1 -0
- package/components/combo/controllers/navigation.d.ts +43 -0
- package/components/combo/controllers/navigation.js +155 -0
- package/components/combo/controllers/navigation.js.map +1 -0
- package/components/combo/controllers/selection.d.ts +23 -0
- package/components/combo/controllers/selection.js +157 -0
- package/components/combo/controllers/selection.js.map +1 -0
- package/components/combo/operations/filter.d.ts +4 -0
- package/components/combo/operations/filter.js +15 -0
- package/components/combo/operations/filter.js.map +1 -0
- package/components/combo/operations/group.d.ts +9 -0
- package/components/combo/operations/group.js +56 -0
- package/components/combo/operations/group.js.map +1 -0
- package/components/combo/themes/dark/combo.bootstrap.css.d.ts +1 -0
- package/components/combo/themes/dark/combo.bootstrap.css.js +3 -0
- package/components/combo/themes/dark/combo.bootstrap.css.js.map +1 -0
- package/components/combo/themes/dark/combo.fluent.css.d.ts +1 -0
- package/components/combo/themes/dark/combo.fluent.css.js +3 -0
- package/components/combo/themes/dark/combo.fluent.css.js.map +1 -0
- package/components/combo/themes/dark/combo.indigo.css.d.ts +1 -0
- package/components/combo/themes/dark/combo.indigo.css.js +3 -0
- package/components/combo/themes/dark/combo.indigo.css.js.map +1 -0
- package/components/combo/themes/dark/combo.material.css.d.ts +1 -0
- package/components/combo/themes/dark/combo.material.css.js +3 -0
- package/components/combo/themes/dark/combo.material.css.js.map +1 -0
- package/components/combo/themes/light/combo.base.css.d.ts +1 -0
- package/components/combo/themes/light/combo.base.css.js +174 -0
- package/components/combo/themes/light/combo.base.css.js.map +1 -0
- package/components/combo/themes/light/combo.bootstrap.css.d.ts +1 -0
- package/components/combo/themes/light/combo.bootstrap.css.js +94 -0
- package/components/combo/themes/light/combo.bootstrap.css.js.map +1 -0
- package/components/combo/themes/light/combo.fluent.css.d.ts +1 -0
- package/components/combo/themes/light/combo.fluent.css.js +70 -0
- package/components/combo/themes/light/combo.fluent.css.js.map +1 -0
- package/components/combo/themes/light/combo.indigo.css.d.ts +1 -0
- package/components/combo/themes/light/combo.indigo.css.js +41 -0
- package/components/combo/themes/light/combo.indigo.css.js.map +1 -0
- package/components/combo/themes/light/combo.material.css.d.ts +1 -0
- package/components/combo/themes/light/combo.material.css.js +84 -0
- package/components/combo/themes/light/combo.material.css.js.map +1 -0
- package/components/combo/themes/light/header/combo-header.base.css.d.ts +1 -0
- package/components/combo/themes/light/header/combo-header.base.css.js +66 -0
- package/components/combo/themes/light/header/combo-header.base.css.js.map +1 -0
- package/components/combo/themes/light/item/combo-item.base.css.d.ts +1 -0
- package/components/combo/themes/light/item/combo-item.base.css.js +135 -0
- package/components/combo/themes/light/item/combo-item.base.css.js.map +1 -0
- package/components/combo/types.d.ts +39 -0
- package/components/combo/types.js +2 -0
- package/components/combo/types.js.map +1 -0
- package/components/combo/utils/converters.d.ts +3 -0
- package/components/combo/utils/converters.js +9 -0
- package/components/combo/utils/converters.js.map +1 -0
- package/components/common/decorators/index.d.ts +9 -9
- package/components/common/decorators/index.js +9 -9
- package/components/common/decorators/index.js.map +1 -1
- package/components/common/definitions/defineAllComponents.js +6 -0
- package/components/common/definitions/defineAllComponents.js.map +1 -1
- package/components/common/mixins/constructor.d.ts +2 -2
- package/components/common/mixins/event-emitter.d.ts +2 -2
- package/components/common/mixins/event-emitter.js.map +1 -1
- package/components/common/mixins/sizable.d.ts +1 -1
- package/components/common/mixins/sizable.js.map +1 -1
- package/components/common/types.d.ts +1 -1
- package/components/date-time-input/date-time-input.d.ts +27 -8
- package/components/date-time-input/date-time-input.js +23 -22
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/dialog/dialog.d.ts +17 -4
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/themes/light/dialog.base.css.js +1 -2
- package/components/dialog/themes/light/dialog.base.css.js.map +1 -1
- package/components/dialog/themes/light/dialog.bootstrap.css.js +1 -1
- package/components/dialog/themes/light/dialog.bootstrap.css.js.map +1 -1
- package/components/dialog/themes/light/dialog.fluent.css.js +1 -1
- package/components/dialog/themes/light/dialog.fluent.css.js.map +1 -1
- package/components/dialog/themes/light/dialog.indigo.css.js +1 -1
- package/components/dialog/themes/light/dialog.indigo.css.js.map +1 -1
- package/components/dialog/themes/light/dialog.material.css.js +1 -1
- package/components/dialog/themes/light/dialog.material.css.js.map +1 -1
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown-header.js.map +1 -1
- package/components/dropdown/dropdown-item.d.ts +4 -0
- package/components/dropdown/dropdown-item.js +1 -1
- package/components/dropdown/dropdown-item.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +30 -7
- package/components/dropdown/dropdown.js +27 -27
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/themes/dark/dropdown.bootstrap.css.js +1 -1
- package/components/dropdown/themes/dark/dropdown.bootstrap.css.js.map +1 -1
- package/components/dropdown/themes/dark/dropdown.fluent.css.js +1 -1
- package/components/dropdown/themes/dark/dropdown.fluent.css.js.map +1 -1
- package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
- package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-group.base.css.js +1 -1
- package/components/dropdown/themes/light/dropdown-group.base.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-group.fluent.css.js +1 -1
- package/components/dropdown/themes/light/dropdown-group.fluent.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-header.base.css.js +1 -1
- package/components/dropdown/themes/light/dropdown-header.base.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js +1 -1
- package/components/dropdown/themes/light/dropdown-header.bootstrap.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-header.fluent.css.js +1 -1
- package/components/dropdown/themes/light/dropdown-header.fluent.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-item.base.css.js +1 -1
- package/components/dropdown/themes/light/dropdown-item.base.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js +1 -1
- package/components/dropdown/themes/light/dropdown-item.bootstrap.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-item.fluent.css.js +1 -1
- package/components/dropdown/themes/light/dropdown-item.fluent.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown-item.indigo.css.js +1 -1
- package/components/dropdown/themes/light/dropdown-item.indigo.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown.base.css.js +1 -1
- package/components/dropdown/themes/light/dropdown.base.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown.bootstrap.css.js +1 -1
- package/components/dropdown/themes/light/dropdown.bootstrap.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown.fluent.css.js +1 -1
- package/components/dropdown/themes/light/dropdown.fluent.css.js.map +1 -1
- package/components/dropdown/themes/light/dropdown.indigo.css.js +1 -1
- package/components/dropdown/themes/light/dropdown.indigo.css.js.map +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +12 -3
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.base.css.js +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.base.css.js.map +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.bootstrap.css.js.map +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.fluent.css.js.map +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js +1 -1
- package/components/expansion-panel/themes/light/expansion-panel.indigo.css.js.map +1 -1
- package/components/form/form.js +1 -0
- package/components/form/form.js.map +1 -1
- package/components/icon/icon.d.ts +6 -10
- package/components/icon/icon.js +17 -25
- package/components/icon/icon.js.map +1 -1
- package/components/icon/icon.material.css.js +3 -3
- package/components/icon/icon.material.css.js.map +1 -1
- package/components/icon/icon.registry.js +9 -5
- package/components/icon/icon.registry.js.map +1 -1
- package/components/input/input-base.d.ts +32 -7
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.d.ts +48 -11
- package/components/input/input.js.map +1 -1
- package/components/input/themes/dark/input.dark.indigo.css.js +1 -1
- package/components/input/themes/dark/input.dark.indigo.css.js.map +1 -1
- package/components/input/themes/dark/input.dark.material.css.js +1 -1
- package/components/input/themes/dark/input.dark.material.css.js.map +1 -1
- package/components/input/themes/light/input.base.css.js +8 -2
- package/components/input/themes/light/input.base.css.js.map +1 -1
- package/components/input/themes/light/input.bootstrap.css.js +32 -5
- package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/light/input.fluent.css.js +23 -5
- package/components/input/themes/light/input.fluent.css.js.map +1 -1
- package/components/input/themes/light/input.indigo.css.js +16 -9
- package/components/input/themes/light/input.indigo.css.js.map +1 -1
- package/components/input/themes/light/input.material.css.js +59 -37
- package/components/input/themes/light/input.material.css.js.map +1 -1
- package/components/list/list-header.js.map +1 -1
- package/components/list/list-item.js.map +1 -1
- package/components/list/list.js.map +1 -1
- package/components/list/themes/dark/list.bootstrap.css.js +1 -1
- package/components/list/themes/dark/list.bootstrap.css.js.map +1 -1
- package/components/list/themes/dark/list.fluent.css.js +1 -1
- package/components/list/themes/dark/list.fluent.css.js.map +1 -1
- package/components/list/themes/dark/list.indigo.css.js +1 -1
- package/components/list/themes/dark/list.indigo.css.js.map +1 -1
- package/components/list/themes/light/list-header.base.css.js +1 -1
- package/components/list/themes/light/list-header.base.css.js.map +1 -1
- package/components/list/themes/light/list-header.indigo.css.js +1 -1
- package/components/list/themes/light/list-header.indigo.css.js.map +1 -1
- package/components/list/themes/light/list-item.base.css.js +1 -1
- package/components/list/themes/light/list-item.base.css.js.map +1 -1
- package/components/list/themes/light/list-item.bootstrap.css.js +1 -1
- package/components/list/themes/light/list-item.bootstrap.css.js.map +1 -1
- package/components/list/themes/light/list-item.fluent.css.js +1 -1
- package/components/list/themes/light/list-item.fluent.css.js.map +1 -1
- package/components/list/themes/light/list-item.indigo.css.js +1 -1
- package/components/list/themes/light/list-item.indigo.css.js.map +1 -1
- package/components/list/themes/light/list.base.css.js +1 -1
- package/components/list/themes/light/list.base.css.js.map +1 -1
- package/components/list/themes/light/list.bootstrap.css.js +1 -1
- package/components/list/themes/light/list.bootstrap.css.js.map +1 -1
- package/components/mask-input/mask-input-base.d.ts +6 -7
- package/components/mask-input/mask-input-base.js +22 -13
- package/components/mask-input/mask-input-base.js.map +1 -1
- package/components/mask-input/mask-input.d.ts +11 -10
- package/components/mask-input/mask-input.js +17 -23
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/mask-input/mask-parser.d.ts +3 -1
- package/components/mask-input/mask-parser.js +16 -0
- package/components/mask-input/mask-parser.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.d.ts +8 -2
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.d.ts +8 -2
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js.map +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js.map +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js.map +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js +1 -1
- package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js.map +1 -1
- package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js +1 -1
- package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js.map +1 -1
- package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js +1 -1
- package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js +1 -1
- package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js +1 -1
- package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js.map +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js.map +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -1
- package/components/nav-drawer/themes/light/nav-drawer.base.css.js +1 -1
- package/components/nav-drawer/themes/light/nav-drawer.base.css.js.map +1 -1
- package/components/navbar/navbar.js.map +1 -1
- package/components/navbar/themes/light/navbar.base.css.js +1 -1
- package/components/navbar/themes/light/navbar.base.css.js.map +1 -1
- package/components/navbar/themes/light/navbar.bootstrap.css.js +1 -1
- package/components/navbar/themes/light/navbar.bootstrap.css.js.map +1 -1
- package/components/navbar/themes/light/navbar.fluent.css.js +1 -1
- package/components/navbar/themes/light/navbar.fluent.css.js.map +1 -1
- package/components/navbar/themes/light/navbar.indigo.css.js +1 -1
- package/components/navbar/themes/light/navbar.indigo.css.js.map +1 -1
- package/components/progress/base.d.ts +25 -6
- package/components/progress/base.js.map +1 -1
- package/components/progress/circular-gradient.d.ts +12 -3
- package/components/progress/circular-gradient.js.map +1 -1
- package/components/progress/circular-progress.js.map +1 -1
- package/components/progress/linear-progress.d.ts +8 -2
- 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/circular.progress.bootstrap.css.js +1 -1
- package/components/progress/themes/circular/circular.progress.bootstrap.css.js.map +1 -1
- package/components/progress/themes/circular/circular.progress.fluent.css.js +1 -1
- package/components/progress/themes/circular/circular.progress.fluent.css.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/linear.progress.bootstrap.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.bootstrap.css.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.fluent.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.fluent.css.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.indigo.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.indigo.css.js.map +1 -1
- package/components/radio/radio.d.ts +35 -8
- package/components/radio/radio.js +15 -1
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/dark/radio.fluent.css.js +1 -1
- package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
- package/components/radio/themes/dark/radio.indigo.css.js +1 -1
- package/components/radio/themes/dark/radio.indigo.css.js.map +1 -1
- package/components/radio/themes/light/radio.base.css.js +2 -8
- package/components/radio/themes/light/radio.base.css.js.map +1 -1
- package/components/radio/themes/light/radio.bootstrap.css.js +1 -1
- package/components/radio/themes/light/radio.bootstrap.css.js.map +1 -1
- package/components/radio/themes/light/radio.fluent.css.js +2 -1
- package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
- package/components/radio/themes/light/radio.indigo.css.js +1 -1
- package/components/radio/themes/light/radio.indigo.css.js.map +1 -1
- package/components/radio/themes/light/radio.material.css.js +1 -1
- package/components/radio/themes/light/radio.material.css.js.map +1 -1
- package/components/radio-group/radio-group.base.css.js +1 -1
- package/components/radio-group/radio-group.base.css.js.map +1 -1
- package/components/radio-group/radio-group.d.ts +4 -0
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/rating/rating-symbol.base.css.js +1 -1
- package/components/rating/rating-symbol.base.css.js.map +1 -1
- package/components/rating/rating-symbol.d.ts +1 -0
- package/components/rating/rating-symbol.js +4 -0
- package/components/rating/rating-symbol.js.map +1 -1
- package/components/rating/rating.base.css.js +1 -1
- package/components/rating/rating.base.css.js.map +1 -1
- package/components/rating/rating.bootstrap.css.js +1 -1
- package/components/rating/rating.bootstrap.css.js.map +1 -1
- package/components/rating/rating.d.ts +31 -7
- package/components/rating/rating.fluent.css.js +1 -1
- package/components/rating/rating.fluent.css.js.map +1 -1
- package/components/rating/rating.indigo.css.js +1 -1
- package/components/rating/rating.indigo.css.js.map +1 -1
- package/components/rating/rating.js +15 -15
- package/components/rating/rating.js.map +1 -1
- package/components/select/select-group.d.ts +4 -0
- package/components/select/select-group.js.map +1 -1
- package/components/select/select.d.ts +52 -13
- package/components/select/select.js +17 -7
- package/components/select/select.js.map +1 -1
- package/components/select/themes/dark/select.fluent.css.js +1 -1
- package/components/select/themes/dark/select.fluent.css.js.map +1 -1
- package/components/select/themes/dark/select.indigo.css.js +1 -1
- package/components/select/themes/dark/select.indigo.css.js.map +1 -1
- package/components/select/themes/dark/select.material.css.js +1 -1
- package/components/select/themes/dark/select.material.css.js.map +1 -1
- package/components/select/themes/light/select.base.css.js +5 -1
- package/components/select/themes/light/select.base.css.js.map +1 -1
- package/components/select/themes/light/select.bootstrap.css.js +3 -5
- package/components/select/themes/light/select.bootstrap.css.js.map +1 -1
- package/components/select/themes/light/select.fluent.css.js +1 -1
- package/components/select/themes/light/select.fluent.css.js.map +1 -1
- package/components/select/themes/light/select.indigo.css.js +5 -1
- package/components/select/themes/light/select.indigo.css.js.map +1 -1
- package/components/select/themes/light/select.material.css.js +7 -10
- package/components/select/themes/light/select.material.css.js.map +1 -1
- package/components/slider/range-slider.d.ts +4 -0
- package/components/slider/range-slider.js.map +1 -1
- package/components/slider/slider-base.d.ts +16 -0
- package/components/slider/slider-base.js +70 -70
- package/components/slider/slider-base.js.map +1 -1
- package/components/slider/slider.d.ts +2 -0
- package/components/slider/slider.js.map +1 -1
- package/components/slider/themes/dark/slider.bootstrap.css.js +1 -1
- package/components/slider/themes/dark/slider.bootstrap.css.js.map +1 -1
- package/components/slider/themes/dark/slider.fluent.css.js +1 -1
- package/components/slider/themes/dark/slider.fluent.css.js.map +1 -1
- package/components/slider/themes/dark/slider.indigo.css.js +1 -1
- package/components/slider/themes/dark/slider.indigo.css.js.map +1 -1
- package/components/slider/themes/light/slider.base.css.js +1 -1
- package/components/slider/themes/light/slider.base.css.js.map +1 -1
- package/components/slider/themes/light/slider.bootstrap.css.js +1 -1
- package/components/slider/themes/light/slider.bootstrap.css.js.map +1 -1
- package/components/slider/themes/light/slider.fluent.css.js +1 -1
- package/components/slider/themes/light/slider.fluent.css.js.map +1 -1
- package/components/slider/themes/light/slider.indigo.css.js +1 -1
- package/components/slider/themes/light/slider.indigo.css.js.map +1 -1
- package/components/slider/themes/light/slider.material.css.js +1 -1
- package/components/slider/themes/light/slider.material.css.js.map +1 -1
- package/components/snackbar/snackbar.d.ts +16 -4
- package/components/snackbar/snackbar.js.map +1 -1
- package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
- package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
- package/components/snackbar/themes/light/snackbar.base.css.js +1 -1
- package/components/snackbar/themes/light/snackbar.base.css.js.map +1 -1
- package/components/snackbar/themes/light/snackbar.bootstrap.css.js +1 -1
- package/components/snackbar/themes/light/snackbar.bootstrap.css.js.map +1 -1
- package/components/snackbar/themes/light/snackbar.fluent.css.js +1 -1
- package/components/snackbar/themes/light/snackbar.fluent.css.js.map +1 -1
- package/components/snackbar/themes/light/snackbar.indigo.css.js +1 -1
- package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -1
- package/components/stepper/step.d.ts +94 -0
- package/components/stepper/step.js +211 -0
- package/components/stepper/step.js.map +1 -0
- package/components/stepper/stepper.common.d.ts +11 -0
- package/components/stepper/stepper.common.js +2 -0
- package/components/stepper/stepper.common.js.map +1 -0
- package/components/stepper/stepper.d.ts +110 -0
- package/components/stepper/stepper.js +345 -0
- package/components/stepper/stepper.js.map +1 -0
- package/components/stepper/themes/step/dark/step.bootstrap.css.d.ts +1 -0
- package/components/stepper/themes/step/dark/step.bootstrap.css.js +3 -0
- package/components/stepper/themes/step/dark/step.bootstrap.css.js.map +1 -0
- package/components/stepper/themes/step/dark/step.fluent.css.d.ts +1 -0
- package/components/stepper/themes/step/dark/step.fluent.css.js +3 -0
- package/components/stepper/themes/step/dark/step.fluent.css.js.map +1 -0
- package/components/stepper/themes/step/dark/step.indigo.css.d.ts +1 -0
- package/components/stepper/themes/step/dark/step.indigo.css.js +3 -0
- package/components/stepper/themes/step/dark/step.indigo.css.js.map +1 -0
- package/components/stepper/themes/step/dark/step.material.css.d.ts +1 -0
- package/components/stepper/themes/step/dark/step.material.css.js +3 -0
- package/components/stepper/themes/step/dark/step.material.css.js.map +1 -0
- package/components/stepper/themes/step/light/step.base.css.d.ts +1 -0
- package/components/stepper/themes/step/light/step.base.css.js +456 -0
- package/components/stepper/themes/step/light/step.base.css.js.map +1 -0
- package/components/stepper/themes/step/light/step.bootstrap.css.d.ts +1 -0
- package/components/stepper/themes/step/light/step.bootstrap.css.js +23 -0
- package/components/stepper/themes/step/light/step.bootstrap.css.js.map +1 -0
- package/components/stepper/themes/step/light/step.fluent.css.d.ts +1 -0
- package/components/stepper/themes/step/light/step.fluent.css.js +16 -0
- package/components/stepper/themes/step/light/step.fluent.css.js.map +1 -0
- package/components/stepper/themes/step/light/step.indigo.css.d.ts +1 -0
- package/components/stepper/themes/step/light/step.indigo.css.js +29 -0
- package/components/stepper/themes/step/light/step.indigo.css.js.map +1 -0
- package/components/stepper/themes/step/light/step.material.css.d.ts +1 -0
- package/components/stepper/themes/step/light/step.material.css.js +8 -0
- package/components/stepper/themes/step/light/step.material.css.js.map +1 -0
- package/components/stepper/themes/stepper/stepper.base.css.d.ts +1 -0
- package/components/stepper/themes/stepper/stepper.base.css.js +142 -0
- package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -0
- package/components/stepper/themes/stepper/stepper.bootstrap.css.d.ts +1 -0
- package/components/stepper/themes/stepper/stepper.bootstrap.css.js +46 -0
- package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -0
- package/components/stepper/themes/stepper/stepper.fluent.css.d.ts +1 -0
- package/components/stepper/themes/stepper/stepper.fluent.css.js +40 -0
- package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -0
- package/components/stepper/themes/stepper/stepper.indigo.css.d.ts +1 -0
- package/components/stepper/themes/stepper/stepper.indigo.css.js +40 -0
- package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -0
- package/components/tabs/tab.d.ts +12 -3
- package/components/tabs/tab.js +1 -1
- package/components/tabs/tab.js.map +1 -1
- package/components/tabs/tabs.d.ts +5 -1
- package/components/tabs/tabs.js.map +1 -1
- package/components/tabs/themes/dark/tab.dark.base.css.js +1 -1
- package/components/tabs/themes/dark/tab.dark.base.css.js.map +1 -1
- package/components/tabs/themes/dark/tab.dark.bootstrap.css.js +1 -1
- package/components/tabs/themes/dark/tab.dark.bootstrap.css.js.map +1 -1
- package/components/tabs/themes/light/tab-panel.base.css.js +1 -1
- package/components/tabs/themes/light/tab-panel.base.css.js.map +1 -1
- package/components/tabs/themes/light/tab.base.css.js +1 -1
- package/components/tabs/themes/light/tab.base.css.js.map +1 -1
- package/components/tabs/themes/light/tab.bootstrap.css.js +1 -1
- package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -1
- package/components/tabs/themes/light/tab.fluent.css.js +1 -1
- package/components/tabs/themes/light/tab.fluent.css.js.map +1 -1
- package/components/tabs/themes/light/tab.indigo.css.js +1 -1
- package/components/tabs/themes/light/tab.indigo.css.js.map +1 -1
- package/components/tabs/themes/light/tabs.base.css.js +1 -1
- package/components/tabs/themes/light/tabs.base.css.js.map +1 -1
- package/components/tabs/themes/light/tabs.bootstrap.css.js +1 -1
- package/components/tabs/themes/light/tabs.bootstrap.css.js.map +1 -1
- package/components/tabs/themes/light/tabs.fluent.css.js +1 -1
- package/components/tabs/themes/light/tabs.fluent.css.js.map +1 -1
- package/components/tabs/themes/light/tabs.indigo.css.js +1 -1
- package/components/tabs/themes/light/tabs.indigo.css.js.map +1 -1
- package/components/toast/themes/toast.base.css.js +1 -1
- package/components/toast/themes/toast.base.css.js.map +1 -1
- package/components/toast/themes/toast.bootstrap.css.js +1 -1
- package/components/toast/themes/toast.bootstrap.css.js.map +1 -1
- package/components/toast/themes/toast.fluent.css.js +1 -1
- package/components/toast/themes/toast.fluent.css.js.map +1 -1
- package/components/toast/themes/toast.indigo.css.js +1 -1
- package/components/toast/themes/toast.indigo.css.js.map +1 -1
- package/components/toast/toast.d.ts +13 -6
- package/components/toast/toast.js.map +1 -1
- package/components/toggle/toggle.controller.d.ts +1 -1
- package/components/toggle/toggle.controller.js +13 -13
- package/components/toggle/toggle.controller.js.map +1 -1
- package/components/toggle/toggle.directive.js +10 -10
- package/components/toggle/toggle.directive.js.map +1 -1
- package/components/toggle/types.d.ts +1 -1
- package/components/tree/themes/dark/tree-item.bootstrap.css.js +1 -1
- package/components/tree/themes/dark/tree-item.bootstrap.css.js.map +1 -1
- package/components/tree/themes/dark/tree-item.fluent.css.js +1 -1
- package/components/tree/themes/dark/tree-item.fluent.css.js.map +1 -1
- package/components/tree/themes/dark/tree-item.indigo.css.js +1 -1
- package/components/tree/themes/dark/tree-item.indigo.css.js.map +1 -1
- package/components/tree/themes/light/tree-item.base.css.js +1 -1
- package/components/tree/themes/light/tree-item.base.css.js.map +1 -1
- package/components/tree/themes/light/tree-item.bootstrap.css.js +1 -1
- package/components/tree/themes/light/tree-item.bootstrap.css.js.map +1 -1
- package/components/tree/themes/light/tree-item.fluent.css.js +1 -1
- package/components/tree/themes/light/tree-item.fluent.css.js.map +1 -1
- package/components/tree/themes/light/tree-item.indigo.css.js +1 -1
- package/components/tree/themes/light/tree-item.indigo.css.js.map +1 -1
- package/components/tree/themes/light/tree.base.css.js +1 -1
- package/components/tree/themes/light/tree.base.css.js.map +1 -1
- package/components/tree/tree-item.d.ts +25 -6
- package/components/tree/tree-item.js.map +1 -1
- package/components/tree/tree.d.ts +12 -3
- package/components/tree/tree.js +8 -8
- package/components/tree/tree.js.map +1 -1
- package/custom-elements.json +870 -2
- package/index.d.ts +5 -0
- package/index.js +3 -0
- package/index.js.map +1 -1
- package/package.json +5 -3
- package/themes/dark/bootstrap.css +6 -2
- package/themes/dark/fluent.css +11 -7
- package/themes/dark/indigo.css +6 -2
- package/themes/dark/material.css +6 -2
- package/themes/light/bootstrap.css +1 -1
- package/themes/light/fluent.css +6 -6
- package/themes/light/indigo.css +1 -1
- package/themes/light/material.css +1 -1
- package/theming/theming-event.d.ts +1 -1
- package/theming/types.d.ts +2 -2
- package/vscode-html-custom-data.json +337 -19
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, LitElement } from 'lit';
|
|
8
|
+
import { themes } from '../../theming/theming-decorator.js';
|
|
9
|
+
import { styles } from './themes/light/combo.base.css.js';
|
|
10
|
+
import { styles as bootstrap } from './themes/light/combo.bootstrap.css.js';
|
|
11
|
+
import { styles as material } from './themes/light/combo.material.css.js';
|
|
12
|
+
import { styles as fluent } from './themes/light/combo.fluent.css.js';
|
|
13
|
+
import { styles as indigo } from './themes/light/combo.indigo.css.js';
|
|
14
|
+
import { property, query, queryAssignedElements, state, } from 'lit/decorators.js';
|
|
15
|
+
import { watch } from '../common/decorators/watch.js';
|
|
16
|
+
import { defineComponents } from '../common/definitions/defineComponents.js';
|
|
17
|
+
import IgcComboListComponent from './combo-list.js';
|
|
18
|
+
import IgcComboItemComponent from './combo-item.js';
|
|
19
|
+
import IgcComboHeaderComponent from './combo-header.js';
|
|
20
|
+
import IgcInputComponent from '../input/input.js';
|
|
21
|
+
import IgcIconComponent from '../icon/icon.js';
|
|
22
|
+
import { NavigationController } from './controllers/navigation.js';
|
|
23
|
+
import { SelectionController } from './controllers/selection.js';
|
|
24
|
+
import { IgcToggleController } from '../toggle/toggle.controller.js';
|
|
25
|
+
import { DataController } from './controllers/data.js';
|
|
26
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
27
|
+
import { partNameMap } from '../common/util.js';
|
|
28
|
+
import { filteringOptionsConverter } from './utils/converters.js';
|
|
29
|
+
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
|
|
30
|
+
import { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';
|
|
31
|
+
defineComponents(IgcIconComponent, IgcComboListComponent, IgcComboItemComponent, IgcComboHeaderComponent, IgcInputComponent);
|
|
32
|
+
let IgcComboComponent = class IgcComboComponent extends EventEmitterMixin(LitElement) {
|
|
33
|
+
dataChanged() {
|
|
34
|
+
this.dataState = structuredClone(this.data);
|
|
35
|
+
if (this.hasUpdated) {
|
|
36
|
+
this.pipeline();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
updateDisplayKey() {
|
|
40
|
+
var _a;
|
|
41
|
+
this.displayKey = (_a = this.displayKey) !== null && _a !== void 0 ? _a : this.valueKey;
|
|
42
|
+
}
|
|
43
|
+
updateFilterKey() {
|
|
44
|
+
var _a;
|
|
45
|
+
this.filteringOptions.filterKey =
|
|
46
|
+
(_a = this.filteringOptions.filterKey) !== null && _a !== void 0 ? _a : this.displayKey;
|
|
47
|
+
}
|
|
48
|
+
async pipeline() {
|
|
49
|
+
this.dataState = await this.dataController.apply([...this.data]);
|
|
50
|
+
this.navigationController.active = -1;
|
|
51
|
+
}
|
|
52
|
+
toggleDirectiveChange() {
|
|
53
|
+
if (!this.target)
|
|
54
|
+
return;
|
|
55
|
+
this.toggleController.target = this.target;
|
|
56
|
+
this.target.setAttribute('aria-expanded', this.open ? 'true' : 'false');
|
|
57
|
+
}
|
|
58
|
+
constructor() {
|
|
59
|
+
super();
|
|
60
|
+
this.navigationController = new NavigationController(this);
|
|
61
|
+
this.selectionController = new SelectionController(this);
|
|
62
|
+
this.dataController = new DataController(this);
|
|
63
|
+
this.data = [];
|
|
64
|
+
this.disabled = false;
|
|
65
|
+
this.required = false;
|
|
66
|
+
this.invalid = false;
|
|
67
|
+
this.outlined = false;
|
|
68
|
+
this.autofocusList = false;
|
|
69
|
+
this.placeholderSearch = 'Search';
|
|
70
|
+
this.dir = 'auto';
|
|
71
|
+
this.open = false;
|
|
72
|
+
this.flip = true;
|
|
73
|
+
this.displayKey = this.valueKey;
|
|
74
|
+
this.groupKey = this.displayKey;
|
|
75
|
+
this.groupSorting = 'asc';
|
|
76
|
+
this.filteringOptions = {
|
|
77
|
+
filterKey: this.displayKey,
|
|
78
|
+
caseSensitive: false,
|
|
79
|
+
};
|
|
80
|
+
this.caseSensitiveIcon = false;
|
|
81
|
+
this.disableFiltering = false;
|
|
82
|
+
this.itemTemplate = ({ item }) => {
|
|
83
|
+
if (typeof item !== 'object' || item === null) {
|
|
84
|
+
return String(item);
|
|
85
|
+
}
|
|
86
|
+
if (this.displayKey) {
|
|
87
|
+
return html `${item[this.displayKey]}`;
|
|
88
|
+
}
|
|
89
|
+
return html `${String(item)}`;
|
|
90
|
+
};
|
|
91
|
+
this.groupHeaderTemplate = ({ item }) => {
|
|
92
|
+
return html `${this.groupKey && item[this.groupKey]}`;
|
|
93
|
+
};
|
|
94
|
+
this.dataState = [];
|
|
95
|
+
this.itemRenderer = (item, index) => {
|
|
96
|
+
const record = item;
|
|
97
|
+
const active = this.navigationController.active === index;
|
|
98
|
+
const selected = this.selectionController.selected.has(item);
|
|
99
|
+
const headerTemplate = html `<igc-combo-header part="group-header"
|
|
100
|
+
>${this.groupHeaderTemplate({ item: record })}</igc-combo-header
|
|
101
|
+
>`;
|
|
102
|
+
const itemParts = partNameMap({
|
|
103
|
+
item: true,
|
|
104
|
+
selected,
|
|
105
|
+
active,
|
|
106
|
+
});
|
|
107
|
+
const itemTemplate = html `<igc-combo-item
|
|
108
|
+
part="${itemParts}"
|
|
109
|
+
exportparts="checkbox, checkbox-indicator, checked"
|
|
110
|
+
@click=${this.itemClickHandler.bind(this)}
|
|
111
|
+
.index=${index}
|
|
112
|
+
.active=${active}
|
|
113
|
+
.selected=${selected}
|
|
114
|
+
>${this.itemTemplate({ item: record })}</igc-combo-item
|
|
115
|
+
>`;
|
|
116
|
+
return html `${this.groupKey && record.header
|
|
117
|
+
? headerTemplate
|
|
118
|
+
: itemTemplate}`;
|
|
119
|
+
};
|
|
120
|
+
this.toggleController = new IgcToggleController(this, {
|
|
121
|
+
target: this.target,
|
|
122
|
+
closeCallback: async () => {
|
|
123
|
+
if (!this.handleClosing())
|
|
124
|
+
return;
|
|
125
|
+
this.open = false;
|
|
126
|
+
await this.updateComplete;
|
|
127
|
+
this.emitEvent('igcClosed');
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
this.addEventListener('focus', () => {
|
|
131
|
+
this.emitEvent('igcFocus');
|
|
132
|
+
});
|
|
133
|
+
this.addEventListener('blur', () => {
|
|
134
|
+
this.emitEvent('igcBlur');
|
|
135
|
+
});
|
|
136
|
+
this.addEventListener('keydown', this.navigationController.navigateHost.bind(this.navigationController));
|
|
137
|
+
}
|
|
138
|
+
themeAdopted(controller) {
|
|
139
|
+
this.themeController = controller;
|
|
140
|
+
}
|
|
141
|
+
willUpdate() {
|
|
142
|
+
this.theme = this.themeController.theme;
|
|
143
|
+
}
|
|
144
|
+
async getUpdateComplete() {
|
|
145
|
+
const result = await super.getUpdateComplete();
|
|
146
|
+
await this.toggleController.rendered;
|
|
147
|
+
return result;
|
|
148
|
+
}
|
|
149
|
+
get value() {
|
|
150
|
+
return this.selectionController.getValue(Array.from(this.selectionController.selected));
|
|
151
|
+
}
|
|
152
|
+
validate() {
|
|
153
|
+
this.updateComplete.then(() => this.reportValidity());
|
|
154
|
+
}
|
|
155
|
+
reportValidity() {
|
|
156
|
+
this.invalid = this.required && !this.value;
|
|
157
|
+
return !this.invalid;
|
|
158
|
+
}
|
|
159
|
+
checkValidity() {
|
|
160
|
+
return this.reportValidity();
|
|
161
|
+
}
|
|
162
|
+
focus(options) {
|
|
163
|
+
this.target.focus(options);
|
|
164
|
+
}
|
|
165
|
+
blur() {
|
|
166
|
+
this.target.blur();
|
|
167
|
+
}
|
|
168
|
+
select(items) {
|
|
169
|
+
this.selectionController.select(items, false);
|
|
170
|
+
}
|
|
171
|
+
deselect(items) {
|
|
172
|
+
this.selectionController.deselect(items, false);
|
|
173
|
+
}
|
|
174
|
+
handleSearchInput(e) {
|
|
175
|
+
this.dataController.searchTerm = e.detail;
|
|
176
|
+
}
|
|
177
|
+
handleOpening() {
|
|
178
|
+
const args = { cancelable: true };
|
|
179
|
+
return this.emitEvent('igcOpening', args);
|
|
180
|
+
}
|
|
181
|
+
handleClosing() {
|
|
182
|
+
const args = { cancelable: true };
|
|
183
|
+
return this.emitEvent('igcClosing', args);
|
|
184
|
+
}
|
|
185
|
+
async _show(emit = true) {
|
|
186
|
+
if (this.open)
|
|
187
|
+
return;
|
|
188
|
+
if (emit && !this.handleOpening())
|
|
189
|
+
return;
|
|
190
|
+
this.open = true;
|
|
191
|
+
await this.updateComplete;
|
|
192
|
+
emit && this.emitEvent('igcOpened');
|
|
193
|
+
this.list.focus();
|
|
194
|
+
if (!this.autofocusList) {
|
|
195
|
+
this.input.focus();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
show() {
|
|
199
|
+
this._show(false);
|
|
200
|
+
}
|
|
201
|
+
async _hide(emit = true) {
|
|
202
|
+
if (!this.open)
|
|
203
|
+
return;
|
|
204
|
+
if (emit && !this.handleClosing())
|
|
205
|
+
return;
|
|
206
|
+
this.open = false;
|
|
207
|
+
await this.updateComplete;
|
|
208
|
+
emit && this.emitEvent('igcClosed');
|
|
209
|
+
this.target.focus();
|
|
210
|
+
}
|
|
211
|
+
hide() {
|
|
212
|
+
this._hide(false);
|
|
213
|
+
}
|
|
214
|
+
_toggle(emit = true) {
|
|
215
|
+
this.open ? this._hide(emit) : this._show(emit);
|
|
216
|
+
}
|
|
217
|
+
toggle() {
|
|
218
|
+
this._toggle(false);
|
|
219
|
+
}
|
|
220
|
+
listKeydownHandler(event) {
|
|
221
|
+
const target = event
|
|
222
|
+
.composedPath()
|
|
223
|
+
.find((el) => el instanceof IgcComboListComponent);
|
|
224
|
+
if (target) {
|
|
225
|
+
this.navigationController.navigateList(event, target);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
itemClickHandler(event) {
|
|
229
|
+
const target = event
|
|
230
|
+
.composedPath()
|
|
231
|
+
.find((el) => el instanceof IgcComboItemComponent);
|
|
232
|
+
this.toggleSelect(target.index);
|
|
233
|
+
this.input.focus();
|
|
234
|
+
}
|
|
235
|
+
toggleSelect(index) {
|
|
236
|
+
this.selectionController.changeSelection(index);
|
|
237
|
+
this.navigationController.active = index;
|
|
238
|
+
}
|
|
239
|
+
navigateTo(item) {
|
|
240
|
+
this.navigationController.navigateTo(item, this.list);
|
|
241
|
+
}
|
|
242
|
+
handleClearIconClick(e) {
|
|
243
|
+
e.stopPropagation();
|
|
244
|
+
this.selectionController.deselect([], true);
|
|
245
|
+
this.navigationController.active = -1;
|
|
246
|
+
}
|
|
247
|
+
toggleCaseSensitivity() {
|
|
248
|
+
this.filteringOptions.caseSensitive = !this.filteringOptions.caseSensitive;
|
|
249
|
+
this.requestUpdate('pipeline');
|
|
250
|
+
}
|
|
251
|
+
get hasPrefixes() {
|
|
252
|
+
return this.inputPrefix.length > 0;
|
|
253
|
+
}
|
|
254
|
+
get hasSuffixes() {
|
|
255
|
+
return this.inputSuffix.length > 0;
|
|
256
|
+
}
|
|
257
|
+
renderToggleIcon() {
|
|
258
|
+
const openIcon = this.theme === 'material' ? 'keyboard_arrow_up' : 'arrow_drop_up';
|
|
259
|
+
const closeIcon = this.theme === 'material' ? 'keyboard_arrow_down' : 'arrow_drop_down';
|
|
260
|
+
return html `
|
|
261
|
+
<span slot="suffix" part="toggle-icon">
|
|
262
|
+
<slot name="toggle-icon">
|
|
263
|
+
<igc-icon
|
|
264
|
+
name=${this.open ? openIcon : closeIcon}
|
|
265
|
+
collection="internal"
|
|
266
|
+
aria-hidden="true"
|
|
267
|
+
></igc-icon>
|
|
268
|
+
</slot>
|
|
269
|
+
</span>
|
|
270
|
+
`;
|
|
271
|
+
}
|
|
272
|
+
renderClearIcon() {
|
|
273
|
+
const { selected } = this.selectionController;
|
|
274
|
+
const icon = this.theme === 'material' ? 'chip_cancel' : 'clear';
|
|
275
|
+
return html `<span
|
|
276
|
+
slot="suffix"
|
|
277
|
+
part="clear-icon"
|
|
278
|
+
@click=${this.handleClearIconClick}
|
|
279
|
+
?hidden=${selected.size === 0}
|
|
280
|
+
>
|
|
281
|
+
<slot name="clear-icon">
|
|
282
|
+
<igc-icon
|
|
283
|
+
name="${icon}"
|
|
284
|
+
collection="internal"
|
|
285
|
+
aria-hidden="true"
|
|
286
|
+
></igc-icon>
|
|
287
|
+
</slot>
|
|
288
|
+
</span>`;
|
|
289
|
+
}
|
|
290
|
+
renderInput() {
|
|
291
|
+
return html `<igc-input
|
|
292
|
+
id="target"
|
|
293
|
+
role="combobox"
|
|
294
|
+
aria-owns="dropdown"
|
|
295
|
+
aria-describedby="helper-text"
|
|
296
|
+
aria-disabled=${this.disabled}
|
|
297
|
+
exportparts="container: input, input: native-input, label, prefix, suffix"
|
|
298
|
+
@click=${(e) => {
|
|
299
|
+
e.preventDefault();
|
|
300
|
+
this._toggle(true);
|
|
301
|
+
}}
|
|
302
|
+
value=${ifDefined(this.value)}
|
|
303
|
+
placeholder=${ifDefined(this.placeholder)}
|
|
304
|
+
label=${ifDefined(this.label)}
|
|
305
|
+
dir=${this.dir}
|
|
306
|
+
@igcFocus=${(e) => e.stopPropagation()}
|
|
307
|
+
@igcBlur=${(e) => e.stopPropagation()}
|
|
308
|
+
@keydown=${this.navigationController.navigateHost.bind(this.navigationController)}
|
|
309
|
+
.disabled="${this.disabled}"
|
|
310
|
+
.required=${this.required}
|
|
311
|
+
.invalid=${this.invalid}
|
|
312
|
+
.outlined=${this.outlined}
|
|
313
|
+
.autofocus=${this.autofocus}
|
|
314
|
+
readonly
|
|
315
|
+
>
|
|
316
|
+
<span slot=${this.hasPrefixes && 'prefix'}>
|
|
317
|
+
<slot name="prefix"></slot>
|
|
318
|
+
</span>
|
|
319
|
+
${this.renderClearIcon()}
|
|
320
|
+
<span slot=${this.hasSuffixes && 'suffix'}>
|
|
321
|
+
<slot name="suffix"></slot>
|
|
322
|
+
</span>
|
|
323
|
+
${this.renderToggleIcon()}
|
|
324
|
+
</igc-input>`;
|
|
325
|
+
}
|
|
326
|
+
renderSearchInput() {
|
|
327
|
+
var _a;
|
|
328
|
+
return html `<div part="filter-input" ?hidden=${this.disableFiltering}>
|
|
329
|
+
<igc-input
|
|
330
|
+
part="search-input"
|
|
331
|
+
placeholder=${this.placeholderSearch}
|
|
332
|
+
exportparts="input: search-input"
|
|
333
|
+
@igcFocus=${(e) => e.stopPropagation()}
|
|
334
|
+
@igcBlur=${(e) => e.stopPropagation()}
|
|
335
|
+
@igcInput=${this.handleSearchInput}
|
|
336
|
+
@keydown=${(e) => this.navigationController.navigateInput(e, this.list)}
|
|
337
|
+
dir=${this.dir}
|
|
338
|
+
>
|
|
339
|
+
<igc-icon
|
|
340
|
+
slot=${this.caseSensitiveIcon && 'suffix'}
|
|
341
|
+
name="case_sensitive"
|
|
342
|
+
collection="internal"
|
|
343
|
+
part=${partNameMap({
|
|
344
|
+
'case-icon': true,
|
|
345
|
+
active: (_a = this.filteringOptions.caseSensitive) !== null && _a !== void 0 ? _a : false,
|
|
346
|
+
})}
|
|
347
|
+
@click=${this.toggleCaseSensitivity}
|
|
348
|
+
></igc-icon>
|
|
349
|
+
</igc-input>
|
|
350
|
+
</div>`;
|
|
351
|
+
}
|
|
352
|
+
renderEmptyTemplate() {
|
|
353
|
+
return html `<div part="empty" ?hidden=${this.dataState.length > 0}>
|
|
354
|
+
<slot name="empty">The list is empty</slot>
|
|
355
|
+
</div>`;
|
|
356
|
+
}
|
|
357
|
+
renderList() {
|
|
358
|
+
return html `<div
|
|
359
|
+
@keydown=${this.listKeydownHandler}
|
|
360
|
+
part="list-wrapper"
|
|
361
|
+
${this.toggleController.toggleDirective}
|
|
362
|
+
>
|
|
363
|
+
${this.renderSearchInput()}
|
|
364
|
+
<div part="header">
|
|
365
|
+
<slot name="header"></slot>
|
|
366
|
+
</div>
|
|
367
|
+
<igc-combo-list
|
|
368
|
+
id="dropdown"
|
|
369
|
+
part="list"
|
|
370
|
+
aria-label="${this.label}"
|
|
371
|
+
.items=${this.dataState}
|
|
372
|
+
.renderItem=${this.itemRenderer}
|
|
373
|
+
?hidden=${this.dataState.length === 0}
|
|
374
|
+
>
|
|
375
|
+
</igc-combo-list>
|
|
376
|
+
${this.renderEmptyTemplate()}
|
|
377
|
+
<div part="footer">
|
|
378
|
+
<slot name="footer"></slot>
|
|
379
|
+
</div>
|
|
380
|
+
</div>`;
|
|
381
|
+
}
|
|
382
|
+
renderHelperText() {
|
|
383
|
+
return html `<div
|
|
384
|
+
id="helper-text"
|
|
385
|
+
part="helper-text"
|
|
386
|
+
?hidden="${this.helperText.length === 0}"
|
|
387
|
+
>
|
|
388
|
+
<slot name="helper-text"></slot>
|
|
389
|
+
</div>`;
|
|
390
|
+
}
|
|
391
|
+
render() {
|
|
392
|
+
return html `
|
|
393
|
+
${this.renderInput()}${this.renderList()}${this.renderHelperText()}
|
|
394
|
+
`;
|
|
395
|
+
}
|
|
396
|
+
};
|
|
397
|
+
IgcComboComponent.tagName = 'igc-combo';
|
|
398
|
+
IgcComboComponent.styles = styles;
|
|
399
|
+
__decorate([
|
|
400
|
+
queryAssignedElements({ slot: 'helper-text' })
|
|
401
|
+
], IgcComboComponent.prototype, "helperText", void 0);
|
|
402
|
+
__decorate([
|
|
403
|
+
queryAssignedElements({ slot: 'suffix' })
|
|
404
|
+
], IgcComboComponent.prototype, "inputSuffix", void 0);
|
|
405
|
+
__decorate([
|
|
406
|
+
queryAssignedElements({ slot: 'prefix' })
|
|
407
|
+
], IgcComboComponent.prototype, "inputPrefix", void 0);
|
|
408
|
+
__decorate([
|
|
409
|
+
query('[part="search-input"]')
|
|
410
|
+
], IgcComboComponent.prototype, "input", void 0);
|
|
411
|
+
__decorate([
|
|
412
|
+
query('igc-input#target')
|
|
413
|
+
], IgcComboComponent.prototype, "target", void 0);
|
|
414
|
+
__decorate([
|
|
415
|
+
query('igc-combo-list')
|
|
416
|
+
], IgcComboComponent.prototype, "list", void 0);
|
|
417
|
+
__decorate([
|
|
418
|
+
property({ attribute: false })
|
|
419
|
+
], IgcComboComponent.prototype, "data", void 0);
|
|
420
|
+
__decorate([
|
|
421
|
+
property()
|
|
422
|
+
], IgcComboComponent.prototype, "name", void 0);
|
|
423
|
+
__decorate([
|
|
424
|
+
property({ reflect: true, type: Boolean })
|
|
425
|
+
], IgcComboComponent.prototype, "disabled", void 0);
|
|
426
|
+
__decorate([
|
|
427
|
+
property({ reflect: true, type: Boolean })
|
|
428
|
+
], IgcComboComponent.prototype, "required", void 0);
|
|
429
|
+
__decorate([
|
|
430
|
+
property({ reflect: true, type: Boolean })
|
|
431
|
+
], IgcComboComponent.prototype, "invalid", void 0);
|
|
432
|
+
__decorate([
|
|
433
|
+
property({ reflect: true, type: Boolean })
|
|
434
|
+
], IgcComboComponent.prototype, "outlined", void 0);
|
|
435
|
+
__decorate([
|
|
436
|
+
property({ type: Boolean })
|
|
437
|
+
], IgcComboComponent.prototype, "autofocus", void 0);
|
|
438
|
+
__decorate([
|
|
439
|
+
property({ attribute: 'autofocus-list', type: Boolean })
|
|
440
|
+
], IgcComboComponent.prototype, "autofocusList", void 0);
|
|
441
|
+
__decorate([
|
|
442
|
+
property({ type: String })
|
|
443
|
+
], IgcComboComponent.prototype, "label", void 0);
|
|
444
|
+
__decorate([
|
|
445
|
+
property({ type: String })
|
|
446
|
+
], IgcComboComponent.prototype, "placeholder", void 0);
|
|
447
|
+
__decorate([
|
|
448
|
+
property({ attribute: 'placeholder-search', type: String })
|
|
449
|
+
], IgcComboComponent.prototype, "placeholderSearch", void 0);
|
|
450
|
+
__decorate([
|
|
451
|
+
property({ reflect: true })
|
|
452
|
+
], IgcComboComponent.prototype, "dir", void 0);
|
|
453
|
+
__decorate([
|
|
454
|
+
property({ type: Boolean })
|
|
455
|
+
], IgcComboComponent.prototype, "open", void 0);
|
|
456
|
+
__decorate([
|
|
457
|
+
property({ type: Boolean })
|
|
458
|
+
], IgcComboComponent.prototype, "flip", void 0);
|
|
459
|
+
__decorate([
|
|
460
|
+
property({ attribute: 'value-key', reflect: false })
|
|
461
|
+
], IgcComboComponent.prototype, "valueKey", void 0);
|
|
462
|
+
__decorate([
|
|
463
|
+
property({ attribute: 'display-key', reflect: false })
|
|
464
|
+
], IgcComboComponent.prototype, "displayKey", void 0);
|
|
465
|
+
__decorate([
|
|
466
|
+
property({ attribute: 'group-key', reflect: false })
|
|
467
|
+
], IgcComboComponent.prototype, "groupKey", void 0);
|
|
468
|
+
__decorate([
|
|
469
|
+
property({ attribute: 'group-sorting', reflect: false })
|
|
470
|
+
], IgcComboComponent.prototype, "groupSorting", void 0);
|
|
471
|
+
__decorate([
|
|
472
|
+
property({
|
|
473
|
+
attribute: 'filtering-options',
|
|
474
|
+
reflect: false,
|
|
475
|
+
converter: filteringOptionsConverter,
|
|
476
|
+
})
|
|
477
|
+
], IgcComboComponent.prototype, "filteringOptions", void 0);
|
|
478
|
+
__decorate([
|
|
479
|
+
property({ type: Boolean, attribute: 'case-sensitive-icon', reflect: false })
|
|
480
|
+
], IgcComboComponent.prototype, "caseSensitiveIcon", void 0);
|
|
481
|
+
__decorate([
|
|
482
|
+
property({ type: Boolean, attribute: 'disable-filtering', reflect: false })
|
|
483
|
+
], IgcComboComponent.prototype, "disableFiltering", void 0);
|
|
484
|
+
__decorate([
|
|
485
|
+
property({ attribute: false })
|
|
486
|
+
], IgcComboComponent.prototype, "itemTemplate", void 0);
|
|
487
|
+
__decorate([
|
|
488
|
+
property({ attribute: false })
|
|
489
|
+
], IgcComboComponent.prototype, "groupHeaderTemplate", void 0);
|
|
490
|
+
__decorate([
|
|
491
|
+
state()
|
|
492
|
+
], IgcComboComponent.prototype, "dataState", void 0);
|
|
493
|
+
__decorate([
|
|
494
|
+
watch('data')
|
|
495
|
+
], IgcComboComponent.prototype, "dataChanged", null);
|
|
496
|
+
__decorate([
|
|
497
|
+
watch('valueKey')
|
|
498
|
+
], IgcComboComponent.prototype, "updateDisplayKey", null);
|
|
499
|
+
__decorate([
|
|
500
|
+
watch('displayKey')
|
|
501
|
+
], IgcComboComponent.prototype, "updateFilterKey", null);
|
|
502
|
+
__decorate([
|
|
503
|
+
watch('groupKey'),
|
|
504
|
+
watch('groupSorting'),
|
|
505
|
+
watch('pipeline')
|
|
506
|
+
], IgcComboComponent.prototype, "pipeline", null);
|
|
507
|
+
__decorate([
|
|
508
|
+
watch('open')
|
|
509
|
+
], IgcComboComponent.prototype, "toggleDirectiveChange", null);
|
|
510
|
+
__decorate([
|
|
511
|
+
watch('value')
|
|
512
|
+
], IgcComboComponent.prototype, "validate", null);
|
|
513
|
+
IgcComboComponent = __decorate([
|
|
514
|
+
themes({ material, bootstrap, fluent, indigo }),
|
|
515
|
+
blazorAdditionalDependencies('IgcIconComponent, IgcComboListComponent, IgcComboItemComponent, IgcComboHeaderComponent, IgcInputComponent')
|
|
516
|
+
], IgcComboComponent);
|
|
517
|
+
export default IgcComboComponent;
|
|
518
|
+
//# sourceMappingURL=combo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combo.js","sourceRoot":"","sources":["../../../src/components/combo/combo.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, TemplateResult } from 'lit';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { styles } from './themes/light/combo.base.css.js';\nimport { styles as bootstrap } from './themes/light/combo.bootstrap.css.js';\nimport { styles as material } from './themes/light/combo.material.css.js';\nimport { styles as fluent } from './themes/light/combo.fluent.css.js';\nimport { styles as indigo } from './themes/light/combo.indigo.css.js';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { defineComponents } from '../common/definitions/defineComponents.js';\nimport IgcComboListComponent from './combo-list.js';\nimport IgcComboItemComponent from './combo-item.js';\nimport IgcComboHeaderComponent from './combo-header.js';\nimport IgcInputComponent from '../input/input.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { NavigationController } from './controllers/navigation.js';\nimport { SelectionController } from './controllers/selection.js';\nimport { IgcToggleController } from '../toggle/toggle.controller.js';\nimport { DataController } from './controllers/data.js';\nimport { IgcToggleComponent } from '../toggle/types.js';\nimport {\n Keys,\n Values,\n ComboRecord,\n GroupingDirection,\n FilteringOptions,\n IgcComboEventMap,\n ComboItemTemplate,\n} from './types.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { partNameMap } from '../common/util.js';\nimport { filteringOptionsConverter } from './utils/converters.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport type { ThemeController, Theme } from '../../theming/types.js';\nimport { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';\n\ndefineComponents(\n IgcIconComponent,\n IgcComboListComponent,\n IgcComboItemComponent,\n IgcComboHeaderComponent,\n IgcInputComponent\n);\n\n/**\n * @element igc-combo\n *\n * @slot prefix - Renders content before the input.\n * @slot suffix - Renders content after input.\n * @slot header - Renders a container before the list of options.\n * @slot footer - Renders a container after the list of options.\n * @slot helper-text - Renders content below the input.\n * @slot toggle-icon - Renders content inside the suffix container.\n * @slot clear-icon - Renders content inside the suffix container.\n *\n * @fires igcFocus - Emitted when the select gains focus.\n * @fires igcBlur - Emitted when the select loses focus.\n * @fires igcChange - Emitted when the control's selection has changed.\n * @fires igcOpening - Emitted just before the list of options is opened.\n * @fires igcOpened - Emitted after the list of options is opened.\n * @fires igcClosing - Emitter just before the list of options is closed.\n * @fires igcClosed - Emitted after the list of options is closed.\n *\n * @csspart label - The encapsulated text label.\n * @csspart input - The main input field.\n * @csspart native-input - The native input of the main input field.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n * @csspart toggle-icon - The toggle icon wrapper.\n * @csspart clear-icon - The clear icon wrapper.\n * @csspart case-icon - The case icon wrapper.\n * @csspart helper-text - The helper text wrapper.\n * @csspart search-input - The search input field.\n * @csspart list-wrapper - The list of options wrapper.\n * @csspart list - The list of options box.\n * @csspart item - Represents each item in the list of options.\n * @csspart group-header - Represents each header in the list of options.\n * @csspart active - Appended to the item parts list when the item is active.\n * @csspart selected - Appended to the item parts list when the item is selected.\n * @csspart checkbox - Represents each checkbox of each list item.\n * @csspart checkbox-indicator - Represents the checkbox indicator of each list item.\n * @csspart checked - Appended to checkbox parts list when checkbox is checked.\n * @csspart header - The container holding the header content.\n * @csspart footer - The container holding the footer content.\n * @csspart empty - The container holding the empty content.\n */\n@themes({ material, bootstrap, fluent, indigo })\n@blazorAdditionalDependencies(\n 'IgcIconComponent, IgcComboListComponent, IgcComboItemComponent, IgcComboHeaderComponent, IgcInputComponent'\n)\nexport default class IgcComboComponent<T extends object>\n extends EventEmitterMixin<IgcComboEventMap, Constructor<LitElement>>(\n LitElement\n )\n implements Partial<IgcToggleComponent>\n{\n public static readonly tagName = 'igc-combo';\n public static styles = styles;\n\n protected navigationController = new NavigationController<T>(this);\n protected selectionController = new SelectionController<T>(this);\n protected dataController = new DataController<T>(this);\n protected toggleController!: IgcToggleController;\n protected themeController!: ThemeController;\n protected theme!: Theme;\n\n @queryAssignedElements({ slot: 'helper-text' })\n protected helperText!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'suffix' })\n protected inputSuffix!: Array<HTMLElement>;\n\n @queryAssignedElements({ slot: 'prefix' })\n protected inputPrefix!: Array<HTMLElement>;\n\n @query('[part=\"search-input\"]')\n protected input!: IgcInputComponent;\n\n @query('igc-input#target')\n private target!: IgcInputComponent;\n\n @query('igc-combo-list')\n private list!: IgcComboListComponent;\n\n /** The data source used to generate the list of options. */\n @property({ attribute: false })\n public data: Array<T> = [];\n\n /**\n * The name attribute of the control.\n * @attr name\n */\n @property()\n public name!: string;\n\n /**\n * The disabled attribute of the control.\n * @attr disabled\n */\n @property({ reflect: true, type: Boolean })\n public disabled = false;\n\n /**\n * The required attribute of the control.\n * @attr required\n */\n @property({ reflect: true, type: Boolean })\n public required = false;\n\n /**\n * The invalid attribute of the control.\n * @attr invalid\n */\n @property({ reflect: true, type: Boolean })\n public invalid = false;\n\n /**\n * The outlined attribute of the control.\n * @attr outlined\n */\n @property({ reflect: true, type: Boolean })\n public outlined = false;\n\n /**\n * The autofocus attribute of the control.\n * @attr autofocus\n */\n @property({ type: Boolean })\n public override autofocus!: boolean;\n\n /**\n * Focuses the list of options when the menu opens.\n * @attr autofocus-list\n */\n @property({ attribute: 'autofocus-list', type: Boolean })\n public autofocusList = false;\n\n /**\n * The label attribute of the control.\n * @attr label\n */\n @property({ type: String })\n public label!: string;\n\n /**\n * The placeholder attribute of the control.\n * @attr placeholder\n */\n @property({ type: String })\n public placeholder!: string;\n\n /**\n * The placeholder attribute of the search input.\n * @attr placeholder-search\n */\n @property({ attribute: 'placeholder-search', type: String })\n public placeholderSearch = 'Search';\n\n /**\n * The direction attribute of the control.\n * @attr dir\n */\n @property({ reflect: true })\n public override dir: 'ltr' | 'rtl' | 'auto' = 'auto';\n\n /**\n * Sets the open state of the component.\n * @attr open\n */\n @property({ type: Boolean })\n public open = false;\n\n /** @hidden @internal */\n @property({ type: Boolean })\n public flip = true;\n\n /**\n * The key in the data source used when selecting items.\n * @attr value-key\n */\n @property({ attribute: 'value-key', reflect: false })\n public valueKey?: Keys<T>;\n\n /**\n * The key in the data source used to display items in the list.\n * @attr display-key\n */\n @property({ attribute: 'display-key', reflect: false })\n public displayKey?: Keys<T> = this.valueKey;\n\n /**\n * The key in the data source used to group items in the list.\n * @attr group-key\n */\n @property({ attribute: 'group-key', reflect: false })\n public groupKey?: Keys<T> = this.displayKey;\n\n /**\n * Sorts the items in each group by ascending or descending order.\n * @attr group-sorting\n * @type {\"asc\" | \"desc\"}\n */\n @property({ attribute: 'group-sorting', reflect: false })\n public groupSorting: GroupingDirection = 'asc';\n\n /**\n * An object that configures the filtering of the combo.\n * @attr filtering-options\n * @type {FilteringOptions<T>}\n * @param filterKey - The key in the data source used when filtering the list of options.\n * @param caseSensitive - Determines whether the filtering operation should be case sensitive.\n */\n @property({\n attribute: 'filtering-options',\n reflect: false,\n converter: filteringOptionsConverter,\n })\n public filteringOptions: FilteringOptions<T> = {\n filterKey: this.displayKey,\n caseSensitive: false,\n };\n\n /**\n * Enables the case sensitive search icon in the filtering input.\n * @attr case-sensitive-icon\n */\n @property({ type: Boolean, attribute: 'case-sensitive-icon', reflect: false })\n public caseSensitiveIcon = false;\n\n /**\n * Disables the filtering of the list of options.\n * @attr disable-filtering\n */\n @property({ type: Boolean, attribute: 'disable-filtering', reflect: false })\n public disableFiltering = false;\n\n /**\n * The template used for the content of each combo item.\n * @type {ComboItemTemplate<T>}\n */\n @property({ attribute: false })\n public itemTemplate: ComboItemTemplate<T> = ({ item }) => {\n if (typeof item !== 'object' || item === null) {\n return String(item) as any;\n }\n\n if (this.displayKey) {\n return html`${item[this.displayKey]}`;\n }\n\n return html`${String(item)}`;\n };\n\n /**\n * The template used for the content of each combo group header.\n * @type {ComboItemTemplate<T>}\n */\n @property({ attribute: false })\n public groupHeaderTemplate: ComboItemTemplate<T> = ({ item }) => {\n return html`${this.groupKey && item[this.groupKey]}`;\n };\n\n @state()\n protected dataState: Array<ComboRecord<T>> = [];\n\n @watch('data')\n protected dataChanged() {\n this.dataState = structuredClone(this.data) as ComboRecord<T>[];\n\n if (this.hasUpdated) {\n this.pipeline();\n }\n }\n\n @watch('valueKey')\n protected updateDisplayKey() {\n this.displayKey = this.displayKey ?? this.valueKey;\n }\n\n @watch('displayKey')\n protected updateFilterKey() {\n this.filteringOptions.filterKey =\n this.filteringOptions.filterKey ?? this.displayKey;\n }\n\n @watch('groupKey')\n @watch('groupSorting')\n @watch('pipeline')\n protected async pipeline() {\n this.dataState = await this.dataController.apply([...this.data]);\n this.navigationController.active = -1;\n }\n\n @watch('open')\n protected toggleDirectiveChange() {\n if (!this.target) return;\n this.toggleController.target = this.target;\n this.target.setAttribute('aria-expanded', this.open ? 'true' : 'false');\n }\n\n constructor() {\n super();\n\n this.toggleController = new IgcToggleController(this, {\n target: this.target,\n closeCallback: async () => {\n if (!this.handleClosing()) return;\n this.open = false;\n\n await this.updateComplete;\n this.emitEvent('igcClosed');\n },\n });\n\n this.addEventListener('focus', () => {\n this.emitEvent('igcFocus');\n });\n\n this.addEventListener('blur', () => {\n this.emitEvent('igcBlur');\n });\n\n this.addEventListener(\n 'keydown',\n this.navigationController.navigateHost.bind(this.navigationController)\n );\n }\n\n protected themeAdopted(controller: ThemeController) {\n this.themeController = controller;\n }\n\n protected override willUpdate() {\n this.theme = this.themeController.theme;\n }\n\n protected override async getUpdateComplete() {\n const result = await super.getUpdateComplete();\n await this.toggleController.rendered;\n return result;\n }\n\n /**\n * Returns the current selection as a list of commma separated values,\n * represented by the display key, when provided.\n */\n public get value() {\n return this.selectionController.getValue(\n Array.from(this.selectionController.selected)\n );\n }\n\n @watch('value')\n protected validate() {\n this.updateComplete.then(() => this.reportValidity());\n }\n\n /** Checks the validity of the control. */\n public reportValidity() {\n this.invalid = this.required && !this.value;\n return !this.invalid;\n }\n\n /** A wrapper around the reportValidity method to comply with the native input API. */\n public checkValidity() {\n return this.reportValidity();\n }\n\n /** Sets focus on the component. */\n public override focus(options?: FocusOptions) {\n this.target.focus(options);\n }\n\n /** Removes focus from the component. */\n public override blur() {\n this.target.blur();\n }\n\n /**\n * Selects the options in the list by either value or key value.\n * If not argument is provided all items will be selected.\n * @param { T[] | Values<T>[] } items - A list of values or values as set by the valueKey.\n */\n public select(items?: T[] | Values<T>[]) {\n this.selectionController.select(items, false);\n }\n\n /**\n * Deselects the options in the list by either value or key value.\n * If not argument is provided all items will be deselected.\n * @param { T[] | Values<T>[] } items - A list of values or values as set by the valueKey.\n */\n public deselect(items?: T[] | Values<T>[]) {\n this.selectionController.deselect(items, false);\n }\n\n protected handleSearchInput(e: CustomEvent) {\n this.dataController.searchTerm = e.detail;\n }\n\n protected handleOpening() {\n const args = { cancelable: true };\n return this.emitEvent('igcOpening', args);\n }\n\n protected handleClosing(): boolean {\n const args = { cancelable: true };\n return this.emitEvent('igcClosing', args);\n }\n\n protected async _show(emit = true) {\n if (this.open) return;\n if (emit && !this.handleOpening()) return;\n this.open = true;\n\n await this.updateComplete;\n emit && this.emitEvent('igcOpened');\n\n this.list.focus();\n\n if (!this.autofocusList) {\n this.input.focus();\n }\n }\n\n /** Shows the list of options. */\n public show() {\n this._show(false);\n }\n\n protected async _hide(emit = true) {\n if (!this.open) return;\n if (emit && !this.handleClosing()) return;\n this.open = false;\n\n await this.updateComplete;\n emit && this.emitEvent('igcClosed');\n this.target.focus();\n }\n\n /** Hides the list of options. */\n public hide() {\n this._hide(false);\n }\n\n /** @hidden @internal */\n public _toggle(emit = true) {\n this.open ? this._hide(emit) : this._show(emit);\n }\n\n /** Toggles the list of options. */\n public toggle() {\n this._toggle(false);\n }\n\n protected itemRenderer = (item: T, index: number): TemplateResult => {\n const record = item as ComboRecord<T>;\n const active = this.navigationController.active === index;\n const selected = this.selectionController.selected.has(item);\n const headerTemplate = html`<igc-combo-header part=\"group-header\"\n >${this.groupHeaderTemplate({ item: record })}</igc-combo-header\n >`;\n\n const itemParts = partNameMap({\n item: true,\n selected,\n active,\n });\n\n const itemTemplate = html`<igc-combo-item\n part=\"${itemParts}\"\n exportparts=\"checkbox, checkbox-indicator, checked\"\n @click=${this.itemClickHandler.bind(this)}\n .index=${index}\n .active=${active}\n .selected=${selected}\n >${this.itemTemplate({ item: record })}</igc-combo-item\n >`;\n\n return html`${this.groupKey && record.header\n ? headerTemplate\n : itemTemplate}`;\n };\n\n protected listKeydownHandler(event: KeyboardEvent) {\n const target = event\n .composedPath()\n .find(\n (el) => el instanceof IgcComboListComponent\n ) as IgcComboListComponent;\n\n if (target) {\n this.navigationController.navigateList(event, target);\n }\n }\n\n protected itemClickHandler(event: MouseEvent) {\n const target = event\n .composedPath()\n .find(\n (el) => el instanceof IgcComboItemComponent\n ) as IgcComboItemComponent;\n\n this.toggleSelect(target.index);\n this.input.focus();\n }\n\n protected toggleSelect(index: number) {\n this.selectionController.changeSelection(index);\n this.navigationController.active = index;\n }\n\n protected navigateTo(item: T) {\n this.navigationController.navigateTo(item, this.list);\n }\n\n protected handleClearIconClick(e: MouseEvent) {\n e.stopPropagation();\n this.selectionController.deselect([], true);\n this.navigationController.active = -1;\n }\n\n protected toggleCaseSensitivity() {\n this.filteringOptions.caseSensitive = !this.filteringOptions.caseSensitive;\n this.requestUpdate('pipeline');\n }\n\n protected get hasPrefixes() {\n return this.inputPrefix.length > 0;\n }\n\n protected get hasSuffixes() {\n return this.inputSuffix.length > 0;\n }\n\n private renderToggleIcon() {\n const openIcon =\n this.theme === 'material' ? 'keyboard_arrow_up' : 'arrow_drop_up';\n const closeIcon =\n this.theme === 'material' ? 'keyboard_arrow_down' : 'arrow_drop_down';\n\n return html`\n <span slot=\"suffix\" part=\"toggle-icon\">\n <slot name=\"toggle-icon\">\n <igc-icon\n name=${this.open ? openIcon : closeIcon}\n collection=\"internal\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>\n `;\n }\n\n private renderClearIcon() {\n const { selected } = this.selectionController;\n const icon = this.theme === 'material' ? 'chip_cancel' : 'clear';\n\n return html`<span\n slot=\"suffix\"\n part=\"clear-icon\"\n @click=${this.handleClearIconClick}\n ?hidden=${selected.size === 0}\n >\n <slot name=\"clear-icon\">\n <igc-icon\n name=\"${icon}\"\n collection=\"internal\"\n aria-hidden=\"true\"\n ></igc-icon>\n </slot>\n </span>`;\n }\n\n private renderInput() {\n return html`<igc-input\n id=\"target\"\n role=\"combobox\"\n aria-owns=\"dropdown\"\n aria-describedby=\"helper-text\"\n aria-disabled=${this.disabled}\n exportparts=\"container: input, input: native-input, label, prefix, suffix\"\n @click=${(e: MouseEvent) => {\n e.preventDefault();\n this._toggle(true);\n }}\n value=${ifDefined(this.value)}\n placeholder=${ifDefined(this.placeholder)}\n label=${ifDefined(this.label)}\n dir=${this.dir}\n @igcFocus=${(e: Event) => e.stopPropagation()}\n @igcBlur=${(e: Event) => e.stopPropagation()}\n @keydown=${this.navigationController.navigateHost.bind(\n this.navigationController\n )}\n .disabled=\"${this.disabled}\"\n .required=${this.required}\n .invalid=${this.invalid}\n .outlined=${this.outlined}\n .autofocus=${this.autofocus}\n readonly\n >\n <span slot=${this.hasPrefixes && 'prefix'}>\n <slot name=\"prefix\"></slot>\n </span>\n ${this.renderClearIcon()}\n <span slot=${this.hasSuffixes && 'suffix'}>\n <slot name=\"suffix\"></slot>\n </span>\n ${this.renderToggleIcon()}\n </igc-input>`;\n }\n\n private renderSearchInput() {\n return html`<div part=\"filter-input\" ?hidden=${this.disableFiltering}>\n <igc-input\n part=\"search-input\"\n placeholder=${this.placeholderSearch}\n exportparts=\"input: search-input\"\n @igcFocus=${(e: Event) => e.stopPropagation()}\n @igcBlur=${(e: Event) => e.stopPropagation()}\n @igcInput=${this.handleSearchInput}\n @keydown=${(e: KeyboardEvent) =>\n this.navigationController.navigateInput(e, this.list)}\n dir=${this.dir}\n >\n <igc-icon\n slot=${this.caseSensitiveIcon && 'suffix'}\n name=\"case_sensitive\"\n collection=\"internal\"\n part=${partNameMap({\n 'case-icon': true,\n active: this.filteringOptions.caseSensitive ?? false,\n })}\n @click=${this.toggleCaseSensitivity}\n ></igc-icon>\n </igc-input>\n </div>`;\n }\n\n private renderEmptyTemplate() {\n return html`<div part=\"empty\" ?hidden=${this.dataState.length > 0}>\n <slot name=\"empty\">The list is empty</slot>\n </div>`;\n }\n\n private renderList() {\n return html`<div\n @keydown=${this.listKeydownHandler}\n part=\"list-wrapper\"\n ${this.toggleController.toggleDirective}\n >\n ${this.renderSearchInput()}\n <div part=\"header\">\n <slot name=\"header\"></slot>\n </div>\n <igc-combo-list\n id=\"dropdown\"\n part=\"list\"\n aria-label=\"${this.label}\"\n .items=${this.dataState}\n .renderItem=${this.itemRenderer}\n ?hidden=${this.dataState.length === 0}\n >\n </igc-combo-list>\n ${this.renderEmptyTemplate()}\n <div part=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>`;\n }\n\n private renderHelperText() {\n return html`<div\n id=\"helper-text\"\n part=\"helper-text\"\n ?hidden=\"${this.helperText.length === 0}\"\n >\n <slot name=\"helper-text\"></slot>\n </div>`;\n }\n\n protected override render() {\n return html`\n ${this.renderInput()}${this.renderList()}${this.renderHelperText()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-combo': IgcComboComponent<object>;\n }\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactiveController } from 'lit';
|
|
2
|
+
import GroupDataOperation from '../operations/group.js';
|
|
3
|
+
import FilterDataOperation from '../operations/filter.js';
|
|
4
|
+
import { ComboHost, ComboRecord, FilteringOptions, GroupingOptions } from '../types.js';
|
|
5
|
+
export declare class DataController<T extends object> implements ReactiveController {
|
|
6
|
+
protected host: ComboHost<T>;
|
|
7
|
+
protected grouping: GroupDataOperation<T>;
|
|
8
|
+
protected filtering: FilterDataOperation<T>;
|
|
9
|
+
private _searchTerm;
|
|
10
|
+
constructor(host: ComboHost<T>);
|
|
11
|
+
set searchTerm(value: string);
|
|
12
|
+
get searchTerm(): string;
|
|
13
|
+
get filteringOptions(): FilteringOptions<T>;
|
|
14
|
+
get groupingOptions(): GroupingOptions<T>;
|
|
15
|
+
hostConnected(): void;
|
|
16
|
+
apply(data: T[]): Promise<ComboRecord<T>[]>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import GroupDataOperation from '../operations/group.js';
|
|
2
|
+
import FilterDataOperation from '../operations/filter.js';
|
|
3
|
+
export class DataController {
|
|
4
|
+
constructor(host) {
|
|
5
|
+
this.host = host;
|
|
6
|
+
this.grouping = new GroupDataOperation();
|
|
7
|
+
this.filtering = new FilterDataOperation();
|
|
8
|
+
this._searchTerm = '';
|
|
9
|
+
this.host.addController(this);
|
|
10
|
+
}
|
|
11
|
+
set searchTerm(value) {
|
|
12
|
+
this._searchTerm = value;
|
|
13
|
+
this.host.requestUpdate('pipeline');
|
|
14
|
+
}
|
|
15
|
+
get searchTerm() {
|
|
16
|
+
return this._searchTerm;
|
|
17
|
+
}
|
|
18
|
+
get filteringOptions() {
|
|
19
|
+
return this.host.filteringOptions;
|
|
20
|
+
}
|
|
21
|
+
get groupingOptions() {
|
|
22
|
+
return {
|
|
23
|
+
valueKey: this.host.valueKey,
|
|
24
|
+
displayKey: this.host.displayKey,
|
|
25
|
+
groupKey: this.host.groupKey,
|
|
26
|
+
direction: this.host.groupSorting,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
hostConnected() { }
|
|
30
|
+
async apply(data) {
|
|
31
|
+
data = this.filtering.apply(data, this);
|
|
32
|
+
data = this.grouping.apply(data, this);
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/components/combo/controllers/data.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAQ1D,MAAM,OAAO,cAAc;IAKzB,YAAsB,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;QAJ9B,aAAQ,GAAG,IAAI,kBAAkB,EAAK,CAAC;QACvC,cAAS,GAAG,IAAI,mBAAmB,EAAK,CAAC;QAC3C,gBAAW,GAAG,EAAE,CAAC;QAGvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACpC,CAAC;IAED,IAAW,eAAe;QACxB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;YAChC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAEM,aAAa,KAAI,CAAC;IAElB,KAAK,CAAC,KAAK,CAAC,IAAS;QAC1B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEvC,OAAO,IAAwB,CAAC;IAClC,CAAC;CACF","sourcesContent":["import { ReactiveController } from 'lit';\nimport GroupDataOperation from '../operations/group.js';\nimport FilterDataOperation from '../operations/filter.js';\nimport {\n ComboHost,\n ComboRecord,\n FilteringOptions,\n GroupingOptions,\n} from '../types.js';\n\nexport class DataController<T extends object> implements ReactiveController {\n protected grouping = new GroupDataOperation<T>();\n protected filtering = new FilterDataOperation<T>();\n private _searchTerm = '';\n\n constructor(protected host: ComboHost<T>) {\n this.host.addController(this);\n }\n\n public set searchTerm(value: string) {\n this._searchTerm = value;\n this.host.requestUpdate('pipeline');\n }\n\n public get searchTerm() {\n return this._searchTerm;\n }\n\n public get filteringOptions(): FilteringOptions<T> {\n return this.host.filteringOptions;\n }\n\n public get groupingOptions(): GroupingOptions<T> {\n return {\n valueKey: this.host.valueKey,\n displayKey: this.host.displayKey,\n groupKey: this.host.groupKey,\n direction: this.host.groupSorting,\n };\n }\n\n public hostConnected() {}\n\n public async apply(data: T[]): Promise<ComboRecord<T>[]> {\n data = this.filtering.apply(data, this);\n data = this.grouping.apply(data, this);\n\n return data as ComboRecord<T>[];\n }\n}\n"]}
|