@i-cell/ids-angular 0.1.4 → 0.1.6
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/avatar/avatar.component.d.ts +1 -1
- package/button/button.component.d.ts +3 -3
- package/checkbox/checkbox.component.d.ts +7 -5
- package/checkbox/types/checkbox-group-child.d.ts +2 -1
- package/dialog/dialog.component.d.ts +3 -3
- package/fesm2022/i-cell-ids-angular-avatar.mjs +4 -4
- package/fesm2022/i-cell-ids-angular-avatar.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-button.mjs +4 -4
- package/fesm2022/i-cell-ids-angular-button.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-checkbox.mjs +21 -20
- package/fesm2022/i-cell-ids-angular-checkbox.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-dialog.mjs +5 -5
- package/fesm2022/i-cell-ids-angular-dialog.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-forms.mjs +62 -57
- package/fesm2022/i-cell-ids-angular-forms.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-icon-button.mjs +3 -3
- package/fesm2022/i-cell-ids-angular-icon-button.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-icon.mjs +12 -2
- package/fesm2022/i-cell-ids-angular-icon.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-menu.mjs +6 -6
- package/fesm2022/i-cell-ids-angular-menu.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-notification.mjs +3 -3
- package/fesm2022/i-cell-ids-angular-notification.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-paginator.mjs +11 -11
- package/fesm2022/i-cell-ids-angular-paginator.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-radio.mjs +11 -11
- package/fesm2022/i-cell-ids-angular-radio.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-select.mjs +59 -19
- package/fesm2022/i-cell-ids-angular-select.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-snackbar.mjs +8 -8
- package/fesm2022/i-cell-ids-angular-snackbar.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-spinner.mjs +67 -0
- package/fesm2022/i-cell-ids-angular-spinner.mjs.map +1 -0
- package/fesm2022/i-cell-ids-angular-switch.mjs +15 -15
- package/fesm2022/i-cell-ids-angular-switch.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-tab.mjs +7 -6
- package/fesm2022/i-cell-ids-angular-tab.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-table.mjs +4 -7
- package/fesm2022/i-cell-ids-angular-table.mjs.map +1 -1
- package/fesm2022/i-cell-ids-angular-tag.mjs +4 -4
- package/fesm2022/i-cell-ids-angular-tag.mjs.map +1 -1
- package/forms/components/form-field/form-field-control.d.ts +1 -1
- package/forms/components/form-field/form-field.component.d.ts +12 -13
- package/forms/components/input/input.directive.d.ts +15 -10
- package/icon/icon-defaults.d.ts +1 -0
- package/icon/icon.component.d.ts +1 -0
- package/icon-button/icon-button.component.d.ts +2 -2
- package/menu/menu-item/menu-item.component.d.ts +4 -4
- package/notification/notification.component.d.ts +1 -1
- package/package.json +13 -9
- package/paginator/paginator.component.d.ts +7 -7
- package/radio/radio.component.d.ts +6 -6
- package/select/select.component.d.ts +19 -7
- package/snackbar/snackbar.component.d.ts +5 -5
- package/spinner/index.d.ts +5 -0
- package/spinner/public-api.d.ts +3 -0
- package/spinner/spinner-defaults.d.ts +11 -0
- package/spinner/spinner.component.d.ts +17 -0
- package/spinner/types/spinner-variant.type.d.ts +11 -0
- package/switch/switch.component.d.ts +3 -3
- package/tab/tab-group.component.d.ts +3 -2
- package/tag/tag.component.d.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-cell-ids-angular-checkbox.mjs","sources":["../../../projects/widgets/checkbox/types/checkbox-events.class.ts","../../../projects/widgets/checkbox/types/checkbox-state.type.ts","../../../projects/widgets/checkbox/types/checkbox-variant.type.ts","../../../projects/widgets/checkbox/checkbox-defaults.ts","../../../projects/widgets/checkbox/checkbox-group-defaults.ts","../../../projects/widgets/checkbox/types/checkbox-group-child.ts","../../../projects/widgets/checkbox/types/checkbox-parent.ts","../../../projects/widgets/checkbox/checkbox.component.ts","../../../projects/widgets/checkbox/checkbox.component.html","../../../projects/widgets/checkbox/checkbox-group.component.ts","../../../projects/widgets/checkbox/checkbox-group.component.html","../../../projects/widgets/checkbox/i-cell-ids-angular-checkbox.ts"],"sourcesContent":["import { IdsCheckboxComponent } from '../checkbox.component';\n\nexport class IdsCheckBoxChangeEvent {\n public source!: IdsCheckboxComponent;\n public checked!: boolean;\n public value?: unknown;\n}\n","export const IdsCheckboxState = {\n UNCHECKED: 'unchecked',\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate',\n} as const;\n\nexport type IdsCheckboxStateType = (typeof IdsCheckboxState)[keyof typeof IdsCheckboxState];\n","export const IdsCheckboxVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsCheckboxVariantType = (typeof IdsCheckboxVariant)[keyof typeof IdsCheckboxVariant];\n","import { IdsCheckboxVariant, IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxDefaultConfig {\n size?: IdsSizeType\n variant?: IdsCheckboxVariantType\n}\n\nexport const IDS_CHECKBOX_DEFAULT_CONFIG = new InjectionToken<IdsCheckboxDefaultConfig>(\n 'IDS_CHECKBOX_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY(): Required<IdsCheckboxDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsCheckboxVariant.SURFACE,\n };\n}\n","import { IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY, IdsCheckboxDefaultConfig } from './checkbox-defaults';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsOrientation, IdsOrientationType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxGroupDefaultConfig extends IdsCheckboxDefaultConfig {\n orientation: IdsOrientationType,\n allowParent: boolean,\n}\n\nexport const IDS_CHECKBOX_GROUP_DEFAULT_CONFIG = new InjectionToken<IdsCheckboxGroupDefaultConfig>(\n 'IDS_CHECKBOX_GROUP_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY(): Required<IdsCheckboxGroupDefaultConfig> {\n return {\n ...IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY(),\n orientation: IdsOrientation.VERTICAL,\n allowParent: true,\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface IdsCheckboxGroupChild {\n isChecked(): boolean;\n deselect(): void;\n select(): void;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_CHECKBOX_GROUP_CHILD = new InjectionToken<IdsCheckboxGroupChild>('IDS_CHECKBOX_GROUP_CHILD');\n","import { IdsCheckboxVariantType } from './checkbox-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxParent {\n size: Signal<IdsSizeType | null>;\n variant: Signal<IdsCheckboxVariantType | null>;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_CHECKBOX_PARENT = new InjectionToken<IdsCheckboxParent>('IDS_CHECKBOX_PARENT');\n","import { IDS_CHECKBOX_DEFAULT_CONFIG, IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY, IdsCheckboxDefaultConfig } from './checkbox-defaults';\nimport { IdsCheckBoxChangeEvent } from './types/checkbox-events.class';\nimport { IDS_CHECKBOX_GROUP_CHILD, IdsCheckboxGroupChild } from './types/checkbox-group-child';\nimport { IDS_CHECKBOX_PARENT } from './types/checkbox-parent';\nimport { IdsCheckboxState, IdsCheckboxStateType } from './types/checkbox-state.type';\nimport { IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Injector, OnChanges, OnInit, SimpleChange, SimpleChanges, ViewEncapsulation, computed, contentChildren, inject, input, model, output, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType, coerceBooleanAttribute, coerceNumberAttribute, isString } from '@i-cell/ids-angular/core';\nimport { IDS_FORM_FIELD_CONTROL, IdsErrorMessageComponent, IdsHintMessageComponent, IdsValidators } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\nconst defaultConfig = IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-checkbox',\n imports: [IdsIconComponent],\n templateUrl: './checkbox.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: IdsCheckboxComponent,\n multi: true,\n },\n {\n provide: IDS_FORM_FIELD_CONTROL,\n useExisting: IdsCheckboxComponent,\n },\n {\n provide: IDS_CHECKBOX_GROUP_CHILD,\n useExisting: IdsCheckboxComponent,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n})\nexport class IdsCheckboxComponent\n extends ComponentBaseWithDefaults<IdsCheckboxDefaultConfig>\n implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor, IdsCheckboxGroupChild {\n protected override get _hostName(): string {\n return 'checkbox';\n }\n\n private readonly _injector = inject(Injector);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_CHECKBOX_DEFAULT_CONFIG);\n\n private _checkboxGroup = inject(IDS_CHECKBOX_PARENT, { optional: true });\n\n private _checkboxState = signal<IdsCheckboxStateType>(IdsCheckboxState.UNCHECKED);\n\n public inputId = computed(() => `${this.id()}-input`);\n public name = input<string | null>();\n public required = input(false, { transform: coerceBooleanAttribute });\n public readonly = input(false, { transform: coerceBooleanAttribute });\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public tabIndex = input(0, { transform: coerceNumberAttribute });\n public value = input<unknown>();\n public variant = input<IdsCheckboxVariantType>(this._defaultConfig.variant);\n public checked = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public indeterminate = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n public ariaDescribedby = input<string>('', { alias: 'aria-describedby' });\n\n public disabled = model(false);\n\n public isChecked = computed(() => this._checkboxState() === IdsCheckboxState.CHECKED);\n public isIndeterminate = computed(() => this._checkboxState() === IdsCheckboxState.INDETERMINATE);\n public isFocusable = computed(() => !this.disabled() && !this.readonly());\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfSize(),\n this._parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n ]),\n );\n\n protected _nativeValue = computed(() => {\n const value = this.value();\n return isString(value) ? value : undefined;\n });\n\n private _parentOrSelfSize = computed(() => this._checkboxGroup?.size() ?? this.size());\n private _parentOrSelfVariant = computed(() => this._checkboxGroup?.variant() ?? this.variant());\n\n private _onChange: (value: unknown) => void = () => { };\n private _onTouched: () => unknown = () => { };\n\n public controlDir: NgControl | null = null;\n\n public readonly change = output<IdsCheckBoxChangeEvent>();\n public readonly indeterminateChange = output<boolean>();\n\n private _inputElement = viewChild.required<ElementRef<HTMLInputElement>>('inputEl');\n\n private _hintMessages = contentChildren(IdsHintMessageComponent, { descendants: true });\n private _errorMessages = contentChildren(IdsErrorMessageComponent, { descendants: true });\n\n public ngOnChanges(changes: SimpleChanges): void {\n const checkedChange = changes['checked'] as SimpleChange | undefined;\n const indeterminateChange = changes['indeterminate'] as SimpleChange | undefined;\n if (indeterminateChange || checkedChange) {\n const currentChecked = checkedChange?.currentValue;\n const currentIndeterminate = indeterminateChange?.currentValue;\n if (currentIndeterminate === true) {\n this._checkboxState.set(IdsCheckboxState.INDETERMINATE);\n } else if (currentChecked === true) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n } else {\n this._checkboxState.set(IdsCheckboxState.UNCHECKED);\n }\n }\n }\n\n public ngOnInit(): void {\n this.controlDir = this._injector.get(NgControl, null, { self: true, optional: true });\n }\n\n public ngAfterViewInit(): void {\n if (this.indeterminate !== undefined) {\n this._syncIndeterminate(this.indeterminate());\n }\n }\n\n public focus(): void {\n this._inputElement().nativeElement.focus();\n }\n\n public writeValue(value: boolean): void {\n if (this.isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.INDETERMINATE);\n } else {\n this._checkboxState.set(value ? IdsCheckboxState.CHECKED : IdsCheckboxState.UNCHECKED);\n }\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n protected _createChangeEvent(isChecked: boolean, value: unknown): IdsCheckBoxChangeEvent {\n const event = new IdsCheckBoxChangeEvent();\n event.source = this;\n event.checked = isChecked;\n event.value = value;\n return event;\n }\n\n private _emitChangeEvent(): void {\n this._onChange(this.isChecked());\n this.change.emit(this._createChangeEvent(this.isChecked(), this.value()));\n this._syncChecked(this.isChecked());\n }\n\n public toggle(): void {\n if (this.isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n } else {\n this._checkboxState.set(this._checkboxState() === IdsCheckboxState.CHECKED ? IdsCheckboxState.UNCHECKED : IdsCheckboxState.CHECKED);\n }\n this._onChange(this.isChecked());\n }\n\n public select(): void {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n this._onChange(this.isChecked());\n }\n\n public deselect(): void {\n this._checkboxState.set(IdsCheckboxState.UNCHECKED);\n this._onChange(this.isChecked());\n }\n\n private _handleInputClick(): void {\n if (this.isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n this.indeterminateChange.emit(this.isIndeterminate());\n } else {\n this._checkboxState.set(this._checkboxState() === IdsCheckboxState.CHECKED ? IdsCheckboxState.UNCHECKED : IdsCheckboxState.CHECKED);\n }\n\n this._emitChangeEvent();\n this._syncIndeterminate(this.isIndeterminate());\n }\n\n public onBlur(): void {\n Promise.resolve().then(() => {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private _syncChecked(value: boolean): void {\n const nativeCheckbox = this._inputElement();\n nativeCheckbox.nativeElement.checked = value;\n }\n\n private _syncIndeterminate(value: boolean): void {\n const nativeCheckbox = this._inputElement();\n nativeCheckbox.nativeElement.indeterminate = value;\n }\n\n public onInputClick(): void {\n if (!this.readonly() && !this.disabled()) {\n this._handleInputClick();\n }\n }\n\n public onTouchTargetClick(): void {\n if (!this.readonly() && !this.disabled()) {\n this._handleInputClick();\n }\n\n if (!this.disabled()) {\n this._inputElement().nativeElement.focus();\n }\n }\n\n public get displayedMessages(): 'error' | 'hint' | undefined {\n if (this._errorMessages().length > 0 && this.controlDir?.errors) {\n return 'error';\n }\n if (this._hintMessages().length > 0) {\n return 'hint';\n }\n return undefined;\n }\n\n public get hasRequiredValidator(): boolean {\n const control = this.controlDir?.control;\n if (!control) {\n return this.required();\n }\n return control.hasValidator(Validators.required)\n || control.hasValidator(Validators.requiredTrue)\n || control.hasValidator(IdsValidators.required)\n || control.hasValidator(IdsValidators.requiredTrue)\n || control.hasValidator(IdsValidators.requiredFalse);\n }\n}\n","<div class=\"ids-checkbox__input-wrapper\">\n <div class=\"ids-checkbox__touch-target\" (click)=\"onTouchTargetClick()\"></div>\n <input\n #inputEl\n type=\"checkbox\"\n [class.ids-checkbox--selected]=\"isChecked()\"\n [id]=\"inputId()\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"isIndeterminate() ? 'mixed' : null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [checked]=\"isChecked()\"\n [indeterminate]=\"isIndeterminate()\"\n [name]=\"name()\"\n [required]=\"required()\"\n [tabIndex]=\"!isFocusable() ? -1 : tabIndex()\"\n [value]=\"_nativeValue()\"\n (blur)=\"onBlur()\"\n (click)=\"onInputClick()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-checkbox__icon\" aria-hidden=\"true\">\n @if (isIndeterminate()) {\n <ids-icon fontIcon=\"minus\" aria-hidden=\"true\" />\n }\n @if (isChecked()) {\n <ids-icon fontIcon=\"check\" aria-hidden=\"true\" />\n }\n </div>\n</div>\n\n<div class=\"ids-checkbox__label-wrapper\">\n <div class=\"ids-checkbox__label-container\">\n <label class=\"ids-checkbox__label\" [for]=\"inputId()\">\n <ng-content />\n @if (hasRequiredValidator) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\n </label>\n </div>\n @let messages = displayedMessages;\n @if (messages) {\n <div class=\"ids-checkbox__message-container\">\n @switch (messages) {\n @case (\"error\") {\n <ng-content select=\"ids-error-message\" />\n }\n @case (\"hint\") {\n <ng-content select=\"ids-hint-message\" />\n }\n }\n </div>\n }\n</div>\n","import { IDS_CHECKBOX_GROUP_DEFAULT_CONFIG, IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY, IdsCheckboxGroupDefaultConfig } from './checkbox-group-defaults';\nimport { IdsCheckboxComponent } from './checkbox.component';\nimport { IdsCheckBoxChangeEvent } from './types/checkbox-events.class';\nimport { IDS_CHECKBOX_GROUP_CHILD } from './types/checkbox-group-child';\nimport { IDS_CHECKBOX_PARENT, IdsCheckboxParent } from './types/checkbox-parent';\nimport { IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, effect, input, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsOrientation, IdsOrientationType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-checkbox-group',\n imports: [IdsCheckboxComponent],\n templateUrl: './checkbox-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'group',\n '[attr.aria-labelledby]': '_groupLabelId()',\n },\n providers: [\n {\n provide: IDS_CHECKBOX_PARENT,\n useExisting: IdsCheckboxGroupComponent,\n },\n ],\n})\nexport class IdsCheckboxGroupComponent extends ComponentBaseWithDefaults<IdsCheckboxGroupDefaultConfig> implements IdsCheckboxParent {\n protected override get _hostName(): string {\n return 'checkbox-group';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_CHECKBOX_GROUP_DEFAULT_CONFIG);\n\n private _childCheckboxes = contentChildren(IDS_CHECKBOX_GROUP_CHILD);\n\n public groupLabel = input<string>('', { alias: 'label' });\n public allowParent = input<boolean>(this._defaultConfig.allowParent);\n public parentCheckboxLabel = input<string>('', { alias: 'parentLabel' });\n public name = input<string>();\n public size = input<IdsSizeType | null>(this._defaultConfig.size);\n public variant = input<IdsCheckboxVariantType | null>(this._defaultConfig.variant);\n public orientation = input<IdsOrientationType | null>(this._defaultConfig.orientation);\n\n protected _groupLabelId = computed(() => `${this.id()}-label`);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.orientation(),\n ]));\n\n protected _parentCheckboxChecked = computed(() => this._childCheckboxes().every((child) => child.isChecked()));\n protected _parentCheckboxIndeterminate = computed(() =>\n !this._parentCheckboxChecked() && this._childCheckboxes().some((child) => child.isChecked()),\n );\n\n private _invalidParentOrientation = effect(() => {\n if (this.allowParent() && this.orientation() === IdsOrientation.HORIZONTAL) {\n throw this._createHostError('Parent checkbox can be used only in vertical orientation');\n }\n });\n\n public selectAllChild(): void {\n this._childCheckboxes().forEach((child) => {\n child.select();\n });\n }\n\n public deselectAllChild(): void {\n this._childCheckboxes().forEach((child) => {\n child.deselect();\n });\n }\n\n protected _handleParentChange(event: IdsCheckBoxChangeEvent): void {\n if (event.checked) {\n this.selectAllChild();\n } else {\n this.deselectAllChild();\n }\n }\n}\n","<label class=\"ids-checkbox-group__label\" [for]=\"id()\" [id]=\"_groupLabelId()\">{{ groupLabel() }}</label>\n\n@if (allowParent()) {\n <ids-checkbox\n [checked]=\"_parentCheckboxChecked()\"\n [indeterminate]=\"_parentCheckboxIndeterminate()\"\n (change)=\"_handleParentChange($event)\"\n >{{ parentCheckboxLabel() }}</ids-checkbox\n >\n}\n\n<div class=\"ids-checkbox-group__list\">\n <ng-content select=\"ids-checkbox\" />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i-cell-ids-angular-checkbox.mjs","sources":["../../../projects/widgets/checkbox/types/checkbox-events.class.ts","../../../projects/widgets/checkbox/types/checkbox-state.type.ts","../../../projects/widgets/checkbox/types/checkbox-variant.type.ts","../../../projects/widgets/checkbox/checkbox-defaults.ts","../../../projects/widgets/checkbox/checkbox-group-defaults.ts","../../../projects/widgets/checkbox/types/checkbox-group-child.ts","../../../projects/widgets/checkbox/types/checkbox-parent.ts","../../../projects/widgets/checkbox/checkbox.component.ts","../../../projects/widgets/checkbox/checkbox.component.html","../../../projects/widgets/checkbox/checkbox-group.component.ts","../../../projects/widgets/checkbox/checkbox-group.component.html","../../../projects/widgets/checkbox/i-cell-ids-angular-checkbox.ts"],"sourcesContent":["import { IdsCheckboxComponent } from '../checkbox.component';\n\nexport class IdsCheckBoxChangeEvent {\n public source!: IdsCheckboxComponent;\n public checked!: boolean;\n public value?: unknown;\n}\n","export const IdsCheckboxState = {\n UNCHECKED: 'unchecked',\n CHECKED: 'checked',\n INDETERMINATE: 'indeterminate',\n} as const;\n\nexport type IdsCheckboxStateType = (typeof IdsCheckboxState)[keyof typeof IdsCheckboxState];\n","export const IdsCheckboxVariant = {\n SURFACE: 'surface',\n LIGHT: 'light',\n DARK: 'dark',\n} as const;\n\nexport type IdsCheckboxVariantType = (typeof IdsCheckboxVariant)[keyof typeof IdsCheckboxVariant];\n","import { IdsCheckboxVariant, IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxDefaultConfig {\n size?: IdsSizeType\n variant?: IdsCheckboxVariantType\n}\n\nexport const IDS_CHECKBOX_DEFAULT_CONFIG = new InjectionToken<IdsCheckboxDefaultConfig>(\n 'IDS_CHECKBOX_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY(): Required<IdsCheckboxDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n variant: IdsCheckboxVariant.SURFACE,\n };\n}\n","import { IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY, IdsCheckboxDefaultConfig } from './checkbox-defaults';\n\nimport { InjectionToken } from '@angular/core';\nimport { IdsOrientation, IdsOrientationType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxGroupDefaultConfig extends IdsCheckboxDefaultConfig {\n orientation: IdsOrientationType,\n allowParent: boolean,\n}\n\nexport const IDS_CHECKBOX_GROUP_DEFAULT_CONFIG = new InjectionToken<IdsCheckboxGroupDefaultConfig>(\n 'IDS_CHECKBOX_GROUP_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY(): Required<IdsCheckboxGroupDefaultConfig> {\n return {\n ...IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY(),\n orientation: IdsOrientation.VERTICAL,\n allowParent: true,\n };\n}\n","import { IdsCheckboxStateType } from './checkbox-state.type';\n\nimport { InjectionToken } from '@angular/core';\n\nexport interface IdsCheckboxGroupChild {\n checkboxState(): IdsCheckboxStateType;\n deselect(): void;\n select(): void;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_CHECKBOX_GROUP_CHILD = new InjectionToken<IdsCheckboxGroupChild>('IDS_CHECKBOX_GROUP_CHILD');\n","import { IdsCheckboxVariantType } from './checkbox-variant.type';\n\nimport { InjectionToken, Signal } from '@angular/core';\nimport { IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsCheckboxParent {\n size: Signal<IdsSizeType | null>;\n variant: Signal<IdsCheckboxVariantType | null>;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const IDS_CHECKBOX_PARENT = new InjectionToken<IdsCheckboxParent>('IDS_CHECKBOX_PARENT');\n","import { IDS_CHECKBOX_DEFAULT_CONFIG, IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY, IdsCheckboxDefaultConfig } from './checkbox-defaults';\nimport { IdsCheckBoxChangeEvent } from './types/checkbox-events.class';\nimport { IDS_CHECKBOX_GROUP_CHILD, IdsCheckboxGroupChild } from './types/checkbox-group-child';\nimport { IDS_CHECKBOX_PARENT } from './types/checkbox-parent';\nimport { IdsCheckboxState, IdsCheckboxStateType } from './types/checkbox-state.type';\nimport { IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Injector, OnChanges, OnInit, SimpleChange, SimpleChanges, ViewEncapsulation, computed, contentChildren, inject, input, model, output, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\nimport { ComponentBaseWithDefaults, IdsSizeType, coerceBooleanAttribute, coerceNumberAttribute, isString } from '@i-cell/ids-angular/core';\nimport { IDS_FORM_FIELD_CONTROL, IdsErrorMessageComponent, IdsHintMessageComponent, IdsValidators } from '@i-cell/ids-angular/forms';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\n\nconst defaultConfig = IDS_CHECKBOX_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-checkbox',\n imports: [IdsIconComponent],\n templateUrl: './checkbox.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: IdsCheckboxComponent,\n multi: true,\n },\n {\n provide: IDS_FORM_FIELD_CONTROL,\n useExisting: IdsCheckboxComponent,\n },\n {\n provide: IDS_CHECKBOX_GROUP_CHILD,\n useExisting: IdsCheckboxComponent,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n },\n})\nexport class IdsCheckboxComponent\n extends ComponentBaseWithDefaults<IdsCheckboxDefaultConfig>\n implements OnInit, OnChanges, AfterViewInit, ControlValueAccessor, IdsCheckboxGroupChild {\n protected override get _hostName(): string {\n return 'checkbox';\n }\n\n private readonly _injector = inject(Injector);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_CHECKBOX_DEFAULT_CONFIG);\n\n private _checkboxGroup = inject(IDS_CHECKBOX_PARENT, { optional: true });\n\n private _checkboxState = signal<IdsCheckboxStateType>(IdsCheckboxState.UNCHECKED);\n public checkboxState = this._checkboxState.asReadonly();\n\n protected _inputId = computed(() => `${this.id()}-input`);\n public name = input<string | null>();\n public required = input(false, { transform: coerceBooleanAttribute });\n public readonly = input(false, { transform: coerceBooleanAttribute });\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public tabIndex = input(0, { transform: coerceNumberAttribute });\n public value = input<unknown>();\n public variant = input<IdsCheckboxVariantType>(this._defaultConfig.variant);\n public checked = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public indeterminate = input<boolean, unknown>(false, { transform: coerceBooleanAttribute });\n public ariaLabel = input<string>('', { alias: 'aria-label' });\n public ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n public ariaDescribedby = input<string>('', { alias: 'aria-describedby' });\n\n public disabled = model(false);\n\n protected _isChecked = computed(() => this._checkboxState() === IdsCheckboxState.CHECKED);\n protected _isIndeterminate = computed(() => this._checkboxState() === IdsCheckboxState.INDETERMINATE);\n protected _isFocusable = computed(() => !this.disabled() && !this.readonly());\n protected _hostClasses = computed(() => this._getHostClasses([\n this._parentOrSelfSize(),\n this._parentOrSelfVariant(),\n this.disabled() ? 'disabled' : null,\n ]),\n );\n\n protected _nativeValue = computed(() => {\n const value = this.value();\n return isString(value) ? value : undefined;\n });\n\n private _parentOrSelfSize = computed(() => this._checkboxGroup?.size() ?? this.size());\n private _parentOrSelfVariant = computed(() => this._checkboxGroup?.variant() ?? this.variant());\n\n private _onChange: (value: unknown) => void = () => { };\n private _onTouched: () => unknown = () => { };\n\n public controlDir: NgControl | null = null;\n\n public readonly change = output<IdsCheckBoxChangeEvent>();\n public readonly indeterminateChange = output<boolean>();\n\n private _inputElement = viewChild.required<ElementRef<HTMLInputElement>>('inputEl');\n\n private _hintMessages = contentChildren(IdsHintMessageComponent, { descendants: true });\n private _errorMessages = contentChildren(IdsErrorMessageComponent, { descendants: true });\n\n public ngOnChanges(changes: SimpleChanges): void {\n const checkedChange = changes['checked'] as SimpleChange | undefined;\n const indeterminateChange = changes['indeterminate'] as SimpleChange | undefined;\n if (indeterminateChange || checkedChange) {\n const currentChecked = checkedChange?.currentValue;\n const currentIndeterminate = indeterminateChange?.currentValue;\n if (currentIndeterminate === true) {\n this._checkboxState.set(IdsCheckboxState.INDETERMINATE);\n } else if (currentChecked === true) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n } else {\n this._checkboxState.set(IdsCheckboxState.UNCHECKED);\n }\n }\n }\n\n public ngOnInit(): void {\n this.controlDir = this._injector.get(NgControl, null, { self: true, optional: true });\n }\n\n public ngAfterViewInit(): void {\n if (this.indeterminate !== undefined) {\n this._syncIndeterminate(this.indeterminate());\n }\n }\n\n public focus(): void {\n this._inputElement().nativeElement.focus();\n }\n\n public writeValue(value: boolean): void {\n if (this._isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.INDETERMINATE);\n } else {\n this._checkboxState.set(value ? IdsCheckboxState.CHECKED : IdsCheckboxState.UNCHECKED);\n }\n }\n\n public registerOnChange(fn: () => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this._onTouched = fn;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n protected _createChangeEvent(isChecked: boolean, value: unknown): IdsCheckBoxChangeEvent {\n const event = new IdsCheckBoxChangeEvent();\n event.source = this;\n event.checked = isChecked;\n event.value = value;\n return event;\n }\n\n private _emitChangeEvent(): void {\n this._onChange(this._isChecked());\n this.change.emit(this._createChangeEvent(this._isChecked(), this.value()));\n this._syncChecked(this._isChecked());\n }\n\n public toggle(): void {\n if (this._isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n } else {\n this._checkboxState.set(this._checkboxState() === IdsCheckboxState.CHECKED ? IdsCheckboxState.UNCHECKED : IdsCheckboxState.CHECKED);\n }\n this._onChange(this._isChecked());\n }\n\n public select(): void {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n this._onChange(this._isChecked());\n }\n\n public deselect(): void {\n this._checkboxState.set(IdsCheckboxState.UNCHECKED);\n this._onChange(this._isChecked());\n }\n\n private _handleInputClick(): void {\n if (this._isIndeterminate()) {\n this._checkboxState.set(IdsCheckboxState.CHECKED);\n this.indeterminateChange.emit(this._isIndeterminate());\n } else {\n this._checkboxState.set(this._checkboxState() === IdsCheckboxState.CHECKED ? IdsCheckboxState.UNCHECKED : IdsCheckboxState.CHECKED);\n }\n\n this._emitChangeEvent();\n this._syncIndeterminate(this._isIndeterminate());\n }\n\n public onBlur(): void {\n Promise.resolve().then(() => {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private _syncChecked(value: boolean): void {\n const nativeCheckbox = this._inputElement();\n nativeCheckbox.nativeElement.checked = value;\n }\n\n private _syncIndeterminate(value: boolean): void {\n const nativeCheckbox = this._inputElement();\n nativeCheckbox.nativeElement.indeterminate = value;\n }\n\n public onInputClick(): void {\n if (!this.readonly() && !this.disabled()) {\n this._handleInputClick();\n }\n }\n\n public onTouchTargetClick(): void {\n if (!this.readonly() && !this.disabled()) {\n this._handleInputClick();\n }\n\n if (!this.disabled()) {\n this._inputElement().nativeElement.focus();\n }\n }\n\n public get displayedMessages(): 'error' | 'hint' | undefined {\n if (this._errorMessages().length > 0 && this.controlDir?.errors) {\n return 'error';\n }\n if (this._hintMessages().length > 0) {\n return 'hint';\n }\n return undefined;\n }\n\n protected get _hasRequiredValidator(): boolean {\n const control = this.controlDir?.control;\n if (!control) {\n return this.required();\n }\n return control.hasValidator(Validators.required)\n || control.hasValidator(Validators.requiredTrue)\n || control.hasValidator(IdsValidators.required)\n || control.hasValidator(IdsValidators.requiredTrue)\n || control.hasValidator(IdsValidators.requiredFalse);\n }\n}\n","<div class=\"ids-checkbox__input-wrapper\">\n <div class=\"ids-checkbox__touch-target\" (click)=\"onTouchTargetClick()\"></div>\n <input\n #inputEl\n type=\"checkbox\"\n [class.ids-checkbox--selected]=\"_isChecked()\"\n [id]=\"_inputId()\"\n [disabled]=\"disabled()\"\n [attr.aria-checked]=\"_isIndeterminate() ? 'mixed' : null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-describedby]=\"ariaDescribedby()\"\n [checked]=\"_isChecked()\"\n [indeterminate]=\"_isIndeterminate()\"\n [name]=\"name()\"\n [required]=\"required()\"\n [tabIndex]=\"!_isFocusable() ? -1 : tabIndex()\"\n [value]=\"_nativeValue()\"\n (blur)=\"onBlur()\"\n (click)=\"onInputClick()\"\n (change)=\"$event.stopPropagation()\"\n />\n <div class=\"ids-checkbox__icon\" aria-hidden=\"true\">\n @if (_isIndeterminate()) {\n <ids-icon fontIcon=\"minus\" aria-hidden=\"true\" />\n }\n @if (_isChecked()) {\n <ids-icon fontIcon=\"check\" aria-hidden=\"true\" />\n }\n </div>\n</div>\n\n<div class=\"ids-checkbox__label-wrapper\">\n <div class=\"ids-checkbox__label-container\">\n <label class=\"ids-checkbox__label\" [for]=\"_inputId()\">\n <ng-content />\n @if (_hasRequiredValidator) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\n </label>\n </div>\n @let messages = displayedMessages;\n @if (messages) {\n <div class=\"ids-checkbox__message-container\">\n @switch (messages) {\n @case (\"error\") {\n <ng-content select=\"ids-error-message\" />\n }\n @case (\"hint\") {\n <ng-content select=\"ids-hint-message\" />\n }\n }\n </div>\n }\n</div>\n","import { IDS_CHECKBOX_GROUP_DEFAULT_CONFIG, IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY, IdsCheckboxGroupDefaultConfig } from './checkbox-group-defaults';\nimport { IdsCheckboxComponent } from './checkbox.component';\nimport { IdsCheckBoxChangeEvent } from './types/checkbox-events.class';\nimport { IDS_CHECKBOX_GROUP_CHILD } from './types/checkbox-group-child';\nimport { IDS_CHECKBOX_PARENT, IdsCheckboxParent } from './types/checkbox-parent';\nimport { IdsCheckboxState } from './types/checkbox-state.type';\nimport { IdsCheckboxVariantType } from './types/checkbox-variant.type';\n\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, effect, input, ViewEncapsulation } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsOrientation, IdsOrientationType, IdsSizeType } from '@i-cell/ids-angular/core';\n\nconst defaultConfig = IDS_CHECKBOX_GROUP_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'ids-checkbox-group',\n imports: [IdsCheckboxComponent],\n templateUrl: './checkbox-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'group',\n '[attr.aria-labelledby]': '_groupLabelId()',\n },\n providers: [\n {\n provide: IDS_CHECKBOX_PARENT,\n useExisting: IdsCheckboxGroupComponent,\n },\n ],\n})\nexport class IdsCheckboxGroupComponent extends ComponentBaseWithDefaults<IdsCheckboxGroupDefaultConfig> implements IdsCheckboxParent {\n protected override get _hostName(): string {\n return 'checkbox-group';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_CHECKBOX_GROUP_DEFAULT_CONFIG);\n\n private _childCheckboxes = contentChildren(IDS_CHECKBOX_GROUP_CHILD);\n\n public groupLabel = input<string>('', { alias: 'label' });\n public allowParent = input<boolean>(this._defaultConfig.allowParent);\n public parentCheckboxLabel = input<string>('', { alias: 'parentLabel' });\n public name = input<string>();\n public size = input<IdsSizeType | null>(this._defaultConfig.size);\n public variant = input<IdsCheckboxVariantType | null>(this._defaultConfig.variant);\n public orientation = input<IdsOrientationType | null>(this._defaultConfig.orientation);\n\n protected _groupLabelId = computed(() => `${this.id()}-label`);\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.variant(),\n this.orientation(),\n ]));\n\n protected _parentCheckboxChecked = computed(() =>\n this._childCheckboxes().every((child) =>\n child.checkboxState() === IdsCheckboxState.CHECKED));\n\n protected _parentCheckboxIndeterminate = computed(() =>\n !this._parentCheckboxChecked() && this._childCheckboxes().some((child) =>\n child.checkboxState() === IdsCheckboxState.CHECKED),\n );\n\n private _invalidParentOrientation = effect(() => {\n if (this.allowParent() && this.orientation() === IdsOrientation.HORIZONTAL) {\n throw this._createHostError('Parent checkbox can be used only in vertical orientation');\n }\n });\n\n public selectAllChild(): void {\n this._childCheckboxes().forEach((child) => {\n child.select();\n });\n }\n\n public deselectAllChild(): void {\n this._childCheckboxes().forEach((child) => {\n child.deselect();\n });\n }\n\n protected _handleParentChange(event: IdsCheckBoxChangeEvent): void {\n if (event.checked) {\n this.selectAllChild();\n } else {\n this.deselectAllChild();\n }\n }\n}\n","<label class=\"ids-checkbox-group__label\" [for]=\"id()\" [id]=\"_groupLabelId()\">{{ groupLabel() }}</label>\n\n@if (allowParent()) {\n <ids-checkbox\n [checked]=\"_parentCheckboxChecked()\"\n [indeterminate]=\"_parentCheckboxIndeterminate()\"\n (change)=\"_handleParentChange($event)\"\n >{{ parentCheckboxLabel() }}</ids-checkbox\n >\n}\n\n<div class=\"ids-checkbox-group__list\">\n <ng-content select=\"ids-checkbox\" />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig"],"mappings":";;;;;;;MAEa,sBAAsB,CAAA;AAIlC;;ACNY,MAAA,gBAAgB,GAAG;AAC9B,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,aAAa,EAAE,eAAe;;;ACHnB,MAAA,kBAAkB,GAAG;AAChC,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;;;MCOD,2BAA2B,GAAG,IAAI,cAAc,CAC3D,6BAA6B,EAC7B;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,mCAAmC;AAC7C,CAAA;SAGa,mCAAmC,GAAA;IACjD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,OAAO,EAAE,kBAAkB,CAAC,OAAO;KACpC;AACH;;MCba,iCAAiC,GAAG,IAAI,cAAc,CACjE,mCAAmC,EACnC;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,yCAAyC;AACnD,CAAA;SAGa,yCAAyC,GAAA;IACvD,OAAO;AACL,QAAA,GAAG,mCAAmC,EAAE;QACxC,WAAW,EAAE,cAAc,CAAC,QAAQ;AACpC,QAAA,WAAW,EAAE,IAAI;KAClB;AACH;;ACdA;AACO,MAAM,wBAAwB,GAAG,IAAI,cAAc,CAAwB,0BAA0B,CAAC;;ACD7G;AACO,MAAM,mBAAmB,GAAG,IAAI,cAAc,CAAoB,qBAAqB,CAAC;;ACE/F,MAAMA,eAAa,GAAG,mCAAmC,EAAE;AA4BrD,MAAO,oBACX,SAAQ,yBAAmD,CAAA;AA3B7D,IAAA,WAAA,GAAA;;AAiCmB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAC5C,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,iBAAiB,CAACA,eAAa,EAAE,2BAA2B,CAAC;QAE9F,IAAc,CAAA,cAAA,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEhE,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAuB,gBAAgB,CAAC,SAAS,CAAC;AAC1E,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AAE7C,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAG,EAAA,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,CAAC;QAClD,IAAI,CAAA,IAAA,GAAG,KAAK,EAAiB;QAC7B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;QAC9D,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;QAC9D,IAAI,CAAA,IAAA,GAAG,KAAK,CAAc,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACnD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;QACzD,IAAK,CAAA,KAAA,GAAG,KAAK,EAAW;QACxB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAyB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QACpE,IAAO,CAAA,OAAA,GAAG,KAAK,CAAmB,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;QAC/E,IAAa,CAAA,aAAA,GAAG,KAAK,CAAmB,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;QACrF,IAAS,CAAA,SAAA,GAAG,KAAK,CAAS,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QACtD,IAAc,CAAA,cAAA,GAAG,KAAK,CAAgB,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACzE,IAAe,CAAA,eAAA,GAAG,KAAK,CAAS,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;AAElE,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,gBAAgB,CAAC,OAAO,CAAC;AAC/E,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,gBAAgB,CAAC,aAAa,CAAC;AAC3F,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC;YAC3D,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,GAAG,IAAI;AACpC,SAAA,CAAC,CACD;AAES,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,SAAS;AAC5C,SAAC,CAAC;AAEM,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAC9E,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AAEvF,QAAA,IAAA,CAAA,SAAS,GAA6B,MAAK,GAAI;AAC/C,QAAA,IAAA,CAAA,UAAU,GAAkB,MAAK,GAAI;QAEtC,IAAU,CAAA,UAAA,GAAqB,IAAI;QAE1B,IAAM,CAAA,MAAA,GAAG,MAAM,EAA0B;QACzC,IAAmB,CAAA,mBAAA,GAAG,MAAM,EAAW;AAE/C,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAAC,QAAQ,CAA+B,SAAS,CAAC;QAE3E,IAAa,CAAA,aAAA,GAAG,eAAe,CAAC,uBAAuB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC/E,IAAc,CAAA,cAAA,GAAG,eAAe,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAuJ1F;AAjNC,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,UAAU;;AA2DZ,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAA6B;AACpE,QAAA,MAAM,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAA6B;AAChF,QAAA,IAAI,mBAAmB,IAAI,aAAa,EAAE;AACxC,YAAA,MAAM,cAAc,GAAG,aAAa,EAAE,YAAY;AAClD,YAAA,MAAM,oBAAoB,GAAG,mBAAmB,EAAE,YAAY;AAC9D,YAAA,IAAI,oBAAoB,KAAK,IAAI,EAAE;gBACjC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC;;AAClD,iBAAA,IAAI,cAAc,KAAK,IAAI,EAAE;gBAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;;iBAC5C;gBACL,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC;;;;IAKlD,QAAQ,GAAA;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;IAGhF,eAAe,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;;;IAI1C,KAAK,GAAA;QACV,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;;AAGrC,IAAA,UAAU,CAAC,KAAc,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC;;aAClD;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC;;;AAInF,IAAA,gBAAgB,CAAC,EAAc,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGd,IAAA,iBAAiB,CAAC,EAAiB,EAAA;AACxC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAGf,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AAC1C,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;;IAGrB,kBAAkB,CAAC,SAAkB,EAAE,KAAc,EAAA;AAC7D,QAAA,MAAM,KAAK,GAAG,IAAI,sBAAsB,EAAE;AAC1C,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI;AACnB,QAAA,KAAK,CAAC,OAAO,GAAG,SAAS;AACzB,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACnB,QAAA,OAAO,KAAK;;IAGN,gBAAgB,GAAA;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;IAG/B,MAAM,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;;aAC5C;YACL,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,gBAAgB,CAAC,OAAO,GAAG,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC;;QAErI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;IAG5B,MAAM,GAAA;QACX,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;IAG5B,QAAQ,GAAA;QACb,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;IAG3B,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;;aACjD;YACL,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,gBAAgB,CAAC,OAAO,GAAG,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC;;QAGrI,IAAI,CAAC,gBAAgB,EAAE;QACvB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;;IAG3C,MAAM,GAAA;AACX,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;YAC1B,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,SAAC,CAAC;;AAGI,IAAA,YAAY,CAAC,KAAc,EAAA;AACjC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE;AAC3C,QAAA,cAAc,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK;;AAGtC,IAAA,kBAAkB,CAAC,KAAc,EAAA;AACvC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE;AAC3C,QAAA,cAAc,CAAC,aAAa,CAAC,aAAa,GAAG,KAAK;;IAG7C,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxC,IAAI,CAAC,iBAAiB,EAAE;;;IAIrB,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxC,IAAI,CAAC,iBAAiB,EAAE;;AAG1B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;;;AAI9C,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AAC/D,YAAA,OAAO,OAAO;;QAEhB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,YAAA,OAAO,MAAM;;AAEf,QAAA,OAAO,SAAS;;AAGlB,IAAA,IAAc,qBAAqB,GAAA;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO;QACxC,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;;AAExB,QAAA,OAAO,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ;AAC1C,eAAA,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY;AAC5C,eAAA,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ;AAC3C,eAAA,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY;AAC/C,eAAA,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC;;8GAlN7C,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAtBpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,oBAAoB;AACjC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,WAAW,EAAE,oBAAoB;AAClC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,WAAW,EAAE,oBAAoB;AAClC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAoEuC,uBAAuB,EACtB,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,wBAAwB,ECtGnE,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,yuDAuDA,4CDtCY,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAwBf,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA1BhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACf,OAAA,EAAA,CAAC,gBAAgB,CAAC,EAEhB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAsB,oBAAA;AACjC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,WAAW,EAAsB,oBAAA;AAClC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,WAAW,EAAsB,oBAAA;AAClC,yBAAA;AACF,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,wBAAwB,EAAE,MAAM;AACjC,qBAAA,EAAA,QAAA,EAAA,yuDAAA,EAAA;;;AE5BH,MAAM,aAAa,GAAG,yCAAyC,EAAE;AAmB3D,MAAO,yBAA0B,SAAQ,yBAAwD,CAAA;AAjBvG,IAAA,WAAA,GAAA;;QAsBqB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,iCAAiC,CAAC;AAEpG,QAAA,IAAA,CAAA,gBAAgB,GAAG,eAAe,CAAC,wBAAwB,CAAC;QAE7D,IAAU,CAAA,UAAA,GAAG,KAAK,CAAS,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAClD,IAAW,CAAA,WAAA,GAAG,KAAK,CAAU,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;QAC7D,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAS,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QACjE,IAAI,CAAA,IAAA,GAAG,KAAK,EAAU;QACtB,IAAI,CAAA,IAAA,GAAG,KAAK,CAAqB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC1D,IAAO,CAAA,OAAA,GAAG,KAAK,CAAgC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QAC3E,IAAW,CAAA,WAAA,GAAG,KAAK,CAA4B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;AAE5E,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAO,CAAG,EAAA,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,CAAC;QACrD,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC;YAC3D,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,WAAW,EAAE;AACnB,SAAA,CAAC,CAAC;AAEO,QAAA,IAAA,CAAA,sBAAsB,GAAG,QAAQ,CAAC,MAC1C,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAClC,KAAK,CAAC,aAAa,EAAE,KAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE9C,QAAA,IAAA,CAAA,4BAA4B,GAAG,QAAQ,CAAC,MAChD,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KACnE,KAAK,CAAC,aAAa,EAAE,KAAK,gBAAgB,CAAC,OAAO,CAAC,CACtD;AAEO,QAAA,IAAA,CAAA,yBAAyB,GAAG,MAAM,CAAC,MAAK;AAC9C,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,UAAU,EAAE;AAC1E,gBAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,0DAA0D,CAAC;;AAE3F,SAAC,CAAC;AAqBH;AAzDC,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,gBAAgB;;IAqClB,cAAc,GAAA;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YACxC,KAAK,CAAC,MAAM,EAAE;AAChB,SAAC,CAAC;;IAGG,gBAAgB,GAAA;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YACxC,KAAK,CAAC,QAAQ,EAAE;AAClB,SAAC,CAAC;;AAGM,IAAA,mBAAmB,CAAC,KAA6B,EAAA;AACzD,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,cAAc,EAAE;;aAChB;YACL,IAAI,CAAC,gBAAgB,EAAE;;;8GAvDhB,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAPzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,yBAAyB;AACvC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAS0C,wBAAwB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrCrE,mcAcA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCY,oBAAoB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAenB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAjBrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EACrB,OAAA,EAAA,CAAC,oBAAoB,CAAC,EAEhB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,MAAM,EAAE,OAAO;AACf,wBAAA,wBAAwB,EAAE,iBAAiB;qBAC5C,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAA2B,yBAAA;AACvC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,mcAAA,EAAA;;;AE5BH;;AAEG;;;;"}
|
|
@@ -39,13 +39,13 @@ class IdsDialogComponent extends ComponentBaseWithDefaults {
|
|
|
39
39
|
super(...arguments);
|
|
40
40
|
this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);
|
|
41
41
|
this.dialog = inject(ElementRef).nativeElement;
|
|
42
|
-
this.
|
|
42
|
+
this._titleId = computed(() => `${this.id()}-title`);
|
|
43
43
|
this.size = input(this._defaultConfig.size);
|
|
44
44
|
this.mainTitle = input.required();
|
|
45
45
|
this.subTitle = input();
|
|
46
46
|
this.showCloseButton = input(this._defaultConfig.showCloseButton);
|
|
47
47
|
this.showBackdrop = input(this._defaultConfig.showBackdrop);
|
|
48
|
-
this.
|
|
48
|
+
this._customHeader = contentChild(IdsDialogHeaderDirective);
|
|
49
49
|
this._hostClasses = computed(() => this._getHostClasses([
|
|
50
50
|
this.size(),
|
|
51
51
|
this.showBackdrop() ? 'with-backdrop' : null,
|
|
@@ -64,7 +64,7 @@ class IdsDialogComponent extends ComponentBaseWithDefaults {
|
|
|
64
64
|
this.dialog.close();
|
|
65
65
|
}
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsDialogComponent, isStandalone: true, selector: "dialog[idsDialog]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mainTitle: { classPropertyName: "mainTitle", publicName: "mainTitle", isSignal: true, isRequired: true, transformFunction: null }, subTitle: { classPropertyName: "subTitle", publicName: "subTitle", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "cancel": "_onCancel($event)" }, properties: { "attr.aria-labelledby": "
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsDialogComponent, isStandalone: true, selector: "dialog[idsDialog]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mainTitle: { classPropertyName: "mainTitle", publicName: "mainTitle", isSignal: true, isRequired: true, transformFunction: null }, subTitle: { classPropertyName: "subTitle", publicName: "subTitle", isSignal: true, isRequired: false, transformFunction: null }, showCloseButton: { classPropertyName: "showCloseButton", publicName: "showCloseButton", isSignal: true, isRequired: false, transformFunction: null }, showBackdrop: { classPropertyName: "showBackdrop", publicName: "showBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "cancel": "_onCancel($event)" }, properties: { "attr.aria-labelledby": "_titleId()" } }, queries: [{ propertyName: "_customHeader", first: true, predicate: IdsDialogHeaderDirective, descendants: true, isSignal: true }], exportAs: ["idsDialog"], usesInheritance: true, ngImport: i0, template: "<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n", dependencies: [{ kind: "directive", type: IdsDetectScrollableDirective, selector: "[idsDetectScrollable]", exportAs: ["idsDetectScrollable"] }, { kind: "component", type: IdsIconComponent, selector: "ids-icon", inputs: ["size", "sizeCollection", "variant", "fontIcon", "svgIcon", "aria-hidden"] }, { kind: "component", type: IdsIconButtonComponent, selector: "button[idsIconButton]", inputs: ["appearance", "size", "variant", "disabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
68
68
|
}
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsDialogComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
@@ -74,9 +74,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
|
|
|
74
74
|
IdsIconButtonComponent,
|
|
75
75
|
NgTemplateOutlet,
|
|
76
76
|
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'idsDialog', host: {
|
|
77
|
-
'[attr.aria-labelledby]': '
|
|
77
|
+
'[attr.aria-labelledby]': '_titleId()',
|
|
78
78
|
'(cancel)': '_onCancel($event)',
|
|
79
|
-
}, template: "<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (
|
|
79
|
+
}, template: "<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n" }]
|
|
80
80
|
}] });
|
|
81
81
|
|
|
82
82
|
class IdsCustomDialogBase {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-cell-ids-angular-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, contentChild, inject, input } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': 'titleId()',\n '(cancel)': '_onCancel($event)',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n public titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n public customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n private _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n }\n\n public close(): void {\n this.dialog.close();\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (customHeader()) {\n <ng-container [ngTemplateOutlet]=\"customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT);\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i-cell-ids-angular-dialog.mjs","sources":["../../../projects/widgets/dialog/dialog-defaults.ts","../../../projects/widgets/dialog/dialog-header.directive.ts","../../../projects/widgets/dialog/dialog.component.ts","../../../projects/widgets/dialog/dialog.component.html","../../../projects/widgets/dialog/custom-dialog-base.ts","../../../projects/widgets/dialog/dialog.service.ts","../../../projects/widgets/dialog/i-cell-ids-angular-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core';\n\nexport interface IdsDialogDefaultConfig {\n size?: IdsSizeType,\n showCloseButton?: boolean,\n showBackdrop?: boolean,\n}\n\nexport const IDS_DIALOG_DEFAULT_CONFIG = new InjectionToken<IdsDialogDefaultConfig>(\n 'IDS_DIALOG_DEFAULT_CONFIG',\n {\n providedIn: 'root',\n factory: IDS_DIALOG_DEFAULT_CONFIG_FACTORY,\n },\n);\n\nexport function IDS_DIALOG_DEFAULT_CONFIG_FACTORY(): Required<IdsDialogDefaultConfig> {\n return {\n size: IdsSize.COMPACT,\n showCloseButton: false,\n showBackdrop: true,\n };\n}\n\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[idsDialogHeader]',\n standalone: true,\n})\nexport class IdsDialogHeaderDirective {\n public template = inject(TemplateRef);\n}\n","import { IDS_DIALOG_DEFAULT_CONFIG, IDS_DIALOG_DEFAULT_CONFIG_FACTORY, IdsDialogDefaultConfig } from './dialog-defaults';\nimport { IdsDialogHeaderDirective } from './dialog-header.directive';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, contentChild, inject, input } from '@angular/core';\nimport { ComponentBaseWithDefaults, IdsDetectScrollableDirective, IdsSizeType } from '@i-cell/ids-angular/core';\nimport { IdsIconComponent } from '@i-cell/ids-angular/icon';\nimport { IdsIconButtonComponent } from '@i-cell/ids-angular/icon-button';\n\nconst defaultConfig = IDS_DIALOG_DEFAULT_CONFIG_FACTORY();\n\n@Component({\n selector: 'dialog[idsDialog]',\n imports: [\n IdsDetectScrollableDirective,\n IdsIconComponent,\n IdsIconButtonComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'idsDialog',\n host: {\n '[attr.aria-labelledby]': '_titleId()',\n '(cancel)': '_onCancel($event)',\n },\n})\nexport class IdsDialogComponent extends ComponentBaseWithDefaults<IdsDialogDefaultConfig> {\n protected override get _hostName(): string {\n return 'dialog';\n }\n\n protected readonly _defaultConfig = this._getDefaultConfig(defaultConfig, IDS_DIALOG_DEFAULT_CONFIG);\n\n public dialog = inject<ElementRef<HTMLDialogElement>>(ElementRef).nativeElement;\n\n protected _titleId = computed(() => `${this.id()}-title`);\n public size = input<IdsSizeType>(this._defaultConfig.size);\n public mainTitle = input.required<string>();\n public subTitle = input<string>();\n public showCloseButton = input<boolean>(this._defaultConfig.showCloseButton);\n public showBackdrop = input<boolean>(this._defaultConfig.showBackdrop);\n\n protected _customHeader = contentChild(IdsDialogHeaderDirective);\n\n protected _hostClasses = computed(() => this._getHostClasses([\n this.size(),\n this.showBackdrop() ? 'with-backdrop' : null,\n ]));\n\n private _onCancel(event: Event): void {\n event.preventDefault();\n }\n\n public open(): void {\n this.dialog.showModal();\n }\n\n public close(): void {\n this.dialog.close();\n }\n}\n","<section class=\"ids-dialog-container\">\n <header class=\"ids-dialog-header\">\n @if (_customHeader()) {\n <ng-container [ngTemplateOutlet]=\"_customHeader()!.template\" />\n } @else {\n <div class=\"ids-dialog-header-default-content\">\n <h2 class=\"ids-dialog-title\" [id]=\"_titleId()\">{{ mainTitle() }}</h2>\n @if (subTitle()) {\n <h3 class=\"ids-dialog-subtitle\">{{ subTitle() }}</h3>\n }\n </div>\n }\n\n @if (showCloseButton()) {\n <button\n type=\"button\"\n class=\"ids-dialog-close-button\"\n idsIconButton\n appearance=\"standard\"\n size=\"compact\"\n variant=\"surface\"\n (click)=\"close()\"\n >\n <ids-icon aria-hidden=\"true\" alt=\"\" fontIcon=\"close\" />\n </button>\n }\n </header>\n <div class=\"ids-dialog-content\" [class.ids-dialog-content-scrollable]=\"scrollDetector.isScrollable()\">\n <div #scrollDetector=\"idsDetectScrollable\" idsDetectScrollable class=\"ids-dialog-content-overflow\">\n <ng-content select=\"[idsDialogContent]\" />\n </div>\n </div>\n <footer class=\"ids-dialog-actions\">\n <ng-content select=\"[idsDialogActions]\" />\n </footer>\n</section>\n","import { IdsDialogComponent } from './dialog.component';\n\nimport { AfterViewInit, Directive, OnDestroy, viewChild } from '@angular/core';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\n\n@Directive({ standalone: true })\nexport abstract class IdsCustomDialogBase<ResultType = unknown> implements AfterViewInit, OnDestroy {\n public dialogResult = new Subject<ResultType | undefined>();\n\n protected _dialog = viewChild.required(IdsDialogComponent);\n\n private _closeSub?: Subscription;\n\n public ngAfterViewInit(): void {\n this._dialog().open();\n this._closeSub = fromEvent(this._dialog().dialog, 'close').subscribe(() => {\n this._setDialogResult();\n });\n }\n\n public ngOnDestroy(): void {\n this._closeSub?.unsubscribe();\n }\n\n public close(payload?: ResultType): void {\n this._closeSub?.unsubscribe();\n this._dialog().close();\n this._setDialogResult(payload);\n }\n\n private _setDialogResult(payload?: ResultType): void {\n this.dialogResult.next(payload);\n this.dialogResult.complete();\n }\n}\n","import { IdsCustomDialogBase } from './custom-dialog-base';\n\nimport { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, EnvironmentInjector, Injectable, Injector, Provider, Signal, StaticProvider, Type, createComponent, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IdsDialogService {\n private _appRef = inject(ApplicationRef);\n private _document = inject(DOCUMENT);\n private _injector = inject(EnvironmentInjector);\n\n public open<C extends IdsCustomDialogBase<R>, R = unknown>(\n component: Type<C>,\n options?: { providers?: (Provider | StaticProvider)[], inputs?: { [P in keyof C]?: C[P] extends Signal<infer T> ? T : C[P] } },\n ): Observable<R | undefined> {\n let elementInjector = undefined;\n\n if (options?.providers) {\n elementInjector = Injector.create({\n parent: this._injector,\n providers: options.providers,\n });\n }\n\n const createOptions = {\n environmentInjector: this._injector,\n ...(elementInjector && { elementInjector }),\n };\n const dialogRef = createComponent(component, createOptions);\n\n if (options?.inputs) {\n Object.keys(options.inputs).forEach((key) => dialogRef.setInput(key, options.inputs![key as keyof C]));\n }\n\n this._document.body.appendChild(dialogRef.location.nativeElement);\n\n this._appRef.attachView(dialogRef.hostView);\n\n const onClose = dialogRef.instance.dialogResult.asObservable();\n\n onClose.subscribe(() => {\n this._document.body.removeChild(dialogRef.location.nativeElement);\n dialogRef.destroy();\n },\n );\n\n return onClose;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MASa,yBAAyB,GAAG,IAAI,cAAc,CACzD,2BAA2B,EAC3B;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,iCAAiC;AAC3C,CAAA;SAGa,iCAAiC,GAAA;IAC/C,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,OAAO;AACrB,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,YAAY,EAAE,IAAI;KACnB;AACH;;MCjBa,wBAAwB,CAAA;AAJrC,IAAA,WAAA,GAAA;AAKS,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC;8GAFY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACID,MAAM,aAAa,GAAG,iCAAiC,EAAE;AAmBnD,MAAO,kBAAmB,SAAQ,yBAAiD,CAAA;AAjBzF,IAAA,WAAA,GAAA;;QAsBqB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,yBAAyB,CAAC;AAE7F,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAgC,UAAU,CAAC,CAAC,aAAa;AAErE,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAG,EAAA,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,CAAC;QAClD,IAAI,CAAA,IAAA,GAAG,KAAK,CAAc,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACnD,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAU;QACpC,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAU;QAC1B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAU,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;QACrE,IAAY,CAAA,YAAA,GAAG,KAAK,CAAU,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;AAE5D,QAAA,IAAA,CAAA,aAAa,GAAG,YAAY,CAAC,wBAAwB,CAAC;QAEtD,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC;YAC3D,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,YAAY,EAAE,GAAG,eAAe,GAAG,IAAI;AAC7C,SAAA,CAAC,CAAC;AAaJ;AAjCC,IAAA,IAAuB,SAAS,GAAA;AAC9B,QAAA,OAAO,QAAQ;;AAqBT,IAAA,SAAS,CAAC,KAAY,EAAA;QAC5B,KAAK,CAAC,cAAc,EAAE;;IAGjB,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;;IAGlB,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;8GAhCV,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAgBU,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5CjE,kuCAoCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDtBI,4BAA4B,EAAA,QAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC5B,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,sBAAsB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAWP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAjB9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACpB,OAAA,EAAA;wBACP,4BAA4B;wBAC5B,gBAAgB;wBAChB,sBAAsB;wBACtB,gBAAgB;qBACjB,EAEc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,WAAW,EACf,IAAA,EAAA;AACJ,wBAAA,wBAAwB,EAAE,YAAY;AACtC,wBAAA,UAAU,EAAE,mBAAmB;AAChC,qBAAA,EAAA,QAAA,EAAA,kuCAAA,EAAA;;;MEpBmB,mBAAmB,CAAA;AADzC,IAAA,WAAA,GAAA;AAES,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAA0B;AAEjD,QAAA,IAAA,CAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AAyB3D;IArBQ,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAK;YACxE,IAAI,CAAC,gBAAgB,EAAE;AACzB,SAAC,CAAC;;IAGG,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;;AAGxB,IAAA,KAAK,CAAC,OAAoB,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE;AAC7B,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;;AAGxB,IAAA,gBAAgB,CAAC,OAAoB,EAAA;AAC3C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;;8GA1BV,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,uFAGA,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAHrC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC,SAAS;mBAAC,EAAE,UAAU,EAAE,IAAI,EAAE;;;MCElB,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAuChD;IArCQ,IAAI,CACT,SAAkB,EAClB,OAA8H,EAAA;QAE9H,IAAI,eAAe,GAAG,SAAS;AAE/B,QAAA,IAAI,OAAO,EAAE,SAAS,EAAE;AACtB,YAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,SAAS;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;AAC7B,aAAA,CAAC;;AAGJ,QAAA,MAAM,aAAa,GAAG;YACpB,mBAAmB,EAAE,IAAI,CAAC,SAAS;AACnC,YAAA,IAAI,eAAe,IAAI,EAAE,eAAe,EAAE,CAAC;SAC5C;QACD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC;AAE3D,QAAA,IAAI,OAAO,EAAE,MAAM,EAAE;AACnB,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,MAAO,CAAC,GAAc,CAAC,CAAC,CAAC;;AAGxG,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEjE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;QAE3C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE;AAE9D,QAAA,OAAO,CAAC,SAAS,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;YACjE,SAAS,CAAC,OAAO,EAAE;AACrB,SAAC,CACA;AAED,QAAA,OAAO,OAAO;;8GAxCL,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA,CAAA;;2FACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACNlC;;AAEG;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, InjectionToken, Directive, input, contentChildren, computed, Input, inject, ElementRef, ChangeDetectorRef, viewChild, contentChild,
|
|
2
|
+
import { Injectable, signal, Component, ViewEncapsulation, ChangeDetectionStrategy, InjectionToken, Directive, input, contentChildren, computed, Input, inject, ElementRef, ChangeDetectorRef, viewChild, contentChild, booleanAttribute, effect, isDevMode, output } from '@angular/core';
|
|
3
3
|
import { ComponentBase, IdsSize, ComponentBaseWithDefaults, coerceBooleanAttribute } from '@i-cell/ids-angular/core';
|
|
4
4
|
import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { IdsIconComponent } from '@i-cell/ids-angular/icon';
|
|
6
|
-
import { tap, switchMap, startWith, of, Subject } from 'rxjs';
|
|
7
|
-
import { Validators, FormGroupDirective, NgForm, NgControl } from '@angular/forms';
|
|
6
|
+
import { observeOn, asapScheduler, tap, switchMap, startWith, of, Subject } from 'rxjs';
|
|
7
|
+
import { Validators, FormGroupDirective, NgForm, NgControl, StatusChangeEvent } from '@angular/forms';
|
|
8
8
|
import { hasModifierKey } from '@angular/cdk/keycodes';
|
|
9
9
|
|
|
10
10
|
class AbstractErrorStateMatcher {
|
|
@@ -387,7 +387,7 @@ class IdsErrorMessageComponent extends ComponentBase {
|
|
|
387
387
|
this._validationError = signal(null);
|
|
388
388
|
this._hostClasses = computed(() => this._getHostClasses([]));
|
|
389
389
|
this.suffixes = contentChildren(IdsMessageSuffixDirective);
|
|
390
|
-
toObservable(this._parent.
|
|
390
|
+
toObservable(this._parent.controlDir).pipe(observeOn(asapScheduler), tap((controlDir) => this._control.set(controlDir?.control ?? null)), switchMap(() => this._control()?.statusChanges.pipe(startWith(this._control()?.status)) ?? of(null)), takeUntilDestroyed(this._destroyRef)).subscribe((status) => {
|
|
391
391
|
if (status === 'INVALID') {
|
|
392
392
|
const nextError = this._selectMostImportantValidationError();
|
|
393
393
|
this._validationError.set(nextError);
|
|
@@ -477,26 +477,26 @@ class IdsFormFieldComponent extends ComponentBaseWithDefaults {
|
|
|
477
477
|
this._parentFieldset = inject(IdsFieldsetComponent, { optional: true });
|
|
478
478
|
this._defaultConfig = this._getDefaultConfig(defaultConfig$1, IDS_FORM_FIELD_DEFAULT_CONFIG);
|
|
479
479
|
this._fieldWrapper = viewChild.required('fieldWrapper');
|
|
480
|
-
this._child = contentChild(IDS_FORM_FIELD_CONTROL);
|
|
480
|
+
this._child = contentChild.required(IDS_FORM_FIELD_CONTROL);
|
|
481
481
|
this._hintMessages = contentChildren(IdsHintMessageComponent, { descendants: true });
|
|
482
482
|
this._successMessages = contentChildren(IdsSuccessMessageComponent, { descendants: true });
|
|
483
483
|
this._errorMessages = contentChildren(IdsErrorMessageComponent, { descendants: true });
|
|
484
484
|
this._actions = contentChildren(IdsFormFieldActionDirective);
|
|
485
485
|
this._prefixes = contentChildren(IdsPrefixDirective);
|
|
486
486
|
this._suffixes = contentChildren(IdsSuffixDirective);
|
|
487
|
-
this.
|
|
488
|
-
this.
|
|
489
|
-
this.
|
|
490
|
-
this.
|
|
491
|
-
this.
|
|
492
|
-
this.
|
|
487
|
+
this._hasActions = computed(() => Boolean(this._actions().length));
|
|
488
|
+
this._hasLeadingIcon = computed(() => Boolean(this._prefixes().filter((prefix) => prefix.isLeadingIcon).length));
|
|
489
|
+
this._hasPrefix = computed(() => Boolean(this._prefixes().filter((prefix) => !prefix.isLeadingIcon).length));
|
|
490
|
+
this._hasSuffix = computed(() => Boolean(this._suffixes().filter((suffix) => !suffix.isTrailingIcon).length));
|
|
491
|
+
this._hasTrailingIcon = computed(() => Boolean(this._suffixes().filter((suffix) => suffix.isTrailingIcon).length));
|
|
492
|
+
this._inputId = computed(() => this._child()?.id());
|
|
493
493
|
this.size = input(this._defaultConfig.size);
|
|
494
494
|
this.variant = input(this._defaultConfig.variant);
|
|
495
495
|
this.parentOrSelfSize = computed(() => this._parentFieldset?.size() ?? this.size());
|
|
496
496
|
this.parentOrSelfVariant = computed(() => this._parentFieldset?.variant() ?? this.variant());
|
|
497
|
-
this.
|
|
498
|
-
this.disabled = computed(() => Boolean(this._child()?.disabled()));
|
|
497
|
+
this.controlDir = computed(() => this._child().ngControl());
|
|
499
498
|
this._hasErrorState = computed(() => Boolean(this._child()?.hasErrorState()));
|
|
499
|
+
this.disabled = computed(() => Boolean(this._child()?.disabled()));
|
|
500
500
|
this._hasSuccessState = computed(() => Boolean(this._child()?.hasSuccessState()));
|
|
501
501
|
this._hostClasses = computed(() => this._getHostClasses([
|
|
502
502
|
this.parentOrSelfSize(),
|
|
@@ -505,7 +505,7 @@ class IdsFormFieldComponent extends ComponentBaseWithDefaults {
|
|
|
505
505
|
this._hasErrorState() ? 'invalid' : null,
|
|
506
506
|
this._hasSuccessState() ? 'valid' : null,
|
|
507
507
|
]));
|
|
508
|
-
this.
|
|
508
|
+
this._displayedMessages = computed(() => {
|
|
509
509
|
if (this._errorMessages().length > 0 && this._hasErrorState()) {
|
|
510
510
|
return 'error';
|
|
511
511
|
}
|
|
@@ -517,44 +517,34 @@ class IdsFormFieldComponent extends ComponentBaseWithDefaults {
|
|
|
517
517
|
}
|
|
518
518
|
return undefined;
|
|
519
519
|
});
|
|
520
|
+
this.hasRequiredValidator = computed(() => {
|
|
521
|
+
const control = this.controlDir()?.control;
|
|
522
|
+
return this._child().required()
|
|
523
|
+
|| control?.hasValidator(Validators.required)
|
|
524
|
+
|| control?.hasValidator(Validators.requiredTrue)
|
|
525
|
+
|| control?.hasValidator(IdsValidators.required)
|
|
526
|
+
|| control?.hasValidator(IdsValidators.requiredTrue)
|
|
527
|
+
|| control?.hasValidator(IdsValidators.requiredFalse);
|
|
528
|
+
});
|
|
520
529
|
}
|
|
521
530
|
get _hostName() {
|
|
522
531
|
return 'form-field';
|
|
523
532
|
}
|
|
524
|
-
ngAfterContentInit() {
|
|
525
|
-
if (isDevMode() && !this._child()) {
|
|
526
|
-
throw this._createHostError('no form element was provided');
|
|
527
|
-
}
|
|
528
|
-
this._child()?.ngControl?.statusChanges?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
|
|
529
|
-
this._changeDetectorRef.markForCheck();
|
|
530
|
-
});
|
|
531
|
-
}
|
|
532
|
-
get hasRequiredValidator() {
|
|
533
|
-
const control = this.control()?.control;
|
|
534
|
-
if (!control) {
|
|
535
|
-
return Boolean(this._child()?.required());
|
|
536
|
-
}
|
|
537
|
-
return control.hasValidator(Validators.required)
|
|
538
|
-
|| control.hasValidator(Validators.requiredTrue)
|
|
539
|
-
|| control.hasValidator(IdsValidators.required)
|
|
540
|
-
|| control.hasValidator(IdsValidators.requiredTrue)
|
|
541
|
-
|| control.hasValidator(IdsValidators.requiredFalse);
|
|
542
|
-
}
|
|
543
533
|
getConnectedOverlayOrigin() {
|
|
544
534
|
return this._fieldWrapper();
|
|
545
535
|
}
|
|
546
536
|
containerClick(event) {
|
|
547
|
-
const containerClick = this._child()
|
|
537
|
+
const containerClick = this._child().onContainerClick;
|
|
548
538
|
if (containerClick) {
|
|
549
539
|
containerClick(event);
|
|
550
540
|
}
|
|
551
541
|
}
|
|
552
542
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsFormFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
553
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsFormFieldComponent, isStandalone: true, selector: "ids-form-field", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "_child", first: true, predicate: IDS_FORM_FIELD_CONTROL, descendants: true, isSignal: true }, { propertyName: "_hintMessages", predicate: IdsHintMessageComponent, descendants: true, isSignal: true }, { propertyName: "_successMessages", predicate: IdsSuccessMessageComponent, descendants: true, isSignal: true }, { propertyName: "_errorMessages", predicate: IdsErrorMessageComponent, descendants: true, isSignal: true }, { propertyName: "_actions", predicate: IdsFormFieldActionDirective, isSignal: true }, { propertyName: "_prefixes", predicate: IdsPrefixDirective, isSignal: true }, { propertyName: "_suffixes", predicate: IdsSuffixDirective, isSignal: true }], viewQueries: [{ propertyName: "_fieldWrapper", first: true, predicate: ["fieldWrapper"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<label class=\"ids-form-field__label\" [for]=\"
|
|
543
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.2", type: IdsFormFieldComponent, isStandalone: true, selector: "ids-form-field", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "_child", first: true, predicate: IDS_FORM_FIELD_CONTROL, descendants: true, isSignal: true }, { propertyName: "_hintMessages", predicate: IdsHintMessageComponent, descendants: true, isSignal: true }, { propertyName: "_successMessages", predicate: IdsSuccessMessageComponent, descendants: true, isSignal: true }, { propertyName: "_errorMessages", predicate: IdsErrorMessageComponent, descendants: true, isSignal: true }, { propertyName: "_actions", predicate: IdsFormFieldActionDirective, isSignal: true }, { propertyName: "_prefixes", predicate: IdsPrefixDirective, isSignal: true }, { propertyName: "_suffixes", predicate: IdsSuffixDirective, isSignal: true }], viewQueries: [{ propertyName: "_fieldWrapper", first: true, predicate: ["fieldWrapper"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<label class=\"ids-form-field__label\" [for]=\"_inputId()\">\n <ng-content select=\"ids-label\" />\n @if (hasRequiredValidator()) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\n</label>\n\n<div #fieldWrapper class=\"ids-form-field__field-wrapper\">\n <div class=\"ids-form-field__field-wrapper__container\" (click)=\"containerClick($event)\">\n @if (_hasLeadingIcon()) {\n <div class=\"ids-form-field__leading-icon\">\n <ng-content select=\"ids-icon[idsLeadingIcon]\" />\n </div>\n }\n @if (_hasPrefix()) {\n <div class=\"ids-form-field__prefix\">\n <ng-content select=\"[idsPrefix]\" />\n </div>\n }\n <div class=\"ids-form-field__infix\">\n <ng-content />\n </div>\n @if (_hasSuffix()) {\n <div class=\"ids-form-field__suffix\">\n <ng-content select=\"[idsSuffix]\" />\n </div>\n }\n @if (_hasTrailingIcon()) {\n <div class=\"ids-form-field__trailing-icon\">\n <ng-content select=\"ids-icon[idsTrailingIcon]\" />\n </div>\n }\n </div>\n @if (_hasActions()) {\n <div class=\"ids-form-field__field-wrapper__action\">\n <ng-content select=\"[idsFormFieldAction]\" />\n </div>\n }\n</div>\n\n<div class=\"ids-form-field__subscript-wrapper\">\n @let messages = _displayedMessages();\n @if (messages) {\n <div class=\"ids-form-field__message-container\">\n @switch (messages) {\n @case (\"error\") {\n <ng-content select=\"ids-error-message\" />\n }\n @case (\"success\") {\n <ng-content select=\"ids-success-message\" />\n }\n @case (\"hint\") {\n <ng-content select=\"ids-hint-message\" />\n }\n }\n </div>\n }\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
554
544
|
}
|
|
555
545
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsFormFieldComponent, decorators: [{
|
|
556
546
|
type: Component,
|
|
557
|
-
args: [{ selector: 'ids-form-field', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label class=\"ids-form-field__label\" [for]=\"
|
|
547
|
+
args: [{ selector: 'ids-form-field', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label class=\"ids-form-field__label\" [for]=\"_inputId()\">\n <ng-content select=\"ids-label\" />\n @if (hasRequiredValidator()) {\n <span class=\"ids-form-field__required-marker\"></span>\n }\n</label>\n\n<div #fieldWrapper class=\"ids-form-field__field-wrapper\">\n <div class=\"ids-form-field__field-wrapper__container\" (click)=\"containerClick($event)\">\n @if (_hasLeadingIcon()) {\n <div class=\"ids-form-field__leading-icon\">\n <ng-content select=\"ids-icon[idsLeadingIcon]\" />\n </div>\n }\n @if (_hasPrefix()) {\n <div class=\"ids-form-field__prefix\">\n <ng-content select=\"[idsPrefix]\" />\n </div>\n }\n <div class=\"ids-form-field__infix\">\n <ng-content />\n </div>\n @if (_hasSuffix()) {\n <div class=\"ids-form-field__suffix\">\n <ng-content select=\"[idsSuffix]\" />\n </div>\n }\n @if (_hasTrailingIcon()) {\n <div class=\"ids-form-field__trailing-icon\">\n <ng-content select=\"ids-icon[idsTrailingIcon]\" />\n </div>\n }\n </div>\n @if (_hasActions()) {\n <div class=\"ids-form-field__field-wrapper__action\">\n <ng-content select=\"[idsFormFieldAction]\" />\n </div>\n }\n</div>\n\n<div class=\"ids-form-field__subscript-wrapper\">\n @let messages = _displayedMessages();\n @if (messages) {\n <div class=\"ids-form-field__message-container\">\n @switch (messages) {\n @case (\"error\") {\n <ng-content select=\"ids-error-message\" />\n }\n @case (\"success\") {\n <ng-content select=\"ids-success-message\" />\n }\n @case (\"hint\") {\n <ng-content select=\"ids-hint-message\" />\n }\n }\n </div>\n }\n</div>\n" }]
|
|
558
548
|
}] });
|
|
559
549
|
|
|
560
550
|
const IDS_INPUT_DEFAULT_CONFIG = new InjectionToken('IDS_INPUT_DEFAULT_CONFIG', {
|
|
@@ -589,19 +579,30 @@ class IdsInputDirective extends ComponentBaseWithDefaults {
|
|
|
589
579
|
this._defaultConfig = this._getDefaultConfig(defaultConfig, IDS_INPUT_DEFAULT_CONFIG);
|
|
590
580
|
this.errorStateChanges = new Subject();
|
|
591
581
|
this.successStateChanges = new Subject();
|
|
592
|
-
this.ngControl = inject(NgControl);
|
|
582
|
+
this.ngControl = signal(inject(NgControl, { self: true }));
|
|
593
583
|
this._focused = false;
|
|
594
584
|
this.placeholder = input('');
|
|
595
585
|
this.name = input();
|
|
596
586
|
this.type = input('text');
|
|
597
|
-
this.required = input(false, { transform:
|
|
598
|
-
this.readonly = input(false, { transform:
|
|
599
|
-
this.disabled = input(false, { transform: coerceBooleanAttribute });
|
|
600
|
-
this._controlDisabled = signal(false);
|
|
601
|
-
this.isDisabled = computed(() => this.disabled() || this._controlDisabled());
|
|
587
|
+
this.required = input(false, { transform: booleanAttribute });
|
|
588
|
+
this.readonly = input(false, { transform: booleanAttribute });
|
|
602
589
|
this.canHandleSuccessState = input(false);
|
|
603
590
|
this.errorStateMatcher = input(inject(this._defaultConfig.errorStateMatcher));
|
|
604
591
|
this.successStateMatcher = input(inject(this._defaultConfig.successStateMatcher));
|
|
592
|
+
/** Handles the `disabled` input binding */
|
|
593
|
+
this.disabledInput = input(false, { transform: booleanAttribute, alias: 'disabled' });
|
|
594
|
+
/** Stores the `disabled` state internally */
|
|
595
|
+
this._disabled = signal(this.disabledInput());
|
|
596
|
+
/** The input's `disabled` state as a read-only signal (to enable/disable the contol programmatically, use the FormControl's related API) */
|
|
597
|
+
this.disabled = computed(() => this._disabled());
|
|
598
|
+
/** This effect is triggered if the `disabled` attribute binding changes and delegates the change to the underlying FormControl */
|
|
599
|
+
this._disabledInputEffect = effect(() => {
|
|
600
|
+
const enableOrDisable = this.disabledInput() ? 'disable' : 'enable';
|
|
601
|
+
const controlDir = this.ngControl();
|
|
602
|
+
// The NgControl's `control` property might not be initialized so we delay the enable/disable call
|
|
603
|
+
// (the FormControl's enable/disable method call will trigger a StatusChangeEvent then we can update the `disabled` signal)
|
|
604
|
+
queueMicrotask(() => controlDir?.control?.[enableOrDisable]());
|
|
605
|
+
});
|
|
605
606
|
this._hostClasses = computed(() => this._getHostClasses([], [formFieldControlClass]));
|
|
606
607
|
this.hasErrorState = signal(false);
|
|
607
608
|
this.hasSuccessState = signal(false);
|
|
@@ -615,7 +616,7 @@ class IdsInputDirective extends ComponentBaseWithDefaults {
|
|
|
615
616
|
* Should be an arrow function in order to handle `this` outside of this class
|
|
616
617
|
*/
|
|
617
618
|
this.onContainerClick = () => {
|
|
618
|
-
if (!this._focused && !this.readonly() && !this.
|
|
619
|
+
if (!this._focused && !this.readonly() && !this.disabled) {
|
|
619
620
|
this.focus();
|
|
620
621
|
}
|
|
621
622
|
};
|
|
@@ -634,26 +635,28 @@ class IdsInputDirective extends ComponentBaseWithDefaults {
|
|
|
634
635
|
ngOnInit() {
|
|
635
636
|
this._initErrorStateTracker();
|
|
636
637
|
}
|
|
638
|
+
ngAfterViewInit() {
|
|
639
|
+
const control = this.ngControl()?.control;
|
|
640
|
+
if (control) {
|
|
641
|
+
this._disabled.set(control.status === 'DISABLED');
|
|
642
|
+
control.events.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((event) => this.updateControlState(event));
|
|
643
|
+
}
|
|
644
|
+
}
|
|
637
645
|
_initErrorStateTracker() {
|
|
638
|
-
this._errorStateTracker = new ErrorStateTracker(this.errorStateMatcher(), this.ngControl, this._parentFormGroup, this._parentForm, this.errorStateChanges);
|
|
646
|
+
this._errorStateTracker = new ErrorStateTracker(this.errorStateMatcher(), this.ngControl(), this._parentFormGroup, this._parentForm, this.errorStateChanges);
|
|
639
647
|
this.errorStateChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.hasErrorState.set(this._errorStateTracker.hasErrorState));
|
|
648
|
+
this._errorStateTracker.updateErrorState();
|
|
640
649
|
}
|
|
641
650
|
_setSuccessStateTracker(canHandleSuccessState) {
|
|
642
651
|
if (canHandleSuccessState) {
|
|
643
|
-
this._successStateTracker = new SuccessStateTracker(this.successStateMatcher(), this.ngControl, this._parentFormGroup, this._parentForm, this.successStateChanges);
|
|
652
|
+
this._successStateTracker = new SuccessStateTracker(this.successStateMatcher(), this.ngControl(), this._parentFormGroup, this._parentForm, this.successStateChanges);
|
|
644
653
|
this._successStateSubscription = this.successStateChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.hasSuccessState.set(this._successStateTracker.hasSuccessState));
|
|
654
|
+
this._successStateTracker.updateSuccessState();
|
|
645
655
|
}
|
|
646
656
|
else {
|
|
647
657
|
this._successStateTracker = undefined;
|
|
648
658
|
this._successStateSubscription?.unsubscribe();
|
|
649
|
-
|
|
650
|
-
}
|
|
651
|
-
ngDoCheck() {
|
|
652
|
-
if (this.ngControl) {
|
|
653
|
-
this.updateErrorAndSuccessState();
|
|
654
|
-
if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled()) {
|
|
655
|
-
this._controlDisabled.set(this.ngControl.disabled);
|
|
656
|
-
}
|
|
659
|
+
this.hasSuccessState.set(false);
|
|
657
660
|
}
|
|
658
661
|
}
|
|
659
662
|
_validateType(type) {
|
|
@@ -669,12 +672,15 @@ class IdsInputDirective extends ComponentBaseWithDefaults {
|
|
|
669
672
|
this._focused = isFocused;
|
|
670
673
|
}
|
|
671
674
|
}
|
|
672
|
-
|
|
675
|
+
updateControlState(event) {
|
|
673
676
|
this._errorStateTracker?.updateErrorState();
|
|
674
677
|
this._successStateTracker?.updateSuccessState();
|
|
678
|
+
if (event instanceof StatusChangeEvent) {
|
|
679
|
+
this._disabled.set(event.status === 'DISABLED');
|
|
680
|
+
}
|
|
675
681
|
}
|
|
676
682
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.2", ngImport: i0, type: IdsInputDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
677
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.2", type: IdsInputDirective, isStandalone: true, selector: "input[idsInput][ngModel]:not([formControl]):not([formControlName]),\n input[idsInput][formControl]:not([ngModel]):not([formControlName]),\n input[idsInput][formControlName]:not([ngModel]):not([formControl]),\n textarea[idsInput][ngModel]:not([formControl]):not([formControlName]),\n textarea[idsInput][formControl]:not([ngModel]):not([formControlName]),\n textarea[idsInput][formControlName]:not([ngModel]):not([formControl])", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null },
|
|
683
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.2", type: IdsInputDirective, isStandalone: true, selector: "input[idsInput][ngModel]:not([formControl]):not([formControlName]),\n input[idsInput][formControl]:not([ngModel]):not([formControlName]),\n input[idsInput][formControlName]:not([ngModel]):not([formControl]),\n textarea[idsInput][ngModel]:not([formControl]):not([formControlName]),\n textarea[idsInput][formControl]:not([ngModel]):not([formControlName]),\n textarea[idsInput][formControlName]:not([ngModel]):not([formControl])", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, canHandleSuccessState: { classPropertyName: "canHandleSuccessState", publicName: "canHandleSuccessState", isSignal: true, isRequired: false, transformFunction: null }, errorStateMatcher: { classPropertyName: "errorStateMatcher", publicName: "errorStateMatcher", isSignal: true, isRequired: false, transformFunction: null }, successStateMatcher: { classPropertyName: "successStateMatcher", publicName: "successStateMatcher", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focus": "_focusChanged(true)", "blur": "_focusChanged(false)" }, properties: { "attr.placeholder": "placeholder()", "attr.disabled": "disabled() ? \"\" : null", "attr.readonly": "readonly() ? \"\" : null" } }, providers: [
|
|
678
684
|
{
|
|
679
685
|
provide: IDS_FORM_FIELD_CONTROL,
|
|
680
686
|
useExisting: IdsInputDirective,
|
|
@@ -700,7 +706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.2", ngImpor
|
|
|
700
706
|
],
|
|
701
707
|
host: {
|
|
702
708
|
'[attr.placeholder]': 'placeholder()',
|
|
703
|
-
'[attr.disabled]': '
|
|
709
|
+
'[attr.disabled]': 'disabled() ? "" : null',
|
|
704
710
|
'[attr.readonly]': 'readonly() ? "" : null',
|
|
705
711
|
'(focus)': '_focusChanged(true)',
|
|
706
712
|
'(blur)': '_focusChanged(false)',
|
|
@@ -807,7 +813,6 @@ class IdsOptionComponent extends ComponentBase {
|
|
|
807
813
|
this.disabledInput = input(false, { alias: 'disabled', transform: coerceBooleanAttribute });
|
|
808
814
|
this.disabled = false; // Do not delete this class member, until ListKeyManagerOption requires: `disabled: boolean`
|
|
809
815
|
this._groupOrOptionIsDisabled = computed(() => this.group?.disabled() || this.disabledInput());
|
|
810
|
-
// FIXME: Ha túl korán inicializálódik, a parent-ben még lehet, h később változik az érték!
|
|
811
816
|
this._multiSelect = Boolean(this._parent?.multiSelect());
|
|
812
817
|
this.onSelectionChange = output();
|
|
813
818
|
this.viewValue = computed(() => this._textElement().nativeElement.textContent || this.explicitViewValue() || '');
|