igniteui-webcomponents 4.11.1 → 5.0.0-rc.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 +67 -0
- package/README.md +168 -110
- package/components/accordion/accordion.d.ts +2 -2
- package/components/accordion/accordion.js +25 -35
- package/components/accordion/accordion.js.map +1 -1
- package/components/avatar/avatar.d.ts +1 -3
- package/components/avatar/avatar.js +1 -3
- 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/badge/badge.d.ts +2 -1
- package/components/badge/badge.js.map +1 -1
- package/components/badge/themes/badge.base.css.js +1 -1
- package/components/badge/themes/badge.base.css.js.map +1 -1
- package/components/button/button-base.d.ts +3 -4
- package/components/button/button-base.js +1 -9
- package/components/button/button-base.js.map +1 -1
- package/components/button/button.d.ts +3 -7
- package/components/button/button.js +4 -5
- package/components/button/button.js.map +1 -1
- package/components/button/icon-button.d.ts +2 -2
- package/components/button/icon-button.js +0 -3
- package/components/button/icon-button.js.map +1 -1
- package/components/button/themes/button/button.base.css.js +1 -1
- package/components/button/themes/button/button.base.css.js.map +1 -1
- package/components/button/themes/icon-button/icon-button.base.css.js +1 -1
- package/components/button/themes/icon-button/icon-button.base.css.js.map +1 -1
- package/components/button-group/themes/button.base.css.js +1 -1
- package/components/button-group/themes/button.base.css.js.map +1 -1
- package/components/button-group/themes/group.base.css.js +1 -1
- package/components/button-group/themes/group.base.css.js.map +1 -1
- package/components/calendar/base.d.ts +65 -0
- package/components/calendar/base.js +150 -0
- package/components/calendar/base.js.map +1 -0
- package/components/calendar/calendar.d.ts +113 -61
- package/components/calendar/calendar.js +417 -514
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.d.ts +43 -46
- package/components/calendar/days-view/days-view.js +269 -340
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/helpers.d.ts +30 -0
- package/components/calendar/helpers.js +99 -0
- package/components/calendar/helpers.js.map +1 -0
- package/components/calendar/model.d.ts +55 -0
- package/components/calendar/model.js +94 -0
- package/components/calendar/model.js.map +1 -0
- package/components/calendar/months-view/months-view.d.ts +12 -12
- package/components/calendar/months-view/months-view.js +72 -79
- package/components/calendar/months-view/months-view.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/types.d.ts +16 -0
- package/components/calendar/types.js +10 -0
- package/components/calendar/types.js.map +1 -0
- package/components/calendar/years-view/years-view.d.ts +13 -12
- package/components/calendar/years-view/years-view.js +58 -73
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/card/themes/card.actions.base.css.js +1 -1
- package/components/card/themes/card.actions.base.css.js.map +1 -1
- package/components/card/themes/card.content.base.css.js +1 -1
- package/components/card/themes/card.content.base.css.js.map +1 -1
- package/components/card/themes/card.header.base.css.js +1 -1
- package/components/card/themes/card.header.base.css.js.map +1 -1
- package/components/card/themes/card.media.base.css.js +1 -1
- package/components/card/themes/card.media.base.css.js.map +1 -1
- package/components/card/themes/container.base.css.js +1 -1
- package/components/card/themes/container.base.css.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +8 -5
- package/components/checkbox/checkbox-base.js +8 -15
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.d.ts +2 -4
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.d.ts +1 -3
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/themes/checkbox.base.css.js +1 -1
- package/components/checkbox/themes/checkbox.base.css.js.map +1 -1
- package/components/checkbox/themes/switch.base.css.js +1 -1
- package/components/checkbox/themes/switch.base.css.js.map +1 -1
- package/components/checkbox/validators.d.ts +3 -0
- package/components/checkbox/validators.js +5 -0
- package/components/checkbox/validators.js.map +1 -0
- package/components/chip/chip.d.ts +4 -3
- package/components/chip/chip.js +11 -19
- 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/shared/chip.common.css.js +1 -1
- package/components/chip/themes/shared/chip.common.css.js.map +1 -1
- package/components/combo/combo.d.ts +36 -54
- package/components/combo/combo.js +36 -59
- package/components/combo/combo.js.map +1 -1
- package/components/combo/themes/combo-header.base.css.js +1 -1
- package/components/combo/themes/combo-header.base.css.js.map +1 -1
- package/components/combo/themes/combo-item.base.css.js +1 -1
- package/components/combo/themes/combo-item.base.css.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/types.d.ts +2 -2
- package/components/combo/types.js.map +1 -1
- package/components/combo/validators.d.ts +3 -0
- package/components/combo/validators.js +9 -0
- package/components/combo/validators.js.map +1 -0
- package/components/common/controllers/key-bindings.d.ts +1 -0
- package/components/common/controllers/key-bindings.js.map +1 -1
- package/components/common/controllers/mutation-observer.d.ts +1 -0
- package/components/common/controllers/mutation-observer.js.map +1 -1
- package/components/common/controllers/root-click.d.ts +4 -2
- package/components/common/controllers/root-click.js +13 -7
- package/components/common/controllers/root-click.js.map +1 -1
- package/components/common/definitions/defineAllComponents.js +0 -2
- package/components/common/definitions/defineAllComponents.js.map +1 -1
- package/components/common/localization/intl-formatters.d.ts +17 -0
- package/components/common/localization/intl-formatters.js +46 -0
- package/components/common/localization/intl-formatters.js.map +1 -0
- package/components/common/mixins/alert.d.ts +3 -3
- package/components/common/mixins/alert.js +6 -4
- package/components/common/mixins/alert.js.map +1 -1
- package/components/common/mixins/combo-box.d.ts +4 -3
- package/components/common/mixins/combo-box.js +16 -10
- package/components/common/mixins/combo-box.js.map +1 -1
- package/components/common/mixins/form-associated.d.ts +1 -1
- package/components/common/mixins/form-associated.js +4 -2
- package/components/common/mixins/form-associated.js.map +1 -1
- package/components/common/util.d.ts +26 -0
- package/components/common/util.js +34 -0
- package/components/common/util.js.map +1 -1
- package/components/date-picker/date-picker.d.ts +7 -10
- package/components/date-picker/date-picker.js +16 -33
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/themes/date-picker.base.css.js +1 -1
- package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
- package/components/date-picker/validators.d.ts +3 -0
- package/components/date-picker/validators.js +15 -0
- package/components/date-picker/validators.js.map +1 -0
- package/components/date-time-input/date-time-input.d.ts +3 -22
- package/components/date-time-input/date-time-input.js +8 -36
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/date-util.js +3 -1
- package/components/date-time-input/date-util.js.map +1 -1
- package/components/date-time-input/validators.d.ts +3 -0
- package/components/date-time-input/validators.js +18 -0
- package/components/date-time-input/validators.js.map +1 -0
- package/components/dialog/dialog.d.ts +12 -25
- package/components/dialog/dialog.js +55 -77
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/themes/dialog.base.css.js +1 -1
- package/components/dialog/themes/dialog.base.css.js.map +1 -1
- package/components/dialog/themes/shared/dialog.common.css.js +1 -1
- package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
- package/components/divider/divider.js.map +1 -1
- package/components/divider/themes/divider.base.css.js +1 -1
- package/components/divider/themes/divider.base.css.js.map +1 -1
- package/components/dropdown/dropdown-group.d.ts +1 -1
- package/components/dropdown/dropdown-group.js +5 -3
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +4 -11
- package/components/dropdown/dropdown.js +10 -23
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/themes/dropdown-group.base.css.js +1 -1
- package/components/dropdown/themes/dropdown-group.base.css.js.map +1 -1
- package/components/dropdown/themes/dropdown-header.base.css.js +1 -1
- package/components/dropdown/themes/dropdown-header.base.css.js.map +1 -1
- package/components/dropdown/themes/dropdown-item.base.css.js +1 -1
- package/components/dropdown/themes/dropdown-item.base.css.js.map +1 -1
- package/components/dropdown/themes/dropdown.base.css.js +1 -1
- package/components/dropdown/themes/dropdown.base.css.js.map +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +10 -10
- package/components/expansion-panel/expansion-panel.js +39 -39
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/expansion-panel/themes/expansion-panel.base.css.js +1 -1
- package/components/expansion-panel/themes/expansion-panel.base.css.js.map +1 -1
- package/components/icon/icon-references.d.ts +28 -0
- package/components/icon/icon-references.js +151 -0
- package/components/icon/icon-references.js.map +1 -0
- package/components/icon/icon-state.broadcast.d.ts +10 -0
- package/components/icon/icon-state.broadcast.js +36 -0
- package/components/icon/icon-state.broadcast.js.map +1 -0
- package/components/icon/icon.d.ts +3 -3
- package/components/icon/icon.js +13 -7
- package/components/icon/icon.js.map +1 -1
- package/components/icon/icon.registry.d.ts +14 -14
- package/components/icon/icon.registry.js +70 -26
- package/components/icon/icon.registry.js.map +1 -1
- package/components/icon/internal-icons-lib.d.ts +2 -2
- package/components/icon/internal-icons-lib.js +2 -2
- package/components/icon/internal-icons-lib.js.map +1 -1
- package/components/icon/registry/default-map.d.ts +12 -0
- package/components/icon/registry/default-map.js +31 -0
- package/components/icon/registry/default-map.js.map +1 -0
- package/components/icon/registry/parser.d.ts +6 -0
- package/components/icon/registry/parser.js +21 -0
- package/components/icon/registry/parser.js.map +1 -0
- package/components/icon/registry/types.d.ts +34 -0
- package/components/icon/registry/types.js +7 -0
- package/components/icon/registry/types.js.map +1 -0
- package/components/icon/themes/icon.base.css.js +1 -1
- package/components/icon/themes/icon.base.css.js.map +1 -1
- package/components/input/input-base.d.ts +8 -21
- package/components/input/input-base.js +12 -41
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.d.ts +3 -29
- package/components/input/input.js +4 -78
- 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/validators.d.ts +4 -0
- package/components/input/validators.js +30 -0
- package/components/input/validators.js.map +1 -0
- package/components/list/list.d.ts +1 -3
- package/components/list/list.js +1 -2
- package/components/list/list.js.map +1 -1
- package/components/list/themes/container.base.css.js +1 -1
- package/components/list/themes/container.base.css.js.map +1 -1
- package/components/mask-input/mask-input-base.d.ts +3 -2
- package/components/mask-input/mask-input-base.js.map +1 -1
- package/components/mask-input/mask-input.d.ts +1 -4
- package/components/mask-input/mask-input.js +7 -17
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/mask-input/validators.d.ts +3 -0
- package/components/mask-input/validators.js +11 -0
- package/components/mask-input/validators.js.map +1 -0
- package/components/nav-drawer/nav-drawer-item.d.ts +1 -5
- package/components/nav-drawer/nav-drawer-item.js +9 -10
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.d.ts +4 -3
- package/components/nav-drawer/nav-drawer.js +18 -7
- 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/header-item.base.css.js +1 -1
- package/components/nav-drawer/themes/header-item.base.css.js.map +1 -1
- package/components/nav-drawer/themes/item.base.css.js +1 -1
- package/components/nav-drawer/themes/item.base.css.js.map +1 -1
- package/components/navbar/themes/navbar.base.css.js +1 -1
- package/components/navbar/themes/navbar.base.css.js.map +1 -1
- package/components/popover/themes/light/popover.base.css.js +1 -1
- package/components/popover/themes/light/popover.base.css.js.map +1 -1
- package/components/progress/base.d.ts +2 -1
- package/components/progress/base.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/linear/linear.progress.base.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
- package/components/radio/radio.d.ts +9 -9
- package/components/radio/radio.js +17 -31
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/radio.base.css.js +1 -1
- package/components/radio/themes/radio.base.css.js.map +1 -1
- package/components/radio/validators.d.ts +3 -0
- package/components/radio/validators.js +13 -0
- package/components/radio/validators.js.map +1 -0
- 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.js.map +1 -1
- package/components/rating/rating.d.ts +1 -9
- package/components/rating/rating.js +6 -16
- package/components/rating/rating.js.map +1 -1
- package/components/rating/themes/rating-symbol.base.css.js +1 -1
- package/components/rating/themes/rating-symbol.base.css.js.map +1 -1
- package/components/rating/themes/rating.base.css.js +1 -1
- package/components/rating/themes/rating.base.css.js.map +1 -1
- package/components/ripple/ripple.material.css.js +1 -1
- package/components/ripple/ripple.material.css.js.map +1 -1
- package/components/select/select.d.ts +5 -33
- package/components/select/select.js +23 -66
- 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/validators.d.ts +3 -0
- package/components/select/validators.js +5 -0
- package/components/select/validators.js.map +1 -0
- package/components/slider/range-slider.d.ts +0 -16
- package/components/slider/range-slider.js +0 -18
- package/components/slider/range-slider.js.map +1 -1
- package/components/slider/themes/slider.base.css.js +1 -1
- package/components/slider/themes/slider.base.css.js.map +1 -1
- package/components/snackbar/snackbar.js +3 -7
- package/components/snackbar/snackbar.js.map +1 -1
- package/components/snackbar/themes/snackbar.base.css.js +1 -1
- package/components/snackbar/themes/snackbar.base.css.js.map +1 -1
- package/components/stepper/themes/step/step.base.css.js +1 -1
- package/components/stepper/themes/step/step.base.css.js.map +1 -1
- package/components/stepper/themes/stepper/stepper.base.css.js +1 -1
- package/components/stepper/themes/stepper/stepper.base.css.js.map +1 -1
- package/components/stepper/themes/stepper/stepper.bootstrap.css.js +1 -1
- package/components/stepper/themes/stepper/stepper.bootstrap.css.js.map +1 -1
- package/components/stepper/themes/stepper/stepper.fluent.css.js +1 -1
- package/components/stepper/themes/stepper/stepper.fluent.css.js.map +1 -1
- package/components/stepper/themes/stepper/stepper.indigo.css.js +1 -1
- package/components/stepper/themes/stepper/stepper.indigo.css.js.map +1 -1
- package/components/tabs/tabs.js +2 -3
- package/components/tabs/tabs.js.map +1 -1
- package/components/tabs/themes/tab.base.css.js +1 -1
- package/components/tabs/themes/tab.base.css.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 +13 -16
- package/components/textarea/textarea.js +10 -12
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/textarea.base.css.js +1 -1
- package/components/textarea/themes/textarea.base.css.js.map +1 -1
- package/components/textarea/validators.d.ts +3 -0
- package/components/textarea/validators.js +7 -0
- package/components/textarea/validators.js.map +1 -0
- package/components/toast/themes/toast.base.css.js +1 -1
- package/components/toast/themes/toast.base.css.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/item.base.css.js +1 -1
- package/components/tree/themes/item.base.css.js.map +1 -1
- package/components/tree/tree-item.d.ts +4 -4
- package/components/tree/tree-item.js +11 -23
- package/components/tree/tree-item.js.map +1 -1
- package/components/tree/tree.d.ts +3 -4
- package/components/tree/tree.js +1 -37
- package/components/tree/tree.js.map +1 -1
- package/components/types.d.ts +3 -0
- package/components/types.js +2 -0
- package/components/types.js.map +1 -0
- package/custom-elements.json +30642 -31327
- package/igniteui-webcomponents.css-data.json +5 -928
- package/igniteui-webcomponents.html-data.json +4 -2699
- package/index.d.ts +5 -4
- package/index.js +2 -3
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/theming/config.js +3 -3
- package/theming/config.js.map +1 -1
- package/theming/theming-controller.d.ts +4 -6
- package/theming/theming-controller.js +30 -34
- package/theming/theming-controller.js.map +1 -1
- package/theming/theming-decorator.d.ts +29 -11
- package/theming/theming-decorator.js +21 -7
- package/theming/theming-decorator.js.map +1 -1
- package/theming/theming-event.js.map +1 -1
- package/theming/types.d.ts +5 -0
- package/theming/types.js.map +1 -1
- package/theming/utils.d.ts +1 -1
- package/theming/utils.js +8 -8
- package/theming/utils.js.map +1 -1
- package/web-types.json +12 -7621
- package/components/calendar/common/calendar-base.d.ts +0 -40
- package/components/calendar/common/calendar-base.js +0 -118
- package/components/calendar/common/calendar-base.js.map +0 -1
- package/components/calendar/common/calendar.model.d.ts +0 -128
- package/components/calendar/common/calendar.model.js +0 -246
- package/components/calendar/common/calendar.model.js.map +0 -1
- package/components/calendar/common/utils.d.ts +0 -12
- package/components/calendar/common/utils.js +0 -54
- package/components/calendar/common/utils.js.map +0 -1
- package/components/common/decorators/alternateName.d.ts +0 -7
- package/components/common/decorators/alternateName.js +0 -4
- package/components/common/decorators/alternateName.js.map +0 -1
- package/components/common/decorators/blazorSuppress.d.ts +0 -5
- package/components/common/decorators/blazorSuppress.js +0 -4
- package/components/common/decorators/blazorSuppress.js.map +0 -1
- package/components/common/decorators/blazorTwoWayBind.d.ts +0 -7
- package/components/common/decorators/blazorTwoWayBind.js +0 -4
- package/components/common/decorators/blazorTwoWayBind.js.map +0 -1
- package/components/common/mixins/sizable.d.ts +0 -13
- package/components/common/mixins/sizable.js +0 -27
- package/components/common/mixins/sizable.js.map +0 -1
- package/components/form/form.d.ts +0 -48
- package/components/form/form.js +0 -158
- package/components/form/form.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,73 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- **BREAKING**: Removed `igcFocus` and `igcBlur` events from buttons and inputs - Button, Icon Button, Checkbox, Switch, Combo, Date Time Input, Input, Mask Input, Radios, Select, Textarea.
|
|
12
|
+
|
|
13
|
+
Use the native `focus` & `blur` events instead.
|
|
14
|
+
|
|
15
|
+
Before:
|
|
16
|
+
```ts
|
|
17
|
+
const input = document.createElement('igc-input');
|
|
18
|
+
input.addEventListener('igcFocus', focusHandler);
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Now:
|
|
22
|
+
```ts
|
|
23
|
+
input.addEventListener('focus', focusHandler);
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
- **BREAKING**: Checkbox, Switch `igcChange` event.
|
|
27
|
+
|
|
28
|
+
Before:
|
|
29
|
+
```ts
|
|
30
|
+
CustomEvent<boolean>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Now:
|
|
34
|
+
```ts
|
|
35
|
+
CustomEvent<{ checked: boolean; value: string | undefined }>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
- **BREAKING**: Radio `igcChange` event.
|
|
40
|
+
|
|
41
|
+
Before:
|
|
42
|
+
```ts
|
|
43
|
+
CustomEvent<boolean>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Now:
|
|
47
|
+
```ts
|
|
48
|
+
CustomEvent<{ checked: boolean; value: string | undefined }>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Added
|
|
52
|
+
- Icon Registry [#1304](https://github.com/IgniteUI/igniteui-webcomponents/issues/1304)
|
|
53
|
+
- You can now register and replace icons by reference via the `setIconRef` function. To learn more check out the [documentation](https://www.infragistics.com/webcomponentssite/components/layouts/icon#icon-references).
|
|
54
|
+
- All components now use icons by reference internally so that it's easy to replace them without explicitly providing custom templates.
|
|
55
|
+
|
|
56
|
+
### Removed
|
|
57
|
+
- **BREAKING**: igc-form - use the native form element instead.
|
|
58
|
+
- **BREAKING**: Range slider - `ariaThumbLower/ariaThumbUpper`. Use `thumbLabelLower/thumbLabelUpper` instead.
|
|
59
|
+
- **BREAKING**: Rating - `readonly` property. Use `readOnly` instead.
|
|
60
|
+
- **BREAKING**: Dialog - `closeOnEscape` property. Use `keepOpenOnEscape`.
|
|
61
|
+
- **BREAKING**: Combo, Select - `positionStrategy`, `flip`, `sameWidth` removed.
|
|
62
|
+
- **BREAKING**: Dropdown - `positionStrategy` removed.
|
|
63
|
+
- **BREAKING**: Input - `readonly`, `inputmode`, `maxlength` and `minlength`.
|
|
64
|
+
Use the native `readOnly`, `inputMode`, `maxLength` and `minLength` properties instead.
|
|
65
|
+
- **BREAKING**: Date-time-input - `minValue`/`mavValue` are removed. Use `min`/`max` instead.
|
|
66
|
+
- **BREAKING**: Removed `size` property from components.
|
|
67
|
+
|
|
68
|
+
### Fixed
|
|
69
|
+
- Date-time input - update masked value according to the input format on focus when value is set [#1320](https://github.com/IgniteUI/igniteui-webcomponents/issues/1320)
|
|
70
|
+
- Radio - do not emit change event on already checked radio
|
|
71
|
+
- Calendar - add correct dates DOM parts based on active view [[#1278](https://github.com/IgniteUI/igniteui-webcomponents/issues/1278)]
|
|
72
|
+
- Date-picker, Dropdown & Select - showing the component programmatically in response to an outside click event closes the dropdown popover [#1339](https://github.com/IgniteUI/igniteui-webcomponents/issues/1339)
|
|
73
|
+
|
|
7
74
|
## [4.11.1] - 2024-07-03
|
|
8
75
|
### Changed
|
|
9
76
|
- Stepper Design in vertical mode [#1246](https://github.com/IgniteUI/igniteui-webcomponents/issues/1246)
|
package/README.md
CHANGED
|
@@ -1,76 +1,77 @@
|
|
|
1
1
|

|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
<h1 align="center">
|
|
5
|
-
Ignite UI for Web Components - from Infragistics
|
|
4
|
+
Ignite UI for Web Components - from Infragistics
|
|
6
5
|
</h1>
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
7
|
[](https://github.com/IgniteUI/igniteui-webcomponents/actions/workflows/node.js.yml)
|
|
11
8
|
[](https://coveralls.io/github/IgniteUI/igniteui-webcomponents)
|
|
12
9
|
[](https://badge.fury.io/js/igniteui-webcomponents)
|
|
13
10
|
[](https://discord.gg/39MjrTRqds)
|
|
14
11
|
|
|
15
|
-
[Ignite UI for Web Components]
|
|
16
|
-
|
|
12
|
+
[Ignite UI for Web Components] is a complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable components in a dependency-free approach. All components are based on the [Indigo.Design Design System] and are backed by ready-to-use UI kits for Sketch, Adobe XD and Figma.
|
|
13
|
+
|
|
14
|
+
See the [Storybook Here](https://igniteui.github.io/igniteui-webcomponents)
|
|
17
15
|
|
|
18
16
|
## Browser Support
|
|
19
17
|
|
|
20
|
-
![chrome_48x48]
|
|
21
|
-
|
|
22
|
-
Latest
|
|
18
|
+
| ![chrome_48x48] | ![firefox_48x48] | ![edge_48x48] | ![opera_48x48] | ![safari_48x48] |
|
|
19
|
+
| --------------- | ---------------- | ------------- | -------------- | --------------- |
|
|
20
|
+
| Latest ✔️ | Latest ✔️ | Latest ✔️ | Latest ✔️ | Latest ✔️ |
|
|
23
21
|
|
|
24
22
|
## Overview
|
|
25
23
|
|
|
26
|
-
|Components|Status|Documentation|Released Version|
|
|
27
|
-
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
24
|
+
| Components | Status | Documentation | Released Version |
|
|
25
|
+
| :---------------------- | :----: | :----------------------------: | :--------------: |
|
|
26
|
+
| Date picker | ✅ | [Docs][Date Picker Docs] | [4.10.0] |
|
|
27
|
+
| Divider | ✅ | [Docs][Divider Docs] | [4.10.0] |
|
|
28
|
+
| Banner | ✅ | [Docs][Banner Docs] | [4.10.0] |
|
|
29
|
+
| Button group | ✅ | [Docs][Button Group Docs] | [4.5.0] |
|
|
30
|
+
| Textarea | ✅ | [Docs][Textarea Docs] | [4.5.0] |
|
|
31
|
+
| Combo | ✅ | [Docs][Combo Docs] | [4.1.0] |
|
|
32
|
+
| Stepper | ✅ | [Docs][Stepper Docs] | [4.1.0] |
|
|
33
|
+
| Select | ✅ | [Docs][Select Docs] | [3.4.0] |
|
|
34
|
+
| Dialog | ✅ | [Docs][Dialog Docs] | [3.4.0] |
|
|
35
|
+
| Date Time Input | ✅ | [Docs][Date Time Input Docs] | [3.3.0] |
|
|
36
|
+
| Tabs | ✅ | [Docs][Tabs Docs] | [3.3.0] |
|
|
37
|
+
| Accordion | ✅ | [Docs][Accordion Docs] | [3.3.0] |
|
|
38
|
+
| Mask Input | ✅ | [Docs][Masked Input Docs] | [3.2.0] |
|
|
39
|
+
| Expansion Panel | ✅ | [Docs][Expansion Panel Docs] | [3.2.0] |
|
|
40
|
+
| Tree | ✅ | [Docs][Tree Docs] | [3.2.0] |
|
|
41
|
+
| Drop Down | ✅ | [Docs][Dropdown Docs] | [2.2.0] |
|
|
42
|
+
| Linear Progress | ✅ | [Docs][Linear Progress Docs] | [2.1.0] |
|
|
43
|
+
| Circular Progress | ✅ | [Docs][Circular Progress Docs] | [2.1.0] |
|
|
44
|
+
| Chip | ✅ | [Docs][Chip Docs] | [2.1.0] |
|
|
45
|
+
| Snackbar | ✅ | [Docs][Snackbar Docs] | [2.1.0] |
|
|
46
|
+
| Toast | ✅ | [Docs][Toast Docs] | [2.1.0] |
|
|
47
|
+
| Rating | ✅ | [Docs][Rating Docs] | [2.1.0] |
|
|
48
|
+
| Slider | ✅ | [Docs][Slider Docs] | [2.0.0] |
|
|
49
|
+
| Range Slider | ✅ | [Docs][Slider Docs] | [2.0.0] |
|
|
50
|
+
| Avatar | ✅ | [Docs][Avatar Docs] | [1.0.0] |
|
|
51
|
+
| Badge | ✅ | [Docs][Badge Docs] | [1.0.0] |
|
|
52
|
+
| Button | ✅ | [Docs][Button Docs] | [1.0.0] |
|
|
53
|
+
| Calendar | ✅ | [Docs][Calendar Docs] | [1.0.0] |
|
|
54
|
+
| Card | ✅ | [Docs][Card Docs] | [1.0.0] |
|
|
55
|
+
| Checkbox | ✅ | [Docs][Checkbox Docs] | [1.0.0] |
|
|
56
|
+
| Form | ✅ | [Docs][Form Docs] | [1.0.0] |
|
|
57
|
+
| Icon | ✅ | [Docs][Icon Docs] | [1.0.0] |
|
|
58
|
+
| Icon Button | ✅ | [Docs][Icon Button Docs] | [1.0.0] |
|
|
59
|
+
| Input | ✅ | [Docs][Input Docs] | [1.0.0] |
|
|
60
|
+
| List | ✅ | [Docs][List Docs] | [1.0.0] |
|
|
61
|
+
| Navigation Bar (Navbar) | ✅ | [Docs][Navigation Bar Docs] | [1.0.0] |
|
|
62
|
+
| Navigation Drawer | ✅ | [Docs][Navigation Drawer Docs] | [1.0.0] |
|
|
63
|
+
| Radio | ✅ | [Docs][Radio Docs] | [1.0.0] |
|
|
64
|
+
| Radio Group | ✅ | [Docs][Radio Docs] | [1.0.0] |
|
|
65
|
+
| Ripple | ✅ | [Docs][Ripple Docs] | [1.0.0] |
|
|
66
|
+
| Switch | ✅ | [Docs][Switch Docs] | [1.0.0] |
|
|
67
|
+
|
|
68
|
+
## Components available in [Ignite UI for WebComponents Grids]
|
|
69
|
+
|
|
70
|
+
| Components | Status | Documentation |
|
|
71
|
+
| :--------- | :----: | :---------------------: |
|
|
72
|
+
| Pivot Grid | ✅ | [Docs][Pivot Grid Docs] |
|
|
73
|
+
| Data Grid | ✅ | [Docs][Data Grid Docs] |
|
|
74
|
+
| Tree Grid | ✅ | [Docs][Tree Grid Docs] |
|
|
74
75
|
|
|
75
76
|
### The Lightweight Web Components Data Grid and Data Table
|
|
76
77
|
|
|
@@ -78,20 +79,26 @@ The Ignite UI for Web Components Data Grid and Table are both lightweight and de
|
|
|
78
79
|
|
|
79
80
|
### Dock Manager - EXCLUSIVE FEATURE
|
|
80
81
|
|
|
81
|
-
![Dock Manager]
|
|
82
|
+
![Dock Manager Picture]
|
|
82
83
|
|
|
83
|
-
Provide a complete windowing experience, splitting complex layouts into smaller, easier-to-manage panes.
|
|
84
|
+
Provide a complete windowing experience, splitting complex layouts into smaller, easier-to-manage panes.
|
|
85
|
+
|
|
86
|
+
## Usage
|
|
84
87
|
|
|
85
88
|
In order to use the Ignite UI Web Components in your application you should install the `igniteui-webcomponents` package:
|
|
86
89
|
|
|
87
|
-
```
|
|
90
|
+
```sh
|
|
88
91
|
npm install igniteui-webcomponents
|
|
89
92
|
```
|
|
90
93
|
|
|
91
94
|
Next you will need to import the components that you want to use. You could import one or more components using the `defineComponents` function like this:
|
|
92
95
|
|
|
93
96
|
```ts
|
|
94
|
-
import {
|
|
97
|
+
import {
|
|
98
|
+
defineComponents,
|
|
99
|
+
IgcAvatarComponent,
|
|
100
|
+
IgcBadgeComponent,
|
|
101
|
+
} from 'igniteui-webcomponents';
|
|
95
102
|
|
|
96
103
|
defineComponents(IgcAvatarComponent, IgcBadgeComponent);
|
|
97
104
|
```
|
|
@@ -109,81 +116,132 @@ Please note that importing all of the components will increase the bundle size o
|
|
|
109
116
|
After the components are imported you could use them in your html:
|
|
110
117
|
|
|
111
118
|
```html
|
|
112
|
-
<igc-avatar initials="AZ"></igc-avatar>
|
|
113
|
-
<igc-badge></igc-badge>
|
|
119
|
+
<igc-avatar initials="AZ"></igc-avatar><igc-badge></igc-badge>
|
|
114
120
|
```
|
|
115
121
|
|
|
116
|
-
###
|
|
117
|
-
The package contains its own [Custom Elements Manifest](https://custom-elements-manifest.open-wc.org/blog/intro/) as well
|
|
118
|
-
as [Custom Data Format](https://code.visualstudio.com/blogs/2020/02/24/custom-data-format) for VSCode.
|
|
119
|
-
Refer to your IDE/toolchain documentation to see if you can take advantage of this metadata for linting, type hints and documentation.
|
|
122
|
+
### Additional tooling
|
|
120
123
|
|
|
121
|
-
|
|
124
|
+
The package comes with its own [Custom Elements Manifest], [VSCode Custom Data Format] for VSCode and [Web Types] for JetBrains IDEs.
|
|
125
|
+
Refer to the documentation of your editor of choice to see if you can take advantage of this metadata for linting, intellisense and documentation.
|
|
122
126
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}
|
|
130
|
-
```
|
|
127
|
+
| Package path | Description |
|
|
128
|
+
| ------------------------------------------------------------ | ---------------------------------- |
|
|
129
|
+
| igniteui-webcomponents/custom-elements.json | Custom Elements Manifest |
|
|
130
|
+
| igniteui-webcomponents/web-types.json | Web Types for JetBrains based IDEs |
|
|
131
|
+
| igniteui-webcomponents/igniteui-webcomponents.css-data.json | VSCode CSS custom data |
|
|
132
|
+
| igniteui-webcomponents/igniteui-webcomponents.html-data.json | VSCode HTML custom data |
|
|
131
133
|
|
|
134
|
+
## Contributing
|
|
132
135
|
|
|
133
|
-
|
|
136
|
+
Follow the [Contribution Guidelines] to setup a development
|
|
137
|
+
environment.
|
|
134
138
|
|
|
135
|
-
|
|
139
|
+
### Linting and Formatting
|
|
136
140
|
|
|
137
|
-
|
|
138
|
-
npm install
|
|
139
|
-
```
|
|
141
|
+
To scan the project for linting errors, run:
|
|
140
142
|
|
|
141
|
-
|
|
142
|
-
To scan the project for linting errors, run
|
|
143
|
-
```bash
|
|
143
|
+
```sh
|
|
144
144
|
npm run lint
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
npm run lint:eslint
|
|
150
|
-
```
|
|
151
|
-
```bash
|
|
152
|
-
npm run lint:prettier
|
|
153
|
-
```
|
|
147
|
+
To automatically fix most linting and formatting errors, run:
|
|
154
148
|
|
|
155
|
-
|
|
156
|
-
```bash
|
|
149
|
+
```sh
|
|
157
150
|
npm run format
|
|
158
151
|
```
|
|
159
152
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
```bash
|
|
165
|
-
npm run format:prettier
|
|
166
|
-
```
|
|
153
|
+
Linting and formatting are also set to run in a pre-commit hook in the project.
|
|
154
|
+
|
|
155
|
+
### Testing with Web Test Runner
|
|
167
156
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
```
|
|
157
|
+
To run the suite of Web Test Runner tests, run:
|
|
158
|
+
|
|
159
|
+
```sh
|
|
171
160
|
npm run test
|
|
172
161
|
```
|
|
173
162
|
|
|
174
|
-
To run the tests in watch mode
|
|
163
|
+
To run the tests in watch mode, run:
|
|
175
164
|
|
|
176
|
-
```
|
|
165
|
+
```sh
|
|
177
166
|
npm run test:watch
|
|
178
167
|
```
|
|
179
168
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
169
|
+
### Demoing with Storybook
|
|
170
|
+
|
|
171
|
+
To start a local instance of Storybook for your component, run:
|
|
172
|
+
|
|
173
|
+
```sh
|
|
183
174
|
npm run storybook
|
|
184
175
|
```
|
|
185
176
|
|
|
186
|
-
To build a production version of Storybook, run
|
|
187
|
-
|
|
177
|
+
To build a production version of Storybook, run:
|
|
178
|
+
|
|
179
|
+
```sh
|
|
188
180
|
npm run storybook:build
|
|
189
181
|
```
|
|
182
|
+
|
|
183
|
+
[Ignite UI for Web Components]: https://www.infragistics.com/products/ignite-ui-web-components
|
|
184
|
+
[Indigo.Design Design System]: https://www.infragistics.com/products/appbuilder/ui-toolkit
|
|
185
|
+
[Ignite UI for WebComponents Grids]: https://www.npmjs.com/package/igniteui-webcomponents-grids
|
|
186
|
+
[Dock Manager Picture]: https://github.com/IgniteUI/igniteui-webcomponents/assets/52001020/a9643f17-f1c2-4554-87aa-96c9daea13b0
|
|
187
|
+
[Custom Elements Manifest]: https://github.com/webcomponents/custom-elements-manifest
|
|
188
|
+
[VSCode Custom Data Format]: https://github.com/microsoft/vscode-custom-data
|
|
189
|
+
[Web Types]: https://plugins.jetbrains.com/docs/intellij/websymbols-web-types.html
|
|
190
|
+
[chrome_48x48]: https://user-images.githubusercontent.com/2188411/168109445-fbd7b217-35f9-44d1-8002-1eb97e39cdc6.png
|
|
191
|
+
[firefox_48x48]: https://user-images.githubusercontent.com/2188411/168109465-e46305ee-f69f-4fa5-8f4a-14876f7fd3ca.png
|
|
192
|
+
[edge_48x48]: https://user-images.githubusercontent.com/2188411/168109472-a730f8c0-3822-4ae6-9f54-785a66695245.png
|
|
193
|
+
[opera_48x48]: https://user-images.githubusercontent.com/2188411/168109520-b6865a6c-b69f-44a4-9948-748d8afd687c.png
|
|
194
|
+
[safari_48x48]: https://user-images.githubusercontent.com/2188411/168109527-6c58f2cf-7386-4b97-98b1-cfe0ab4e8626.png
|
|
195
|
+
[Contribution Guidelines]: https://github.com/IgniteUI/igniteui-webcomponents/blob/master/.github/CONTRIBUTING.md
|
|
196
|
+
[Pivot Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/pivot-grid/overview
|
|
197
|
+
[Data Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/grid/overview
|
|
198
|
+
[Tree Grid Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/tree-grid/overview
|
|
199
|
+
[Switch Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/switch
|
|
200
|
+
[Ripple Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/ripple
|
|
201
|
+
[Radio Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/radio
|
|
202
|
+
[Navigation Drawer Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/menus/navigation-drawer
|
|
203
|
+
[Navigation Bar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/menus/navbar
|
|
204
|
+
[List Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/list
|
|
205
|
+
[Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/input
|
|
206
|
+
[Icon Button Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/icon-button
|
|
207
|
+
[Icon Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/icon
|
|
208
|
+
[Form Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/form
|
|
209
|
+
[Checkbox Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/checkbox
|
|
210
|
+
[Card Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/card
|
|
211
|
+
[Calendar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/scheduling/calendar
|
|
212
|
+
[Button Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/button
|
|
213
|
+
[Badge Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/badge
|
|
214
|
+
[Avatar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/avatar
|
|
215
|
+
[Slider Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/slider
|
|
216
|
+
[Rating Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/rating
|
|
217
|
+
[Toast Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/toast
|
|
218
|
+
[Snackbar Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/snackbar
|
|
219
|
+
[Chip Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/chip
|
|
220
|
+
[Circular Progress Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/circular-progress
|
|
221
|
+
[Linear Progress Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/linear-progress
|
|
222
|
+
[Dropdown Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/toast
|
|
223
|
+
[Tree Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/grids/tree
|
|
224
|
+
[Expansion Panel Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/expansion-panel
|
|
225
|
+
[Masked Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/input
|
|
226
|
+
[Accordion Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/accordion
|
|
227
|
+
[Tabs Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/tabs
|
|
228
|
+
[Date Time Input Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/date-time-input
|
|
229
|
+
[Dialog Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/notifications/dialog
|
|
230
|
+
[Select Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/select
|
|
231
|
+
[Stepper Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/layouts/stepper
|
|
232
|
+
[Combo Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/combo/overview
|
|
233
|
+
[Textarea Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/text-area
|
|
234
|
+
[Button Group Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/inputs/button-group
|
|
235
|
+
[Banner Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/banner
|
|
236
|
+
[Divider Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/divider
|
|
237
|
+
[Date Picker Docs]: https://www.infragistics.com/products/ignite-ui-web-components/web-components/components/date-picker
|
|
238
|
+
[1.0.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/1.0.0
|
|
239
|
+
[2.0.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.0.0
|
|
240
|
+
[2.1.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.1.0
|
|
241
|
+
[2.2.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/2.2.0
|
|
242
|
+
[3.2.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.2.0
|
|
243
|
+
[3.3.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.3.0
|
|
244
|
+
[3.4.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/3.4.0
|
|
245
|
+
[4.1.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.1.0
|
|
246
|
+
[4.5.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.5.0
|
|
247
|
+
[4.10.0]: https://github.com/IgniteUI/igniteui-webcomponents/releases/tag/4.10.0
|
|
@@ -34,9 +34,9 @@ export default class IgcAccordionComponent extends LitElement {
|
|
|
34
34
|
private closePanel;
|
|
35
35
|
private openPanel;
|
|
36
36
|
/** Hides all of the child expansion panels' contents. */
|
|
37
|
-
hideAll(): void
|
|
37
|
+
hideAll(): Promise<void>;
|
|
38
38
|
/** Shows all of the child expansion panels' contents. */
|
|
39
|
-
showAll(): void
|
|
39
|
+
showAll(): Promise<void>;
|
|
40
40
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
41
41
|
}
|
|
42
42
|
declare global {
|
|
@@ -7,7 +7,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { LitElement, html } from 'lit';
|
|
8
8
|
import { property, queryAssignedElements } from 'lit/decorators.js';
|
|
9
9
|
import { addKeybindings, altKey, arrowDown, arrowUp, endKey, homeKey, shiftKey, } from '../common/controllers/key-bindings.js';
|
|
10
|
-
import { blazorSuppress } from '../common/decorators/blazorSuppress.js';
|
|
11
10
|
import { registerComponent } from '../common/definitions/register.js';
|
|
12
11
|
import IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';
|
|
13
12
|
import { styles } from './themes/accordion.base.css.js';
|
|
@@ -57,70 +56,60 @@ class IgcAccordionComponent extends LitElement {
|
|
|
57
56
|
this.getPanelHeader(next).focus();
|
|
58
57
|
}
|
|
59
58
|
collapseAll() {
|
|
60
|
-
const
|
|
61
|
-
for (const panel of panels) {
|
|
59
|
+
for (const panel of this.enabledPanels) {
|
|
62
60
|
this.closePanel(panel);
|
|
63
61
|
}
|
|
64
62
|
}
|
|
65
63
|
expandAll(event) {
|
|
66
64
|
const current = event.target;
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
for (const panel of panels) {
|
|
65
|
+
for (const panel of this.enabledPanels) {
|
|
66
|
+
if (this.singleExpand) {
|
|
70
67
|
current === panel ? this.openPanel(panel) : this.closePanel(panel);
|
|
71
68
|
}
|
|
72
|
-
|
|
73
|
-
else {
|
|
74
|
-
for (const panel of panels) {
|
|
69
|
+
else {
|
|
75
70
|
this.openPanel(panel);
|
|
76
71
|
}
|
|
77
72
|
}
|
|
78
73
|
}
|
|
79
74
|
handlePanelOpening(event) {
|
|
80
|
-
const
|
|
81
|
-
if (!this.singleExpand
|
|
75
|
+
const current = event.target;
|
|
76
|
+
if (!(this.singleExpand && this.panels.includes(current))) {
|
|
82
77
|
return;
|
|
83
78
|
}
|
|
84
|
-
this.enabledPanels
|
|
85
|
-
if (
|
|
86
|
-
this.closePanel(
|
|
79
|
+
for (const panel of this.enabledPanels) {
|
|
80
|
+
if (panel.open && panel !== current) {
|
|
81
|
+
this.closePanel(panel);
|
|
87
82
|
}
|
|
88
|
-
}
|
|
83
|
+
}
|
|
89
84
|
}
|
|
90
85
|
getNextPanel(panel, dir = 1) {
|
|
91
86
|
const idx = this.enabledPanels.indexOf(panel);
|
|
92
87
|
return this.enabledPanels[idx + dir] || panel;
|
|
93
88
|
}
|
|
94
89
|
getPanelHeader(panel) {
|
|
95
|
-
return panel.
|
|
90
|
+
return panel.renderRoot.querySelector('div[part="header"]');
|
|
96
91
|
}
|
|
97
92
|
async closePanel(panel) {
|
|
98
|
-
if (!panel.open
|
|
93
|
+
if (!(panel.open &&
|
|
94
|
+
panel.emitEvent('igcClosing', { cancelable: true, detail: panel }))) {
|
|
99
95
|
return;
|
|
100
96
|
}
|
|
101
|
-
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
panel.hide();
|
|
105
|
-
await panel.updateComplete;
|
|
97
|
+
await panel.hide();
|
|
106
98
|
panel.emitEvent('igcClosed', { detail: panel });
|
|
107
99
|
}
|
|
108
100
|
async openPanel(panel) {
|
|
109
|
-
if (panel.open
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
if (!panel.emitEvent('igcOpening', { cancelable: true, detail: panel })) {
|
|
101
|
+
if (panel.open ||
|
|
102
|
+
!panel.emitEvent('igcOpening', { cancelable: true, detail: panel })) {
|
|
113
103
|
return;
|
|
114
104
|
}
|
|
115
|
-
panel.show();
|
|
116
|
-
await panel.updateComplete;
|
|
105
|
+
await panel.show();
|
|
117
106
|
panel.emitEvent('igcOpened', { detail: panel });
|
|
118
107
|
}
|
|
119
|
-
hideAll() {
|
|
120
|
-
this.panels.
|
|
108
|
+
async hideAll() {
|
|
109
|
+
await Promise.all(this.panels.map((panel) => panel.hide()));
|
|
121
110
|
}
|
|
122
|
-
showAll() {
|
|
123
|
-
this.panels.
|
|
111
|
+
async showAll() {
|
|
112
|
+
await Promise.all(this.panels.map((panel) => panel.show()));
|
|
124
113
|
}
|
|
125
114
|
render() {
|
|
126
115
|
return html `<slot></slot>`;
|
|
@@ -130,13 +119,14 @@ IgcAccordionComponent.tagName = 'igc-accordion';
|
|
|
130
119
|
IgcAccordionComponent.styles = styles;
|
|
131
120
|
export default IgcAccordionComponent;
|
|
132
121
|
__decorate([
|
|
133
|
-
queryAssignedElements({
|
|
122
|
+
queryAssignedElements({
|
|
123
|
+
selector: `${IgcExpansionPanelComponent.tagName}:not([disabled])`,
|
|
124
|
+
})
|
|
134
125
|
], IgcAccordionComponent.prototype, "enabledPanels", void 0);
|
|
135
126
|
__decorate([
|
|
136
127
|
property({ attribute: 'single-expand', reflect: true, type: Boolean })
|
|
137
128
|
], IgcAccordionComponent.prototype, "singleExpand", void 0);
|
|
138
129
|
__decorate([
|
|
139
|
-
queryAssignedElements({ selector:
|
|
140
|
-
blazorSuppress()
|
|
130
|
+
queryAssignedElements({ selector: IgcExpansionPanelComponent.tagName })
|
|
141
131
|
], IgcAccordionComponent.prototype, "panels", void 0);
|
|
142
132
|
//# sourceMappingURL=accordion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { blazorSuppress } from '../common/decorators/blazorSuppress.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport { styles } from './themes/accordion.base.css.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);\n }\n\n @queryAssignedElements({ selector: 'igc-expansion-panel:not([disabled])' })\n private enabledPanels!: Array<IgcExpansionPanelComponent>;\n\n private get firstEnabled() {\n return this.enabledPanels[0];\n }\n\n private get lastEnabled() {\n return this.enabledPanels[this.enabledPanels.length - 1];\n }\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n */\n @property({ attribute: 'single-expand', reflect: true, type: Boolean })\n public singleExpand = false;\n\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n @queryAssignedElements({ selector: 'igc-expansion-panel' })\n @blazorSuppress()\n public panels!: Array<IgcExpansionPanelComponent>;\n\n constructor() {\n super();\n\n this.addEventListener('igcOpening', this.handlePanelOpening);\n\n addKeybindings(this, {\n skip: this.skipKeybinding,\n bindingDefaults: { preventDefault: true },\n })\n .set(homeKey, () => this.getPanelHeader(this.firstEnabled).focus())\n .set(endKey, () => this.getPanelHeader(this.lastEnabled).focus())\n .set(arrowUp, this.navigatePrev)\n .set(arrowDown, this.navigateNext)\n .set([shiftKey, altKey, arrowDown], this.expandAll)\n .set([shiftKey, altKey, arrowUp], this.collapseAll);\n }\n\n private skipKeybinding(target: Element) {\n return !(\n target.matches(IgcExpansionPanelComponent.tagName) &&\n this.enabledPanels.includes(target as IgcExpansionPanelComponent)\n );\n }\n\n private navigatePrev(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, -1);\n\n if (event.altKey || next === current) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private navigateNext(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, 1);\n\n if (event.altKey || next === current) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private collapseAll() {\n const panels = this.enabledPanels;\n for (const panel of panels) {\n this.closePanel(panel);\n }\n }\n\n private expandAll(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const panels = this.enabledPanels;\n\n if (this.singleExpand) {\n for (const panel of panels) {\n current === panel ? this.openPanel(panel) : this.closePanel(panel);\n }\n } else {\n for (const panel of panels) {\n this.openPanel(panel);\n }\n }\n }\n\n private handlePanelOpening(event: Event) {\n const panel = event.target as IgcExpansionPanelComponent;\n if (!this.singleExpand || !this.panels.includes(panel)) {\n return;\n }\n this.enabledPanels.forEach((p) => {\n if (p.open && p !== panel) {\n this.closePanel(p);\n }\n });\n }\n\n private getNextPanel(panel: IgcExpansionPanelComponent, dir: 1 | -1 = 1) {\n const idx = this.enabledPanels.indexOf(panel);\n return this.enabledPanels[idx + dir] || panel;\n }\n\n private getPanelHeader(panel: IgcExpansionPanelComponent) {\n return panel.shadowRoot?.querySelector('div[part=\"header\"]') as HTMLElement;\n }\n\n private async closePanel(panel: IgcExpansionPanelComponent) {\n if (!panel.open) {\n return;\n }\n if (!panel.emitEvent('igcClosing', { cancelable: true, detail: panel })) {\n return;\n }\n panel.hide();\n await panel.updateComplete;\n\n panel.emitEvent('igcClosed', { detail: panel });\n }\n\n private async openPanel(panel: IgcExpansionPanelComponent) {\n if (panel.open) {\n return;\n }\n if (!panel.emitEvent('igcOpening', { cancelable: true, detail: panel })) {\n return;\n }\n\n panel.show();\n await panel.updateComplete;\n\n panel.emitEvent('igcOpened', { detail: panel });\n }\n\n /** Hides all of the child expansion panels' contents. */\n public hideAll() {\n this.panels.forEach((p) => p.hide());\n }\n\n /** Shows all of the child expansion panels' contents. */\n public showAll() {\n this.panels.forEach((p) => p.show());\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\n\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n homeKey,\n shiftKey,\n} from '../common/controllers/key-bindings.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';\nimport { styles } from './themes/accordion.base.css.js';\n\n/**\n * The Accordion is a container-based component that can house multiple expansion panels\n * and offers keyboard navigation.\n *\n * @element igc-accordion\n *\n * @slot - Renders the expansion panels inside default slot.\n */\nexport default class IgcAccordionComponent extends LitElement {\n public static readonly tagName = 'igc-accordion';\n public static override styles = styles;\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcAccordionComponent, IgcExpansionPanelComponent);\n }\n\n @queryAssignedElements({\n selector: `${IgcExpansionPanelComponent.tagName}:not([disabled])`,\n })\n private enabledPanels!: Array<IgcExpansionPanelComponent>;\n\n private get firstEnabled() {\n return this.enabledPanels[0];\n }\n\n private get lastEnabled() {\n return this.enabledPanels[this.enabledPanels.length - 1];\n }\n\n /**\n * Allows only one panel to be expanded at a time.\n * @attr single-expand\n */\n @property({ attribute: 'single-expand', reflect: true, type: Boolean })\n public singleExpand = false;\n\n /* blazorSuppress */\n /** Returns all of the accordions's direct igc-expansion-panel children. */\n @queryAssignedElements({ selector: IgcExpansionPanelComponent.tagName })\n public panels!: Array<IgcExpansionPanelComponent>;\n\n constructor() {\n super();\n\n this.addEventListener('igcOpening', this.handlePanelOpening);\n\n addKeybindings(this, {\n skip: this.skipKeybinding,\n bindingDefaults: { preventDefault: true },\n })\n .set(homeKey, () => this.getPanelHeader(this.firstEnabled).focus())\n .set(endKey, () => this.getPanelHeader(this.lastEnabled).focus())\n .set(arrowUp, this.navigatePrev)\n .set(arrowDown, this.navigateNext)\n .set([shiftKey, altKey, arrowDown], this.expandAll)\n .set([shiftKey, altKey, arrowUp], this.collapseAll);\n }\n\n private skipKeybinding(target: Element) {\n return !(\n target.matches(IgcExpansionPanelComponent.tagName) &&\n this.enabledPanels.includes(target as IgcExpansionPanelComponent)\n );\n }\n\n private navigatePrev(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, -1);\n\n if (event.altKey || next === current) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private navigateNext(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n const next = this.getNextPanel(current, 1);\n\n if (event.altKey || next === current) {\n return;\n }\n\n this.getPanelHeader(next).focus();\n }\n\n private collapseAll() {\n for (const panel of this.enabledPanels) {\n this.closePanel(panel);\n }\n }\n\n private expandAll(event: KeyboardEvent) {\n const current = event.target as IgcExpansionPanelComponent;\n\n for (const panel of this.enabledPanels) {\n if (this.singleExpand) {\n current === panel ? this.openPanel(panel) : this.closePanel(panel);\n } else {\n this.openPanel(panel);\n }\n }\n }\n\n private handlePanelOpening(event: Event) {\n const current = event.target as IgcExpansionPanelComponent;\n\n if (!(this.singleExpand && this.panels.includes(current))) {\n return;\n }\n\n for (const panel of this.enabledPanels) {\n if (panel.open && panel !== current) {\n this.closePanel(panel);\n }\n }\n }\n\n private getNextPanel(panel: IgcExpansionPanelComponent, dir: 1 | -1 = 1) {\n const idx = this.enabledPanels.indexOf(panel);\n return this.enabledPanels[idx + dir] || panel;\n }\n\n private getPanelHeader(panel: IgcExpansionPanelComponent) {\n return panel.renderRoot.querySelector('div[part=\"header\"]') as HTMLElement;\n }\n\n private async closePanel(panel: IgcExpansionPanelComponent) {\n if (\n !(\n panel.open &&\n panel.emitEvent('igcClosing', { cancelable: true, detail: panel })\n )\n ) {\n return;\n }\n\n await panel.hide();\n panel.emitEvent('igcClosed', { detail: panel });\n }\n\n private async openPanel(panel: IgcExpansionPanelComponent) {\n if (\n panel.open ||\n !panel.emitEvent('igcOpening', { cancelable: true, detail: panel })\n ) {\n return;\n }\n\n await panel.show();\n panel.emitEvent('igcOpened', { detail: panel });\n }\n\n /** Hides all of the child expansion panels' contents. */\n public async hideAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.hide()));\n }\n\n /** Shows all of the child expansion panels' contents. */\n public async showAll(): Promise<void> {\n await Promise.all(this.panels.map((panel) => panel.show()));\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-accordion': IgcAccordionComponent;\n }\n}\n"]}
|