@angular/aria 21.0.0-rc.3 → 21.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/combobox/combobox.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\nimport {\n DeferredContent,\n DeferredContentAware,\n ComboboxPattern,\n ComboboxListboxControls,\n ComboboxTreeControls,\n ComboboxDialogPattern,\n} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {toSignal} from '@angular/core/rxjs-interop';\n\n/**\n * The container element that wraps a combobox input and popup, and orchestrates its behavior.\n *\n * The `ngCombobox` directive is the main entry point for creating a combobox and customizing its\n * behavior. It coordinates the interactions between the `ngComboboxInput` and the popup, which\n * is defined by a `ng-template` with the `ngComboboxPopupContainer` directive. If using the\n * `CdkOverlay`, the `cdkConnectedOverlay` directive takes the place of `ngComboboxPopupContainer`.\n *\n * ```html\n * <div ngCombobox filterMode=\"highlight\">\n * <input\n * ngComboboxInput\n * placeholder=\"Search for a state...\"\n * [(value)]=\"searchString\"\n * />\n *\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * @for (option of filteredOptions(); track option) {\n * <div ngOption [value]=\"option\" [label]=\"option\">\n * <span>{{option}}</span>\n * </div>\n * }\n * </div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n '[attr.data-expanded]': 'expanded()',\n '(input)': '_pattern.onInput($event)',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n})\nexport class Combobox<V> {\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n private readonly _directionality = inject(Directionality);\n\n /** A signal wrapper for directionality. */\n protected textDirection = toSignal(this._directionality.change, {\n initialValue: this._directionality.value,\n });\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the combobox element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The combobox popup. */\n readonly popup = contentChild<ComboboxPopup<V>>(ComboboxPopup);\n\n /**\n * The filter mode for the combobox.\n * - `manual`: The consumer is responsible for filtering the options.\n * - `auto-select`: The combobox automatically selects the first matching option.\n * - `highlight`: The combobox highlights matching text in the options without changing selection.\n */\n filterMode = input<'manual' | 'auto-select' | 'highlight'>('manual');\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is read-only. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The value of the first matching item in the popup. */\n readonly firstMatch = input<V | undefined>(undefined);\n\n /** Whether the combobox is expanded. */\n readonly expanded = computed(() => this.alwaysExpanded() || this._pattern.expanded());\n\n // TODO: Maybe make expanded a signal that can be passed in?\n // Or an \"always expanded\" option?\n\n /** Whether the combobox popup should always be expanded, regardless of user interaction. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** Input element connected to the combobox, if any. */\n readonly inputElement = computed(() => this._pattern.inputs.inputEl());\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern<any, V>({\n ...this,\n textDirection: this.textDirection,\n disabled: this.disabled,\n readonly: this.readonly,\n inputValue: signal(''),\n inputEl: signal(undefined),\n containerEl: () => this._elementRef.nativeElement,\n popupControls: () => this.popup()?._controls(),\n });\n\n constructor() {\n afterRenderEffect(() => {\n if (this.alwaysExpanded()) {\n this._pattern.expanded.set(true);\n }\n });\n\n afterRenderEffect(() => {\n if (\n !this._deferredContentAware?.contentVisible() &&\n (this._pattern.isFocused() || this.alwaysExpanded())\n ) {\n this._deferredContentAware?.contentVisible.set(true);\n }\n });\n }\n\n /** Opens the combobox to the selected item. */\n open() {\n this._pattern.open({selected: true});\n }\n\n /** Closes the combobox. */\n close() {\n this._pattern.close();\n }\n}\n\n/**\n * An input that is part of a combobox. It is responsible for displaying the\n * current value and handling user input for filtering and selection.\n *\n * This directive should be applied to an `<input>` element within an `ngCombobox`\n * container. It automatically handles keyboard interactions, such as opening the\n * popup and navigating through the options.\n *\n * ```html\n * <input\n * ngComboboxInput\n * placeholder=\"Search...\"\n * [(value)]=\"searchString\"\n * />\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'input[ngComboboxInput]',\n exportAs: 'ngComboboxInput',\n host: {\n 'role': 'combobox',\n '[value]': 'value()',\n '[attr.aria-disabled]': 'combobox._pattern.disabled()',\n '[attr.aria-expanded]': 'combobox._pattern.expanded()',\n '[attr.aria-activedescendant]': 'combobox._pattern.activeDescendant()',\n '[attr.aria-controls]': 'combobox._pattern.popupId()',\n '[attr.aria-haspopup]': 'combobox._pattern.hasPopup()',\n '[attr.aria-autocomplete]': 'combobox._pattern.autocomplete()',\n '[attr.readonly]': 'combobox._pattern.readonly()',\n },\n})\nexport class ComboboxInput {\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the input belongs to. */\n readonly combobox = inject(Combobox);\n\n /** The value of the input. */\n value = model<string>('');\n\n constructor() {\n (this.combobox._pattern.inputs.inputEl as WritableSignal<HTMLInputElement>).set(\n this._elementRef.nativeElement,\n );\n this.combobox._pattern.inputs.inputValue = this.value;\n\n const controls = this.combobox.popup()?._controls();\n if (controls instanceof ComboboxDialogPattern) {\n return;\n }\n\n /** Focuses & selects the first item in the combobox if the user changes the input value. */\n afterRenderEffect(() => {\n this.value();\n controls?.items();\n untracked(() => this.combobox._pattern.onFilter());\n });\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the popup\n * for a combobox. This content is conditionally rendered.\n *\n * The content of the popup can be a `ngListbox`, `ngTree`, or `role=\"dialog\"`, allowing for\n * flexible and complex combobox implementations. The consumer is responsible for\n * implementing the filtering logic based on the `ngComboboxInput`'s value.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * When using CdkOverlay, this directive can be replaced by `cdkConnectedOverlay`.\n *\n * ```html\n * <ng-template\n * [cdkConnectedOverlay]=\"{origin: inputElement, usePopover: 'inline' matchWidth: true}\"\n * [cdkConnectedOverlayOpen]=\"combobox.expanded()\">\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\n\n/**\n * Identifies an element as a popup for an `ngCombobox`.\n *\n * This directive acts as a bridge, allowing the `ngCombobox` to discover and interact\n * with the underlying control (e.g., `ngListbox`, `ngTree`, or `ngComboboxDialog`) that\n * manages the options. It's primarily used as a host directive and is responsible for\n * exposing the popup's control pattern to the parent combobox.\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n})\nexport class ComboboxPopup<V> {\n /** The combobox that the popup belongs to. */\n readonly combobox = inject<Combobox<V>>(Combobox, {optional: true});\n\n /** The popup controls exposed to the combobox. */\n readonly _controls = signal<\n | ComboboxListboxControls<any, V>\n | ComboboxTreeControls<any, V>\n | ComboboxDialogPattern\n | undefined\n >(undefined);\n}\n\n/**\n * Integrates a native `<dialog>` element with the combobox, allowing for\n * a modal or non-modal popup experience. It handles the opening and closing of the dialog\n * based on the combobox's expanded state.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <dialog ngComboboxDialog class=\"example-dialog\">\n * <!-- ... dialog content ... -->\n * </dialog>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'dialog[ngComboboxDialog]',\n exportAs: 'ngComboboxDialog',\n host: {\n '[attr.data-open]': 'combobox._pattern.expanded()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class ComboboxDialog {\n /** The dialog element. */\n private readonly _elementRef = inject(ElementRef<HTMLDialogElement>);\n\n /** A reference to the dialog element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the dialog belongs to. */\n readonly combobox = inject(Combobox);\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<unknown>>(ComboboxPopup, {\n optional: true,\n });\n\n _pattern: ComboboxDialogPattern;\n\n constructor() {\n this._pattern = new ComboboxDialogPattern({\n id: () => '',\n element: () => this._elementRef.nativeElement,\n combobox: this.combobox._pattern,\n });\n\n if (this._popup) {\n this._popup._controls.set(this._pattern);\n }\n\n afterRenderEffect(() => {\n if (this._elementRef) {\n this.combobox._pattern.expanded()\n ? this._elementRef.nativeElement.showModal()\n : this._elementRef.nativeElement.close();\n }\n });\n }\n\n close() {\n this._popup?.combobox?._pattern.close();\n }\n}\n"],"names":["Combobox","_directionality","inject","Directionality","textDirection","toSignal","change","initialValue","value","_elementRef","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","optional","popup","contentChild","ComboboxPopup","filterMode","input","disabled","transform","booleanAttribute","readonly","firstMatch","undefined","expanded","computed","alwaysExpanded","_pattern","inputElement","inputs","inputEl","ComboboxPattern","inputValue","signal","containerEl","popupControls","_controls","constructor","afterRenderEffect","set","contentVisible","isFocused","open","selected","close","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","descendants","isSignal","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","selector","host","ComboboxInput","combobox","model","controls","ComboboxDialogPattern","items","untracked","onFilter","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","attributes","properties","ComboboxPopupContainer","DeferredContent","ComboboxDialog","_popup","id","showModal"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/combobox/combobox.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\nimport {\n DeferredContent,\n DeferredContentAware,\n ComboboxPattern,\n ComboboxListboxControls,\n ComboboxTreeControls,\n ComboboxDialogPattern,\n} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {toSignal} from '@angular/core/rxjs-interop';\n\n/**\n * The container element that wraps a combobox input and popup, and orchestrates its behavior.\n *\n * The `ngCombobox` directive is the main entry point for creating a combobox and customizing its\n * behavior. It coordinates the interactions between the `ngComboboxInput` and the popup, which\n * is defined by a `ng-template` with the `ngComboboxPopupContainer` directive. If using the\n * `CdkOverlay`, the `cdkConnectedOverlay` directive takes the place of `ngComboboxPopupContainer`.\n *\n * ```html\n * <div ngCombobox filterMode=\"highlight\">\n * <input\n * ngComboboxInput\n * placeholder=\"Search for a state...\"\n * [(value)]=\"searchString\"\n * />\n *\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * @for (option of filteredOptions(); track option) {\n * <div ngOption [value]=\"option\" [label]=\"option\">\n * <span>{{option}}</span>\n * </div>\n * }\n * </div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n '[attr.data-expanded]': 'expanded()',\n '(input)': '_pattern.onInput($event)',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n})\nexport class Combobox<V> {\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n private readonly _directionality = inject(Directionality);\n\n /** A signal wrapper for directionality. */\n protected textDirection = toSignal(this._directionality.change, {\n initialValue: this._directionality.value,\n });\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the combobox element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The combobox popup. */\n readonly popup = contentChild<ComboboxPopup<V>>(\n // We need a `forwardRef` here, because the popup class is declared further down\n // in the same file. When the reference is written to Angular's metadata this can\n // cause an attempt to access the class before it's defined.\n forwardRef(() => ComboboxPopup),\n );\n\n /**\n * The filter mode for the combobox.\n * - `manual`: The consumer is responsible for filtering the options.\n * - `auto-select`: The combobox automatically selects the first matching option.\n * - `highlight`: The combobox highlights matching text in the options without changing selection.\n */\n filterMode = input<'manual' | 'auto-select' | 'highlight'>('manual');\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is read-only. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** The value of the first matching item in the popup. */\n readonly firstMatch = input<V | undefined>(undefined);\n\n /** Whether the combobox is expanded. */\n readonly expanded = computed(() => this.alwaysExpanded() || this._pattern.expanded());\n\n // TODO: Maybe make expanded a signal that can be passed in?\n // Or an \"always expanded\" option?\n\n /** Whether the combobox popup should always be expanded, regardless of user interaction. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** Input element connected to the combobox, if any. */\n readonly inputElement = computed(() => this._pattern.inputs.inputEl());\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern<any, V>({\n ...this,\n textDirection: this.textDirection,\n disabled: this.disabled,\n readonly: this.readonly,\n inputValue: signal(''),\n inputEl: signal(undefined),\n containerEl: () => this._elementRef.nativeElement,\n popupControls: () => this.popup()?._controls(),\n });\n\n constructor() {\n afterRenderEffect(() => {\n if (this.alwaysExpanded()) {\n this._pattern.expanded.set(true);\n }\n });\n\n afterRenderEffect(() => {\n if (\n !this._deferredContentAware?.contentVisible() &&\n (this._pattern.isFocused() || this.alwaysExpanded())\n ) {\n this._deferredContentAware?.contentVisible.set(true);\n }\n });\n }\n\n /** Opens the combobox to the selected item. */\n open() {\n this._pattern.open({selected: true});\n }\n\n /** Closes the combobox. */\n close() {\n this._pattern.close();\n }\n}\n\n/**\n * An input that is part of a combobox. It is responsible for displaying the\n * current value and handling user input for filtering and selection.\n *\n * This directive should be applied to an `<input>` element within an `ngCombobox`\n * container. It automatically handles keyboard interactions, such as opening the\n * popup and navigating through the options.\n *\n * ```html\n * <input\n * ngComboboxInput\n * placeholder=\"Search...\"\n * [(value)]=\"searchString\"\n * />\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'input[ngComboboxInput]',\n exportAs: 'ngComboboxInput',\n host: {\n 'role': 'combobox',\n '[value]': 'value()',\n '[attr.aria-disabled]': 'combobox._pattern.disabled()',\n '[attr.aria-expanded]': 'combobox._pattern.expanded()',\n '[attr.aria-activedescendant]': 'combobox._pattern.activeDescendant()',\n '[attr.aria-controls]': 'combobox._pattern.popupId()',\n '[attr.aria-haspopup]': 'combobox._pattern.hasPopup()',\n '[attr.aria-autocomplete]': 'combobox._pattern.autocomplete()',\n '[attr.readonly]': 'combobox._pattern.readonly()',\n },\n})\nexport class ComboboxInput {\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the input belongs to. */\n readonly combobox = inject(Combobox);\n\n /** The value of the input. */\n value = model<string>('');\n\n constructor() {\n (this.combobox._pattern.inputs.inputEl as WritableSignal<HTMLInputElement>).set(\n this._elementRef.nativeElement,\n );\n this.combobox._pattern.inputs.inputValue = this.value;\n\n const controls = this.combobox.popup()?._controls();\n if (controls instanceof ComboboxDialogPattern) {\n return;\n }\n\n /** Focuses & selects the first item in the combobox if the user changes the input value. */\n afterRenderEffect(() => {\n this.value();\n controls?.items();\n untracked(() => this.combobox._pattern.onFilter());\n });\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the popup\n * for a combobox. This content is conditionally rendered.\n *\n * The content of the popup can be a `ngListbox`, `ngTree`, or `role=\"dialog\"`, allowing for\n * flexible and complex combobox implementations. The consumer is responsible for\n * implementing the filtering logic based on the `ngComboboxInput`'s value.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * When using CdkOverlay, this directive can be replaced by `cdkConnectedOverlay`.\n *\n * ```html\n * <ng-template\n * [cdkConnectedOverlay]=\"{origin: inputElement, usePopover: 'inline' matchWidth: true}\"\n * [cdkConnectedOverlayOpen]=\"combobox.expanded()\">\n * <div ngListbox [(value)]=\"selectedValue\">\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\n\n/**\n * Identifies an element as a popup for an `ngCombobox`.\n *\n * This directive acts as a bridge, allowing the `ngCombobox` to discover and interact\n * with the underlying control (e.g., `ngListbox`, `ngTree`, or `ngComboboxDialog`) that\n * manages the options. It's primarily used as a host directive and is responsible for\n * exposing the popup's control pattern to the parent combobox.\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n})\nexport class ComboboxPopup<V> {\n /** The combobox that the popup belongs to. */\n readonly combobox = inject<Combobox<V>>(Combobox, {optional: true});\n\n /** The popup controls exposed to the combobox. */\n readonly _controls = signal<\n | ComboboxListboxControls<any, V>\n | ComboboxTreeControls<any, V>\n | ComboboxDialogPattern\n | undefined\n >(undefined);\n}\n\n/**\n * Integrates a native `<dialog>` element with the combobox, allowing for\n * a modal or non-modal popup experience. It handles the opening and closing of the dialog\n * based on the combobox's expanded state.\n *\n * ```html\n * <ng-template ngComboboxPopupContainer>\n * <dialog ngComboboxDialog class=\"example-dialog\">\n * <!-- ... dialog content ... -->\n * </dialog>\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'dialog[ngComboboxDialog]',\n exportAs: 'ngComboboxDialog',\n host: {\n '[attr.data-open]': 'combobox._pattern.expanded()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class ComboboxDialog {\n /** The dialog element. */\n private readonly _elementRef = inject(ElementRef<HTMLDialogElement>);\n\n /** A reference to the dialog element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The combobox that the dialog belongs to. */\n readonly combobox = inject(Combobox);\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<unknown>>(ComboboxPopup, {\n optional: true,\n });\n\n _pattern: ComboboxDialogPattern;\n\n constructor() {\n this._pattern = new ComboboxDialogPattern({\n id: () => '',\n element: () => this._elementRef.nativeElement,\n combobox: this.combobox._pattern,\n });\n\n if (this._popup) {\n this._popup._controls.set(this._pattern);\n }\n\n afterRenderEffect(() => {\n if (this._elementRef) {\n this.combobox._pattern.expanded()\n ? this._elementRef.nativeElement.showModal()\n : this._elementRef.nativeElement.close();\n }\n });\n }\n\n close() {\n this._popup?.combobox?._pattern.close();\n }\n}\n"],"names":["Combobox","_directionality","inject","Directionality","textDirection","toSignal","change","initialValue","value","_elementRef","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","optional","popup","contentChild","forwardRef","ComboboxPopup","filterMode","input","disabled","transform","booleanAttribute","readonly","firstMatch","undefined","expanded","computed","alwaysExpanded","_pattern","inputElement","inputs","inputEl","ComboboxPattern","inputValue","signal","containerEl","popupControls","_controls","constructor","afterRenderEffect","set","contentVisible","isFocused","open","selected","close","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","descendants","isSignal","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","selector","host","Input","alias","required","ComboboxInput","combobox","model","controls","ComboboxDialogPattern","items","untracked","onFilter","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","attributes","properties","ComboboxPopupContainer","DeferredContent","ComboboxDialog","_popup","id","showModal"],"mappings":"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"}
package/fesm2022/grid.mjs CHANGED
@@ -88,7 +88,7 @@ class Grid {
88
88
  }
89
89
  static ɵfac = i0.ɵɵngDeclareFactory({
90
90
  minVersion: "12.0.0",
91
- version: "20.2.0-next.2",
91
+ version: "21.0.0",
92
92
  ngImport: i0,
93
93
  type: Grid,
94
94
  deps: [],
@@ -96,7 +96,7 @@ class Grid {
96
96
  });
97
97
  static ɵdir = i0.ɵɵngDeclareDirective({
98
98
  minVersion: "17.2.0",
99
- version: "20.2.0-next.2",
99
+ version: "21.0.0",
100
100
  type: Grid,
101
101
  isStandalone: true,
102
102
  selector: "[ngGrid]",
@@ -181,8 +181,7 @@ class Grid {
181
181
  "tabindex": "_pattern.tabIndex()",
182
182
  "attr.aria-disabled": "_pattern.disabled()",
183
183
  "attr.aria-activedescendant": "_pattern.activeDescendant()"
184
- },
185
- classAttribute: "grid"
184
+ }
186
185
  },
187
186
  queries: [{
188
187
  propertyName: "_rows",
@@ -196,7 +195,7 @@ class Grid {
196
195
  }
197
196
  i0.ɵɵngDeclareClassMetadata({
198
197
  minVersion: "12.0.0",
199
- version: "20.2.0-next.2",
198
+ version: "21.0.0",
200
199
  ngImport: i0,
201
200
  type: Grid,
202
201
  decorators: [{
@@ -205,7 +204,6 @@ i0.ɵɵngDeclareClassMetadata({
205
204
  selector: '[ngGrid]',
206
205
  exportAs: 'ngGrid',
207
206
  host: {
208
- 'class': 'grid',
209
207
  'role': 'grid',
210
208
  '[tabindex]': '_pattern.tabIndex()',
211
209
  '[attr.aria-disabled]': '_pattern.disabled()',
@@ -219,7 +217,90 @@ i0.ɵɵngDeclareClassMetadata({
219
217
  }
220
218
  }]
221
219
  }],
222
- ctorParameters: () => []
220
+ ctorParameters: () => [],
221
+ propDecorators: {
222
+ _rows: [{
223
+ type: i0.ContentChildren,
224
+ args: [i0.forwardRef(() => GridRow), {
225
+ ...{
226
+ descendants: true
227
+ },
228
+ isSignal: true
229
+ }]
230
+ }],
231
+ enableSelection: [{
232
+ type: i0.Input,
233
+ args: [{
234
+ isSignal: true,
235
+ alias: "enableSelection",
236
+ required: false
237
+ }]
238
+ }],
239
+ disabled: [{
240
+ type: i0.Input,
241
+ args: [{
242
+ isSignal: true,
243
+ alias: "disabled",
244
+ required: false
245
+ }]
246
+ }],
247
+ softDisabled: [{
248
+ type: i0.Input,
249
+ args: [{
250
+ isSignal: true,
251
+ alias: "softDisabled",
252
+ required: false
253
+ }]
254
+ }],
255
+ focusMode: [{
256
+ type: i0.Input,
257
+ args: [{
258
+ isSignal: true,
259
+ alias: "focusMode",
260
+ required: false
261
+ }]
262
+ }],
263
+ rowWrap: [{
264
+ type: i0.Input,
265
+ args: [{
266
+ isSignal: true,
267
+ alias: "rowWrap",
268
+ required: false
269
+ }]
270
+ }],
271
+ colWrap: [{
272
+ type: i0.Input,
273
+ args: [{
274
+ isSignal: true,
275
+ alias: "colWrap",
276
+ required: false
277
+ }]
278
+ }],
279
+ multi: [{
280
+ type: i0.Input,
281
+ args: [{
282
+ isSignal: true,
283
+ alias: "multi",
284
+ required: false
285
+ }]
286
+ }],
287
+ selectionMode: [{
288
+ type: i0.Input,
289
+ args: [{
290
+ isSignal: true,
291
+ alias: "selectionMode",
292
+ required: false
293
+ }]
294
+ }],
295
+ enableRangeSelection: [{
296
+ type: i0.Input,
297
+ args: [{
298
+ isSignal: true,
299
+ alias: "enableRangeSelection",
300
+ required: false
301
+ }]
302
+ }]
303
+ }
223
304
  });
224
305
  class GridRow {
225
306
  _elementRef = inject(ElementRef);
@@ -247,7 +328,7 @@ class GridRow {
247
328
  });
248
329
  static ɵfac = i0.ɵɵngDeclareFactory({
249
330
  minVersion: "12.0.0",
250
- version: "20.2.0-next.2",
331
+ version: "21.0.0",
251
332
  ngImport: i0,
252
333
  type: GridRow,
253
334
  deps: [],
@@ -255,7 +336,7 @@ class GridRow {
255
336
  });
256
337
  static ɵdir = i0.ɵɵngDeclareDirective({
257
338
  minVersion: "17.2.0",
258
- version: "20.2.0-next.2",
339
+ version: "21.0.0",
259
340
  type: GridRow,
260
341
  isStandalone: true,
261
342
  selector: "[ngGridRow]",
@@ -274,8 +355,7 @@ class GridRow {
274
355
  },
275
356
  properties: {
276
357
  "attr.aria-rowindex": "_pattern.rowIndex()"
277
- },
278
- classAttribute: "grid-row"
358
+ }
279
359
  },
280
360
  queries: [{
281
361
  propertyName: "_cells",
@@ -289,7 +369,7 @@ class GridRow {
289
369
  }
290
370
  i0.ɵɵngDeclareClassMetadata({
291
371
  minVersion: "12.0.0",
292
- version: "20.2.0-next.2",
372
+ version: "21.0.0",
293
373
  ngImport: i0,
294
374
  type: GridRow,
295
375
  decorators: [{
@@ -298,12 +378,30 @@ i0.ɵɵngDeclareClassMetadata({
298
378
  selector: '[ngGridRow]',
299
379
  exportAs: 'ngGridRow',
300
380
  host: {
301
- 'class': 'grid-row',
302
381
  'role': 'row',
303
382
  '[attr.aria-rowindex]': '_pattern.rowIndex()'
304
383
  }
305
384
  }]
306
- }]
385
+ }],
386
+ propDecorators: {
387
+ _cells: [{
388
+ type: i0.ContentChildren,
389
+ args: [i0.forwardRef(() => GridCell), {
390
+ ...{
391
+ descendants: true
392
+ },
393
+ isSignal: true
394
+ }]
395
+ }],
396
+ rowIndex: [{
397
+ type: i0.Input,
398
+ args: [{
399
+ isSignal: true,
400
+ alias: "rowIndex",
401
+ required: false
402
+ }]
403
+ }]
404
+ }
307
405
  });
308
406
  class GridCell {
309
407
  _elementRef = inject(ElementRef);
@@ -389,7 +487,7 @@ class GridCell {
389
487
  }
390
488
  static ɵfac = i0.ɵɵngDeclareFactory({
391
489
  minVersion: "12.0.0",
392
- version: "20.2.0-next.2",
490
+ version: "21.0.0",
393
491
  ngImport: i0,
394
492
  type: GridCell,
395
493
  deps: [],
@@ -397,7 +495,7 @@ class GridCell {
397
495
  });
398
496
  static ɵdir = i0.ɵɵngDeclareDirective({
399
497
  minVersion: "17.2.0",
400
- version: "20.2.0-next.2",
498
+ version: "21.0.0",
401
499
  type: GridCell,
402
500
  isStandalone: true,
403
501
  selector: "[ngGridCell]",
@@ -505,8 +603,7 @@ class GridCell {
505
603
  "attr.aria-colindex": "_pattern.ariaColIndex()",
506
604
  "attr.aria-selected": "_pattern.ariaSelected()",
507
605
  "tabindex": "_tabIndex()"
508
- },
509
- classAttribute: "grid-cell"
606
+ }
510
607
  },
511
608
  queries: [{
512
609
  propertyName: "_widgets",
@@ -520,7 +617,7 @@ class GridCell {
520
617
  }
521
618
  i0.ɵɵngDeclareClassMetadata({
522
619
  minVersion: "12.0.0",
523
- version: "20.2.0-next.2",
620
+ version: "21.0.0",
524
621
  ngImport: i0,
525
622
  type: GridCell,
526
623
  decorators: [{
@@ -529,7 +626,6 @@ i0.ɵɵngDeclareClassMetadata({
529
626
  selector: '[ngGridCell]',
530
627
  exportAs: 'ngGridCell',
531
628
  host: {
532
- 'class': 'grid-cell',
533
629
  '[attr.role]': 'role()',
534
630
  '[attr.id]': '_pattern.id()',
535
631
  '[attr.rowspan]': '_pattern.rowSpan()',
@@ -546,7 +642,117 @@ i0.ɵɵngDeclareClassMetadata({
546
642
  }
547
643
  }]
548
644
  }],
549
- ctorParameters: () => []
645
+ ctorParameters: () => [],
646
+ propDecorators: {
647
+ _widgets: [{
648
+ type: i0.ContentChildren,
649
+ args: [i0.forwardRef(() => GridCellWidget), {
650
+ ...{
651
+ descendants: true
652
+ },
653
+ isSignal: true
654
+ }]
655
+ }],
656
+ id: [{
657
+ type: i0.Input,
658
+ args: [{
659
+ isSignal: true,
660
+ alias: "id",
661
+ required: false
662
+ }]
663
+ }],
664
+ role: [{
665
+ type: i0.Input,
666
+ args: [{
667
+ isSignal: true,
668
+ alias: "role",
669
+ required: false
670
+ }]
671
+ }],
672
+ rowSpan: [{
673
+ type: i0.Input,
674
+ args: [{
675
+ isSignal: true,
676
+ alias: "rowSpan",
677
+ required: false
678
+ }]
679
+ }],
680
+ colSpan: [{
681
+ type: i0.Input,
682
+ args: [{
683
+ isSignal: true,
684
+ alias: "colSpan",
685
+ required: false
686
+ }]
687
+ }],
688
+ rowIndex: [{
689
+ type: i0.Input,
690
+ args: [{
691
+ isSignal: true,
692
+ alias: "rowIndex",
693
+ required: false
694
+ }]
695
+ }],
696
+ colIndex: [{
697
+ type: i0.Input,
698
+ args: [{
699
+ isSignal: true,
700
+ alias: "colIndex",
701
+ required: false
702
+ }]
703
+ }],
704
+ disabled: [{
705
+ type: i0.Input,
706
+ args: [{
707
+ isSignal: true,
708
+ alias: "disabled",
709
+ required: false
710
+ }]
711
+ }],
712
+ selected: [{
713
+ type: i0.Input,
714
+ args: [{
715
+ isSignal: true,
716
+ alias: "selected",
717
+ required: false
718
+ }]
719
+ }, {
720
+ type: i0.Output,
721
+ args: ["selectedChange"]
722
+ }],
723
+ selectable: [{
724
+ type: i0.Input,
725
+ args: [{
726
+ isSignal: true,
727
+ alias: "selectable",
728
+ required: false
729
+ }]
730
+ }],
731
+ orientation: [{
732
+ type: i0.Input,
733
+ args: [{
734
+ isSignal: true,
735
+ alias: "orientation",
736
+ required: false
737
+ }]
738
+ }],
739
+ wrap: [{
740
+ type: i0.Input,
741
+ args: [{
742
+ isSignal: true,
743
+ alias: "wrap",
744
+ required: false
745
+ }]
746
+ }],
747
+ tabindex: [{
748
+ type: i0.Input,
749
+ args: [{
750
+ isSignal: true,
751
+ alias: "tabindex",
752
+ required: false
753
+ }]
754
+ }]
755
+ }
550
756
  });
551
757
  class GridCellWidget {
552
758
  _elementRef = inject(ElementRef);
@@ -614,7 +820,7 @@ class GridCellWidget {
614
820
  }
615
821
  static ɵfac = i0.ɵɵngDeclareFactory({
616
822
  minVersion: "12.0.0",
617
- version: "20.2.0-next.2",
823
+ version: "21.0.0",
618
824
  ngImport: i0,
619
825
  type: GridCellWidget,
620
826
  deps: [],
@@ -622,7 +828,7 @@ class GridCellWidget {
622
828
  });
623
829
  static ɵdir = i0.ɵɵngDeclareDirective({
624
830
  minVersion: "17.1.0",
625
- version: "20.2.0-next.2",
831
+ version: "21.0.0",
626
832
  type: GridCellWidget,
627
833
  isStandalone: true,
628
834
  selector: "[ngGridCellWidget]",
@@ -672,8 +878,7 @@ class GridCellWidget {
672
878
  "attr.data-active": "active()",
673
879
  "attr.data-active-control": "isActivated() ? \"widget\" : \"cell\"",
674
880
  "tabindex": "_tabIndex()"
675
- },
676
- classAttribute: "grid-cell-widget"
881
+ }
677
882
  },
678
883
  exportAs: ["ngGridCellWidget"],
679
884
  ngImport: i0
@@ -681,7 +886,7 @@ class GridCellWidget {
681
886
  }
682
887
  i0.ɵɵngDeclareClassMetadata({
683
888
  minVersion: "12.0.0",
684
- version: "20.2.0-next.2",
889
+ version: "21.0.0",
685
890
  ngImport: i0,
686
891
  type: GridCellWidget,
687
892
  decorators: [{
@@ -690,14 +895,63 @@ i0.ɵɵngDeclareClassMetadata({
690
895
  selector: '[ngGridCellWidget]',
691
896
  exportAs: 'ngGridCellWidget',
692
897
  host: {
693
- 'class': 'grid-cell-widget',
694
898
  '[attr.data-active]': 'active()',
695
899
  '[attr.data-active-control]': 'isActivated() ? "widget" : "cell"',
696
900
  '[tabindex]': '_tabIndex()'
697
901
  }
698
902
  }]
699
903
  }],
700
- ctorParameters: () => []
904
+ ctorParameters: () => [],
905
+ propDecorators: {
906
+ id: [{
907
+ type: i0.Input,
908
+ args: [{
909
+ isSignal: true,
910
+ alias: "id",
911
+ required: false
912
+ }]
913
+ }],
914
+ widgetType: [{
915
+ type: i0.Input,
916
+ args: [{
917
+ isSignal: true,
918
+ alias: "widgetType",
919
+ required: false
920
+ }]
921
+ }],
922
+ disabled: [{
923
+ type: i0.Input,
924
+ args: [{
925
+ isSignal: true,
926
+ alias: "disabled",
927
+ required: false
928
+ }]
929
+ }],
930
+ focusTarget: [{
931
+ type: i0.Input,
932
+ args: [{
933
+ isSignal: true,
934
+ alias: "focusTarget",
935
+ required: false
936
+ }]
937
+ }],
938
+ onActivate: [{
939
+ type: i0.Output,
940
+ args: ["onActivate"]
941
+ }],
942
+ onDeactivate: [{
943
+ type: i0.Output,
944
+ args: ["onDeactivate"]
945
+ }],
946
+ tabindex: [{
947
+ type: i0.Input,
948
+ args: [{
949
+ isSignal: true,
950
+ alias: "tabindex",
951
+ required: false
952
+ }]
953
+ }]
954
+ }
701
955
  });
702
956
 
703
957
  export { Grid, GridCell, GridCellWidget, GridRow };