@eui/ecl 22.0.0-alpha.41 → 22.0.0-alpha.43
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/docs/changelog.html +80 -0
- package/docs/components/EclBreadcrumbSegmentComponent.html +0 -13
- package/docs/components/EclCarouselItemComponent.html +58 -63
- package/docs/components/EclCategoryFilterItemComponent.html +178 -134
- package/docs/components/EclCategoryFilterListComponent.html +8 -1
- package/docs/components/EclCheckboxHelpComponent.html +89 -83
- package/docs/components/EclCheckboxLabelComponent.html +126 -142
- package/docs/components/EclDateBlockComponent.html +67 -131
- package/docs/components/EclFeaturedComponent.html +23 -141
- package/docs/components/EclFeaturedItemComponent.html +4 -85
- package/docs/components/EclFeaturedItemDescriptionComponent.html +4 -104
- package/docs/components/EclLayoutWrapperComponent.html +2 -2
- package/docs/directives/EclCheckboxDirective.html +119 -94
- package/docs/directives/EclCheckboxInputDirective.html +33 -90
- package/docs/directives/EclFeaturedItemLinkDirective.html +14 -153
- package/docs/directives/EclLayoutWrapperViewAllDirective.html +2 -2
- package/docs/interfaces/EclCarouselItem.html +6 -6
- package/docs/interfaces/EclCategoryFilterItem.html +6 -6
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclCarouselItemComponent.md +1 -1
- package/docs/json/EclCategoryFilterItemComponent.md +2 -2
- package/docs/json/EclCheckboxDirective.md +2 -2
- package/docs/json/EclCheckboxHelpComponent.md +1 -1
- package/docs/json/EclCheckboxLabelComponent.md +0 -2
- package/docs/json/EclDateBlockComponent.md +1 -1
- package/docs/json/EclFeaturedItemLinkDirective.md +0 -1
- package/docs/json/EclLayoutWrapperComponent.md +1 -1
- package/docs/json/EclLayoutWrapperViewAllDirective.md +1 -1
- package/docs/json/documentation.json +587 -787
- package/docs/llms.txt +40 -28
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +7 -11
- package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs +39 -24
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +68 -59
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +92 -96
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs +18 -26
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-featured.mjs +42 -59
- package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-layout-wrapper.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-layout-wrapper.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-breadcrumb.d.ts +0 -1
- package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-carousel.d.ts +16 -11
- package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-category-filter.d.ts +28 -18
- package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-checkbox.d.ts +49 -34
- package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-date-block.d.ts +9 -7
- package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-featured.d.ts +7 -9
- package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-layout-wrapper.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-category-filter.mjs","sources":["../../components/ecl-category-filter/events/ecl-category-filter-item-select.event.ts","../../components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.ts","../../components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.html","../../components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.ts","../../components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.html","../../components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.ts","../../components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.html","../../components/ecl-category-filter/index.ts","../../components/ecl-category-filter/eui-ecl-components-ecl-category-filter.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclCategoryFilterItem } from '../models/ecl-category-filter-item.model';\n\n/**\n * Event emitted when a category filter item is selected.\n */\nexport class EclCategoryFilterItemSelectEvent extends EclBaseEvent {\n /**\n * Creates an instance of EclCategoryFilterItemSelectEvent.\n * @param item The category filter item that triggered the event.\n */\n constructor(public item: EclCategoryFilterItem) {\n super();\n }\n}\n","import { Component, EventEmitter, forwardRef, Input, Output, input, contentChild, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCategoryFilterItem } from '../models/ecl-category-filter-item.model';\nimport { EclCategoryFilterItemSelectEvent } from '../events/ecl-category-filter-item-select.event';\nimport { EclCategoryFilterListComponent } from './ecl-category-filter-list.component';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'ecl-category-filter-item',\n templateUrl: './ecl-category-filter-item.component.html',\n imports: [\n NgTemplateOutlet,\n ...EUI_ECL_ICON,\n ],\n host: {\n 'class': 'ecl-category-filter__list-item',\n 'role': 'listitem',\n '[class.ecl-category-filter__list-item--open]': 'hasChildren ? isExpanded : null',\n },\n})\nexport class EclCategoryFilterItemComponent extends ECLBaseDirective implements EclCategoryFilterItem {\n /**\n * Link URL associated with this category filter item.\n * If not provided, the item acts as a toggle only.\n */\n readonly href = input<string>(undefined);\n\n /**\n * Unique identifier for the item. Used to manage selection state.\n */\n @Input() id: string;\n\n /**\n * Emits when the item is selected by the user (clicked).\n */\n @Output() itemSelect = new EventEmitter<EclCategoryFilterItemSelectEvent>();\n\n /**\n * Whether the item is currently expanded (open).\n * Backed by a signal so that parent mutations trigger template updates.\n */\n get isExpanded(): boolean {\n return this._isExpanded();\n }\n set isExpanded(value: boolean) {\n this._isExpanded.set(value);\n }\n private readonly _isExpanded = signal(false);\n\n /**\n * Whether the item is currently selected.\n * Backed by a signal so that parent mutations trigger template updates.\n */\n get isCurrent(): boolean {\n return this._isCurrent();\n }\n set isCurrent(value: boolean) {\n this._isCurrent.set(value);\n }\n private readonly _isCurrent = signal(false);\n\n /**\n * Child list component if the item has nested children.\n */\n readonly eclCategoryList = contentChild(forwardRef(() => EclCategoryFilterListComponent));\n\n /**\n * Returns the hierarchical level of the item within the tree.\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Sets the level and updates the level of the child list accordingly.\n */\n set level(value: number) {\n this._level = ++value;\n this.updateChildListLevel(this._level);\n }\n private _level: number;\n\n /**\n * Returns the CSS class for the current level of the item.\n */\n get levelClass(): string {\n return `ecl-category-filter__item--level-${this._level}`;\n }\n\n /**\n * Indicates whether the item has child elements.\n */\n get hasChildren(): boolean {\n return this.eclCategoryList() !== undefined;\n }\n\n /**\n * Returns the child components of this item, if any.\n */\n get children(): readonly EclCategoryFilterItemComponent[] {\n return this.eclCategoryList().children;\n }\n\n /**\n * Returns true if this is a root-level item and has children.\n */\n get isRootItemWithChildren(): boolean {\n return this.hasChildren && this.isRootItem;\n }\n\n /**\n * Returns true if this is a child item and has its own children.\n */\n get isChildItemWithChildren(): boolean {\n return this.hasChildren && !this.isRootItem;\n }\n\n /**\n * Returns true if this is a root-level item (level === 1).\n */\n get isRootItem(): boolean {\n return this.level === 1;\n }\n\n /**\n * Handles user click interaction, updates state and emits selection event.\n * Prevents navigation if no `href` is defined.\n */\n onItemClick(evt: MouseEvent): void {\n this.isExpanded = !this.isExpanded;\n this.isCurrent = true;\n this.itemSelect.next(new EclCategoryFilterItemSelectEvent(this));\n if (!this.href()) {\n evt.preventDefault();\n }\n evt.stopPropagation();\n }\n\n private updateChildListLevel(value: number): void {\n const eclCategoryList = this.eclCategoryList();\n if (eclCategoryList) {\n eclCategoryList.level = value;\n }\n }\n}\n","@if (hasChildren) {\n <button\n class=\"ecl-category-filter__item {{ levelClass }}\"\n [class.ecl-category-filter__item--has-children]=\"hasChildren\"\n [class.ecl-category-filter__item--current]=\"isCurrent\"\n [attr.aria-current]=\"isCurrent ? true : null\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"eclCategoryList()?.id\"\n (click)=\"onItemClick($event)\">\n @if(isChildItemWithChildren) {\n <ecl-icon icon=\"solid-arrow\" size=\"xs\" transform=\"rotate-90\" class=\"ecl-category-filter__item-icon\"> </ecl-icon>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n @if(isRootItemWithChildren) {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-category-filter__item-icon\"> </ecl-icon>\n }\n </button>\n} @else {\n <a\n [href]=\"href()\"\n class=\"ecl-category-filter__item {{ levelClass }}\"\n [class.ecl-category-filter__item--has-children]=\"hasChildren\"\n [class.ecl-category-filter__item--current]=\"isCurrent\"\n [attr.aria-current]=\"isCurrent ? true : null\"\n (click)=\"onItemClick($event)\">\n @if(isChildItemWithChildren) {\n <ecl-icon icon=\"solid-arrow\" size=\"xs\" transform=\"rotate-90\" class=\"ecl-category-filter__item-icon\"> </ecl-icon>\n }\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n @if(isRootItemWithChildren) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-category-filter__item-icon\"> </ecl-icon>\n }\n </a>\n}\n<ng-content select=\"ecl-category-filter-list\"></ng-content>\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Component, forwardRef, contentChildren } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCategoryFilterItemComponent } from './ecl-category-filter-item.component';\n\n@Component({\n selector: 'ecl-category-filter-list',\n templateUrl: './ecl-category-filter-list.component.html',\n host: {\n 'class': 'ecl-category-filter__list',\n 'role': 'list',\n '[attr.id]': 'id',\n },\n})\nexport class EclCategoryFilterListComponent extends ECLBaseDirective {\n /**\n * ID of this list element, referenced by the parent item's aria-controls.\n */\n id: string;\n\n /**\n * List of all category filter items projected inside this list.\n */\n readonly eclCategoryFilterItems = contentChildren<EclCategoryFilterItemComponent>(forwardRef(() => EclCategoryFilterItemComponent));\n\n /**\n * Gets the nesting level of this list in the category tree.\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Sets the level of the list and applies it to all its children.\n */\n set level(value: number) {\n this._level = value;\n this.updateChildrenItemsLevel(value);\n }\n private _level: number;\n\n /**\n * Returns true if the list contains one or more category filter items.\n */\n get hasChildren(): boolean {\n const eclCategoryFilterItems = this.eclCategoryFilterItems();\n return eclCategoryFilterItems !== undefined && eclCategoryFilterItems.length > 0;\n }\n\n /**\n * Returns the list of child components.\n */\n get children(): readonly EclCategoryFilterItemComponent[] {\n return this.eclCategoryFilterItems();\n }\n\n /**\n * Propagates the current level to all direct children items.\n * @param value Level value to set on each child.\n */\n updateChildrenItemsLevel(value: number): void {\n const eclCategoryFilterItems = this.eclCategoryFilterItems();\n if (eclCategoryFilterItems) {\n eclCategoryFilterItems.forEach((item) =>\n (item.level = value));\n }\n }\n}\n","<ng-content></ng-content>\n","import {\n Component,\n forwardRef,\n Input,\n OnDestroy,\n input,\n contentChild,\n contentChildren,\n effect,\n untracked,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCategoryFilterItem } from '../models/ecl-category-filter-item.model';\nimport { EclCategoryFilterItemSelectEvent } from '../events/ecl-category-filter-item-select.event';\nimport { EclCategoryFilterItemComponent } from '../ecl-category-filter-list';\nimport { EclCategoryFilterListComponent } from '../ecl-category-filter-list';\n\n@Component({\n selector: 'ecl-category-filter',\n templateUrl: './ecl-category-filter.component.html',\n host: {\n 'class': 'ecl-category-filter',\n 'role': 'navigation',\n '[attr.aria-label]': 'ariaLabel',\n },\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclCategoryFilterComponent extends ECLBaseDirective implements OnDestroy {\n /**\n * ID of the currently selected item. When provided, the item with the matching ID\n * will be marked as current and automatically expanded on initialization.\n */\n readonly currentItemId = input<string>(undefined);\n\n /**\n * Aria-label for the navigation role. Defaults to \"Category filter\".\n */\n @Input('aria-label') ariaLabel: string | null = 'Category filter';\n\n readonly eclCategoryList = contentChild(forwardRef(() => EclCategoryFilterListComponent));\n\n /**\n * Signal-based query for all descendant category filter items.\n */\n readonly eclCategoryFilterItemsAll = contentChildren<EclCategoryFilterItemComponent>(\n forwardRef(() => EclCategoryFilterItemComponent), { descendants: true }\n );\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private readonly initializedItems = new WeakSet<EclCategoryFilterItemComponent>();\n\n constructor() {\n super();\n\n // Reacts to item changes and performs all setup:\n // - subscribes to itemSelect events (guarded by WeakSet)\n // - assigns IDs where missing\n // - propagates levels through the tree\n // - handles preselection of currentItemId\n effect(() => {\n const items = this.eclCategoryFilterItemsAll();\n untracked(() => {\n for (const item of items) {\n this.connectCategoryfilterItemEventsOnce(item);\n }\n this.setIds(items);\n this.eclCategoryList().updateChildrenItemsLevel(0);\n\n if (this.currentItemId() !== undefined) {\n this.setPreselectedCurrentItem();\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private connectCategoryfilterItemEventsOnce(item: EclCategoryFilterItemComponent): void {\n if (this.initializedItems.has(item)) return;\n\n this.initializedItems.add(item);\n this.connectCategoryfilterItemEvents(item);\n }\n\n private setIds(items: readonly EclCategoryFilterItemComponent[]): void {\n for (const item of items) {\n if (!item.id) {\n item.id = crypto.randomUUID();\n }\n const eclCategoryList = item.eclCategoryList();\n if (eclCategoryList && !eclCategoryList.id) {\n eclCategoryList.id = `${item.id}-list`;\n }\n }\n }\n\n private connectCategoryfilterItemEvents(item: EclCategoryFilterItemComponent): void {\n item.itemSelect.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onItemSelected(evt);\n });\n }\n\n private onItemSelected(evt: EclCategoryFilterItemSelectEvent): void {\n if (evt.item.isRootItem) {\n this.closeAllItemsButOne(evt.item);\n } else {\n this.deselectAllItemsButOne(evt.item);\n }\n }\n\n private setPreselectedCurrentItem(): void {\n const items = this.eclCategoryFilterItemsAll();\n const currItem = items.find((item) => item.id === this.currentItemId());\n if (currItem) {\n currItem.isCurrent = true;\n if (currItem.hasChildren) {\n currItem.isExpanded = true;\n }\n this.expandParents(currItem);\n }\n }\n\n private expandParents(currItem: EclCategoryFilterItem): void {\n if (currItem.isRootItem) {\n return;\n }\n const items = this.eclCategoryFilterItemsAll();\n const parent = items.find(\n (item) => item.hasChildren && item.children.find((child) => child.id === currItem.id) !== undefined,\n );\n if (parent) {\n parent.isExpanded = true;\n this.expandParents(parent);\n }\n }\n\n private closeAllItemsButOne(item: EclCategoryFilterItem): void {\n const items = this.eclCategoryFilterItemsAll();\n for (const it of items) {\n if (it !== item) {\n it.isExpanded = false;\n it.isCurrent = false;\n }\n }\n }\n\n private deselectAllItemsButOne(item: EclCategoryFilterItem): void {\n const items = this.eclCategoryFilterItemsAll();\n for (const it of items) {\n if (it !== item) {\n it.isCurrent = false;\n }\n }\n }\n}\n","<ng-content></ng-content>\n","import { EclCategoryFilterComponent } from './ecl-category-filter/ecl-category-filter.component';\nimport { EclCategoryFilterListComponent } from './ecl-category-filter-list/ecl-category-filter-list.component';\nimport { EclCategoryFilterItemComponent } from './ecl-category-filter-list/ecl-category-filter-item.component';\n\nexport * from './ecl-category-filter/index';\nexport * from './ecl-category-filter-list/index';\nexport * from './models/ecl-category-filter-item.model';\nexport * from './events/ecl-category-filter-item-select.event';\n\nexport const EUI_ECL_CATEGORY_FILTER = [\n EclCategoryFilterComponent,\n EclCategoryFilterListComponent,\n EclCategoryFilterItemComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-category-filter.mjs","sources":["../../components/ecl-category-filter/events/ecl-category-filter-item-select.event.ts","../../components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.ts","../../components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.html","../../components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.ts","../../components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.html","../../components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.ts","../../components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.html","../../components/ecl-category-filter/index.ts","../../components/ecl-category-filter/eui-ecl-components-ecl-category-filter.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclCategoryFilterItem } from '../models/ecl-category-filter-item.model';\n\n/**\n * Event emitted when a category filter item is selected.\n */\nexport class EclCategoryFilterItemSelectEvent extends EclBaseEvent {\n /**\n * Creates an instance of EclCategoryFilterItemSelectEvent.\n * @param item The category filter item that triggered the event.\n */\n constructor(public item: EclCategoryFilterItem) {\n super();\n }\n}\n","import { Component, computed, forwardRef, input, output, contentChild, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCategoryFilterItem } from '../models/ecl-category-filter-item.model';\nimport { EclCategoryFilterItemSelectEvent } from '../events/ecl-category-filter-item-select.event';\nimport { EclCategoryFilterListComponent } from './ecl-category-filter-list.component';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'ecl-category-filter-item',\n templateUrl: './ecl-category-filter-item.component.html',\n imports: [\n NgTemplateOutlet,\n ...EUI_ECL_ICON,\n ],\n host: {\n 'class': 'ecl-category-filter__list-item',\n 'role': 'listitem',\n '[class.ecl-category-filter__list-item--open]': 'hasChildren ? isExpanded() : null',\n },\n})\nexport class EclCategoryFilterItemComponent extends ECLBaseDirective implements EclCategoryFilterItem {\n /**\n * Link URL associated with this category filter item.\n * If not provided, the item acts as a toggle only.\n */\n readonly href = input<string>(undefined);\n\n /**\n * Input for the unique identifier of the item.\n * When omitted, the parent assigns a generated fallback id.\n */\n readonly idInput = input<string>(undefined, { alias: 'id' });\n\n /**\n * Unique identifier for the item. Used to manage selection state.\n * Resolves to the `id` input when provided, otherwise the parent-assigned fallback.\n */\n readonly id = computed(() => this.idInput() ?? this.fallbackId());\n\n /**\n * Emits when the item is selected by the user (clicked).\n */\n readonly itemSelect = output<EclCategoryFilterItemSelectEvent>();\n\n /**\n * Whether the item is currently expanded (open).\n * Writable so that the parent can toggle it as the tree state changes.\n */\n readonly isExpanded = signal(false);\n\n /**\n * Whether the item is currently selected.\n * Writable so that the parent can update selection as the user navigates.\n */\n readonly isCurrent = signal(false);\n\n /**\n * Child list component if the item has nested children.\n */\n readonly eclCategoryList = contentChild(forwardRef(() => EclCategoryFilterListComponent));\n\n /**\n * Returns the hierarchical level of the item within the tree.\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Sets the level and updates the level of the child list accordingly.\n */\n set level(value: number) {\n this._level = ++value;\n this.updateChildListLevel(this._level);\n }\n private _level: number;\n\n /**\n * Returns the CSS class for the current level of the item.\n */\n get levelClass(): string {\n return `ecl-category-filter__item--level-${this._level}`;\n }\n\n /**\n * Indicates whether the item has child elements.\n */\n get hasChildren(): boolean {\n return this.eclCategoryList() !== undefined;\n }\n\n /**\n * Returns the child components of this item, if any.\n */\n get children(): readonly EclCategoryFilterItemComponent[] {\n return this.eclCategoryList().children;\n }\n\n /**\n * Returns true if this is a root-level item and has children.\n */\n get isRootItemWithChildren(): boolean {\n return this.hasChildren && this.isRootItem;\n }\n\n /**\n * Returns true if this is a child item and has its own children.\n */\n get isChildItemWithChildren(): boolean {\n return this.hasChildren && !this.isRootItem;\n }\n\n /**\n * Returns true if this is a root-level item (level === 1).\n */\n get isRootItem(): boolean {\n return this.level === 1;\n }\n\n /**\n * Handles user click interaction, updates state and emits selection event.\n * Prevents navigation if no `href` is defined.\n */\n onItemClick(evt: MouseEvent): void {\n this.isExpanded.set(!this.isExpanded());\n this.isCurrent.set(true);\n this.itemSelect.emit(new EclCategoryFilterItemSelectEvent(this));\n if (!this.href()) {\n evt.preventDefault();\n }\n evt.stopPropagation();\n }\n\n /**\n * Assigns a fallback id. Used by the parent category filter when no `id` input was provided.\n */\n setFallbackId(id: string): void {\n this.fallbackId.set(id);\n }\n\n /**\n * Fallback id assigned by the parent when no `id` input was provided.\n */\n private readonly fallbackId = signal<string | undefined>(undefined);\n\n private updateChildListLevel(value: number): void {\n const eclCategoryList = this.eclCategoryList();\n if (eclCategoryList) {\n eclCategoryList.level = value;\n }\n }\n}\n","@if (hasChildren) {\n <button\n class=\"ecl-category-filter__item {{ levelClass }}\"\n [class.ecl-category-filter__item--has-children]=\"hasChildren\"\n [class.ecl-category-filter__item--current]=\"isCurrent()\"\n [attr.aria-current]=\"isCurrent() ? true : null\"\n [attr.aria-expanded]=\"isExpanded()\"\n [attr.aria-controls]=\"eclCategoryList()?.id()\"\n (click)=\"onItemClick($event)\">\n @if(isChildItemWithChildren) {\n <ecl-icon icon=\"solid-arrow\" size=\"xs\" transform=\"rotate-90\" class=\"ecl-category-filter__item-icon\"> </ecl-icon>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n @if(isRootItemWithChildren) {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-category-filter__item-icon\"> </ecl-icon>\n }\n </button>\n} @else {\n <a\n [href]=\"href()\"\n class=\"ecl-category-filter__item {{ levelClass }}\"\n [class.ecl-category-filter__item--has-children]=\"hasChildren\"\n [class.ecl-category-filter__item--current]=\"isCurrent()\"\n [attr.aria-current]=\"isCurrent() ? true : null\"\n (click)=\"onItemClick($event)\">\n @if(isChildItemWithChildren) {\n <ecl-icon icon=\"solid-arrow\" size=\"xs\" transform=\"rotate-90\" class=\"ecl-category-filter__item-icon\"> </ecl-icon>\n }\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n @if(isRootItemWithChildren) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-180\" class=\"ecl-category-filter__item-icon\"> </ecl-icon>\n }\n </a>\n}\n<ng-content select=\"ecl-category-filter-list\"></ng-content>\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Component, forwardRef, contentChildren, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCategoryFilterItemComponent } from './ecl-category-filter-item.component';\n\n@Component({\n selector: 'ecl-category-filter-list',\n templateUrl: './ecl-category-filter-list.component.html',\n host: {\n 'class': 'ecl-category-filter__list',\n 'role': 'list',\n '[attr.id]': 'id()',\n },\n})\nexport class EclCategoryFilterListComponent extends ECLBaseDirective {\n /**\n * ID of this list element, referenced by the parent item's aria-controls.\n */\n readonly id = signal<string | undefined>(undefined);\n\n /**\n * List of all category filter items projected inside this list.\n */\n readonly eclCategoryFilterItems = contentChildren<EclCategoryFilterItemComponent>(forwardRef(() => EclCategoryFilterItemComponent));\n\n /**\n * Gets the nesting level of this list in the category tree.\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Sets the level of the list and applies it to all its children.\n */\n set level(value: number) {\n this._level = value;\n this.updateChildrenItemsLevel(value);\n }\n private _level: number;\n\n /**\n * Returns true if the list contains one or more category filter items.\n */\n get hasChildren(): boolean {\n const eclCategoryFilterItems = this.eclCategoryFilterItems();\n return eclCategoryFilterItems !== undefined && eclCategoryFilterItems.length > 0;\n }\n\n /**\n * Returns the list of child components.\n */\n get children(): readonly EclCategoryFilterItemComponent[] {\n return this.eclCategoryFilterItems();\n }\n\n /**\n * Propagates the current level to all direct children items.\n * @param value Level value to set on each child.\n */\n updateChildrenItemsLevel(value: number): void {\n const eclCategoryFilterItems = this.eclCategoryFilterItems();\n if (eclCategoryFilterItems) {\n eclCategoryFilterItems.forEach((item) =>\n (item.level = value));\n }\n }\n}\n","<ng-content></ng-content>\n","import {\n Component,\n forwardRef,\n OnDestroy,\n input,\n contentChild,\n contentChildren,\n effect,\n untracked,\n} from '@angular/core';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCategoryFilterItem } from '../models/ecl-category-filter-item.model';\nimport { EclCategoryFilterItemSelectEvent } from '../events/ecl-category-filter-item-select.event';\nimport { EclCategoryFilterItemComponent } from '../ecl-category-filter-list';\nimport { EclCategoryFilterListComponent } from '../ecl-category-filter-list';\n\n@Component({\n selector: 'ecl-category-filter',\n templateUrl: './ecl-category-filter.component.html',\n host: {\n 'class': 'ecl-category-filter',\n 'role': 'navigation',\n '[attr.aria-label]': 'ariaLabel()',\n },\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclCategoryFilterComponent extends ECLBaseDirective implements OnDestroy {\n /**\n * ID of the currently selected item. When provided, the item with the matching ID\n * will be marked as current and automatically expanded on initialization.\n */\n readonly currentItemId = input<string>(undefined);\n\n /**\n * Aria-label for the navigation role. Defaults to \"Category filter\".\n */\n readonly ariaLabel = input<string | null>('Category filter', { alias: 'aria-label' });\n\n readonly eclCategoryList = contentChild(forwardRef(() => EclCategoryFilterListComponent));\n\n /**\n * Signal-based query for all descendant category filter items.\n */\n readonly eclCategoryFilterItemsAll = contentChildren<EclCategoryFilterItemComponent>(\n forwardRef(() => EclCategoryFilterItemComponent), { descendants: true }\n );\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private readonly initializedItems = new WeakSet<EclCategoryFilterItemComponent>();\n\n constructor() {\n super();\n\n // Reacts to item changes and performs all setup:\n // - subscribes to itemSelect events (guarded by WeakSet)\n // - assigns IDs where missing\n // - propagates levels through the tree\n // - handles preselection of currentItemId\n effect(() => {\n const items = this.eclCategoryFilterItemsAll();\n untracked(() => {\n for (const item of items) {\n this.connectCategoryfilterItemEventsOnce(item);\n }\n this.setIds(items);\n this.eclCategoryList().updateChildrenItemsLevel(0);\n\n if (this.currentItemId() !== undefined) {\n this.setPreselectedCurrentItem();\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private connectCategoryfilterItemEventsOnce(item: EclCategoryFilterItemComponent): void {\n if (this.initializedItems.has(item)) return;\n\n this.initializedItems.add(item);\n this.connectCategoryfilterItemEvents(item);\n }\n\n private setIds(items: readonly EclCategoryFilterItemComponent[]): void {\n for (const item of items) {\n if (!item.id()) {\n item.setFallbackId(crypto.randomUUID());\n }\n const eclCategoryList = item.eclCategoryList();\n if (eclCategoryList && !eclCategoryList.id()) {\n eclCategoryList.id.set(`${item.id()}-list`);\n }\n }\n }\n\n private connectCategoryfilterItemEvents(item: EclCategoryFilterItemComponent): void {\n outputToObservable(item.itemSelect).pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onItemSelected(evt);\n });\n }\n\n private onItemSelected(evt: EclCategoryFilterItemSelectEvent): void {\n if (evt.item.isRootItem) {\n this.closeAllItemsButOne(evt.item);\n } else {\n this.deselectAllItemsButOne(evt.item);\n }\n }\n\n private setPreselectedCurrentItem(): void {\n const items = this.eclCategoryFilterItemsAll();\n const currItem = items.find((item) => item.id() === this.currentItemId());\n if (currItem) {\n currItem.isCurrent.set(true);\n if (currItem.hasChildren) {\n currItem.isExpanded.set(true);\n }\n this.expandParents(currItem);\n }\n }\n\n private expandParents(currItem: EclCategoryFilterItem): void {\n if (currItem.isRootItem) {\n return;\n }\n const items = this.eclCategoryFilterItemsAll();\n const parent = items.find(\n (item) => item.hasChildren && item.children.find((child) => child.id() === currItem.id()) !== undefined,\n );\n if (parent) {\n parent.isExpanded.set(true);\n this.expandParents(parent);\n }\n }\n\n private closeAllItemsButOne(item: EclCategoryFilterItem): void {\n const items = this.eclCategoryFilterItemsAll();\n for (const it of items) {\n if (it !== item) {\n it.isExpanded.set(false);\n it.isCurrent.set(false);\n }\n }\n }\n\n private deselectAllItemsButOne(item: EclCategoryFilterItem): void {\n const items = this.eclCategoryFilterItemsAll();\n for (const it of items) {\n if (it !== item) {\n it.isCurrent.set(false);\n }\n }\n }\n}\n","<ng-content></ng-content>\n","import { EclCategoryFilterComponent } from './ecl-category-filter/ecl-category-filter.component';\nimport { EclCategoryFilterListComponent } from './ecl-category-filter-list/ecl-category-filter-list.component';\nimport { EclCategoryFilterItemComponent } from './ecl-category-filter-list/ecl-category-filter-item.component';\n\nexport * from './ecl-category-filter/index';\nexport * from './ecl-category-filter-list/index';\nexport * from './models/ecl-category-filter-item.model';\nexport * from './events/ecl-category-filter-item-select.event';\n\nexport const EUI_ECL_CATEGORY_FILTER = [\n EclCategoryFilterComponent,\n EclCategoryFilterListComponent,\n EclCategoryFilterItemComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { booleanAttribute,
|
|
2
|
+
import { input, booleanAttribute, linkedSignal, computed, Component, signal, ViewEncapsulation, contentChild, forwardRef, effect, Directive, inject } from '@angular/core';
|
|
3
3
|
import { ECLBaseDirective } from '@eui/ecl/core';
|
|
4
4
|
import { EclFormLabelComponent } from '@eui/ecl/components/ecl-form-label';
|
|
5
5
|
import { EclHelpBlockDirective } from '@eui/ecl/components/ecl-help-block';
|
|
@@ -13,33 +13,33 @@ import { NgControl } from '@angular/forms';
|
|
|
13
13
|
class EclCheckboxHelpComponent extends ECLBaseDirective {
|
|
14
14
|
constructor() {
|
|
15
15
|
super(...arguments);
|
|
16
|
+
/**
|
|
17
|
+
* Input controlling whether the help text starts in a disabled (visually muted) state.
|
|
18
|
+
*/
|
|
19
|
+
this.isDisabledInput = input(false, { ...(ngDevMode ? { debugName: "isDisabledInput" } : /* istanbul ignore next */ {}), alias: 'isDisabled', transform: booleanAttribute });
|
|
16
20
|
/**
|
|
17
21
|
* Indicates whether the help text is disabled (e.g. visually muted).
|
|
22
|
+
* Seeded from the `isDisabled` input but can be updated imperatively by the
|
|
23
|
+
* parent checkbox directive.
|
|
18
24
|
*/
|
|
19
|
-
this.isDisabled =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
this.isDisabled = linkedSignal(() => this.isDisabledInput(), /* @ts-ignore */
|
|
26
|
+
...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
27
|
+
/**
|
|
28
|
+
* Applies base CSS classes for checkbox help.
|
|
29
|
+
*/
|
|
30
|
+
this.cssClasses = computed(() => super.getCssClasses('ecl-checkbox__help'), /* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
|
|
26
32
|
}
|
|
27
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxHelpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EclCheckboxHelpComponent, isStandalone: true, selector: "[eclCheckboxHelp]", inputs: { isDisabledInput: { classPropertyName: "isDisabledInput", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()", "class.ecl-checkbox__help--disabled": "isDisabled()" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
29
35
|
}
|
|
30
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxHelpComponent, decorators: [{
|
|
31
37
|
type: Component,
|
|
32
|
-
args: [{ selector: '[eclCheckboxHelp]',
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
type: HostBinding,
|
|
38
|
-
args: ['class.ecl-checkbox__help--disabled']
|
|
39
|
-
}], cssClasses: [{
|
|
40
|
-
type: HostBinding,
|
|
41
|
-
args: ['class']
|
|
42
|
-
}] } });
|
|
38
|
+
args: [{ selector: '[eclCheckboxHelp]', host: {
|
|
39
|
+
'[class]': 'cssClasses()',
|
|
40
|
+
'[class.ecl-checkbox__help--disabled]': 'isDisabled()',
|
|
41
|
+
}, template: "<ng-content></ng-content>\n" }]
|
|
42
|
+
}], propDecorators: { isDisabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }] } });
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* Label component for a checkbox, supporting state styles.
|
|
@@ -49,58 +49,70 @@ class EclCheckboxLabelComponent extends ECLBaseDirective {
|
|
|
49
49
|
super(...arguments);
|
|
50
50
|
/**
|
|
51
51
|
* Indicates whether the checkbox is in an invalid state.
|
|
52
|
+
* Set imperatively by the parent checkbox directive.
|
|
52
53
|
*/
|
|
53
|
-
this.isInvalid = false
|
|
54
|
+
this.isInvalid = signal(false, /* @ts-ignore */
|
|
55
|
+
...(ngDevMode ? [{ debugName: "isInvalid" }] : /* istanbul ignore next */ []));
|
|
54
56
|
/**
|
|
55
57
|
* Indicates whether the checkbox is disabled.
|
|
58
|
+
* Set imperatively by the parent checkbox directive.
|
|
56
59
|
*/
|
|
57
|
-
this.isDisabled = false
|
|
60
|
+
this.isDisabled = signal(false, /* @ts-ignore */
|
|
61
|
+
...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
58
62
|
/**
|
|
59
63
|
* Indicates whether the checkbox is required.
|
|
60
64
|
*/
|
|
61
65
|
this.isRequired = input(false, { ...(ngDevMode ? { debugName: "isRequired" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return [super.getCssClasses('ecl-checkbox__label')].join(' ');
|
|
66
|
+
/**
|
|
67
|
+
* Applies base CSS classes for checkbox label.
|
|
68
|
+
*/
|
|
69
|
+
this.cssClasses = computed(() => super.getCssClasses('ecl-checkbox__label'), /* @ts-ignore */
|
|
70
|
+
...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
|
|
68
71
|
}
|
|
69
72
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclCheckboxLabelComponent, isStandalone: true, selector: "label[eclCheckboxLabel]", inputs: {
|
|
73
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclCheckboxLabelComponent, isStandalone: true, selector: "label[eclCheckboxLabel]", inputs: { isRequired: { classPropertyName: "isRequired", publicName: "isRequired", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()" } }, usesInheritance: true, ngImport: i0, template: "<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled()\" [class.ecl-checkbox__box--invalid]=\"isInvalid()\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
71
74
|
}
|
|
72
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxLabelComponent, decorators: [{
|
|
73
76
|
type: Component,
|
|
74
|
-
args: [{ selector: 'label[eclCheckboxLabel]', imports: [...EUI_ECL_ICON], encapsulation: ViewEncapsulation.None,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}], isDisabled: [{
|
|
79
|
-
type: Input,
|
|
80
|
-
args: [{ transform: booleanAttribute }]
|
|
81
|
-
}], isRequired: [{ type: i0.Input, args: [{ isSignal: true, alias: "isRequired", required: false }] }], cssClasses: [{
|
|
82
|
-
type: HostBinding,
|
|
83
|
-
args: ['class']
|
|
84
|
-
}] } });
|
|
77
|
+
args: [{ selector: 'label[eclCheckboxLabel]', imports: [...EUI_ECL_ICON], encapsulation: ViewEncapsulation.None, host: {
|
|
78
|
+
'[class]': 'cssClasses()',
|
|
79
|
+
}, template: "<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled()\" [class.ecl-checkbox__box--invalid]=\"isInvalid()\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n" }]
|
|
80
|
+
}], propDecorators: { isRequired: [{ type: i0.Input, args: [{ isSignal: true, alias: "isRequired", required: false }] }] } });
|
|
85
81
|
|
|
86
82
|
/**
|
|
87
83
|
* Directive that applies ECL styles and manages state for checkbox groups or standalone checkboxes.
|
|
88
84
|
*/
|
|
89
85
|
class EclCheckboxDirective extends ECLBaseDirective {
|
|
90
86
|
constructor() {
|
|
91
|
-
super(
|
|
87
|
+
super();
|
|
88
|
+
/**
|
|
89
|
+
* Input controlling whether the checkbox starts disabled.
|
|
90
|
+
* Automatically coerced to a boolean value.
|
|
91
|
+
*/
|
|
92
|
+
this.isDisabledInput = input(false, { ...(ngDevMode ? { debugName: "isDisabledInput" } : /* istanbul ignore next */ {}), alias: 'isDisabled', transform: booleanAttribute });
|
|
92
93
|
/**
|
|
93
94
|
* Indicates whether the checkbox is disabled.
|
|
95
|
+
* Seeded from the `isDisabled` input but can be updated imperatively by the
|
|
96
|
+
* checkbox input directive as the associated control's state changes.
|
|
94
97
|
*/
|
|
95
|
-
this.isDisabled =
|
|
98
|
+
this.isDisabled = linkedSignal(() => this.isDisabledInput(), /* @ts-ignore */
|
|
99
|
+
...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
100
|
+
/**
|
|
101
|
+
* Input controlling whether the checkbox starts in an invalid state.
|
|
102
|
+
* Automatically coerced to a boolean value.
|
|
103
|
+
*/
|
|
104
|
+
this.isInvalidInput = input(false, { ...(ngDevMode ? { debugName: "isInvalidInput" } : /* istanbul ignore next */ {}), alias: 'isInvalid', transform: booleanAttribute });
|
|
96
105
|
/**
|
|
97
106
|
* Indicates whether the checkbox is in an invalid state.
|
|
107
|
+
* Seeded from the `isInvalid` input but can be updated imperatively by the
|
|
108
|
+
* checkbox input directive as the associated control's validity changes.
|
|
98
109
|
*/
|
|
99
|
-
this.isInvalid =
|
|
110
|
+
this.isInvalid = linkedSignal(() => this.isInvalidInput(), /* @ts-ignore */
|
|
111
|
+
...(ngDevMode ? [{ debugName: "isInvalid" }] : /* istanbul ignore next */ []));
|
|
100
112
|
/**
|
|
101
113
|
* Indicates whether the checkbox is rendered as a single (standalone) item.
|
|
102
114
|
*/
|
|
103
|
-
this.isSingle = false;
|
|
115
|
+
this.isSingle = input(false, { ...(ngDevMode ? { debugName: "isSingle" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
104
116
|
/**
|
|
105
117
|
* Child label component projected into the checkbox.
|
|
106
118
|
*/
|
|
@@ -121,60 +133,45 @@ class EclCheckboxDirective extends ECLBaseDirective {
|
|
|
121
133
|
*/
|
|
122
134
|
this.eclHelpBlockDirective = contentChild(forwardRef(() => EclHelpBlockDirective), /* @ts-ignore */
|
|
123
135
|
...(ngDevMode ? [{ debugName: "eclHelpBlockDirective" }] : /* istanbul ignore next */ []));
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
ngOnChanges() {
|
|
135
|
-
this.updateChildElements();
|
|
136
|
+
/**
|
|
137
|
+
* Applies base CSS classes for the checkbox container.
|
|
138
|
+
*/
|
|
139
|
+
this.cssClasses = computed(() => super.getCssClasses('ecl-checkbox'), /* @ts-ignore */
|
|
140
|
+
...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
|
|
141
|
+
// Propagate disabled/invalid state to the projected child components
|
|
142
|
+
// whenever those states (or the queried children) change.
|
|
143
|
+
effect(() => {
|
|
144
|
+
this.updateChildElements();
|
|
145
|
+
});
|
|
136
146
|
}
|
|
137
147
|
updateChildElements() {
|
|
148
|
+
const isDisabled = this.isDisabled();
|
|
149
|
+
const isInvalid = this.isInvalid();
|
|
138
150
|
const eclCheckboxLabelComponent = this.eclCheckboxLabelComponent();
|
|
139
151
|
if (eclCheckboxLabelComponent) {
|
|
140
|
-
eclCheckboxLabelComponent.isInvalid
|
|
141
|
-
eclCheckboxLabelComponent.isDisabled
|
|
152
|
+
eclCheckboxLabelComponent.isInvalid.set(isInvalid);
|
|
153
|
+
eclCheckboxLabelComponent.isDisabled.set(isDisabled);
|
|
142
154
|
}
|
|
143
155
|
const eclCheckboxHelpComponent = this.eclCheckboxHelpComponent();
|
|
144
156
|
if (eclCheckboxHelpComponent) {
|
|
145
|
-
eclCheckboxHelpComponent.isDisabled
|
|
157
|
+
eclCheckboxHelpComponent.isDisabled.set(isDisabled);
|
|
146
158
|
}
|
|
147
159
|
}
|
|
148
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxDirective, deps:
|
|
149
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclCheckboxDirective, isStandalone: true, selector: "[eclCheckbox]", inputs: {
|
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
161
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclCheckboxDirective, isStandalone: true, selector: "[eclCheckbox]", inputs: { isDisabledInput: { classPropertyName: "isDisabledInput", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isInvalidInput: { classPropertyName: "isInvalidInput", publicName: "isInvalid", isSignal: true, isRequired: false, transformFunction: null }, isSingle: { classPropertyName: "isSingle", publicName: "isSingle", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses()", "class.ecl-checkbox--disabled": "isDisabled()", "class.ecl-checkbox--invalid": "isInvalid()", "class.ecl-checkbox--single": "isSingle()" } }, queries: [{ propertyName: "eclCheckboxLabelComponent", first: true, predicate: i0.forwardRef(() => EclCheckboxLabelComponent), descendants: true, isSignal: true }, { propertyName: "eclCheckboxHelpComponent", first: true, predicate: i0.forwardRef(() => EclCheckboxHelpComponent), descendants: true, isSignal: true }, { propertyName: "eclFormLabelDirective", first: true, predicate: i0.forwardRef(() => EclFormLabelComponent), descendants: true, isSignal: true }, { propertyName: "eclHelpBlockDirective", first: true, predicate: i0.forwardRef(() => EclHelpBlockDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
|
|
150
162
|
}
|
|
151
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxDirective, decorators: [{
|
|
152
164
|
type: Directive,
|
|
153
165
|
args: [{
|
|
154
166
|
selector: '[eclCheckbox]',
|
|
167
|
+
host: {
|
|
168
|
+
'[class]': 'cssClasses()',
|
|
169
|
+
'[class.ecl-checkbox--disabled]': 'isDisabled()',
|
|
170
|
+
'[class.ecl-checkbox--invalid]': 'isInvalid()',
|
|
171
|
+
'[class.ecl-checkbox--single]': 'isSingle()',
|
|
172
|
+
},
|
|
155
173
|
}]
|
|
156
|
-
}], propDecorators: { isDisabled: [{
|
|
157
|
-
type: Input,
|
|
158
|
-
args: [{ transform: booleanAttribute }]
|
|
159
|
-
}, {
|
|
160
|
-
type: HostBinding,
|
|
161
|
-
args: ['class.ecl-checkbox--disabled']
|
|
162
|
-
}], isInvalid: [{
|
|
163
|
-
type: Input,
|
|
164
|
-
args: [{ transform: booleanAttribute }]
|
|
165
|
-
}, {
|
|
166
|
-
type: HostBinding,
|
|
167
|
-
args: ['class.ecl-checkbox--invalid']
|
|
168
|
-
}], isSingle: [{
|
|
169
|
-
type: Input,
|
|
170
|
-
args: [{ transform: booleanAttribute }]
|
|
171
|
-
}, {
|
|
172
|
-
type: HostBinding,
|
|
173
|
-
args: ['class.ecl-checkbox--single']
|
|
174
|
-
}], eclCheckboxLabelComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclCheckboxLabelComponent), { isSignal: true }] }], eclCheckboxHelpComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclCheckboxHelpComponent), { isSignal: true }] }], eclFormLabelDirective: [{ type: i0.ContentChild, args: [forwardRef(() => EclFormLabelComponent), { isSignal: true }] }], eclHelpBlockDirective: [{ type: i0.ContentChild, args: [forwardRef(() => EclHelpBlockDirective), { isSignal: true }] }], cssClasses: [{
|
|
175
|
-
type: HostBinding,
|
|
176
|
-
args: ['class']
|
|
177
|
-
}] } });
|
|
174
|
+
}], ctorParameters: () => [], propDecorators: { isDisabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }], isInvalidInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInvalid", required: false }] }], isSingle: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSingle", required: false }] }], eclCheckboxLabelComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclCheckboxLabelComponent), { isSignal: true }] }], eclCheckboxHelpComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclCheckboxHelpComponent), { isSignal: true }] }], eclFormLabelDirective: [{ type: i0.ContentChild, args: [forwardRef(() => EclFormLabelComponent), { isSignal: true }] }], eclHelpBlockDirective: [{ type: i0.ContentChild, args: [forwardRef(() => EclHelpBlockDirective), { isSignal: true }] }] } });
|
|
178
175
|
|
|
179
176
|
/**
|
|
180
177
|
* Directive that decorates the native checkbox input with ECL styles and syncs validation state.
|
|
@@ -184,33 +181,32 @@ class EclCheckboxInputDirective extends ECLBaseDirective {
|
|
|
184
181
|
super(...arguments);
|
|
185
182
|
this.eclCheckbox = inject(EclCheckboxDirective);
|
|
186
183
|
this.ngControl = inject(NgControl, { optional: true, self: true });
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
return [super.getCssClasses('ecl-checkbox__input')].join(' ');
|
|
184
|
+
/**
|
|
185
|
+
* Applies base CSS classes for checkbox input.
|
|
186
|
+
*/
|
|
187
|
+
this.cssClasses = computed(() => super.getCssClasses('ecl-checkbox__input'), /* @ts-ignore */
|
|
188
|
+
...(ngDevMode ? [{ debugName: "cssClasses" }] : /* istanbul ignore next */ []));
|
|
193
189
|
}
|
|
194
190
|
ngDoCheck() {
|
|
195
191
|
if (this.ngControl) {
|
|
196
192
|
if (this.eclCheckbox) {
|
|
197
|
-
this.eclCheckbox.isInvalid
|
|
198
|
-
this.eclCheckbox.isDisabled
|
|
193
|
+
this.eclCheckbox.isInvalid.set(!!this.ngControl.invalid && !!this.ngControl.touched);
|
|
194
|
+
this.eclCheckbox.isDisabled.set(!!this.ngControl.disabled);
|
|
199
195
|
}
|
|
200
196
|
}
|
|
201
197
|
}
|
|
202
198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxInputDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
203
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclCheckboxInputDirective, isStandalone: true, selector: "input[eclCheckboxInput]", host: { properties: { "class": "
|
|
199
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclCheckboxInputDirective, isStandalone: true, selector: "input[eclCheckboxInput]", host: { properties: { "class": "cssClasses()" } }, usesInheritance: true, ngImport: i0 }); }
|
|
204
200
|
}
|
|
205
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclCheckboxInputDirective, decorators: [{
|
|
206
202
|
type: Directive,
|
|
207
203
|
args: [{
|
|
208
204
|
selector: 'input[eclCheckboxInput]',
|
|
205
|
+
host: {
|
|
206
|
+
'[class]': 'cssClasses()',
|
|
207
|
+
},
|
|
209
208
|
}]
|
|
210
|
-
}]
|
|
211
|
-
type: HostBinding,
|
|
212
|
-
args: ['class']
|
|
213
|
-
}] } });
|
|
209
|
+
}] });
|
|
214
210
|
|
|
215
211
|
const EUI_ECL_CHECKBOX = [
|
|
216
212
|
EclCheckboxLabelComponent, EclCheckboxHelpComponent, EclCheckboxInputDirective,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-checkbox.mjs","sources":["../../components/ecl-checkbox/ecl-checkbox-help.component.ts","../../components/ecl-checkbox/ecl-checkbox-help.component.html","../../components/ecl-checkbox/ecl-checkbox-label.component.ts","../../components/ecl-checkbox/ecl-checkbox-label.component.html","../../components/ecl-checkbox/ecl-checkbox.directive.ts","../../components/ecl-checkbox/ecl-checkbox-input.directive.ts","../../components/ecl-checkbox/index.ts","../../components/ecl-checkbox/eui-ecl-components-ecl-checkbox.ts"],"sourcesContent":["import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Displays help text associated with a checkbox.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclCheckboxHelp]',\n templateUrl: './ecl-checkbox-help.component.html',\n})\nexport class EclCheckboxHelpComponent extends ECLBaseDirective {\n /**\n * Indicates whether the help text is disabled (e.g. visually muted).\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-checkbox__help--disabled') isDisabled = false;\n\n /**\n * Applies base CSS classes for checkbox help.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox__help')].join(' ');\n }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, Input, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Label component for a checkbox, supporting state styles.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'label[eclCheckboxLabel]',\n templateUrl: './ecl-checkbox-label.component.html',\n imports: [...EUI_ECL_ICON],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclCheckboxLabelComponent extends ECLBaseDirective {\n /**\n * Indicates whether the checkbox is in an invalid state.\n */\n @Input({ transform: booleanAttribute }) isInvalid = false;\n\n /**\n * Indicates whether the checkbox is disabled.\n */\n @Input({ transform: booleanAttribute }) isDisabled = false;\n\n /**\n * Indicates whether the checkbox is required.\n */\n readonly isRequired = input(false, { transform: booleanAttribute });\n\n /**\n * Applies base CSS classes for checkbox label.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox__label')].join(' ');\n }\n}\n","<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled\" [class.ecl-checkbox__box--invalid]=\"isInvalid\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n","import {\n AfterContentInit,\n Directive,\n HostBinding,\n Input,\n OnChanges,\n booleanAttribute,\n forwardRef,\n contentChild,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFormLabelComponent } from '@eui/ecl/components/ecl-form-label';\nimport { EclHelpBlockDirective } from '@eui/ecl/components/ecl-help-block';\nimport { EclCheckboxHelpComponent } from './ecl-checkbox-help.component';\nimport { EclCheckboxLabelComponent } from './ecl-checkbox-label.component';\n\n/**\n * Directive that applies ECL styles and manages state for checkbox groups or standalone checkboxes.\n */\n@Directive({\n selector: '[eclCheckbox]',\n})\nexport class EclCheckboxDirective extends ECLBaseDirective implements AfterContentInit, OnChanges {\n /**\n * Indicates whether the checkbox is disabled.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-checkbox--disabled') isDisabled = false;\n\n /**\n * Indicates whether the checkbox is in an invalid state.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-checkbox--invalid') isInvalid = false;\n\n /**\n * Indicates whether the checkbox is rendered as a single (standalone) item.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-checkbox--single') isSingle = false;\n\n /**\n * Child label component projected into the checkbox.\n */\n readonly eclCheckboxLabelComponent = contentChild(forwardRef(() => EclCheckboxLabelComponent));\n\n /**\n * Child help component projected into the checkbox.\n */\n readonly eclCheckboxHelpComponent = contentChild(forwardRef(() => EclCheckboxHelpComponent));\n\n /**\n * Optional form label component projected into the checkbox.\n */\n readonly eclFormLabelDirective = contentChild(forwardRef(() => EclFormLabelComponent));\n\n /**\n * Optional help block directive projected into the checkbox.\n */\n readonly eclHelpBlockDirective = contentChild(forwardRef(() => EclHelpBlockDirective));\n\n /**\n * Applies base CSS classes for the checkbox container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox')].join(' ');\n }\n\n ngAfterContentInit(): void {\n this.updateChildElements();\n }\n\n ngOnChanges(): void {\n this.updateChildElements();\n }\n\n private updateChildElements(): void {\n const eclCheckboxLabelComponent = this.eclCheckboxLabelComponent();\n if (eclCheckboxLabelComponent) {\n eclCheckboxLabelComponent.isInvalid = this.isInvalid;\n eclCheckboxLabelComponent.isDisabled = this.isDisabled;\n }\n\n const eclCheckboxHelpComponent = this.eclCheckboxHelpComponent();\n if (eclCheckboxHelpComponent) {\n eclCheckboxHelpComponent.isDisabled = this.isDisabled;\n }\n }\n}\n","import { Directive, DoCheck, HostBinding, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCheckboxDirective } from './ecl-checkbox.directive';\n\n/**\n * Directive that decorates the native checkbox input with ECL styles and syncs validation state.\n */\n@Directive({\n selector: 'input[eclCheckboxInput]',\n})\nexport class EclCheckboxInputDirective extends ECLBaseDirective implements DoCheck {\n eclCheckbox = inject(EclCheckboxDirective);\n protected ngControl = inject(NgControl, { optional: true, self: true });\n\n /**\n * Applies base CSS classes for checkbox input.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-checkbox__input')].join(' ');\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n if (this.eclCheckbox) {\n this.eclCheckbox.isInvalid = this.ngControl.invalid && this.ngControl.touched;\n this.eclCheckbox.isDisabled = this.ngControl.disabled;\n }\n }\n }\n}\n","import { EclCheckboxDirective } from './ecl-checkbox.directive';\nimport { EclCheckboxLabelComponent } from './ecl-checkbox-label.component';\nimport { EclCheckboxInputDirective } from './ecl-checkbox-input.directive';\nimport { EclCheckboxHelpComponent } from './ecl-checkbox-help.component';\n\nexport * from './ecl-checkbox-input.directive';\nexport * from './ecl-checkbox.directive';\nexport * from './ecl-checkbox-label.component';\nexport * from './ecl-checkbox-help.component';\n\nexport const EUI_ECL_CHECKBOX = [\n EclCheckboxLabelComponent, EclCheckboxHelpComponent, EclCheckboxInputDirective,\n EclCheckboxDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-checkbox.mjs","sources":["../../components/ecl-checkbox/ecl-checkbox-help.component.ts","../../components/ecl-checkbox/ecl-checkbox-help.component.html","../../components/ecl-checkbox/ecl-checkbox-label.component.ts","../../components/ecl-checkbox/ecl-checkbox-label.component.html","../../components/ecl-checkbox/ecl-checkbox.directive.ts","../../components/ecl-checkbox/ecl-checkbox-input.directive.ts","../../components/ecl-checkbox/index.ts","../../components/ecl-checkbox/eui-ecl-components-ecl-checkbox.ts"],"sourcesContent":["import { Component, booleanAttribute, computed, input, linkedSignal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Displays help text associated with a checkbox.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclCheckboxHelp]',\n templateUrl: './ecl-checkbox-help.component.html',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-checkbox__help--disabled]': 'isDisabled()',\n },\n})\nexport class EclCheckboxHelpComponent extends ECLBaseDirective {\n /**\n * Input controlling whether the help text starts in a disabled (visually muted) state.\n */\n readonly isDisabledInput = input(false, { alias: 'isDisabled', transform: booleanAttribute });\n\n /**\n * Indicates whether the help text is disabled (e.g. visually muted).\n * Seeded from the `isDisabled` input but can be updated imperatively by the\n * parent checkbox directive.\n */\n readonly isDisabled = linkedSignal(() => this.isDisabledInput());\n\n /**\n * Applies base CSS classes for checkbox help.\n */\n readonly cssClasses = computed(() => super.getCssClasses('ecl-checkbox__help'));\n}\n","<ng-content></ng-content>\n","import { Component, ViewEncapsulation, booleanAttribute, computed, input, signal } from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Label component for a checkbox, supporting state styles.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'label[eclCheckboxLabel]',\n templateUrl: './ecl-checkbox-label.component.html',\n imports: [...EUI_ECL_ICON],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclCheckboxLabelComponent extends ECLBaseDirective {\n /**\n * Indicates whether the checkbox is in an invalid state.\n * Set imperatively by the parent checkbox directive.\n */\n readonly isInvalid = signal(false);\n\n /**\n * Indicates whether the checkbox is disabled.\n * Set imperatively by the parent checkbox directive.\n */\n readonly isDisabled = signal(false);\n\n /**\n * Indicates whether the checkbox is required.\n */\n readonly isRequired = input(false, { transform: booleanAttribute });\n\n /**\n * Applies base CSS classes for checkbox label.\n */\n readonly cssClasses = computed(() => super.getCssClasses('ecl-checkbox__label'));\n}\n","<span class=\"ecl-checkbox__box\" [class.ecl-checkbox__box--disabled]=\"isDisabled()\" [class.ecl-checkbox__box--invalid]=\"isInvalid()\">\n <ecl-icon size=\"xs\" icon=\"check\" class=\"ecl-checkbox__icon\"></ecl-icon>\n</span>\n\n<span class=\"ecl-checkbox__text\">\n <ng-content></ng-content>\n</span>\n@if(isRequired()) {\n<span class=\"ecl-form-label__required\" role=\"note\">(required)</span>\n}\n","import {\n Directive,\n booleanAttribute,\n computed,\n forwardRef,\n input,\n linkedSignal,\n effect,\n contentChild,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclFormLabelComponent } from '@eui/ecl/components/ecl-form-label';\nimport { EclHelpBlockDirective } from '@eui/ecl/components/ecl-help-block';\nimport { EclCheckboxHelpComponent } from './ecl-checkbox-help.component';\nimport { EclCheckboxLabelComponent } from './ecl-checkbox-label.component';\n\n/**\n * Directive that applies ECL styles and manages state for checkbox groups or standalone checkboxes.\n */\n@Directive({\n selector: '[eclCheckbox]',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-checkbox--disabled]': 'isDisabled()',\n '[class.ecl-checkbox--invalid]': 'isInvalid()',\n '[class.ecl-checkbox--single]': 'isSingle()',\n },\n})\nexport class EclCheckboxDirective extends ECLBaseDirective {\n /**\n * Input controlling whether the checkbox starts disabled.\n * Automatically coerced to a boolean value.\n */\n readonly isDisabledInput = input(false, { alias: 'isDisabled', transform: booleanAttribute });\n\n /**\n * Indicates whether the checkbox is disabled.\n * Seeded from the `isDisabled` input but can be updated imperatively by the\n * checkbox input directive as the associated control's state changes.\n */\n readonly isDisabled = linkedSignal(() => this.isDisabledInput());\n\n /**\n * Input controlling whether the checkbox starts in an invalid state.\n * Automatically coerced to a boolean value.\n */\n readonly isInvalidInput = input(false, { alias: 'isInvalid', transform: booleanAttribute });\n\n /**\n * Indicates whether the checkbox is in an invalid state.\n * Seeded from the `isInvalid` input but can be updated imperatively by the\n * checkbox input directive as the associated control's validity changes.\n */\n readonly isInvalid = linkedSignal(() => this.isInvalidInput());\n\n /**\n * Indicates whether the checkbox is rendered as a single (standalone) item.\n */\n readonly isSingle = input(false, { transform: booleanAttribute });\n\n /**\n * Child label component projected into the checkbox.\n */\n readonly eclCheckboxLabelComponent = contentChild(forwardRef(() => EclCheckboxLabelComponent));\n\n /**\n * Child help component projected into the checkbox.\n */\n readonly eclCheckboxHelpComponent = contentChild(forwardRef(() => EclCheckboxHelpComponent));\n\n /**\n * Optional form label component projected into the checkbox.\n */\n readonly eclFormLabelDirective = contentChild(forwardRef(() => EclFormLabelComponent));\n\n /**\n * Optional help block directive projected into the checkbox.\n */\n readonly eclHelpBlockDirective = contentChild(forwardRef(() => EclHelpBlockDirective));\n\n /**\n * Applies base CSS classes for the checkbox container.\n */\n readonly cssClasses = computed(() => super.getCssClasses('ecl-checkbox'));\n\n constructor() {\n super();\n // Propagate disabled/invalid state to the projected child components\n // whenever those states (or the queried children) change.\n effect(() => {\n this.updateChildElements();\n });\n }\n\n private updateChildElements(): void {\n const isDisabled = this.isDisabled();\n const isInvalid = this.isInvalid();\n\n const eclCheckboxLabelComponent = this.eclCheckboxLabelComponent();\n if (eclCheckboxLabelComponent) {\n eclCheckboxLabelComponent.isInvalid.set(isInvalid);\n eclCheckboxLabelComponent.isDisabled.set(isDisabled);\n }\n\n const eclCheckboxHelpComponent = this.eclCheckboxHelpComponent();\n if (eclCheckboxHelpComponent) {\n eclCheckboxHelpComponent.isDisabled.set(isDisabled);\n }\n }\n}\n","import { Directive, DoCheck, computed, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclCheckboxDirective } from './ecl-checkbox.directive';\n\n/**\n * Directive that decorates the native checkbox input with ECL styles and syncs validation state.\n */\n@Directive({\n selector: 'input[eclCheckboxInput]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclCheckboxInputDirective extends ECLBaseDirective implements DoCheck {\n eclCheckbox = inject(EclCheckboxDirective);\n protected ngControl = inject(NgControl, { optional: true, self: true });\n\n /**\n * Applies base CSS classes for checkbox input.\n */\n readonly cssClasses = computed(() => super.getCssClasses('ecl-checkbox__input'));\n\n ngDoCheck(): void {\n if (this.ngControl) {\n if (this.eclCheckbox) {\n this.eclCheckbox.isInvalid.set(!!this.ngControl.invalid && !!this.ngControl.touched);\n this.eclCheckbox.isDisabled.set(!!this.ngControl.disabled);\n }\n }\n }\n}\n","import { EclCheckboxDirective } from './ecl-checkbox.directive';\nimport { EclCheckboxLabelComponent } from './ecl-checkbox-label.component';\nimport { EclCheckboxInputDirective } from './ecl-checkbox-input.directive';\nimport { EclCheckboxHelpComponent } from './ecl-checkbox-help.component';\n\nexport * from './ecl-checkbox-input.directive';\nexport * from './ecl-checkbox.directive';\nexport * from './ecl-checkbox-label.component';\nexport * from './ecl-checkbox-help.component';\n\nexport const EUI_ECL_CHECKBOX = [\n EclCheckboxLabelComponent, EclCheckboxHelpComponent, EclCheckboxInputDirective,\n EclCheckboxDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|