igniteui-webcomponents 6.1.0 → 6.1.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 +8 -0
- package/components/accordion/accordion.js +3 -3
- package/components/accordion/accordion.js.map +1 -1
- package/components/avatar/avatar.d.ts +8 -9
- package/components/avatar/avatar.js +29 -32
- package/components/avatar/avatar.js.map +1 -1
- package/components/badge/badge.d.ts +3 -3
- package/components/badge/badge.js +15 -18
- package/components/badge/badge.js.map +1 -1
- package/components/banner/banner.d.ts +2 -3
- package/components/banner/banner.js +14 -13
- package/components/banner/banner.js.map +1 -1
- package/components/button/button-base.d.ts +4 -11
- package/components/button/button-base.js +14 -15
- package/components/button/button-base.js.map +1 -1
- package/components/button/button.d.ts +1 -0
- package/components/button/button.js +9 -12
- package/components/button/button.js.map +1 -1
- package/components/button/icon-button.d.ts +3 -2
- package/components/button/icon-button.js +10 -13
- package/components/button/icon-button.js.map +1 -1
- package/components/button-group/button-group.js +8 -11
- package/components/button-group/button-group.js.map +1 -1
- package/components/button-group/toggle-button.d.ts +1 -6
- package/components/button-group/toggle-button.js +9 -11
- package/components/button-group/toggle-button.js.map +1 -1
- package/components/calendar/calendar.js +7 -10
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.js +6 -6
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/months-view/months-view.js +8 -8
- package/components/calendar/months-view/months-view.js.map +1 -1
- package/components/calendar/years-view/years-view.js +8 -8
- package/components/calendar/years-view/years-view.js.map +1 -1
- package/components/card/card.actions.d.ts +1 -0
- package/components/card/card.actions.js +10 -13
- package/components/card/card.actions.js.map +1 -1
- package/components/card/card.content.d.ts +1 -0
- package/components/card/card.content.js +9 -15
- package/components/card/card.content.js.map +1 -1
- package/components/card/card.d.ts +1 -0
- package/components/card/card.header.d.ts +1 -0
- package/components/card/card.header.js +9 -15
- package/components/card/card.header.js.map +1 -1
- package/components/card/card.js +11 -14
- package/components/card/card.js.map +1 -1
- package/components/card/card.media.js +1 -1
- package/components/card/card.media.js.map +1 -1
- package/components/carousel/carousel-indicator-container.d.ts +1 -0
- package/components/carousel/carousel-indicator-container.js +9 -18
- package/components/carousel/carousel-indicator-container.js.map +1 -1
- package/components/carousel/carousel-indicator.d.ts +5 -7
- package/components/carousel/carousel-indicator.js +19 -19
- package/components/carousel/carousel-indicator.js.map +1 -1
- package/components/carousel/carousel-slide.d.ts +2 -3
- package/components/carousel/carousel-slide.js +17 -11
- package/components/carousel/carousel-slide.js.map +1 -1
- package/components/carousel/carousel.d.ts +0 -1
- package/components/carousel/carousel.js +22 -21
- package/components/carousel/carousel.js.map +1 -1
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.d.ts +1 -1
- package/components/checkbox/checkbox.js +11 -15
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.d.ts +1 -0
- package/components/checkbox/switch.js +10 -19
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/validators.js.map +1 -1
- package/components/chip/chip.js +7 -10
- package/components/chip/chip.js.map +1 -1
- package/components/combo/combo-header.d.ts +1 -0
- package/components/combo/combo-header.js +9 -15
- package/components/combo/combo-header.js.map +1 -1
- package/components/combo/combo-item.d.ts +4 -5
- package/components/combo/combo-item.js +22 -23
- package/components/combo/combo-item.js.map +1 -1
- package/components/combo/combo.d.ts +1 -1
- package/components/combo/combo.js +16 -16
- package/components/combo/combo.js.map +1 -1
- package/components/common/abort-handler.d.ts +39 -0
- package/components/common/abort-handler.js +19 -0
- package/components/common/abort-handler.js.map +1 -0
- package/components/common/controllers/drag.d.ts +3 -2
- package/components/common/controllers/drag.js +7 -6
- package/components/common/controllers/drag.js.map +1 -1
- package/components/common/controllers/focus-ring.d.ts +1 -0
- package/components/common/controllers/focus-ring.js +5 -4
- package/components/common/controllers/focus-ring.js.map +1 -1
- package/components/common/controllers/gestures.d.ts +6 -2
- package/components/common/controllers/gestures.js +15 -11
- package/components/common/controllers/gestures.js.map +1 -1
- package/components/common/controllers/internals.d.ts +33 -0
- package/components/common/controllers/internals.js +25 -0
- package/components/common/controllers/internals.js.map +1 -0
- package/components/common/controllers/key-bindings.d.ts +1 -0
- package/components/common/controllers/key-bindings.js +6 -4
- package/components/common/controllers/key-bindings.js.map +1 -1
- package/components/common/controllers/mutation-observer.d.ts +25 -15
- package/components/common/controllers/mutation-observer.js +23 -12
- package/components/common/controllers/mutation-observer.js.map +1 -1
- package/components/common/controllers/resize-observer.js.map +1 -1
- package/components/common/controllers/root-click.d.ts +58 -13
- package/components/common/controllers/root-click.js +47 -35
- package/components/common/controllers/root-click.js.map +1 -1
- package/components/common/decorators/shadow-options.d.ts +10 -0
- package/components/common/decorators/shadow-options.js +10 -0
- package/components/common/decorators/shadow-options.js.map +1 -0
- package/components/common/definitions/defineAllComponents.js +12 -12
- package/components/common/definitions/defineAllComponents.js.map +1 -1
- package/components/common/mixins/alert.d.ts +1 -2
- package/components/common/mixins/alert.js +13 -9
- package/components/common/mixins/alert.js.map +1 -1
- package/components/common/mixins/combo-box.d.ts +2 -1
- package/components/common/mixins/combo-box.js +0 -2
- package/components/common/mixins/combo-box.js.map +1 -1
- package/components/common/mixins/forms/associated.js +2 -2
- package/components/common/mixins/forms/associated.js.map +1 -1
- package/components/common/mixins/option.d.ts +1 -2
- package/components/common/mixins/option.js +13 -11
- package/components/common/mixins/option.js.map +1 -1
- package/components/common/part-map.js +1 -1
- package/components/common/part-map.js.map +1 -1
- package/components/common/util.d.ts +9 -0
- package/components/common/util.js +9 -1
- package/components/common/util.js.map +1 -1
- package/components/date-picker/date-picker.d.ts +2 -7
- package/components/date-picker/date-picker.js +18 -19
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/validators.js.map +1 -1
- package/components/date-range-picker/date-range-picker.d.ts +3 -8
- package/components/date-range-picker/date-range-picker.js +16 -17
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/predefined-ranges-area.d.ts +1 -0
- package/components/date-range-picker/predefined-ranges-area.js +10 -13
- package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/validators.js.map +1 -1
- package/components/dialog/dialog.d.ts +1 -0
- package/components/dialog/dialog.js +13 -13
- package/components/dialog/dialog.js.map +1 -1
- package/components/divider/divider.d.ts +5 -2
- package/components/divider/divider.js +17 -18
- package/components/divider/divider.js.map +1 -1
- package/components/dropdown/dropdown-group.d.ts +0 -1
- package/components/dropdown/dropdown-group.js +13 -12
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown-header.d.ts +1 -0
- package/components/dropdown/dropdown-header.js +9 -15
- package/components/dropdown/dropdown-header.js.map +1 -1
- package/components/dropdown/dropdown-item.d.ts +1 -0
- package/components/dropdown/dropdown-item.js +8 -14
- package/components/dropdown/dropdown-item.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +2 -1
- package/components/dropdown/dropdown.js +7 -4
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/themes/item.js +7 -0
- package/components/dropdown/themes/item.js.map +1 -1
- package/components/dropdown/themes/shared/item/dropdown-item.bootstrap.css.d.ts +1 -0
- package/components/dropdown/themes/shared/item/dropdown-item.bootstrap.css.js +3 -0
- package/components/dropdown/themes/shared/item/dropdown-item.bootstrap.css.js.map +1 -0
- package/components/expansion-panel/expansion-panel.js +8 -11
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/file-input/file-input.d.ts +1 -1
- package/components/file-input/file-input.js +18 -21
- package/components/file-input/file-input.js.map +1 -1
- package/components/file-input/themes/shared/file-input.material.css.js +1 -1
- package/components/file-input/themes/shared/file-input.material.css.js.map +1 -1
- package/components/file-input/validators.js.map +1 -1
- package/components/focus-trap/focus-trap.js +4 -4
- package/components/focus-trap/focus-trap.js.map +1 -1
- package/components/icon/icon.d.ts +2 -1
- package/components/icon/icon.js +18 -15
- package/components/icon/icon.js.map +1 -1
- package/components/input/input-base.d.ts +2 -8
- package/components/input/input-base.js +8 -11
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.js.map +1 -1
- package/components/input/themes/shared/input.material.css.js +1 -1
- package/components/input/themes/shared/input.material.css.js.map +1 -1
- package/components/input/validators.js.map +1 -1
- package/components/list/list-header.d.ts +0 -1
- package/components/list/list-header.js +10 -17
- package/components/list/list-header.js.map +1 -1
- package/components/list/list-item.d.ts +0 -1
- package/components/list/list-item.js +13 -12
- package/components/list/list-item.js.map +1 -1
- package/components/list/list.d.ts +0 -1
- package/components/list/list.js +12 -17
- package/components/list/list.js.map +1 -1
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/mask-input/validators.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -0
- package/components/nav-drawer/nav-drawer-header-item.js +9 -15
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.d.ts +1 -0
- package/components/nav-drawer/nav-drawer-item.js +10 -13
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.d.ts +1 -0
- package/components/nav-drawer/nav-drawer.js +10 -13
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/navbar/navbar.d.ts +1 -0
- package/components/navbar/navbar.js +9 -15
- package/components/navbar/navbar.js.map +1 -1
- package/components/popover/popover.js +1 -1
- package/components/popover/popover.js.map +1 -1
- package/components/progress/base.d.ts +1 -2
- package/components/progress/base.js +28 -26
- package/components/progress/base.js.map +1 -1
- package/components/progress/circular-progress.d.ts +1 -0
- package/components/progress/circular-progress.js +10 -13
- package/components/progress/circular-progress.js.map +1 -1
- package/components/progress/linear-progress.d.ts +1 -0
- package/components/progress/linear-progress.js +9 -12
- package/components/progress/linear-progress.js.map +1 -1
- package/components/radio/radio.js +8 -11
- package/components/radio/radio.js.map +1 -1
- package/components/radio/utils.js.map +1 -1
- package/components/radio-group/radio-group.d.ts +1 -1
- package/components/radio-group/radio-group.js +15 -17
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/rating/rating-symbol.js +1 -1
- package/components/rating/rating-symbol.js.map +1 -1
- package/components/rating/rating.js +7 -10
- package/components/rating/rating.js.map +1 -1
- package/components/resize-container/resize-container.js +7 -10
- package/components/resize-container/resize-container.js.map +1 -1
- package/components/resize-container/resize-controller.d.ts +3 -2
- package/components/resize-container/resize-controller.js +6 -4
- package/components/resize-container/resize-controller.js.map +1 -1
- package/components/ripple/ripple.js +3 -2
- package/components/ripple/ripple.js.map +1 -1
- package/components/select/select-group.d.ts +1 -1
- package/components/select/select-group.js +15 -14
- package/components/select/select-group.js.map +1 -1
- package/components/select/select-header.d.ts +1 -0
- package/components/select/select-header.js +9 -15
- package/components/select/select-header.js.map +1 -1
- package/components/select/select-item.d.ts +1 -0
- package/components/select/select-item.js +9 -9
- package/components/select/select-item.js.map +1 -1
- package/components/select/select.d.ts +1 -0
- package/components/select/select.js +11 -8
- package/components/select/select.js.map +1 -1
- package/components/select/validators.js.map +1 -1
- package/components/slider/slider-base.js +8 -8
- package/components/slider/slider-base.js.map +1 -1
- package/components/slider/slider-label.js +1 -1
- package/components/slider/slider-label.js.map +1 -1
- package/components/slider/slider.js.map +1 -1
- package/components/snackbar/snackbar.d.ts +1 -0
- package/components/snackbar/snackbar.js +9 -12
- package/components/snackbar/snackbar.js.map +1 -1
- package/components/stepper/step.d.ts +1 -0
- package/components/stepper/step.js +10 -13
- package/components/stepper/step.js.map +1 -1
- package/components/stepper/stepper.js +10 -13
- package/components/stepper/stepper.js.map +1 -1
- package/components/tabs/tab.d.ts +1 -0
- package/components/tabs/tab.js +12 -15
- package/components/tabs/tab.js.map +1 -1
- package/components/tabs/tabs.js +10 -13
- package/components/tabs/tabs.js.map +1 -1
- package/components/textarea/textarea.d.ts +2 -8
- package/components/textarea/textarea.js +11 -14
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
- package/components/textarea/validators.js.map +1 -1
- package/components/tile-manager/position.d.ts +1 -1
- package/components/tile-manager/position.js.map +1 -1
- package/components/tile-manager/themes/container.js.map +1 -1
- package/components/tile-manager/tile-manager.d.ts +0 -1
- package/components/tile-manager/tile-manager.js +5 -7
- package/components/tile-manager/tile-manager.js.map +1 -1
- package/components/tile-manager/tile.d.ts +1 -0
- package/components/tile-manager/tile.js +54 -57
- package/components/tile-manager/tile.js.map +1 -1
- package/components/toast/toast.d.ts +1 -0
- package/components/toast/toast.js +8 -17
- package/components/toast/toast.js.map +1 -1
- package/components/tooltip/controller.d.ts +2 -4
- package/components/tooltip/controller.js +11 -20
- package/components/tooltip/controller.js.map +1 -1
- package/components/tooltip/themes/themes.js +1 -1
- package/components/tooltip/themes/themes.js.map +1 -1
- package/components/tooltip/tooltip.js +17 -16
- package/components/tooltip/tooltip.js.map +1 -1
- package/components/tree/tree-item.d.ts +1 -0
- package/components/tree/tree-item.js +30 -33
- package/components/tree/tree-item.js.map +1 -1
- package/components/tree/tree.d.ts +1 -1
- package/components/tree/tree.js +6 -5
- package/components/tree/tree.js.map +1 -1
- package/components/tree/tree.navigation.d.ts +1 -1
- package/components/tree/tree.navigation.js.map +1 -1
- package/components/tree/tree.selection.d.ts +1 -1
- package/components/tree/tree.selection.js.map +1 -1
- package/components/validation-container/themes/themes.js.map +1 -1
- package/components/validation-container/validation-container.d.ts +2 -1
- package/components/validation-container/validation-container.js +13 -16
- package/components/validation-container/validation-container.js.map +1 -1
- package/custom-elements.json +1641 -1753
- package/igniteui-webcomponents.html-data.json +1 -1
- package/package.json +1 -1
- package/theming/config.d.ts +3 -3
- package/theming/config.js +14 -18
- package/theming/config.js.map +1 -1
- package/theming/theming-controller.d.ts +17 -13
- package/theming/theming-controller.js +29 -23
- package/theming/theming-controller.js.map +1 -1
- package/theming/theming-event.d.ts +1 -0
- package/theming/theming-event.js.map +1 -1
- package/theming/types.d.ts +3 -14
- package/theming/types.js.map +1 -1
- package/theming/utils.js +24 -23
- package/theming/utils.js.map +1 -1
- package/web-types.json +1 -1
- package/theming/theming-decorator.d.ts +0 -43
- package/theming/theming-decorator.js +0 -25
- package/theming/theming-decorator.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.selection.js","sourceRoot":"","sources":["../../../src/components/tree/tree.selection.ts"],"names":[],"mappings":"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","sourcesContent":["import { isEmpty } from '../common/util.js';\nimport type IgcTreeItemComponent from './tree-item.js';\nimport type { TreeSelectionEventInit } from './tree.common.js';\nimport type IgcTreeComponent from './tree.js';\n\n/* blazorSuppress */\nexport class IgcTreeSelectionService {\n private tree!: IgcTreeComponent;\n private itemSelection: Set<IgcTreeItemComponent> =\n new Set<IgcTreeItemComponent>();\n private indeterminateItems: Set<IgcTreeItemComponent> =\n new Set<IgcTreeItemComponent>();\n private itemsToBeSelected!: Set<IgcTreeItemComponent>;\n private itemsToBeIndeterminate!: Set<IgcTreeItemComponent>;\n\n constructor(tree: IgcTreeComponent) {\n this.tree = tree;\n }\n\n /** Select range from last selected item to the current specified item. */\n public selectMultipleItems(item: IgcTreeItemComponent): void {\n if (!this.itemSelection.size) {\n this.selectItem(item);\n return;\n }\n const lastSelectedItemIndex = this.tree.items.indexOf(\n this.getSelectedItems()[this.itemSelection.size - 1]\n );\n const currentItemIndex = this.tree.items.indexOf(item);\n const items = this.tree.items.slice(\n Math.min(currentItemIndex, lastSelectedItemIndex),\n Math.max(currentItemIndex, lastSelectedItemIndex) + 1\n );\n\n const added = items.filter(\n (_item: IgcTreeItemComponent) => !this.isItemSelected(_item)\n );\n const newSelection = this.getSelectedItems().concat(added);\n this.emitItemSelectionEvent(newSelection, added, []);\n }\n\n /** Select the specified item and emit event. */\n public selectItem(item: IgcTreeItemComponent): void {\n if (this.tree.selection === 'none') {\n return;\n }\n this.emitItemSelectionEvent([...this.getSelectedItems(), item], [item], []);\n }\n\n /** Deselect the specified item and emit event. */\n public deselectItem(item: IgcTreeItemComponent): void {\n const newSelection = this.getSelectedItems().filter(\n (_item: IgcTreeItemComponent) => _item !== item\n );\n this.emitItemSelectionEvent(newSelection, [], [item]);\n }\n\n /** Clears item selection */\n public clearItemsSelection(): void {\n const oldSelection = this.getSelectedItems();\n const oldIndeterminate = this.getIndeterminateItems();\n this.itemSelection.clear();\n this.indeterminateItems.clear();\n oldSelection.forEach((i: IgcTreeItemComponent) => {\n i.selected = false;\n });\n oldIndeterminate.forEach((i: IgcTreeItemComponent) => {\n i.indeterminate = false;\n });\n }\n\n public isItemSelected(item: IgcTreeItemComponent): boolean {\n return this.itemSelection.has(item);\n }\n\n public isItemIndeterminate(item: IgcTreeItemComponent): boolean {\n return this.indeterminateItems.has(item);\n }\n\n /** Called on item`s disconnectedCallback */\n public ensureStateOnItemDelete(item: IgcTreeItemComponent): void {\n // Don't update the internal state of the deleted items because when moving they should keep it\n // However update the state of their parents\n this.deselectItemsWithNoEvent(\n [item, ...item.getChildren({ flatten: true })],\n true\n );\n }\n\n /** Retrigger the selection state of the item. */\n public retriggerItemState(item: IgcTreeItemComponent): void {\n if (item.selected) {\n this.itemSelection.delete(item);\n this.selectItemsWithNoEvent([item]);\n } else {\n this.itemSelection.add(item);\n this.deselectItemsWithNoEvent([item]);\n }\n }\n\n private emitItemSelectionEvent(\n newSelection: IgcTreeItemComponent[],\n added: IgcTreeItemComponent[],\n removed: IgcTreeItemComponent[]\n ): void {\n const currSelection = this.getSelectedItems();\n if (this.areEqualCollections(currSelection, newSelection)) {\n return;\n }\n\n if (this.tree.selection === 'cascade') {\n this.emitCascadeItemSelectionEvent(currSelection, added, removed);\n return;\n }\n\n const args: TreeSelectionEventInit = {\n detail: {\n newSelection,\n },\n cancelable: true,\n };\n\n const allowed = this.tree.emitEvent('igcSelection', args);\n if (!allowed) {\n return;\n }\n\n // if newSelection is overwritten do not proceed (Blazor)\n if (this.areEqualCollections(newSelection, args.detail.newSelection)) {\n this.itemSelection = new Set(newSelection);\n this.updateItemsState(currSelection);\n }\n }\n\n /** Select specified items. No event is emitted. */\n public selectItemsWithNoEvent(items: IgcTreeItemComponent[]): void {\n const oldSelection = this.getSelectedItems();\n\n if (this.tree && this.tree.selection === 'cascade') {\n this.cascadeSelectItemsWithNoEvent(items, oldSelection);\n return;\n }\n\n items.forEach((item: IgcTreeItemComponent) => this.itemSelection.add(item));\n\n this.updateItemsState(oldSelection);\n }\n\n /** Deselect specified items. No event is emitted. */\n public deselectItemsWithNoEvent(\n items?: IgcTreeItemComponent[],\n onDelete = false\n ): void {\n if (this.tree && this.tree.selection === 'cascade') {\n this.cascadeDeselectItemsWithNoEvent(items, onDelete);\n return;\n }\n const itemSet = new Set(items);\n const oldSelection = onDelete\n ? this.getSelectedItems().filter(\n (i: IgcTreeItemComponent) => !itemSet!.has(i)\n )\n : this.getSelectedItems();\n\n if (!items) {\n this.itemSelection.clear();\n } else {\n items.forEach((item: IgcTreeItemComponent) =>\n this.itemSelection.delete(item)\n );\n }\n\n this.updateItemsState(oldSelection);\n }\n\n private emitCascadeItemSelectionEvent(\n currSelection: IgcTreeItemComponent[],\n added: IgcTreeItemComponent[],\n removed: IgcTreeItemComponent[]\n ): void {\n const oldIndeterminate = this.getIndeterminateItems();\n\n this.calculateItemsNewSelectionState(currSelection, added, removed);\n\n const args: TreeSelectionEventInit = {\n detail: {\n newSelection: Array.from(this.itemsToBeSelected),\n },\n cancelable: true,\n };\n\n const allowed = this.tree.emitEvent('igcSelection', args);\n\n if (!allowed) {\n return;\n }\n\n // if newSelection is overwritten do not proceed (Blazor)\n if (\n this.areEqualCollections(\n Array.from(this.itemsToBeSelected),\n args.detail.newSelection\n )\n ) {\n this.itemSelection = new Set<IgcTreeItemComponent>(\n this.itemsToBeSelected\n );\n this.indeterminateItems = new Set(this.itemsToBeIndeterminate);\n this.updateItemsState(currSelection, oldIndeterminate);\n }\n }\n\n private cascadeSelectItemsWithNoEvent(\n items: IgcTreeItemComponent[],\n oldSelection: IgcTreeItemComponent[]\n ): void {\n const oldIndeterminate = this.getIndeterminateItems();\n\n const newSelection = [...oldSelection, ...items];\n\n // retrieve only the rows without their parents/children which has to be added to the selection\n const newSelectionSet = new Set(newSelection);\n const removed = oldSelection!.filter((x) => !newSelectionSet.has(x));\n const added = newSelection!.filter((x) => !this.itemSelection.has(x));\n\n this.calculateItemsNewSelectionState(oldSelection, added, removed);\n\n this.itemSelection = new Set(this.itemsToBeSelected);\n this.indeterminateItems = new Set(this.itemsToBeIndeterminate);\n\n this.updateItemsState(oldSelection, oldIndeterminate);\n }\n\n private cascadeDeselectItemsWithNoEvent(\n items?: IgcTreeItemComponent[],\n onDelete = false\n ): void {\n const itemSet = new Set(items);\n const oldSelection = onDelete\n ? this.getSelectedItems().filter(\n (i: IgcTreeItemComponent) => !itemSet!.has(i)\n )\n : this.getSelectedItems();\n const oldIndeterminate = onDelete\n ? this.getIndeterminateItems().filter(\n (i: IgcTreeItemComponent) => !itemSet!.has(i)\n )\n : this.getIndeterminateItems();\n\n if (!items) {\n this.itemSelection.clear();\n this.indeterminateItems.clear();\n } else {\n this.calculateItemsNewSelectionState(oldSelection, [], items);\n\n this.itemSelection = new Set<IgcTreeItemComponent>(\n this.itemsToBeSelected\n );\n this.indeterminateItems = new Set<IgcTreeItemComponent>(\n this.itemsToBeIndeterminate\n );\n }\n\n this.updateItemsState(oldSelection, oldIndeterminate);\n }\n\n // OK (disabled children?)\n /**\n * populates the itemsToBeSelected and itemsToBeIndeterminate sets\n * with the items which will be eventually in selected/indeterminate state\n */\n private calculateItemsNewSelectionState(\n oldSelection: IgcTreeItemComponent[],\n added: IgcTreeItemComponent[],\n removed: IgcTreeItemComponent[]\n ): void {\n this.itemsToBeSelected = new Set<IgcTreeItemComponent>(oldSelection);\n this.itemsToBeIndeterminate = new Set<IgcTreeItemComponent>(\n this.getIndeterminateItems()\n );\n\n this.cascadeSelectionState(removed, false);\n this.cascadeSelectionState(added, true);\n }\n\n // OK (disabled children?)\n /** Ensures proper selection state for all predescessors and descendants during a selection event */\n private cascadeSelectionState(\n items: IgcTreeItemComponent[] | undefined,\n selected: boolean\n ): void {\n if (!items || isEmpty(items)) {\n return;\n }\n\n const parents = new Set<IgcTreeItemComponent>();\n items.forEach((item: IgcTreeItemComponent) => {\n // select/deselect items passed by event/api\n this.selectDeselectItem(item, selected);\n\n // select/deselect all of their children\n const itemAndAllChildren = item.getChildren({ flatten: true }) || [];\n itemAndAllChildren.forEach((i: IgcTreeItemComponent) => {\n this.selectDeselectItem(i, selected);\n });\n\n // add their direct parent to the set\n if (item?.parent) {\n parents.add(item.parent);\n }\n });\n\n // handle direct parents from the set\n for (const parent of parents) {\n this.handleParentSelectionState(parent);\n }\n }\n\n // OK (disabled children?)\n /**\n * recursively handle the selection state of the direct and indirect parents\n */\n private handleParentSelectionState(item: IgcTreeItemComponent): void {\n if (!item) {\n return;\n }\n this.handleItemSelectionState(item);\n if (item.parent) {\n this.handleParentSelectionState(item.parent);\n }\n }\n\n // OK (disabled children?)\n /**\n * Handle the selection state of a given item based the selection states of its direct children\n */\n private handleItemSelectionState(item: IgcTreeItemComponent): void {\n const itemsArray = item?.getChildren() ? item.getChildren() : [];\n if (itemsArray.length) {\n if (\n itemsArray.every((i: IgcTreeItemComponent) =>\n this.itemsToBeSelected.has(i)\n )\n ) {\n this.selectDeselectItem(item, true);\n } else if (\n itemsArray.some(\n (i: IgcTreeItemComponent) =>\n this.itemsToBeSelected.has(i) || this.itemsToBeIndeterminate.has(i)\n )\n ) {\n this.selectDeselectItem(item, false, true);\n } else {\n this.selectDeselectItem(item, false);\n }\n } else if (this.isItemSelected(item)) {\n // if the children of the item has been deleted and the item was selected do not change its state\n this.selectDeselectItem(item, true);\n } else {\n this.selectDeselectItem(item, false);\n }\n }\n\n /** Emits the `selectedChange` event for each item affected by the selection */\n private updateItemsState(\n oldSelection: IgcTreeItemComponent[],\n oldIndeterminate: IgcTreeItemComponent[] = []\n ): void {\n const selected = new Set<IgcTreeItemComponent>(oldSelection);\n const indeterminated = new Set<IgcTreeItemComponent>(oldIndeterminate);\n\n this.getSelectedItems().forEach((i: IgcTreeItemComponent) => {\n if (!selected.has(i)) {\n i.selected = true;\n }\n });\n\n oldSelection.forEach((i: IgcTreeItemComponent) => {\n if (!this.itemSelection.has(i)) {\n i.selected = false;\n }\n });\n\n if (this.tree.selection === 'cascade') {\n this.indeterminateItems.forEach((i: IgcTreeItemComponent) => {\n if (!indeterminated.has(i)) {\n i.indeterminate = true;\n }\n });\n\n oldIndeterminate.forEach((i: IgcTreeItemComponent) => {\n if (!this.indeterminateItems.has(i)) {\n i.indeterminate = false;\n }\n });\n }\n }\n\n /** Returns array of the selected items. */\n private getSelectedItems(): IgcTreeItemComponent[] {\n return Array.from(this.itemSelection);\n }\n\n /** Returns array of the items in indeterminate state. */\n private getIndeterminateItems(): IgcTreeItemComponent[] {\n return Array.from(this.indeterminateItems);\n }\n\n private areEqualCollections(\n first: IgcTreeItemComponent[],\n second: IgcTreeItemComponent[]\n ): boolean {\n return (\n first.length === second.length &&\n new Set(first.concat(second)).size === first.length\n );\n }\n\n private selectDeselectItem(\n item: IgcTreeItemComponent,\n select: boolean,\n indeterminate = false\n ): void {\n if (indeterminate) {\n this.itemsToBeIndeterminate.add(item);\n this.itemsToBeSelected.delete(item);\n return;\n }\n\n if (select) {\n this.itemsToBeSelected.add(item);\n this.itemsToBeIndeterminate.delete(item);\n } else {\n this.itemsToBeSelected.delete(item);\n this.itemsToBeIndeterminate.delete(item);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tree.selection.js","sourceRoot":"","sources":["../../../src/components/tree/tree.selection.ts"],"names":[],"mappings":"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","sourcesContent":["import { isEmpty } from '../common/util.js';\nimport type { TreeSelectionEventInit } from './tree.common.js';\nimport type IgcTreeComponent from './tree.js';\nimport type IgcTreeItemComponent from './tree-item.js';\n\n/* blazorSuppress */\nexport class IgcTreeSelectionService {\n private tree!: IgcTreeComponent;\n private itemSelection: Set<IgcTreeItemComponent> =\n new Set<IgcTreeItemComponent>();\n private indeterminateItems: Set<IgcTreeItemComponent> =\n new Set<IgcTreeItemComponent>();\n private itemsToBeSelected!: Set<IgcTreeItemComponent>;\n private itemsToBeIndeterminate!: Set<IgcTreeItemComponent>;\n\n constructor(tree: IgcTreeComponent) {\n this.tree = tree;\n }\n\n /** Select range from last selected item to the current specified item. */\n public selectMultipleItems(item: IgcTreeItemComponent): void {\n if (!this.itemSelection.size) {\n this.selectItem(item);\n return;\n }\n const lastSelectedItemIndex = this.tree.items.indexOf(\n this.getSelectedItems()[this.itemSelection.size - 1]\n );\n const currentItemIndex = this.tree.items.indexOf(item);\n const items = this.tree.items.slice(\n Math.min(currentItemIndex, lastSelectedItemIndex),\n Math.max(currentItemIndex, lastSelectedItemIndex) + 1\n );\n\n const added = items.filter(\n (_item: IgcTreeItemComponent) => !this.isItemSelected(_item)\n );\n const newSelection = this.getSelectedItems().concat(added);\n this.emitItemSelectionEvent(newSelection, added, []);\n }\n\n /** Select the specified item and emit event. */\n public selectItem(item: IgcTreeItemComponent): void {\n if (this.tree.selection === 'none') {\n return;\n }\n this.emitItemSelectionEvent([...this.getSelectedItems(), item], [item], []);\n }\n\n /** Deselect the specified item and emit event. */\n public deselectItem(item: IgcTreeItemComponent): void {\n const newSelection = this.getSelectedItems().filter(\n (_item: IgcTreeItemComponent) => _item !== item\n );\n this.emitItemSelectionEvent(newSelection, [], [item]);\n }\n\n /** Clears item selection */\n public clearItemsSelection(): void {\n const oldSelection = this.getSelectedItems();\n const oldIndeterminate = this.getIndeterminateItems();\n this.itemSelection.clear();\n this.indeterminateItems.clear();\n oldSelection.forEach((i: IgcTreeItemComponent) => {\n i.selected = false;\n });\n oldIndeterminate.forEach((i: IgcTreeItemComponent) => {\n i.indeterminate = false;\n });\n }\n\n public isItemSelected(item: IgcTreeItemComponent): boolean {\n return this.itemSelection.has(item);\n }\n\n public isItemIndeterminate(item: IgcTreeItemComponent): boolean {\n return this.indeterminateItems.has(item);\n }\n\n /** Called on item`s disconnectedCallback */\n public ensureStateOnItemDelete(item: IgcTreeItemComponent): void {\n // Don't update the internal state of the deleted items because when moving they should keep it\n // However update the state of their parents\n this.deselectItemsWithNoEvent(\n [item, ...item.getChildren({ flatten: true })],\n true\n );\n }\n\n /** Retrigger the selection state of the item. */\n public retriggerItemState(item: IgcTreeItemComponent): void {\n if (item.selected) {\n this.itemSelection.delete(item);\n this.selectItemsWithNoEvent([item]);\n } else {\n this.itemSelection.add(item);\n this.deselectItemsWithNoEvent([item]);\n }\n }\n\n private emitItemSelectionEvent(\n newSelection: IgcTreeItemComponent[],\n added: IgcTreeItemComponent[],\n removed: IgcTreeItemComponent[]\n ): void {\n const currSelection = this.getSelectedItems();\n if (this.areEqualCollections(currSelection, newSelection)) {\n return;\n }\n\n if (this.tree.selection === 'cascade') {\n this.emitCascadeItemSelectionEvent(currSelection, added, removed);\n return;\n }\n\n const args: TreeSelectionEventInit = {\n detail: {\n newSelection,\n },\n cancelable: true,\n };\n\n const allowed = this.tree.emitEvent('igcSelection', args);\n if (!allowed) {\n return;\n }\n\n // if newSelection is overwritten do not proceed (Blazor)\n if (this.areEqualCollections(newSelection, args.detail.newSelection)) {\n this.itemSelection = new Set(newSelection);\n this.updateItemsState(currSelection);\n }\n }\n\n /** Select specified items. No event is emitted. */\n public selectItemsWithNoEvent(items: IgcTreeItemComponent[]): void {\n const oldSelection = this.getSelectedItems();\n\n if (this.tree && this.tree.selection === 'cascade') {\n this.cascadeSelectItemsWithNoEvent(items, oldSelection);\n return;\n }\n\n items.forEach((item: IgcTreeItemComponent) => this.itemSelection.add(item));\n\n this.updateItemsState(oldSelection);\n }\n\n /** Deselect specified items. No event is emitted. */\n public deselectItemsWithNoEvent(\n items?: IgcTreeItemComponent[],\n onDelete = false\n ): void {\n if (this.tree && this.tree.selection === 'cascade') {\n this.cascadeDeselectItemsWithNoEvent(items, onDelete);\n return;\n }\n const itemSet = new Set(items);\n const oldSelection = onDelete\n ? this.getSelectedItems().filter(\n (i: IgcTreeItemComponent) => !itemSet!.has(i)\n )\n : this.getSelectedItems();\n\n if (!items) {\n this.itemSelection.clear();\n } else {\n items.forEach((item: IgcTreeItemComponent) =>\n this.itemSelection.delete(item)\n );\n }\n\n this.updateItemsState(oldSelection);\n }\n\n private emitCascadeItemSelectionEvent(\n currSelection: IgcTreeItemComponent[],\n added: IgcTreeItemComponent[],\n removed: IgcTreeItemComponent[]\n ): void {\n const oldIndeterminate = this.getIndeterminateItems();\n\n this.calculateItemsNewSelectionState(currSelection, added, removed);\n\n const args: TreeSelectionEventInit = {\n detail: {\n newSelection: Array.from(this.itemsToBeSelected),\n },\n cancelable: true,\n };\n\n const allowed = this.tree.emitEvent('igcSelection', args);\n\n if (!allowed) {\n return;\n }\n\n // if newSelection is overwritten do not proceed (Blazor)\n if (\n this.areEqualCollections(\n Array.from(this.itemsToBeSelected),\n args.detail.newSelection\n )\n ) {\n this.itemSelection = new Set<IgcTreeItemComponent>(\n this.itemsToBeSelected\n );\n this.indeterminateItems = new Set(this.itemsToBeIndeterminate);\n this.updateItemsState(currSelection, oldIndeterminate);\n }\n }\n\n private cascadeSelectItemsWithNoEvent(\n items: IgcTreeItemComponent[],\n oldSelection: IgcTreeItemComponent[]\n ): void {\n const oldIndeterminate = this.getIndeterminateItems();\n\n const newSelection = [...oldSelection, ...items];\n\n // retrieve only the rows without their parents/children which has to be added to the selection\n const newSelectionSet = new Set(newSelection);\n const removed = oldSelection!.filter((x) => !newSelectionSet.has(x));\n const added = newSelection!.filter((x) => !this.itemSelection.has(x));\n\n this.calculateItemsNewSelectionState(oldSelection, added, removed);\n\n this.itemSelection = new Set(this.itemsToBeSelected);\n this.indeterminateItems = new Set(this.itemsToBeIndeterminate);\n\n this.updateItemsState(oldSelection, oldIndeterminate);\n }\n\n private cascadeDeselectItemsWithNoEvent(\n items?: IgcTreeItemComponent[],\n onDelete = false\n ): void {\n const itemSet = new Set(items);\n const oldSelection = onDelete\n ? this.getSelectedItems().filter(\n (i: IgcTreeItemComponent) => !itemSet!.has(i)\n )\n : this.getSelectedItems();\n const oldIndeterminate = onDelete\n ? this.getIndeterminateItems().filter(\n (i: IgcTreeItemComponent) => !itemSet!.has(i)\n )\n : this.getIndeterminateItems();\n\n if (!items) {\n this.itemSelection.clear();\n this.indeterminateItems.clear();\n } else {\n this.calculateItemsNewSelectionState(oldSelection, [], items);\n\n this.itemSelection = new Set<IgcTreeItemComponent>(\n this.itemsToBeSelected\n );\n this.indeterminateItems = new Set<IgcTreeItemComponent>(\n this.itemsToBeIndeterminate\n );\n }\n\n this.updateItemsState(oldSelection, oldIndeterminate);\n }\n\n // OK (disabled children?)\n /**\n * populates the itemsToBeSelected and itemsToBeIndeterminate sets\n * with the items which will be eventually in selected/indeterminate state\n */\n private calculateItemsNewSelectionState(\n oldSelection: IgcTreeItemComponent[],\n added: IgcTreeItemComponent[],\n removed: IgcTreeItemComponent[]\n ): void {\n this.itemsToBeSelected = new Set<IgcTreeItemComponent>(oldSelection);\n this.itemsToBeIndeterminate = new Set<IgcTreeItemComponent>(\n this.getIndeterminateItems()\n );\n\n this.cascadeSelectionState(removed, false);\n this.cascadeSelectionState(added, true);\n }\n\n // OK (disabled children?)\n /** Ensures proper selection state for all predescessors and descendants during a selection event */\n private cascadeSelectionState(\n items: IgcTreeItemComponent[] | undefined,\n selected: boolean\n ): void {\n if (!items || isEmpty(items)) {\n return;\n }\n\n const parents = new Set<IgcTreeItemComponent>();\n items.forEach((item: IgcTreeItemComponent) => {\n // select/deselect items passed by event/api\n this.selectDeselectItem(item, selected);\n\n // select/deselect all of their children\n const itemAndAllChildren = item.getChildren({ flatten: true }) || [];\n itemAndAllChildren.forEach((i: IgcTreeItemComponent) => {\n this.selectDeselectItem(i, selected);\n });\n\n // add their direct parent to the set\n if (item?.parent) {\n parents.add(item.parent);\n }\n });\n\n // handle direct parents from the set\n for (const parent of parents) {\n this.handleParentSelectionState(parent);\n }\n }\n\n // OK (disabled children?)\n /**\n * recursively handle the selection state of the direct and indirect parents\n */\n private handleParentSelectionState(item: IgcTreeItemComponent): void {\n if (!item) {\n return;\n }\n this.handleItemSelectionState(item);\n if (item.parent) {\n this.handleParentSelectionState(item.parent);\n }\n }\n\n // OK (disabled children?)\n /**\n * Handle the selection state of a given item based the selection states of its direct children\n */\n private handleItemSelectionState(item: IgcTreeItemComponent): void {\n const itemsArray = item?.getChildren() ? item.getChildren() : [];\n if (itemsArray.length) {\n if (\n itemsArray.every((i: IgcTreeItemComponent) =>\n this.itemsToBeSelected.has(i)\n )\n ) {\n this.selectDeselectItem(item, true);\n } else if (\n itemsArray.some(\n (i: IgcTreeItemComponent) =>\n this.itemsToBeSelected.has(i) || this.itemsToBeIndeterminate.has(i)\n )\n ) {\n this.selectDeselectItem(item, false, true);\n } else {\n this.selectDeselectItem(item, false);\n }\n } else if (this.isItemSelected(item)) {\n // if the children of the item has been deleted and the item was selected do not change its state\n this.selectDeselectItem(item, true);\n } else {\n this.selectDeselectItem(item, false);\n }\n }\n\n /** Emits the `selectedChange` event for each item affected by the selection */\n private updateItemsState(\n oldSelection: IgcTreeItemComponent[],\n oldIndeterminate: IgcTreeItemComponent[] = []\n ): void {\n const selected = new Set<IgcTreeItemComponent>(oldSelection);\n const indeterminated = new Set<IgcTreeItemComponent>(oldIndeterminate);\n\n this.getSelectedItems().forEach((i: IgcTreeItemComponent) => {\n if (!selected.has(i)) {\n i.selected = true;\n }\n });\n\n oldSelection.forEach((i: IgcTreeItemComponent) => {\n if (!this.itemSelection.has(i)) {\n i.selected = false;\n }\n });\n\n if (this.tree.selection === 'cascade') {\n this.indeterminateItems.forEach((i: IgcTreeItemComponent) => {\n if (!indeterminated.has(i)) {\n i.indeterminate = true;\n }\n });\n\n oldIndeterminate.forEach((i: IgcTreeItemComponent) => {\n if (!this.indeterminateItems.has(i)) {\n i.indeterminate = false;\n }\n });\n }\n }\n\n /** Returns array of the selected items. */\n private getSelectedItems(): IgcTreeItemComponent[] {\n return Array.from(this.itemSelection);\n }\n\n /** Returns array of the items in indeterminate state. */\n private getIndeterminateItems(): IgcTreeItemComponent[] {\n return Array.from(this.indeterminateItems);\n }\n\n private areEqualCollections(\n first: IgcTreeItemComponent[],\n second: IgcTreeItemComponent[]\n ): boolean {\n return (\n first.length === second.length &&\n new Set(first.concat(second)).size === first.length\n );\n }\n\n private selectDeselectItem(\n item: IgcTreeItemComponent,\n select: boolean,\n indeterminate = false\n ): void {\n if (indeterminate) {\n this.itemsToBeIndeterminate.add(item);\n this.itemsToBeSelected.delete(item);\n return;\n }\n\n if (select) {\n this.itemsToBeSelected.add(item);\n this.itemsToBeIndeterminate.delete(item);\n } else {\n this.itemsToBeSelected.delete(item);\n this.itemsToBeIndeterminate.delete(item);\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../../src/components/validation-container/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../../src/components/validation-container/themes/themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEnE,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;IACD,SAAS,EAAE,GAAG,CAAA;MACV,cAAc;GACjB;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,aAAa;GAChB;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;IACD,MAAM,EAAE,GAAG,CAAA;MACP,WAAW;GACd;CACF,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,MAAM,EAAE,GAAG,CAAA;MACP,MAAM;GACT;IACD,SAAS,EAAE,GAAG,CAAA;MACV,aAAa;GAChB;IACD,QAAQ,EAAE,GAAG,CAAA;MACT,YAAY;GACf;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;IACD,MAAM,EAAE,GAAG,CAAA;MACP,UAAU;GACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\nimport type { Themes } from '../../../theming/types.js';\n// Dark Overrides\nimport { styles as bootstrapDark } from './dark/validator.bootstrap.css.js';\nimport { styles as fluentDark } from './dark/validator.fluent.css.js';\nimport { styles as indigoDark } from './dark/validator.indigo.css.js';\nimport { styles as materialDark } from './dark/validator.material.css.js';\n// Light Overrides\nimport { styles as bootstrapLight } from './light/validator.bootstrap.css.js';\nimport { styles as fluentLight } from './light/validator.fluent.css.js';\nimport { styles as indigoLight } from './light/validator.indigo.css.js';\nimport { styles as materialLight } from './light/validator.material.css.js';\nimport { styles as shared } from './light/validator.shared.css.js';\n\nconst light = {\n shared: css`\n ${shared}\n `,\n bootstrap: css`\n ${bootstrapLight}\n `,\n material: css`\n ${materialLight}\n `,\n fluent: css`\n ${fluentLight}\n `,\n indigo: css`\n ${indigoLight}\n `,\n};\n\nconst dark = {\n shared: css`\n ${shared}\n `,\n bootstrap: css`\n ${bootstrapDark}\n `,\n material: css`\n ${materialDark}\n `,\n fluent: css`\n ${fluentDark}\n `,\n indigo: css`\n ${indigoDark}\n `,\n};\n\nexport const all: Themes = { light, dark };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement, type TemplateResult
|
|
1
|
+
import { LitElement, nothing, type TemplateResult } from 'lit';
|
|
2
2
|
import type { IgcFormControl } from '../common/mixins/forms/types.js';
|
|
3
3
|
interface ValidationContainerConfig {
|
|
4
4
|
/** The id attribute for the validation container. */
|
|
@@ -27,6 +27,7 @@ export default class IgcValidationContainerComponent extends LitElement {
|
|
|
27
27
|
invalid: boolean;
|
|
28
28
|
set target(value: IgcFormControl);
|
|
29
29
|
get target(): IgcFormControl;
|
|
30
|
+
constructor();
|
|
30
31
|
protected createRenderRoot(): HTMLElement | DocumentFragment;
|
|
31
32
|
handleEvent({ type }: Event): void;
|
|
32
33
|
protected renderValidationMessage(slotName: string): TemplateResult<1>;
|
|
@@ -4,11 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
|
|
8
|
-
import { LitElement, html, nothing } from 'lit';
|
|
7
|
+
import { html, LitElement, nothing } from 'lit';
|
|
9
8
|
import { property, state } from 'lit/decorators.js';
|
|
10
9
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
11
|
-
import {
|
|
10
|
+
import { addThemingController } from '../../theming/theming-controller.js';
|
|
12
11
|
import { registerComponent } from '../common/definitions/register.js';
|
|
13
12
|
import { partMap } from '../common/part-map.js';
|
|
14
13
|
import { isEmpty, toKebabCase } from '../common/util.js';
|
|
@@ -31,20 +30,15 @@ function hasProjectedValidation(element, slotName) {
|
|
|
31
30
|
.some((slot) => slot.assignedElements(config).length > 0)
|
|
32
31
|
: slots.some((slot) => slot.assignedElements(config).length > 0);
|
|
33
32
|
}
|
|
34
|
-
|
|
35
|
-
constructor() {
|
|
36
|
-
super(...arguments);
|
|
37
|
-
this._hasSlottedContent = false;
|
|
38
|
-
this.invalid = false;
|
|
39
|
-
}
|
|
33
|
+
class IgcValidationContainerComponent extends LitElement {
|
|
40
34
|
static register() {
|
|
41
|
-
registerComponent(
|
|
35
|
+
registerComponent(IgcValidationContainerComponent, IgcIconComponent);
|
|
42
36
|
}
|
|
43
37
|
static create(host, config = {
|
|
44
38
|
id: 'helper-text',
|
|
45
39
|
hasHelperText: true,
|
|
46
40
|
}) {
|
|
47
|
-
const { renderValidationSlots } =
|
|
41
|
+
const { renderValidationSlots } = IgcValidationContainerComponent.prototype;
|
|
48
42
|
const helperText = config.hasHelperText
|
|
49
43
|
? html `<slot name="helper-text" slot="helper-text"></slot>`
|
|
50
44
|
: null;
|
|
@@ -72,6 +66,12 @@ let IgcValidationContainerComponent = IgcValidationContainerComponent_1 = class
|
|
|
72
66
|
get target() {
|
|
73
67
|
return this._target;
|
|
74
68
|
}
|
|
69
|
+
constructor() {
|
|
70
|
+
super();
|
|
71
|
+
this._hasSlottedContent = false;
|
|
72
|
+
this.invalid = false;
|
|
73
|
+
addThemingController(this, all);
|
|
74
|
+
}
|
|
75
75
|
createRenderRoot() {
|
|
76
76
|
const root = super.createRenderRoot();
|
|
77
77
|
root.addEventListener('slotchange', this);
|
|
@@ -134,9 +134,10 @@ let IgcValidationContainerComponent = IgcValidationContainerComponent_1 = class
|
|
|
134
134
|
</div>
|
|
135
135
|
`;
|
|
136
136
|
}
|
|
137
|
-
}
|
|
137
|
+
}
|
|
138
138
|
IgcValidationContainerComponent.tagName = 'igc-validator';
|
|
139
139
|
IgcValidationContainerComponent.styles = [styles, shared];
|
|
140
|
+
export default IgcValidationContainerComponent;
|
|
140
141
|
__decorate([
|
|
141
142
|
state()
|
|
142
143
|
], IgcValidationContainerComponent.prototype, "_hasSlottedContent", void 0);
|
|
@@ -146,8 +147,4 @@ __decorate([
|
|
|
146
147
|
__decorate([
|
|
147
148
|
property({ attribute: false })
|
|
148
149
|
], IgcValidationContainerComponent.prototype, "target", null);
|
|
149
|
-
IgcValidationContainerComponent = IgcValidationContainerComponent_1 = __decorate([
|
|
150
|
-
themes(all)
|
|
151
|
-
], IgcValidationContainerComponent);
|
|
152
|
-
export default IgcValidationContainerComponent;
|
|
153
150
|
//# sourceMappingURL=validation-container.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-container.js","sourceRoot":"","sources":["../../../src/components/validation-container/validation-container.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, type TemplateResult, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { IgcFormControl } from '../common/mixins/forms/types.js';\nimport { partMap } from '../common/part-map.js';\nimport { isEmpty, toKebabCase } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { styles as shared } from './themes/shared/validator.common.css.js';\nimport { all } from './themes/themes.js';\nimport { styles } from './themes/validator.base.css.js';\n\ninterface ValidationContainerConfig {\n /** The id attribute for the validation container. */\n id?: string;\n /** Project the validation container to the given slot inside the host shadow DOM. */\n slot?: string;\n /** Additional part(s) that should be bound to the validation container. */\n part?: string;\n /** Whether the validation container should expose a helper-text slot. */\n hasHelperText?: boolean;\n}\n\nfunction getValidationSlots(element: IgcValidationContainerComponent) {\n return element.renderRoot.querySelectorAll<HTMLSlotElement>(\n \"slot:not([name='helper-text'])\"\n );\n}\n\nfunction hasProjection(element: IgcValidationContainerComponent) {\n return Array.from(\n element.renderRoot.querySelectorAll<HTMLSlotElement>('slot')\n ).every((slot) => isEmpty(slot.assignedElements({ flatten: true })));\n}\n\nfunction hasProjectedValidation(\n element: IgcValidationContainerComponent,\n slotName?: string\n) {\n const config: AssignedNodesOptions = { flatten: true };\n const slots = Array.from(getValidationSlots(element));\n return slotName\n ? slots\n .filter((slot) => slot.name === slotName)\n .some((slot) => slot.assignedElements(config).length > 0)\n : slots.some((slot) => slot.assignedElements(config).length > 0);\n}\n\n/* blazorSuppress */\n/**\n * @element igc-validator\n *\n * @csspart helper-text - The base wrapper\n * @csspart validation-message - The validation error message container\n * @csspart validation-icon - The validation error icon\n */\n@themes(all)\nexport default class IgcValidationContainerComponent extends LitElement {\n public static readonly tagName = 'igc-validator';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcValidationContainerComponent, IgcIconComponent);\n }\n\n public static create(\n host: IgcFormControl,\n config: ValidationContainerConfig = {\n id: 'helper-text',\n hasHelperText: true,\n }\n ): TemplateResult {\n const { renderValidationSlots } = IgcValidationContainerComponent.prototype;\n const helperText = config.hasHelperText\n ? html`<slot name=\"helper-text\" slot=\"helper-text\"></slot>`\n : null;\n\n return html`\n <igc-validator\n id=${ifDefined(config.id)}\n part=${ifDefined(config.part)}\n slot=${ifDefined(config.slot)}\n .target=${host}\n ?invalid=${host.invalid}\n exportparts=\"helper-text validation-message validation-icon\"\n >\n ${helperText}${renderValidationSlots(host.validity, true)}\n </igc-validator>\n `;\n }\n\n private _target!: IgcFormControl;\n\n @state()\n private _hasSlottedContent = false;\n\n @property({ type: Boolean })\n public invalid = false;\n\n @property({ attribute: false })\n public set target(value: IgcFormControl) {\n if (this._target === value) {\n return;\n }\n\n this._target?.removeEventListener('invalid', this);\n this._target = value;\n this._target.addEventListener('invalid', this);\n }\n\n public get target() {\n return this._target;\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', this);\n return root;\n }\n\n public handleEvent({ type }: Event) {\n const isInvalid = type === 'invalid';\n const isSlotChange = type === 'slotchange';\n\n if (isInvalid || isSlotChange) {\n this.invalid = isInvalid ? true : this.invalid;\n this._hasSlottedContent = hasProjectedValidation(this);\n }\n\n this.requestUpdate();\n }\n\n protected renderValidationMessage(slotName: string) {\n const icon = hasProjectedValidation(this, slotName)\n ? html`\n <igc-icon\n aria-hidden=\"true\"\n name=\"error\"\n collection=\"default\"\n part=\"validation-icon\"\n ></igc-icon>\n `\n : null;\n\n return html`\n <div part=${partMap({ 'validation-message': true, empty: !icon })}>\n ${icon}\n <slot name=${slotName}></slot>\n </div>\n `;\n }\n\n protected *renderValidationSlots(validity: ValidityState, projected = false) {\n for (const key in validity) {\n if (key === 'valid' && !validity[key]) {\n yield projected\n ? html`<slot name=\"invalid\" slot=\"invalid\"></slot>`\n : this.renderValidationMessage('invalid');\n } else if (validity[key as keyof ValidityState]) {\n const name = toKebabCase(key);\n\n yield projected\n ? html`<slot name=${name} slot=${name}></slot>`\n : this.renderValidationMessage(name);\n }\n }\n }\n\n protected renderHelper() {\n return this.invalid && this._hasSlottedContent\n ? nothing\n : html`<slot name=\"helper-text\"></slot>`;\n }\n\n protected override render() {\n return html`\n <div part=${partMap({ 'helper-text': true, empty: hasProjection(this) })}>\n ${this.invalid\n ? this.renderValidationSlots(this.target.validity)\n : nothing}\n ${this.renderHelper()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-validator': IgcValidationContainerComponent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"validation-container.js","sourceRoot":"","sources":["../../../src/components/validation-container/validation-container.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAaxD,SAAS,kBAAkB,CAAC,OAAwC;IAClE,OAAO,OAAO,CAAC,UAAU,CAAC,gBAAgB,CACxC,gCAAgC,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAwC;IAC7D,OAAO,KAAK,CAAC,IAAI,CACf,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAkB,MAAM,CAAC,CAC7D,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAwC,EACxC,QAAiB;IAEjB,MAAM,MAAM,GAAyB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,OAAO,QAAQ;QACb,CAAC,CAAC,KAAK;aACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;aACxC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7D,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAUD,MAAqB,+BAAgC,SAAQ,UAAU;IAK9D,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,+BAA+B,EAAE,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAEM,MAAM,CAAC,MAAM,CAClB,IAAoB,EACpB,SAAoC;QAClC,EAAE,EAAE,aAAa;QACjB,aAAa,EAAE,IAAI;KACpB;QAED,MAAM,EAAE,qBAAqB,EAAE,GAAG,+BAA+B,CAAC,SAAS,CAAC;QAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa;YACrC,CAAC,CAAC,IAAI,CAAA,qDAAqD;YAC3D,CAAC,CAAC,IAAI,CAAC;QAET,OAAO,IAAI,CAAA;;aAEF,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;eAClB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;eACtB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;kBACnB,IAAI;mBACH,IAAI,CAAC,OAAO;;;UAGrB,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;;KAE5D,CAAC;IACJ,CAAC;IAWD,IAAW,MAAM,CAAC,KAAqB;QACrC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QArBF,uBAAkB,GAAG,KAAK,CAAC;QAG5B,YAAO,GAAG,KAAK,CAAC;QAmBrB,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAEkB,gBAAgB;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,WAAW,CAAC,EAAE,IAAI,EAAS;QAChC,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS,CAAC;QACrC,MAAM,YAAY,GAAG,IAAI,KAAK,YAAY,CAAC;QAE3C,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC/C,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAES,uBAAuB,CAAC,QAAgB;QAChD,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC;YACjD,CAAC,CAAC,IAAI,CAAA;;;;;;;SAOH;YACH,CAAC,CAAC,IAAI,CAAC;QAET,OAAO,IAAI,CAAA;kBACG,OAAO,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;UAC7D,IAAI;qBACO,QAAQ;;KAExB,CAAC;IACJ,CAAC;IAES,CAAC,qBAAqB,CAAC,QAAuB,EAAE,SAAS,GAAG,KAAK;QACzE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,SAAS;oBACb,CAAC,CAAC,IAAI,CAAA,6CAA6C;oBACnD,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,QAAQ,CAAC,GAA0B,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAE9B,MAAM,SAAS;oBACb,CAAC,CAAC,IAAI,CAAA,cAAc,IAAI,SAAS,IAAI,UAAU;oBAC/C,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAES,YAAY;QACpB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB;YAC5C,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,IAAI,CAAA,kCAAkC,CAAC;IAC7C,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;kBACG,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;UACpE,IAAI,CAAC,OAAO;YACZ,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAClD,CAAC,CAAC,OAAO;UACT,IAAI,CAAC,YAAY,EAAE;;KAExB,CAAC;IACJ,CAAC;;AAnIsB,uCAAO,GAAG,eAAe,AAAlB,CAAmB;AAC1B,sCAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,AAAnB,CAAoB;eAF9B,+BAA+B;AAsC1C;IADP,KAAK,EAAE;2EAC2B;AAG5B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gEACL;AAGvB;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;6DAS9B","sourcesContent":["import { html, LitElement, nothing, type TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { IgcFormControl } from '../common/mixins/forms/types.js';\nimport { partMap } from '../common/part-map.js';\nimport { isEmpty, toKebabCase } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { styles as shared } from './themes/shared/validator.common.css.js';\nimport { all } from './themes/themes.js';\nimport { styles } from './themes/validator.base.css.js';\n\ninterface ValidationContainerConfig {\n /** The id attribute for the validation container. */\n id?: string;\n /** Project the validation container to the given slot inside the host shadow DOM. */\n slot?: string;\n /** Additional part(s) that should be bound to the validation container. */\n part?: string;\n /** Whether the validation container should expose a helper-text slot. */\n hasHelperText?: boolean;\n}\n\nfunction getValidationSlots(element: IgcValidationContainerComponent) {\n return element.renderRoot.querySelectorAll<HTMLSlotElement>(\n \"slot:not([name='helper-text'])\"\n );\n}\n\nfunction hasProjection(element: IgcValidationContainerComponent) {\n return Array.from(\n element.renderRoot.querySelectorAll<HTMLSlotElement>('slot')\n ).every((slot) => isEmpty(slot.assignedElements({ flatten: true })));\n}\n\nfunction hasProjectedValidation(\n element: IgcValidationContainerComponent,\n slotName?: string\n) {\n const config: AssignedNodesOptions = { flatten: true };\n const slots = Array.from(getValidationSlots(element));\n return slotName\n ? slots\n .filter((slot) => slot.name === slotName)\n .some((slot) => slot.assignedElements(config).length > 0)\n : slots.some((slot) => slot.assignedElements(config).length > 0);\n}\n\n/* blazorSuppress */\n/**\n * @element igc-validator\n *\n * @csspart helper-text - The base wrapper\n * @csspart validation-message - The validation error message container\n * @csspart validation-icon - The validation error icon\n */\nexport default class IgcValidationContainerComponent extends LitElement {\n public static readonly tagName = 'igc-validator';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcValidationContainerComponent, IgcIconComponent);\n }\n\n public static create(\n host: IgcFormControl,\n config: ValidationContainerConfig = {\n id: 'helper-text',\n hasHelperText: true,\n }\n ): TemplateResult {\n const { renderValidationSlots } = IgcValidationContainerComponent.prototype;\n const helperText = config.hasHelperText\n ? html`<slot name=\"helper-text\" slot=\"helper-text\"></slot>`\n : null;\n\n return html`\n <igc-validator\n id=${ifDefined(config.id)}\n part=${ifDefined(config.part)}\n slot=${ifDefined(config.slot)}\n .target=${host}\n ?invalid=${host.invalid}\n exportparts=\"helper-text validation-message validation-icon\"\n >\n ${helperText}${renderValidationSlots(host.validity, true)}\n </igc-validator>\n `;\n }\n\n private _target!: IgcFormControl;\n\n @state()\n private _hasSlottedContent = false;\n\n @property({ type: Boolean })\n public invalid = false;\n\n @property({ attribute: false })\n public set target(value: IgcFormControl) {\n if (this._target === value) {\n return;\n }\n\n this._target?.removeEventListener('invalid', this);\n this._target = value;\n this._target.addEventListener('invalid', this);\n }\n\n public get target() {\n return this._target;\n }\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', this);\n return root;\n }\n\n public handleEvent({ type }: Event) {\n const isInvalid = type === 'invalid';\n const isSlotChange = type === 'slotchange';\n\n if (isInvalid || isSlotChange) {\n this.invalid = isInvalid ? true : this.invalid;\n this._hasSlottedContent = hasProjectedValidation(this);\n }\n\n this.requestUpdate();\n }\n\n protected renderValidationMessage(slotName: string) {\n const icon = hasProjectedValidation(this, slotName)\n ? html`\n <igc-icon\n aria-hidden=\"true\"\n name=\"error\"\n collection=\"default\"\n part=\"validation-icon\"\n ></igc-icon>\n `\n : null;\n\n return html`\n <div part=${partMap({ 'validation-message': true, empty: !icon })}>\n ${icon}\n <slot name=${slotName}></slot>\n </div>\n `;\n }\n\n protected *renderValidationSlots(validity: ValidityState, projected = false) {\n for (const key in validity) {\n if (key === 'valid' && !validity[key]) {\n yield projected\n ? html`<slot name=\"invalid\" slot=\"invalid\"></slot>`\n : this.renderValidationMessage('invalid');\n } else if (validity[key as keyof ValidityState]) {\n const name = toKebabCase(key);\n\n yield projected\n ? html`<slot name=${name} slot=${name}></slot>`\n : this.renderValidationMessage(name);\n }\n }\n }\n\n protected renderHelper() {\n return this.invalid && this._hasSlottedContent\n ? nothing\n : html`<slot name=\"helper-text\"></slot>`;\n }\n\n protected override render() {\n return html`\n <div part=${partMap({ 'helper-text': true, empty: hasProjection(this) })}>\n ${this.invalid\n ? this.renderValidationSlots(this.target.validity)\n : nothing}\n ${this.renderHelper()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-validator': IgcValidationContainerComponent;\n }\n}\n"]}
|