igniteui-webcomponents 4.11.1 → 5.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +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 +30658 -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
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { findElementFromEventPath } from '../util.js';
|
|
2
|
+
export class RootClickController {
|
|
2
3
|
constructor(host, config) {
|
|
3
4
|
this.host = host;
|
|
4
5
|
this.config = config;
|
|
6
|
+
this.disabled = false;
|
|
5
7
|
this.host.addController(this);
|
|
6
8
|
}
|
|
7
9
|
addEventListeners() {
|
|
@@ -15,16 +17,20 @@ class RootClickController {
|
|
|
15
17
|
configureListeners() {
|
|
16
18
|
this.host.open ? this.addEventListeners() : this.removeEventListeners();
|
|
17
19
|
}
|
|
20
|
+
shouldHide(event) {
|
|
21
|
+
const targets = new Set([this.host]);
|
|
22
|
+
if (this.config?.target) {
|
|
23
|
+
targets.add(this.config.target);
|
|
24
|
+
}
|
|
25
|
+
return !findElementFromEventPath((node) => targets.has(node), event);
|
|
26
|
+
}
|
|
18
27
|
handleEvent(event) {
|
|
19
|
-
if (this.host.keepOpenOnOutsideClick) {
|
|
28
|
+
if (this.host.keepOpenOnOutsideClick || this.disabled) {
|
|
20
29
|
return;
|
|
21
30
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (path.includes(this.host) || path.includes(target)) {
|
|
25
|
-
return;
|
|
31
|
+
if (this.shouldHide(event)) {
|
|
32
|
+
this.hide();
|
|
26
33
|
}
|
|
27
|
-
this.hide();
|
|
28
34
|
}
|
|
29
35
|
hide() {
|
|
30
36
|
this.config?.hideCallback
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root-click.js","sourceRoot":"","sources":["../../../../src/components/common/controllers/root-click.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"root-click.js","sourceRoot":"","sources":["../../../../src/components/common/controllers/root-click.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAetD,MAAM,OAAO,mBAAmB;IAG9B,YACmB,IAA6B,EACtC,MAAkC;QADzB,SAAI,GAAJ,IAAI,CAAyB;QACtC,WAAM,GAAN,MAAM,CAA4B;QAJrC,aAAQ,GAAG,KAAK,CAAC;QAMtB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC1E,CAAC;IAEO,UAAU,CAAC,KAAmB;QACpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAEM,WAAW,CAAC,KAAmB;QACpC,IAAI,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,MAAM,EAAE,YAAY;YACvB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAAkC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CACjC,IAA6B,EAC7B,MAAkC;IAElC,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport { findElementFromEventPath } from '../util.js';\n\ntype RootClickControllerConfig = {\n hideCallback?: () => void;\n target?: HTMLElement;\n};\n\ntype RootClickControllerHost = ReactiveControllerHost &\n HTMLElement & {\n open: boolean;\n keepOpenOnOutsideClick?: boolean;\n hide(): void;\n };\n\n/* blazorSuppress */\nexport class RootClickController implements ReactiveController {\n public disabled = false;\n\n constructor(\n private readonly host: RootClickControllerHost,\n private config?: RootClickControllerConfig\n ) {\n this.host.addController(this);\n }\n\n private addEventListeners() {\n if (!this.host.keepOpenOnOutsideClick) {\n document.addEventListener('click', this);\n }\n }\n\n private removeEventListeners() {\n document.removeEventListener('click', this);\n }\n\n private configureListeners() {\n this.host.open ? this.addEventListeners() : this.removeEventListeners();\n }\n\n private shouldHide(event: PointerEvent) {\n const targets = new Set<Element>([this.host]);\n\n if (this.config?.target) {\n targets.add(this.config.target);\n }\n\n return !findElementFromEventPath((node) => targets.has(node), event);\n }\n\n public handleEvent(event: PointerEvent) {\n if (this.host.keepOpenOnOutsideClick || this.disabled) {\n return;\n }\n\n if (this.shouldHide(event)) {\n this.hide();\n }\n }\n\n private hide() {\n this.config?.hideCallback\n ? this.config.hideCallback.call(this.host)\n : this.host.hide();\n }\n\n public update(config?: RootClickControllerConfig) {\n if (config) {\n this.config = { ...this.config, ...config };\n }\n this.configureListeners();\n }\n\n public hostConnected() {\n this.configureListeners();\n }\n\n public hostDisconnected() {\n this.removeEventListeners();\n }\n}\n\nexport function addRootClickHandler(\n host: RootClickControllerHost,\n config?: RootClickControllerConfig\n) {\n return new RootClickController(host, config);\n}\n"]}
|
|
@@ -25,7 +25,6 @@ import IgcDropdownHeaderComponent from '../../dropdown/dropdown-header.js';
|
|
|
25
25
|
import IgcDropdownItemComponent from '../../dropdown/dropdown-item.js';
|
|
26
26
|
import IgcDropdownComponent from '../../dropdown/dropdown.js';
|
|
27
27
|
import IgcExpansionPanelComponent from '../../expansion-panel/expansion-panel.js';
|
|
28
|
-
import IgcFormComponent from '../../form/form.js';
|
|
29
28
|
import IgcIconComponent from '../../icon/icon.js';
|
|
30
29
|
import IgcInputComponent from '../../input/input.js';
|
|
31
30
|
import IgcListHeaderComponent from '../../list/list-header.js';
|
|
@@ -89,7 +88,6 @@ const allComponents = [
|
|
|
89
88
|
IgcDividerComponent,
|
|
90
89
|
IgcSwitchComponent,
|
|
91
90
|
IgcExpansionPanelComponent,
|
|
92
|
-
IgcFormComponent,
|
|
93
91
|
IgcIconComponent,
|
|
94
92
|
IgcInputComponent,
|
|
95
93
|
IgcListHeaderComponent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineAllComponents.js","sourceRoot":"","sources":["../../../../src/components/common/definitions/defineAllComponents.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,8BAA8B,CAAC;AACjE,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,uBAAuB,MAAM,oCAAoC,CAAC;AACzE,OAAO,wBAAwB,MAAM,qCAAqC,CAAC;AAC3E,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,oBAAoB,MAAM,4BAA4B,CAAC;AAC9D,OAAO,uBAAuB,MAAM,4BAA4B,CAAC;AACjE,OAAO,uBAAuB,MAAM,4BAA4B,CAAC;AACjE,OAAO,sBAAsB,MAAM,2BAA2B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAC7D,OAAO,oBAAoB,MAAM,4BAA4B,CAAC;AAC9D,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAC1D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,sBAAsB,MAAM,kCAAkC,CAAC;AACtE,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,yBAAyB,MAAM,kCAAkC,CAAC;AACzE,OAAO,0BAA0B,MAAM,mCAAmC,CAAC;AAC3E,OAAO,wBAAwB,MAAM,iCAAiC,CAAC;AACvE,OAAO,oBAAoB,MAAM,4BAA4B,CAAC;AAC9D,OAAO,0BAA0B,MAAM,0CAA0C,CAAC;AAClF,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"defineAllComponents.js","sourceRoot":"","sources":["../../../../src/components/common/definitions/defineAllComponents.ts"],"names":[],"mappings":"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","sourcesContent":["import IgcAccordionComponent from '../../accordion/accordion.js';\nimport IgcAvatarComponent from '../../avatar/avatar.js';\nimport IgcBadgeComponent from '../../badge/badge.js';\nimport IgcBannerComponent from '../../banner/banner.js';\nimport IgcButtonGroupComponent from '../../button-group/button-group.js';\nimport IgcToggleButtonComponent from '../../button-group/toggle-button.js';\nimport IgcButtonComponent from '../../button/button.js';\nimport IgcIconButtonComponent from '../../button/icon-button.js';\nimport IgcCalendarComponent from '../../calendar/calendar.js';\nimport IgcCardActionsComponent from '../../card/card.actions.js';\nimport IgcCardContentComponent from '../../card/card.content.js';\nimport IgcCardHeaderComponent from '../../card/card.header.js';\nimport IgcCardComponent from '../../card/card.js';\nimport IgcCardMediaComponent from '../../card/card.media.js';\nimport IgcCheckboxComponent from '../../checkbox/checkbox.js';\nimport IgcSwitchComponent from '../../checkbox/switch.js';\nimport IgcChipComponent from '../../chip/chip.js';\nimport IgcComboComponent from '../../combo/combo.js';\nimport IgcDatePickerComponent from '../../date-picker/date-picker.js';\nimport IgcDateTimeInputComponent from '../../date-time-input/date-time-input.js';\nimport IgcDialogComponent from '../../dialog/dialog.js';\nimport IgcDividerComponent from '../../divider/divider.js';\nimport IgcDropdownGroupComponent from '../../dropdown/dropdown-group.js';\nimport IgcDropdownHeaderComponent from '../../dropdown/dropdown-header.js';\nimport IgcDropdownItemComponent from '../../dropdown/dropdown-item.js';\nimport IgcDropdownComponent from '../../dropdown/dropdown.js';\nimport IgcExpansionPanelComponent from '../../expansion-panel/expansion-panel.js';\nimport IgcIconComponent from '../../icon/icon.js';\nimport IgcInputComponent from '../../input/input.js';\nimport IgcListHeaderComponent from '../../list/list-header.js';\nimport IgcListItemComponent from '../../list/list-item.js';\nimport IgcListComponent from '../../list/list.js';\nimport IgcMaskInputComponent from '../../mask-input/mask-input.js';\nimport IgcNavDrawerHeaderItemComponent from '../../nav-drawer/nav-drawer-header-item.js';\nimport IgcNavDrawerItemComponent from '../../nav-drawer/nav-drawer-item.js';\nimport IgcNavDrawerComponent from '../../nav-drawer/nav-drawer.js';\nimport IgcNavbarComponent from '../../navbar/navbar.js';\nimport IgcCircularGradientComponent from '../../progress/circular-gradient.js';\nimport IgcCircularProgressComponent from '../../progress/circular-progress.js';\nimport IgcLinearProgressComponent from '../../progress/linear-progress.js';\nimport IgcRadioGroupComponent from '../../radio-group/radio-group.js';\nimport IgcRadioComponent from '../../radio/radio.js';\nimport IgcRatingSymbolComponent from '../../rating/rating-symbol.js';\nimport IgcRatingComponent from '../../rating/rating.js';\nimport IgcRippleComponent from '../../ripple/ripple.js';\nimport IgcSelectGroupComponent from '../../select/select-group.js';\nimport IgcSelectHeaderComponent from '../../select/select-header.js';\nimport IgcSelectItemComponent from '../../select/select-item.js';\nimport IgcSelectComponent from '../../select/select.js';\nimport IgcRangeSliderComponent from '../../slider/range-slider.js';\nimport IgcSliderLabelComponent from '../../slider/slider-label.js';\nimport IgcSliderComponent from '../../slider/slider.js';\nimport IgcSnackbarComponent from '../../snackbar/snackbar.js';\nimport IgcStepComponent from '../../stepper/step.js';\nimport IgcStepperComponent from '../../stepper/stepper.js';\nimport IgcTabPanelComponent from '../../tabs/tab-panel.js';\nimport IgcTabComponent from '../../tabs/tab.js';\nimport IgcTabsComponent from '../../tabs/tabs.js';\nimport IgcTextareaComponent from '../../textarea/textarea.js';\nimport IgcToastComponent from '../../toast/toast.js';\nimport IgcTreeItemComponent from '../../tree/tree-item.js';\nimport IgcTreeComponent from '../../tree/tree.js';\nimport { defineComponents } from './defineComponents.js';\nimport type { IgniteComponent } from './register.js';\n\nconst allComponents: IgniteComponent[] = [\n IgcAvatarComponent,\n IgcAccordionComponent,\n IgcBadgeComponent,\n IgcBannerComponent,\n IgcButtonComponent,\n IgcIconButtonComponent,\n IgcToggleButtonComponent,\n IgcButtonGroupComponent,\n IgcCalendarComponent,\n IgcCardActionsComponent,\n IgcCardContentComponent,\n IgcCardHeaderComponent,\n IgcCardMediaComponent,\n IgcCardComponent,\n IgcCheckboxComponent,\n IgcChipComponent,\n IgcComboComponent,\n IgcDatePickerComponent,\n IgcDropdownComponent,\n IgcDropdownGroupComponent,\n IgcDropdownHeaderComponent,\n IgcDropdownItemComponent,\n IgcDialogComponent,\n IgcDividerComponent,\n IgcSwitchComponent,\n IgcExpansionPanelComponent,\n IgcIconComponent,\n IgcInputComponent,\n IgcListHeaderComponent,\n IgcListItemComponent,\n IgcListComponent,\n IgcMaskInputComponent,\n IgcNavDrawerHeaderItemComponent,\n IgcNavDrawerItemComponent,\n IgcNavDrawerComponent,\n IgcNavbarComponent,\n IgcRadioComponent,\n IgcRadioGroupComponent,\n IgcRatingComponent,\n IgcRatingSymbolComponent,\n IgcRippleComponent,\n IgcSelectGroupComponent,\n IgcSelectHeaderComponent,\n IgcSelectItemComponent,\n IgcSelectComponent,\n IgcTreeComponent,\n IgcTreeItemComponent,\n IgcSliderComponent,\n IgcToastComponent,\n IgcSliderLabelComponent,\n IgcRangeSliderComponent,\n IgcTabsComponent,\n IgcTabComponent,\n IgcTabPanelComponent,\n IgcCircularProgressComponent,\n IgcLinearProgressComponent,\n IgcCircularGradientComponent,\n IgcSnackbarComponent,\n IgcDateTimeInputComponent,\n IgcStepperComponent,\n IgcStepComponent,\n IgcTextareaComponent,\n];\n\nexport function defineAllComponents() {\n defineComponents(...allComponents);\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type DateTimeFormatterConfig = {
|
|
2
|
+
[name: string]: Intl.DateTimeFormatOptions;
|
|
3
|
+
};
|
|
4
|
+
declare class DateTimeFormatters<T extends DateTimeFormatterConfig> {
|
|
5
|
+
private _locale;
|
|
6
|
+
private _configuration;
|
|
7
|
+
private _formatters;
|
|
8
|
+
private _update;
|
|
9
|
+
constructor(_locale: string, _configuration: T);
|
|
10
|
+
get(name: keyof T): Intl.DateTimeFormat;
|
|
11
|
+
get configuration(): T;
|
|
12
|
+
get locale(): string;
|
|
13
|
+
set locale(value: string);
|
|
14
|
+
update(configuration: Partial<T>): void;
|
|
15
|
+
}
|
|
16
|
+
export declare function createDateTimeFormatters<T extends DateTimeFormatterConfig>(locale: string, configuration: T): DateTimeFormatters<T>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const _cache = new Map();
|
|
2
|
+
function stringifyOptions(options) {
|
|
3
|
+
return Object.entries(options)
|
|
4
|
+
.map(([k, v]) => `${k}:${v}`)
|
|
5
|
+
.join('::');
|
|
6
|
+
}
|
|
7
|
+
function getFormatter(locale, options) {
|
|
8
|
+
const key = `${locale}#${stringifyOptions(options)}`;
|
|
9
|
+
if (!_cache.has(key)) {
|
|
10
|
+
_cache.set(key, new Intl.DateTimeFormat(locale, options));
|
|
11
|
+
}
|
|
12
|
+
return _cache.get(key);
|
|
13
|
+
}
|
|
14
|
+
class DateTimeFormatters {
|
|
15
|
+
_update(configuration) {
|
|
16
|
+
for (const [key, value] of Object.entries(configuration)) {
|
|
17
|
+
this._formatters.set(key, getFormatter(this._locale, value));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
constructor(_locale, _configuration) {
|
|
21
|
+
this._locale = _locale;
|
|
22
|
+
this._configuration = _configuration;
|
|
23
|
+
this._formatters = new Map();
|
|
24
|
+
this._update(_configuration);
|
|
25
|
+
}
|
|
26
|
+
get(name) {
|
|
27
|
+
return this._formatters.get(name);
|
|
28
|
+
}
|
|
29
|
+
get configuration() {
|
|
30
|
+
return { ...this._configuration };
|
|
31
|
+
}
|
|
32
|
+
get locale() {
|
|
33
|
+
return this._locale;
|
|
34
|
+
}
|
|
35
|
+
set locale(value) {
|
|
36
|
+
this._locale = value;
|
|
37
|
+
this._update(this._configuration);
|
|
38
|
+
}
|
|
39
|
+
update(configuration) {
|
|
40
|
+
this._update(Object.assign(this._configuration, configuration));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export function createDateTimeFormatters(locale, configuration) {
|
|
44
|
+
return new DateTimeFormatters(locale, configuration);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=intl-formatters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intl-formatters.js","sourceRoot":"","sources":["../../../../src/components/common/localization/intl-formatters.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEtD,SAAS,gBAAgB,CAAC,OAAmC;IAC3D,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,OAAmC;IACvE,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IAErD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;AAC1B,CAAC;AAED,MAAM,kBAAkB;IAGd,OAAO,CAAC,aAAgB;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,YACU,OAAe,EACf,cAAiB;QADjB,YAAO,GAAP,OAAO,CAAQ;QACf,mBAAc,GAAd,cAAc,CAAG;QAVnB,gBAAW,GAAG,IAAI,GAAG,EAAgC,CAAC;QAY5D,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IAEM,GAAG,CAAC,IAAa;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IACrC,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,MAAM,CAAC,KAAa;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,aAAyB;QACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAClE,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAc,EACd,aAAgB;IAEhB,OAAO,IAAI,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACvD,CAAC","sourcesContent":["type DateTimeFormatterConfig = {\n [name: string]: Intl.DateTimeFormatOptions;\n};\n\nconst _cache = new Map<string, Intl.DateTimeFormat>();\n\nfunction stringifyOptions(options: Intl.DateTimeFormatOptions) {\n return Object.entries(options)\n .map(([k, v]) => `${k}:${v}`)\n .join('::');\n}\n\nfunction getFormatter(locale: string, options: Intl.DateTimeFormatOptions) {\n const key = `${locale}#${stringifyOptions(options)}`;\n\n if (!_cache.has(key)) {\n _cache.set(key, new Intl.DateTimeFormat(locale, options));\n }\n\n return _cache.get(key)!;\n}\n\nclass DateTimeFormatters<T extends DateTimeFormatterConfig> {\n private _formatters = new Map<keyof T, Intl.DateTimeFormat>();\n\n private _update(configuration: T) {\n for (const [key, value] of Object.entries(configuration)) {\n this._formatters.set(key, getFormatter(this._locale, value));\n }\n }\n\n constructor(\n private _locale: string,\n private _configuration: T\n ) {\n this._update(_configuration);\n }\n\n public get(name: keyof T) {\n return this._formatters.get(name)!;\n }\n\n public get configuration() {\n return { ...this._configuration };\n }\n\n public get locale() {\n return this._locale;\n }\n\n public set locale(value: string) {\n this._locale = value;\n this._update(this._configuration);\n }\n\n public update(configuration: Partial<T>) {\n this._update(Object.assign(this._configuration, configuration));\n }\n}\n\nexport function createDateTimeFormatters<T extends DateTimeFormatterConfig>(\n locale: string,\n configuration: T\n) {\n return new DateTimeFormatters(locale, configuration);\n}\n"]}
|
|
@@ -30,9 +30,9 @@ export declare abstract class IgcBaseAlertLikeComponent extends LitElement {
|
|
|
30
30
|
private toggleAnimation;
|
|
31
31
|
private setAutoHideTimer;
|
|
32
32
|
/** Opens the component. */
|
|
33
|
-
show(): Promise<
|
|
33
|
+
show(): Promise<boolean>;
|
|
34
34
|
/** Closes the component. */
|
|
35
|
-
hide(): Promise<
|
|
35
|
+
hide(): Promise<boolean>;
|
|
36
36
|
/** Toggles the open state of the component. */
|
|
37
|
-
toggle():
|
|
37
|
+
toggle(): Promise<boolean>;
|
|
38
38
|
}
|
|
@@ -41,22 +41,24 @@ export class IgcBaseAlertLikeComponent extends LitElement {
|
|
|
41
41
|
}
|
|
42
42
|
async show() {
|
|
43
43
|
if (this.open) {
|
|
44
|
-
return;
|
|
44
|
+
return false;
|
|
45
45
|
}
|
|
46
46
|
this.open = true;
|
|
47
47
|
await this.toggleAnimation('open');
|
|
48
48
|
this.setAutoHideTimer();
|
|
49
|
+
return true;
|
|
49
50
|
}
|
|
50
51
|
async hide() {
|
|
51
52
|
if (!this.open) {
|
|
52
|
-
return;
|
|
53
|
+
return false;
|
|
53
54
|
}
|
|
54
55
|
clearTimeout(this._autoHideTimeout);
|
|
55
56
|
await this.toggleAnimation('close');
|
|
56
57
|
this.open = false;
|
|
58
|
+
return true;
|
|
57
59
|
}
|
|
58
|
-
toggle() {
|
|
59
|
-
this.open ? this.hide() : this.show();
|
|
60
|
+
async toggle() {
|
|
61
|
+
return this.open ? this.hide() : this.show();
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/alert.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAK/C,MAAM,OAAgB,yBAA0B,SAAQ,UAAU;IAqCtD,iBAAiB;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAGS,cAAc;QACtB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAlCH,SAAI,GAAG,KAAK,CAAC;QAOb,gBAAW,GAAG,IAAI,CAAC;QAOnB,aAAQ,GAAG,KAAK,CAAC;QAOjB,aAAQ,GAAgC,QAAQ,CAAC;QActD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEzC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAAuB;QACnD,MAAM,SAAS,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAEtD,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;SACxC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;IACjC,CAAC;IAEO,gBAAgB;QACtB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAGM,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO;
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/alert.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport type { addAnimationController } from '../../../animations/player.js';\nimport { fadeIn, fadeOut } from '../../../animations/presets/fade/index.js';\nimport { watch } from '../decorators/watch.js';\n\n// It'd be better to have this as a mixin rather than a base class once the analyzer\n// knows how to resolve multiple mixin chains\n\nexport abstract class IgcBaseAlertLikeComponent extends LitElement {\n private _internals: ElementInternals;\n protected _autoHideTimeout?: number;\n\n protected declare abstract _animationPlayer: ReturnType<\n typeof addAnimationController\n >;\n\n /**\n * Whether the component is in shown state.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n /**\n * Determines the duration in ms in which the component will be visible.\n * @attr display-time\n */\n @property({ type: Number, attribute: 'display-time' })\n public displayTime = 4000;\n\n /**\n * Determines whether the component should close after the `displayTime` is over.\n * @attr keep-open\n */\n @property({ type: Boolean, reflect: true, attribute: 'keep-open' })\n public keepOpen = false;\n\n /**\n * Sets the position of the component in the viewport.\n * @attr\n */\n @property({ reflect: true })\n public position: 'bottom' | 'middle' | 'top' = 'bottom';\n\n @watch('displayTime', { waitUntilFirstUpdate: true })\n protected displayTimeChange() {\n this.setAutoHideTimer();\n }\n\n @watch('keepOpen', { waitUntilFirstUpdate: true })\n protected keepOpenChange() {\n clearTimeout(this._autoHideTimeout);\n }\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n\n this._internals.role = 'status';\n this._internals.ariaLive = 'polite';\n }\n\n private async toggleAnimation(state: 'open' | 'close') {\n const animation = state === 'open' ? fadeIn : fadeOut;\n\n const [_, event] = await Promise.all([\n this._animationPlayer.stopAll(),\n this._animationPlayer.play(animation()),\n ]);\n\n return event.type === 'finish';\n }\n\n private setAutoHideTimer() {\n clearTimeout(this._autoHideTimeout);\n if (this.open && this.displayTime > 0 && !this.keepOpen) {\n this._autoHideTimeout = setTimeout(() => this.hide(), this.displayTime);\n }\n }\n\n /** Opens the component. */\n public async show(): Promise<boolean> {\n if (this.open) {\n return false;\n }\n\n this.open = true;\n await this.toggleAnimation('open');\n this.setAutoHideTimer();\n return true;\n }\n\n /** Closes the component. */\n public async hide(): Promise<boolean> {\n if (!this.open) {\n return false;\n }\n\n clearTimeout(this._autoHideTimeout);\n await this.toggleAnimation('close');\n this.open = false;\n return true;\n }\n\n /** Toggles the open state of the component. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n}\n"]}
|
|
@@ -8,6 +8,7 @@ interface IgcBaseComboBoxEventMap {
|
|
|
8
8
|
}
|
|
9
9
|
export declare abstract class IgcBaseComboBoxLikeComponent extends LitElement {
|
|
10
10
|
emitEvent: <K extends keyof IgcBaseComboBoxEventMap, D extends UnpackCustomEvent<IgcBaseComboBoxEventMap[K]>>(event: K, eventInitDict?: CustomEventInit<D>) => boolean;
|
|
11
|
+
protected _rootClickController: import("../controllers/root-click.js").RootClickController;
|
|
11
12
|
/**
|
|
12
13
|
* Whether the component dropdown should be kept open on selection.
|
|
13
14
|
* @attr keep-open-on-select
|
|
@@ -31,11 +32,11 @@ export declare abstract class IgcBaseComboBoxLikeComponent extends LitElement {
|
|
|
31
32
|
protected _hide(emitEvent?: boolean): Promise<boolean>;
|
|
32
33
|
protected _show(emitEvent?: boolean): Promise<boolean>;
|
|
33
34
|
/** Shows the component. */
|
|
34
|
-
show():
|
|
35
|
+
show(): Promise<boolean>;
|
|
35
36
|
/** Hides the component. */
|
|
36
|
-
hide():
|
|
37
|
+
hide(): Promise<boolean>;
|
|
37
38
|
/** Toggles the open state of the component. */
|
|
38
|
-
toggle():
|
|
39
|
+
toggle(): Promise<boolean>;
|
|
39
40
|
}
|
|
40
41
|
export declare function getItems<T extends HTMLElement>(root: Node, tagName: string): Generator<T, any, unknown>;
|
|
41
42
|
export declare function getActiveItems<T extends HTMLElement & {
|
|
@@ -6,10 +6,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { LitElement } from 'lit';
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { addRootClickHandler } from '../controllers/root-click.js';
|
|
9
10
|
import { iterNodes } from '../util.js';
|
|
10
11
|
export class IgcBaseComboBoxLikeComponent extends LitElement {
|
|
11
12
|
constructor() {
|
|
12
13
|
super(...arguments);
|
|
14
|
+
this._rootClickController = addRootClickHandler(this);
|
|
13
15
|
this.keepOpenOnSelect = false;
|
|
14
16
|
this.keepOpenOnOutsideClick = false;
|
|
15
17
|
this.open = false;
|
|
@@ -36,9 +38,9 @@ export class IgcBaseComboBoxLikeComponent extends LitElement {
|
|
|
36
38
|
this.open = false;
|
|
37
39
|
if (emitEvent) {
|
|
38
40
|
await this.updateComplete;
|
|
39
|
-
|
|
41
|
+
this.emitClosed();
|
|
40
42
|
}
|
|
41
|
-
return
|
|
43
|
+
return true;
|
|
42
44
|
}
|
|
43
45
|
async _show(emitEvent = false) {
|
|
44
46
|
if (this.open || (emitEvent && !this.emitOpening())) {
|
|
@@ -47,18 +49,22 @@ export class IgcBaseComboBoxLikeComponent extends LitElement {
|
|
|
47
49
|
this.open = true;
|
|
48
50
|
if (emitEvent) {
|
|
49
51
|
await this.updateComplete;
|
|
50
|
-
|
|
52
|
+
this.emitOpened();
|
|
51
53
|
}
|
|
52
|
-
return
|
|
54
|
+
return true;
|
|
53
55
|
}
|
|
54
|
-
show() {
|
|
55
|
-
this.
|
|
56
|
+
async show() {
|
|
57
|
+
this._rootClickController.disabled = true;
|
|
58
|
+
requestAnimationFrame(() => {
|
|
59
|
+
this._rootClickController.disabled = false;
|
|
60
|
+
});
|
|
61
|
+
return this._show();
|
|
56
62
|
}
|
|
57
|
-
hide() {
|
|
58
|
-
this._hide();
|
|
63
|
+
async hide() {
|
|
64
|
+
return this._hide();
|
|
59
65
|
}
|
|
60
|
-
toggle() {
|
|
61
|
-
this.open ? this.hide() : this.show();
|
|
66
|
+
async toggle() {
|
|
67
|
+
return this.open ? this.hide() : this.show();
|
|
62
68
|
}
|
|
63
69
|
}
|
|
64
70
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combo-box.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/combo-box.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAUvC,MAAM,OAAgB,4BAA6B,SAAQ,UAAU;IAArE;;
|
|
1
|
+
{"version":3,"file":"combo-box.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/combo-box.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { addRootClickHandler } from '../controllers/root-click.js';\nimport { iterNodes } from '../util.js';\nimport type { UnpackCustomEvent } from './event-emitter.js';\n\ninterface IgcBaseComboBoxEventMap {\n igcOpening: CustomEvent<void>;\n igcOpened: CustomEvent<void>;\n igcClosing: CustomEvent<void>;\n igcClosed: CustomEvent<void>;\n}\n\nexport abstract class IgcBaseComboBoxLikeComponent extends LitElement {\n public declare emitEvent: <\n K extends keyof IgcBaseComboBoxEventMap,\n D extends UnpackCustomEvent<IgcBaseComboBoxEventMap[K]>,\n >(\n event: K,\n eventInitDict?: CustomEventInit<D>\n ) => boolean;\n\n protected _rootClickController = addRootClickHandler(this);\n\n /**\n * Whether the component dropdown should be kept open on selection.\n * @attr keep-open-on-select\n */\n @property({ type: Boolean, reflect: true, attribute: 'keep-open-on-select' })\n public keepOpenOnSelect = false;\n\n /**\n * Whether the component dropdown should be kept open on clicking outside of it.\n * @attr keep-open-on-outside-click\n */\n @property({\n type: Boolean,\n reflect: true,\n attribute: 'keep-open-on-outside-click',\n })\n public keepOpenOnOutsideClick = false;\n\n /**\n * Sets the open state of the component.\n * @attr\n */\n @property({ type: Boolean, reflect: true })\n public open = false;\n\n protected emitClosing() {\n return this.emitEvent('igcClosing', { cancelable: true });\n }\n\n protected emitClosed() {\n return this.emitEvent('igcClosed');\n }\n\n protected emitOpening() {\n return this.emitEvent('igcOpening', { cancelable: true });\n }\n\n protected emitOpened() {\n return this.emitEvent('igcOpened');\n }\n\n protected handleAnchorClick() {\n this.open ? this._hide(true) : this._show(true);\n }\n\n protected async _hide(emitEvent = false) {\n if (!this.open || (emitEvent && !this.emitClosing())) {\n return false;\n }\n\n this.open = false;\n\n if (emitEvent) {\n await this.updateComplete;\n this.emitClosed();\n }\n\n return true;\n }\n\n protected async _show(emitEvent = false) {\n if (this.open || (emitEvent && !this.emitOpening())) {\n return false;\n }\n\n this.open = true;\n\n if (emitEvent) {\n await this.updateComplete;\n this.emitOpened();\n }\n\n return true;\n }\n\n /** Shows the component. */\n public async show(): Promise<boolean> {\n this._rootClickController.disabled = true;\n requestAnimationFrame(() => {\n this._rootClickController.disabled = false;\n });\n return this._show();\n }\n\n /** Hides the component. */\n public async hide(): Promise<boolean> {\n return this._hide();\n }\n\n /** Toggles the open state of the component. */\n public async toggle(): Promise<boolean> {\n return this.open ? this.hide() : this.show();\n }\n}\n\nexport function getItems<T extends HTMLElement>(root: Node, tagName: string) {\n return iterNodes<T>(root, 'SHOW_ELEMENT', (item) => item.matches(tagName));\n}\n\nexport function getActiveItems<T extends HTMLElement & { disabled: boolean }>(\n root: Node,\n tagName: string\n) {\n return iterNodes<T>(\n root,\n 'SHOW_ELEMENT',\n (item) => item.matches(tagName) && !item.disabled\n );\n}\n\nexport function getNextActiveItem<\n T extends HTMLElement & { disabled: boolean },\n>(items: T[], from: T) {\n const current = items.indexOf(from);\n\n for (let i = current + 1; i < items.length; i++) {\n if (!items[i].disabled) {\n return items[i];\n }\n }\n\n return items[current];\n}\n\nexport function getPreviousActiveItem<\n T extends HTMLElement & { disabled: boolean },\n>(items: T[], from: T) {\n const current = items.indexOf(from);\n\n for (let i = current - 1; i >= 0; i--) {\n if (!items[i].disabled) {\n return items[i];\n }\n }\n\n return items[current];\n}\n\nexport function setInitialSelectionState<\n T extends HTMLElement & { selected: boolean },\n>(items: T[]) {\n const lastSelected = items.filter((item) => item.selected).at(-1) ?? null;\n\n for (const item of items) {\n if (item !== lastSelected) {\n item.selected = false;\n }\n }\n\n return lastSelected;\n}\n"]}
|
|
@@ -4,7 +4,7 @@ import type { Constructor } from './constructor.js';
|
|
|
4
4
|
export declare class FormAssociatedElementInterface {
|
|
5
5
|
static readonly formAssociated: boolean;
|
|
6
6
|
private __internals;
|
|
7
|
-
protected
|
|
7
|
+
protected get __validators(): Validator[];
|
|
8
8
|
protected _disabled: boolean;
|
|
9
9
|
protected _invalid: boolean;
|
|
10
10
|
protected _dirty: boolean;
|
|
@@ -7,6 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { property } from 'lit/decorators.js';
|
|
8
8
|
export function FormAssociatedMixin(superClass) {
|
|
9
9
|
class FormAssociatedElement extends superClass {
|
|
10
|
+
get __validators() {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
10
13
|
get form() {
|
|
11
14
|
return this.__internals.form;
|
|
12
15
|
}
|
|
@@ -35,7 +38,6 @@ export function FormAssociatedMixin(superClass) {
|
|
|
35
38
|
}
|
|
36
39
|
constructor(...args) {
|
|
37
40
|
super(args);
|
|
38
|
-
this.validators = [];
|
|
39
41
|
this._disabled = false;
|
|
40
42
|
this._invalid = false;
|
|
41
43
|
this._dirty = false;
|
|
@@ -86,7 +88,7 @@ export function FormAssociatedMixin(superClass) {
|
|
|
86
88
|
updateValidity(message) {
|
|
87
89
|
const validity = {};
|
|
88
90
|
let validationMessage = '';
|
|
89
|
-
for (const validator of this.
|
|
91
|
+
for (const validator of this.__validators) {
|
|
90
92
|
const isValid = validator.isValid(this);
|
|
91
93
|
validity[validator.key] = !isValid;
|
|
92
94
|
if (!isValid) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-associated.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/form-associated.ts"],"names":[],"mappings":"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","sourcesContent":["import type { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport type { Validator } from '../validators.js';\nimport type { Constructor } from './constructor.js';\n\nexport declare class FormAssociatedElementInterface {\n public static readonly formAssociated: boolean;\n\n private __internals: ElementInternals;\n protected validators: Validator[];\n protected _disabled: boolean;\n protected _invalid: boolean;\n protected _dirty: boolean;\n\n /**\n * The default value of the control at \"creation\" time.\n *\n * @remarks\n * This is set by default on `connectedCallback` through the `setDefaultValue` call.\n * It expects the component to have either a `checked` or a `value` property and binds it to the initial value of the\n * respective property.\n *\n * In use-cases where additional customization is required, make sure to override the `setDefaultValue` method.\n */\n protected _defaultValue: unknown;\n\n /**\n * Applies the {@link FormAssociatedElementInterface.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n *\n * Usually, it should be called after {@link FormAssociatedElementInterface.updateValidity | `updateValidity()`}\n */\n protected setInvalidState(): void;\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected updateValidity(message?: string): void;\n\n /**\n * Saves the initial value/checked state of the control.\n *\n * Called on connectedCallback.\n */\n protected setDefaultValue(): void;\n\n /**\n * Called when the parent form is reset.\n *\n * Restores the initially bound value/checked state of the control.\n */\n protected restoreDefaultValue(): void;\n\n protected setFormValue(\n value: string | File | FormData | null,\n state?: string | File | FormData | null | undefined\n ): void;\n protected setValidity(\n flags?: ValidityStateFlags | undefined,\n message?: string | undefined,\n anchor?: HTMLElement | undefined\n ): void;\n\n protected formResetCallback(): void;\n protected formDisabledCallback(state: boolean): void;\n protected formStateRestoreCallback(\n state: string | FormData | File,\n mode: 'autocomplete' | 'restore'\n ): void;\n\n /**\n * The disabled state of the component\n * @attr [disabled=false]\n */\n public disabled: boolean;\n\n /**\n * Control the validity of the control.\n * @attr\n */\n public invalid: boolean;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n public name: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null;\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState;\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string;\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean;\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity(): boolean;\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity(): boolean;\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string): void;\n}\n\n/**\n * Turns the passed class element into a Form Associated Custom Element.\n */\nexport function FormAssociatedMixin<T extends Constructor<LitElement>>(\n superClass: T\n) {\n class FormAssociatedElement extends superClass {\n public static readonly formAssociated = true;\n\n private __internals: ElementInternals;\n protected validators: Validator[] = [];\n protected _disabled = false;\n protected _invalid = false;\n protected _dirty = false;\n\n /**\n * The default value of the control at \"creation\" time.\n *\n * @remarks\n * This is set by default on `connectedCallback` through the `setDefaultValue` call.\n * It expects the component to have either a `checked` or a `value` property and binds it to the initial value of the\n * respective property.\n *\n * In use-cases where additional customization is required, make sure to override the `setDefaultValue` method.\n */\n protected _defaultValue: unknown;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n @property({ reflect: true })\n public name!: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null {\n return this.__internals.form;\n }\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState {\n return this.__internals.validity;\n }\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string {\n return this.__internals.validationMessage;\n }\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean {\n return this.__internals.willValidate;\n }\n\n /**\n * The disabled state of the component\n *\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set disabled(value: boolean) {\n this._disabled = value;\n this.toggleAttribute('disabled', Boolean(this._disabled));\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Control the validity of the control.\n *\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set invalid(value: boolean) {\n this._invalid = value;\n this.toggleAttribute('invalid', Boolean(this._invalid));\n }\n\n public get invalid(): boolean {\n return this._invalid;\n }\n\n constructor(...args: any[]) {\n super(args);\n this.__internals = this.attachInternals();\n this.addEventListener('invalid', this.handleInvalid);\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this._dirty = false;\n this.setDefaultValue();\n }\n\n /**\n * Saves the initial value/checked state of the control.\n *\n * Called on connectedCallback.\n */\n protected setDefaultValue() {\n if ('checked' in this) {\n this._defaultValue = this.checked;\n } else if ('value' in this) {\n this._defaultValue = this.value;\n }\n }\n\n /**\n * Called when the parent form is reset.\n *\n * Restores the initially bound value/checked state of the control.\n */\n protected restoreDefaultValue() {\n if ('checked' in this) {\n this.checked = this._defaultValue;\n } else if ('value' in this) {\n this.value = this._defaultValue;\n }\n }\n\n protected handleInvalid = (event: Event) => {\n event.preventDefault();\n this.invalid = true;\n };\n\n protected setFormValue(\n value: string | File | FormData | null,\n state?: string | File | FormData | null | undefined\n ) {\n this.__internals.setFormValue(value, state || value);\n }\n\n protected setValidity(\n flags?: ValidityStateFlags | undefined,\n message?: string | undefined,\n anchor?: HTMLElement | undefined\n ) {\n this.__internals.setValidity(flags, message, anchor);\n }\n\n protected formResetCallback() {\n this.restoreDefaultValue();\n this._dirty = false;\n\n // Apply any changes happening during form reset synchronously\n this.performUpdate();\n\n this.invalid = false;\n }\n\n protected formDisabledCallback(state: boolean) {\n this._disabled = state;\n this.requestUpdate();\n }\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected updateValidity(message?: string) {\n const validity: ValidityStateFlags = {};\n let validationMessage = '';\n\n for (const validator of this.validators) {\n const isValid = validator.isValid(this);\n\n validity[validator.key] = !isValid;\n\n if (!isValid) {\n validationMessage =\n typeof validator.message === 'function'\n ? validator.message(this)\n : validator.message;\n }\n }\n\n if (message) {\n validity.customError = true;\n validationMessage = message;\n }\n\n this.__internals.setValidity(validity, validationMessage);\n }\n\n /**\n * Applies the {@link FormAssociatedElementInterface.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n *\n * Usually, it should be called after {@link FormAssociatedElementInterface.updateValidity | `updateValidity()`}\n */\n protected setInvalidState() {\n if (this.hasUpdated || this._dirty) {\n this.invalid = !this.checkValidity();\n }\n }\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity() {\n return this.__internals.reportValidity();\n }\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity() {\n return this.__internals.checkValidity();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.updateValidity(message);\n this.invalid = !this.checkValidity();\n }\n }\n\n return FormAssociatedElement as unknown as Constructor<FormAssociatedElementInterface> &\n T;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"form-associated.js","sourceRoot":"","sources":["../../../../src/components/common/mixins/form-associated.ts"],"names":[],"mappings":"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","sourcesContent":["import type { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport type { Validator } from '../validators.js';\nimport type { Constructor } from './constructor.js';\n\nexport declare class FormAssociatedElementInterface {\n public static readonly formAssociated: boolean;\n\n private __internals: ElementInternals;\n protected get __validators(): Validator[];\n protected _disabled: boolean;\n protected _invalid: boolean;\n protected _dirty: boolean;\n\n /**\n * The default value of the control at \"creation\" time.\n *\n * @remarks\n * This is set by default on `connectedCallback` through the `setDefaultValue` call.\n * It expects the component to have either a `checked` or a `value` property and binds it to the initial value of the\n * respective property.\n *\n * In use-cases where additional customization is required, make sure to override the `setDefaultValue` method.\n */\n protected _defaultValue: unknown;\n\n /**\n * Applies the {@link FormAssociatedElementInterface.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n *\n * Usually, it should be called after {@link FormAssociatedElementInterface.updateValidity | `updateValidity()`}\n */\n protected setInvalidState(): void;\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected updateValidity(message?: string): void;\n\n /**\n * Saves the initial value/checked state of the control.\n *\n * Called on connectedCallback.\n */\n protected setDefaultValue(): void;\n\n /**\n * Called when the parent form is reset.\n *\n * Restores the initially bound value/checked state of the control.\n */\n protected restoreDefaultValue(): void;\n\n protected setFormValue(\n value: string | File | FormData | null,\n state?: string | File | FormData | null | undefined\n ): void;\n protected setValidity(\n flags?: ValidityStateFlags | undefined,\n message?: string | undefined,\n anchor?: HTMLElement | undefined\n ): void;\n\n protected formResetCallback(): void;\n protected formDisabledCallback(state: boolean): void;\n protected formStateRestoreCallback(\n state: string | FormData | File,\n mode: 'autocomplete' | 'restore'\n ): void;\n\n /**\n * The disabled state of the component\n * @attr [disabled=false]\n */\n public disabled: boolean;\n\n /**\n * Control the validity of the control.\n * @attr\n */\n public invalid: boolean;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n public name: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null;\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState;\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string;\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean;\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity(): boolean;\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity(): boolean;\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string): void;\n}\n\n/**\n * Turns the passed class element into a Form Associated Custom Element.\n */\nexport function FormAssociatedMixin<T extends Constructor<LitElement>>(\n superClass: T\n) {\n class FormAssociatedElement extends superClass {\n public static readonly formAssociated = true;\n\n private __internals: ElementInternals;\n protected _disabled = false;\n protected _invalid = false;\n protected _dirty = false;\n\n protected get __validators(): Validator[] {\n return [];\n }\n\n /**\n * The default value of the control at \"creation\" time.\n *\n * @remarks\n * This is set by default on `connectedCallback` through the `setDefaultValue` call.\n * It expects the component to have either a `checked` or a `value` property and binds it to the initial value of the\n * respective property.\n *\n * In use-cases where additional customization is required, make sure to override the `setDefaultValue` method.\n */\n protected _defaultValue: unknown;\n\n /**\n * The name attribute of the control.\n * @attr\n */\n @property({ reflect: true })\n public name!: string;\n\n /** Returns the HTMLFormElement associated with this element. */\n public get form(): HTMLFormElement | null {\n return this.__internals.form;\n }\n\n /**\n * Returns a ValidityState object which represents the different validity states\n * the element can be in, with respect to constraint validation.\n */\n public get validity(): ValidityState {\n return this.__internals.validity;\n }\n\n /** A string containing the validation message of this element. */\n public get validationMessage(): string {\n return this.__internals.validationMessage;\n }\n\n /**\n * A boolean value which returns true if the element is a submittable element\n * that is a candidate for constraint validation.\n */\n public get willValidate(): boolean {\n return this.__internals.willValidate;\n }\n\n /**\n * The disabled state of the component\n *\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set disabled(value: boolean) {\n this._disabled = value;\n this.toggleAttribute('disabled', Boolean(this._disabled));\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Control the validity of the control.\n *\n * @attr\n * @default false\n */\n @property({ type: Boolean, reflect: true })\n public set invalid(value: boolean) {\n this._invalid = value;\n this.toggleAttribute('invalid', Boolean(this._invalid));\n }\n\n public get invalid(): boolean {\n return this._invalid;\n }\n\n constructor(...args: any[]) {\n super(args);\n this.__internals = this.attachInternals();\n this.addEventListener('invalid', this.handleInvalid);\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this._dirty = false;\n this.setDefaultValue();\n }\n\n /**\n * Saves the initial value/checked state of the control.\n *\n * Called on connectedCallback.\n */\n protected setDefaultValue() {\n if ('checked' in this) {\n this._defaultValue = this.checked;\n } else if ('value' in this) {\n this._defaultValue = this.value;\n }\n }\n\n /**\n * Called when the parent form is reset.\n *\n * Restores the initially bound value/checked state of the control.\n */\n protected restoreDefaultValue() {\n if ('checked' in this) {\n this.checked = this._defaultValue;\n } else if ('value' in this) {\n this.value = this._defaultValue;\n }\n }\n\n protected handleInvalid = (event: Event) => {\n event.preventDefault();\n this.invalid = true;\n };\n\n protected setFormValue(\n value: string | File | FormData | null,\n state?: string | File | FormData | null | undefined\n ) {\n this.__internals.setFormValue(value, state || value);\n }\n\n protected setValidity(\n flags?: ValidityStateFlags | undefined,\n message?: string | undefined,\n anchor?: HTMLElement | undefined\n ) {\n this.__internals.setValidity(flags, message, anchor);\n }\n\n protected formResetCallback() {\n this.restoreDefaultValue();\n this._dirty = false;\n\n // Apply any changes happening during form reset synchronously\n this.performUpdate();\n\n this.invalid = false;\n }\n\n protected formDisabledCallback(state: boolean) {\n this._disabled = state;\n this.requestUpdate();\n }\n\n /**\n * Executes the component validators and updates the internal validity state.\n */\n protected updateValidity(message?: string) {\n const validity: ValidityStateFlags = {};\n let validationMessage = '';\n\n for (const validator of this.__validators) {\n const isValid = validator.isValid(this);\n\n validity[validator.key] = !isValid;\n\n if (!isValid) {\n validationMessage =\n typeof validator.message === 'function'\n ? validator.message(this)\n : validator.message;\n }\n }\n\n if (message) {\n validity.customError = true;\n validationMessage = message;\n }\n\n this.__internals.setValidity(validity, validationMessage);\n }\n\n /**\n * Applies the {@link FormAssociatedElementInterface.invalid | `invalid`} attribute on the control and the associated styles\n * if the element has completed the first update cycle or it has been interacted with by the user.\n *\n * Usually, it should be called after {@link FormAssociatedElementInterface.updateValidity | `updateValidity()`}\n */\n protected setInvalidState() {\n if (this.hasUpdated || this._dirty) {\n this.invalid = !this.checkValidity();\n }\n }\n\n /** Checks for validity of the control and shows the browser message if it invalid. */\n public reportValidity() {\n return this.__internals.reportValidity();\n }\n\n /** Checks for validity of the control and emits the invalid event if it invalid. */\n public checkValidity() {\n return this.__internals.checkValidity();\n }\n\n /**\n * Sets a custom validation message for the control.\n * As long as `message` is not empty, the control is considered invalid.\n */\n public setCustomValidity(message: string) {\n this.updateValidity(message);\n this.invalid = !this.checkValidity();\n }\n }\n\n return FormAssociatedElement as unknown as Constructor<FormAssociatedElementInterface> &\n T;\n}\n"]}
|
|
@@ -5,6 +5,8 @@ export declare const partNameMap: (partNameInfo: PartNameInfo) => string;
|
|
|
5
5
|
export declare function noop(): void;
|
|
6
6
|
export declare const asPercent: (part: number, whole: number) => number;
|
|
7
7
|
export declare const clamp: (number: number, min: number, max: number) => number;
|
|
8
|
+
export declare function numberInRangeInclusive(value: number, min: number, max: number): boolean;
|
|
9
|
+
export declare function sameObject(a: object, b: object): boolean;
|
|
8
10
|
/**
|
|
9
11
|
*
|
|
10
12
|
* Returns an element's offset relative to its parent. Similar to element.offsetTop and element.offsetLeft, except the
|
|
@@ -71,3 +73,27 @@ export declare function isElement(node: unknown): node is Element;
|
|
|
71
73
|
export declare function getElementsFromEventPath<T extends Element>(event: Event): T[];
|
|
72
74
|
export declare function findElementFromEventPath<T extends Element>(predicate: string | ((element: Element) => boolean), event: Event): T | undefined;
|
|
73
75
|
export declare function groupBy<T>(array: T[], key: keyof T | ((item: T) => any)): Record<string, T[]>;
|
|
76
|
+
export declare function first<T>(arr: T[]): T;
|
|
77
|
+
export declare function last<T>(arr: T[]): T;
|
|
78
|
+
export declare function modulo(n: number, d: number): number;
|
|
79
|
+
/**
|
|
80
|
+
* Creates an array of `n` elements from a given iterator.
|
|
81
|
+
*
|
|
82
|
+
*/
|
|
83
|
+
export declare function take<T>(iterable: IterableIterator<T>, n: number): T[];
|
|
84
|
+
/**
|
|
85
|
+
* Splits an array into chunks of length `size` and returns a generator
|
|
86
|
+
* yielding each chunk.
|
|
87
|
+
* The last chunk may contain less than `size` elements.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* const arr = [0,1,2,3,4,5,6,7,8,9];
|
|
92
|
+
*
|
|
93
|
+
* Array.from(chunk(arr, 2)) // [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]
|
|
94
|
+
* Array.from(chunk(arr, 3)) // [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]
|
|
95
|
+
* Array.from(chunk([], 3)) // []
|
|
96
|
+
* Array.from(chunk(arr, -3)) // Error
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export declare function chunk<T>(arr: T[], size: number): Generator<T[], void, unknown>;
|
|
@@ -6,6 +6,12 @@ export const partNameMap = (partNameInfo) => {
|
|
|
6
6
|
export function noop() { }
|
|
7
7
|
export const asPercent = (part, whole) => (part / whole) * 100;
|
|
8
8
|
export const clamp = (number, min, max) => Math.max(min, Math.min(number, max));
|
|
9
|
+
export function numberInRangeInclusive(value, min, max) {
|
|
10
|
+
return value >= min && value <= max;
|
|
11
|
+
}
|
|
12
|
+
export function sameObject(a, b) {
|
|
13
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
14
|
+
}
|
|
9
15
|
export function getOffset(element, parent) {
|
|
10
16
|
const { top, left, bottom, right } = element.getBoundingClientRect();
|
|
11
17
|
const { top: pTop, left: pLeft, bottom: pBottom, right: pRight, } = parent.getBoundingClientRect();
|
|
@@ -94,4 +100,32 @@ export function groupBy(array, key) {
|
|
|
94
100
|
}
|
|
95
101
|
return result;
|
|
96
102
|
}
|
|
103
|
+
export function first(arr) {
|
|
104
|
+
return arr.at(0);
|
|
105
|
+
}
|
|
106
|
+
export function last(arr) {
|
|
107
|
+
return arr.at(-1);
|
|
108
|
+
}
|
|
109
|
+
export function modulo(n, d) {
|
|
110
|
+
return ((n % d) + d) % d;
|
|
111
|
+
}
|
|
112
|
+
export function take(iterable, n) {
|
|
113
|
+
const result = [];
|
|
114
|
+
let i = 0;
|
|
115
|
+
let current = iterable.next();
|
|
116
|
+
while (i < n && !current.done) {
|
|
117
|
+
result.push(current.value);
|
|
118
|
+
current = iterable.next();
|
|
119
|
+
i++;
|
|
120
|
+
}
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
export function* chunk(arr, size) {
|
|
124
|
+
if (size < 1) {
|
|
125
|
+
throw new Error('size must be an integer >= 1');
|
|
126
|
+
}
|
|
127
|
+
for (let i = 0; i < arr.length; i += size) {
|
|
128
|
+
yield arr.slice(i, i + size);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
97
131
|
//# sourceMappingURL=util.js.map
|