@angular/aria 22.0.0-next.4 → 22.0.0-next.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.
Files changed (87) hide show
  1. package/fesm2022/_accordion-chunk.mjs +5 -5
  2. package/fesm2022/_accordion-chunk.mjs.map +1 -1
  3. package/fesm2022/_click-event-manager-chunk.mjs.map +1 -1
  4. package/fesm2022/_combobox-chunk.mjs +5 -5
  5. package/fesm2022/_combobox-chunk.mjs.map +1 -1
  6. package/fesm2022/_combobox-listbox-chunk.mjs +1 -1
  7. package/fesm2022/_combobox-listbox-chunk.mjs.map +1 -1
  8. package/fesm2022/_combobox-tree-chunk.mjs +6 -6
  9. package/fesm2022/_combobox-tree-chunk.mjs.map +1 -1
  10. package/fesm2022/_deferred-content-chunk.mjs.map +1 -1
  11. package/fesm2022/_element-chunk.mjs +6 -0
  12. package/fesm2022/_element-chunk.mjs.map +1 -0
  13. package/fesm2022/_expansion-chunk.mjs.map +1 -1
  14. package/fesm2022/_list-chunk.mjs.map +1 -1
  15. package/fesm2022/_list-navigation-chunk.mjs.map +1 -1
  16. package/fesm2022/_list-typeahead-chunk.mjs.map +1 -1
  17. package/fesm2022/_menu-chunk.mjs.map +1 -1
  18. package/fesm2022/_pointer-event-manager-chunk.mjs.map +1 -1
  19. package/fesm2022/_signal-like-chunk.mjs.map +1 -1
  20. package/fesm2022/_tabs-chunk.mjs +1 -1
  21. package/fesm2022/_tabs-chunk.mjs.map +1 -1
  22. package/fesm2022/_toolbar-widget-group-chunk.mjs.map +1 -1
  23. package/fesm2022/_widget-chunk.mjs +12 -166
  24. package/fesm2022/_widget-chunk.mjs.map +1 -1
  25. package/fesm2022/accordion-testing.mjs +61 -0
  26. package/fesm2022/accordion-testing.mjs.map +1 -0
  27. package/fesm2022/accordion.mjs +208 -183
  28. package/fesm2022/accordion.mjs.map +1 -1
  29. package/fesm2022/aria.mjs +1 -1
  30. package/fesm2022/aria.mjs.map +1 -1
  31. package/fesm2022/combobox.mjs.map +1 -1
  32. package/fesm2022/grid.mjs +14 -85
  33. package/fesm2022/grid.mjs.map +1 -1
  34. package/fesm2022/listbox-testing.mjs +55 -0
  35. package/fesm2022/listbox-testing.mjs.map +1 -0
  36. package/fesm2022/listbox.mjs +1 -1
  37. package/fesm2022/listbox.mjs.map +1 -1
  38. package/fesm2022/menu-testing.mjs +75 -0
  39. package/fesm2022/menu-testing.mjs.map +1 -0
  40. package/fesm2022/menu.mjs.map +1 -1
  41. package/fesm2022/private.mjs +2 -1
  42. package/fesm2022/private.mjs.map +1 -1
  43. package/fesm2022/tabs-testing.mjs +57 -0
  44. package/fesm2022/tabs-testing.mjs.map +1 -0
  45. package/fesm2022/tabs.mjs +3 -5
  46. package/fesm2022/tabs.mjs.map +1 -1
  47. package/fesm2022/toolbar-testing.mjs +56 -0
  48. package/fesm2022/toolbar-testing.mjs.map +1 -0
  49. package/fesm2022/toolbar.mjs +8 -6
  50. package/fesm2022/toolbar.mjs.map +1 -1
  51. package/fesm2022/tree-testing.mjs +88 -0
  52. package/fesm2022/tree-testing.mjs.map +1 -0
  53. package/fesm2022/tree.mjs +4 -6
  54. package/fesm2022/tree.mjs.map +1 -1
  55. package/package.json +26 -2
  56. package/resources/code-examples.db +0 -0
  57. package/types/_accordion-chunk.d.ts +10 -9
  58. package/types/_click-event-manager-chunk.d.ts +1 -1
  59. package/types/_combobox-chunk.d.ts +23 -23
  60. package/types/_element-chunk.d.ts +10 -0
  61. package/types/_expansion-chunk.d.ts +1 -1
  62. package/types/_grid-chunk.d.ts +11 -49
  63. package/types/_keyboard-event-manager-chunk.d.ts +2 -2
  64. package/types/_list-chunk.d.ts +19 -18
  65. package/types/_list-navigation-chunk.d.ts +6 -16
  66. package/types/_listbox-chunk.d.ts +27 -27
  67. package/types/_menu-chunk.d.ts +51 -51
  68. package/types/_pointer-event-manager-chunk.d.ts +1 -1
  69. package/types/_signal-like-chunk.d.ts +14 -0
  70. package/types/_tabs-chunk.d.ts +2 -1
  71. package/types/_toolbar-chunk.d.ts +1 -1
  72. package/types/_tree-chunk.d.ts +18 -17
  73. package/types/accordion-testing.d.ts +63 -0
  74. package/types/accordion.d.ts +69 -55
  75. package/types/combobox.d.ts +6 -5
  76. package/types/grid.d.ts +8 -14
  77. package/types/listbox-testing.d.ts +39 -0
  78. package/types/listbox.d.ts +19 -18
  79. package/types/menu-testing.d.ts +50 -0
  80. package/types/menu.d.ts +4 -3
  81. package/types/private.d.ts +46 -44
  82. package/types/tabs-testing.d.ts +57 -0
  83. package/types/tabs.d.ts +3 -5
  84. package/types/toolbar-testing.d.ts +72 -0
  85. package/types/toolbar.d.ts +3 -2
  86. package/types/tree-testing.d.ts +75 -0
  87. package/types/tree.d.ts +5 -6
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-trigger.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-group.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-content.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 {Directive, afterRenderEffect, computed, inject, input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {DeferredContentAware, AccordionTriggerPattern} from '../private';\n\n/**\n * The content panel of an accordion item that is conditionally visible.\n *\n * This directive is a container for the content that is shown or hidden. It should\n * expose a template reference that will be used by the corresponding `ngAccordionTrigger`.\n * The content within the panel should be provided using an `ng-template` with the\n * `ngAccordionContent` directive so that the content is not rendered on the page until the trigger\n * is expanded. It applies `role=\"region\"` for accessibility and uses the `inert` attribute to hide\n * its content from assistive technologies when not visible.\n *\n * ```html\n * <div ngAccordionPanel #panel=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>This content is lazily rendered and will be shown when the panel is expanded.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'role': 'region',\n '[attr.id]': 'id()',\n '[attr.aria-labelledby]': '_pattern?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => this._pattern?.expanded() === true);\n\n /**\n * The pattern for the accordion trigger that controls this panel.\n * This is set by the trigger when it initializes.\n * There is no need for a panel pattern, as the trigger has all the necessary logic.\n */\n _pattern?: AccordionTriggerPattern;\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n /** Expands this item. */\n expand() {\n this._pattern?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern?.toggle();\n }\n}\n","/**\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 {InjectionToken} from '@angular/core';\nimport type {AccordionGroup} from './accordion-group';\n\n/** Token used to expose the accordion group. */\nexport const ACCORDION_GROUP = new InjectionToken<AccordionGroup>('ACCORDION_GROUP');\n","/**\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 Directive,\n ElementRef,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {AccordionTriggerPattern} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionPanel} from './accordion-panel';\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires the `panel` input be set to the template reference of the `ngAccordionPanel`\n * it controls. When clicked, it will expand or collapse the panel. It also handles keyboard\n * interactions for navigation within the `ngAccordionGroup`. It applies `role=\"button\"` and manages\n * `aria-expanded`, `aria-controls`, and `aria-disabled` attributes for accessibility.\n * The `disabled` input can be used to disable the trigger.\n *\n * ```html\n * <button ngAccordionTrigger [panel]=\"panel\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': 'id()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.controls()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.disabled]': '_pattern.hardDisabled() ? true : null',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class AccordionTrigger implements OnInit {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(ACCORDION_GROUP);\n\n /** The associated AccordionPanel. */\n readonly panel = input.required<AccordionPanel>();\n\n /** The unique identifier for the trigger. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** The unique identifier for the correspondingtrigger panel. */\n readonly panelId = computed(() => this.panel().id());\n\n /** Whether the trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The UI pattern instance for this trigger. */\n _pattern!: AccordionTriggerPattern;\n\n ngOnInit() {\n this._pattern = new AccordionTriggerPattern({\n ...this,\n element: () => this.element,\n accordionGroup: () => this._accordionGroup._pattern,\n accordionPanelId: this.panelId,\n });\n\n this.panel()._pattern = this._pattern;\n }\n\n /** Expands this item. */\n expand() {\n this._pattern.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern.toggle();\n }\n}\n","/**\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 Directive,\n ElementRef,\n booleanAttribute,\n computed,\n contentChildren,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {AccordionGroupPattern} from '../private';\nimport {AccordionTrigger} from './accordion-trigger';\nimport {ACCORDION_GROUP} from './accordion-tokens';\n\n/**\n * A container for a group of accordion items. It manages the overall state and\n * interactions of the accordion, such as keyboard navigation and expansion mode.\n *\n * The `ngAccordionGroup` serves as the root of a group of accordion triggers and panels,\n * coordinating the behavior of the `ngAccordionTrigger` and `ngAccordionPanel` elements within it.\n * It supports both single and multiple expansion modes.\n *\n * ```html\n * <div ngAccordionGroup [multiExpandable]=\"true\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel #panel1=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 1.</p>\n * </ng-template>\n * </div>\n * </div>\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel #panel2=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n providers: [{provide: ACCORDION_GROUP, useExisting: AccordionGroup}],\n})\nexport class AccordionGroup {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the group element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The AccordionTriggers nested inside this group. */\n private readonly _triggers = contentChildren(AccordionTrigger, {descendants: true});\n\n /** The corresponding patterns for the accordion triggers. */\n private readonly _triggerPatterns = computed(() => this._triggers().map(t => t._pattern));\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n readonly multiExpandable = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n readonly wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly _pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n element: () => this.element,\n activeItem: signal(undefined),\n items: this._triggerPatterns,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n });\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expandAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.collapseAll();\n }\n}\n","/**\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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * A structural directive that provides a mechanism for lazily rendering the content for an\n * `ngAccordionPanel`.\n *\n * This directive should be applied to an `ng-template` inside an `ngAccordionPanel`.\n * It allows the content of the panel to be lazily rendered, improving performance\n * by only creating the content when the panel is first expanded.\n *\n * ```html\n * <div ngAccordionPanel panelId=\"unique-id-1\">\n * <ng-template ngAccordionContent>\n * <p>This is the content that will be displayed inside the panel.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n"],"names":["AccordionPanel","_deferredContentAware","inject","DeferredContentAware","id","input","_IdGenerator","getId","visible","computed","_pattern","expanded","constructor","afterRenderEffect","contentVisible","set","expand","open","collapse","close","toggle","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","ACCORDION_GROUP","InjectionToken","AccordionTrigger","_elementRef","ElementRef","element","nativeElement","_accordionGroup","panel","required","panelId","disabled","transform","booleanAttribute","model","active","ngOnInit","AccordionTriggerPattern","accordionGroup","accordionPanelId","outputs","AccordionGroup","_triggers","contentChildren","descendants","_triggerPatterns","map","t","textDirection","Directionality","valueSignal","multiExpandable","softDisabled","wrap","AccordionGroupPattern","activeItem","signal","undefined","items","orientation","expandAll","collapseAll","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","listeners","providers","provide","useExisting","propDecorators","ContentChildren","forwardRef","Input","alias","AccordionContent","DeferredContent"],"mappings":"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"}
1
+ {"version":3,"file":"accordion.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-panel.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-tokens.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-group.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-trigger.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-content.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 {Directive, ElementRef, afterRenderEffect, computed, inject, input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {DeferredContentAware, AccordionTriggerPattern} from '../private';\n\n/**\n * The content panel of an accordion item that is conditionally visible.\n *\n * This directive is a container for the content that is shown or hidden. It should\n * expose a template reference that will be used by the corresponding `ngAccordionTrigger`.\n * The content within the panel should be provided using an `ng-template` with the\n * `ngAccordionContent` directive so that the content is not rendered on the page until the trigger\n * is expanded. It applies `role=\"region\"` for accessibility and uses the `inert` attribute to hide\n * its content from assistive technologies when not visible.\n *\n * ```html\n * <div ngAccordionPanel #panel=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>This content is lazily rendered and will be shown when the panel is expanded.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'role': 'region',\n '[attr.id]': 'id()',\n '[attr.aria-labelledby]': '_pattern?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => this._pattern?.expanded() === true);\n\n /**\n * The pattern for the accordion trigger that controls this panel.\n * This is set by the trigger when it initializes.\n * There is no need for a panel pattern, as the trigger has all the necessary logic.\n */\n _pattern?: AccordionTriggerPattern;\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(this.visible());\n });\n }\n\n /** Expands this item. */\n expand() {\n this._pattern?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern?.toggle();\n }\n}\n","/**\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 {InjectionToken} from '@angular/core';\nimport type {AccordionGroup} from './accordion-group';\n\n/** Token used to expose the accordion group. */\nexport const ACCORDION_GROUP = new InjectionToken<AccordionGroup>('ACCORDION_GROUP');\n","/**\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 Directive,\n ElementRef,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {AccordionGroupPattern, sortDirectives} from '../private';\nimport {AccordionTrigger} from './accordion-trigger';\nimport {ACCORDION_GROUP} from './accordion-tokens';\n\n/**\n * A container for a group of accordion items. It manages the overall state and\n * interactions of the accordion, such as keyboard navigation and expansion mode.\n *\n * The `ngAccordionGroup` serves as the root of a group of accordion triggers and panels,\n * coordinating the behavior of the `ngAccordionTrigger` and `ngAccordionPanel` elements within it.\n * It supports both single and multiple expansion modes.\n *\n * ```html\n * <div ngAccordionGroup [multiExpandable]=\"true\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel #panel1=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 1.</p>\n * </ng-template>\n * </div>\n * </div>\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel #panel2=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n providers: [{provide: ACCORDION_GROUP, useExisting: AccordionGroup}],\n})\nexport class AccordionGroup {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the group element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The AccordionTriggers nested inside this group. */\n private readonly _triggers = signal(new Set<AccordionTrigger>());\n\n /** The AccordionTriggers nested inside this group. */\n private readonly _sortedTriggers = computed(() => {\n const triggers = [...this._triggers()] as AccordionTrigger[];\n const sortFn =\n triggers[0]?.index() === undefined\n ? sortDirectives\n : (a: AccordionTrigger, b: AccordionTrigger) => a.index()! - b.index()!;\n\n return triggers.sort(sortFn);\n });\n\n /** The corresponding patterns for the accordion triggers. */\n private readonly _triggerPatterns = computed(() => {\n return this._sortedTriggers().map(t => t._pattern);\n });\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n readonly multiExpandable = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n readonly wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly _pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n element: () => this.element,\n activeItem: signal(undefined),\n items: this._triggerPatterns,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n });\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expandAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.collapseAll();\n }\n\n /** Internal method to register each trigger as we can not use contentChildren. */\n _registerTrigger(trigger: AccordionTrigger) {\n this._triggers().add(trigger);\n this._triggers.set(new Set(this._triggers()));\n }\n\n /** Internal method to unregister each trigger as we can not use contentChildren. */\n _unregisterTrigger(trigger: AccordionTrigger) {\n this._triggers().delete(trigger);\n this._triggers.set(new Set(this._triggers()));\n }\n}\n","/**\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 Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {AccordionTriggerPattern} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionPanel} from './accordion-panel';\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires the `panel` input be set to the template reference of the `ngAccordionPanel`\n * it controls. When clicked, it will expand or collapse the panel. It also handles keyboard\n * interactions for navigation within the `ngAccordionGroup`. It applies `role=\"button\"` and manages\n * `aria-expanded`, `aria-controls`, and `aria-disabled` attributes for accessibility.\n * The `disabled` input can be used to disable the trigger.\n *\n * ```html\n * <button ngAccordionTrigger [panel]=\"panel\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': 'id()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.controls()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.disabled]': '_pattern.hardDisabled() ? true : null',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class AccordionTrigger implements OnInit, OnDestroy {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(ACCORDION_GROUP);\n\n /** The associated AccordionPanel. */\n readonly panel = input.required<AccordionPanel>();\n\n /** The unique identifier for the trigger. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** The unique identifier for the corresponding trigger panel. */\n readonly panelId = computed(() => this.panel().id());\n\n /** Whether the trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The index of the trigger within the accordion group. */\n readonly index = input<number>();\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The UI pattern instance for this trigger. */\n _pattern!: AccordionTriggerPattern;\n\n ngOnInit() {\n this._pattern = new AccordionTriggerPattern({\n ...this,\n element: () => this.element,\n accordionGroup: () => this._accordionGroup._pattern,\n accordionPanelId: this.panelId,\n });\n\n this.panel()._pattern = this._pattern;\n\n this._accordionGroup._registerTrigger(this);\n }\n\n ngOnDestroy() {\n this.panel()._pattern = undefined;\n\n this._accordionGroup._unregisterTrigger(this);\n }\n\n /** Expands this item. */\n expand() {\n this._pattern.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern.toggle();\n }\n}\n","/**\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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * A structural directive that provides a mechanism for lazily rendering the content for an\n * `ngAccordionPanel`.\n *\n * This directive should be applied to an `ng-template` inside an `ngAccordionPanel`.\n * It allows the content of the panel to be lazily rendered, improving performance\n * by only creating the content when the panel is first expanded.\n *\n * ```html\n * <div ngAccordionPanel>\n * <ng-template ngAccordionContent>\n * <p>This is the content that will be displayed inside the panel.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n"],"names":["AccordionPanel","_elementRef","inject","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","id","input","_IdGenerator","getId","visible","computed","_pattern","expanded","constructor","afterRenderEffect","contentVisible","set","expand","open","collapse","close","toggle","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","ACCORDION_GROUP","InjectionToken","AccordionGroup","_triggers","signal","Set","_sortedTriggers","triggers","sortFn","index","undefined","sortDirectives","a","b","sort","_triggerPatterns","map","t","textDirection","Directionality","valueSignal","disabled","transform","booleanAttribute","multiExpandable","softDisabled","wrap","AccordionGroupPattern","activeItem","items","orientation","expandAll","collapseAll","_registerTrigger","trigger","add","_unregisterTrigger","delete","listeners","providers","provide","useExisting","AccordionTrigger","_accordionGroup","panel","required","panelId","model","active","ngOnInit","AccordionTriggerPattern","accordionGroup","accordionPanelId","ngOnDestroy","outputs","AccordionContent","DeferredContent"],"mappings":"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"}
package/fesm2022/aria.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('22.0.0-next.4');
3
+ const VERSION = new Version('22.0.0-next.6');
4
4
 
5
5
  export { VERSION };
6
6
  //# sourceMappingURL=aria.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aria.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/version.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 {Version} from '@angular/core';\n\n/** Current version of the Aria package. */\nexport const VERSION = new Version('22.0.0-next.4');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}
1
+ {"version":3,"file":"aria.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/version.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 {Version} from '@angular/core';\n\n/** Current version of the Aria package. */\nexport const VERSION = new Version('22.0.0-next.6');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-dialog.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-input.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup-container.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 {InjectionToken} from '@angular/core';\nimport type {Combobox} from './combobox';\n\n/** Token used to provide the combobox to child components. */\nexport const COMBOBOX = new InjectionToken<Combobox<unknown>>('COMBOBOX');\n","/**\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 {Directive, inject, signal} from '@angular/core';\nimport {ComboboxListboxControls, ComboboxTreeControls, ComboboxDialogPattern} from '../private';\nimport type {Combobox} from './combobox';\nimport {COMBOBOX} from './combobox-tokens';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\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 * @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 signal,\n} from '@angular/core';\nimport {DeferredContentAware, ComboboxPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {COMBOBOX} from './combobox-tokens';\nimport {ComboboxPopup} from './combobox-popup';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\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 providers: [{provide: COMBOBOX, useExisting: Combobox}],\n})\nexport class Combobox<V> {\n /** A signal wrapper for directionality. */\n protected textDirection = inject(Directionality).valueSignal.asReadonly();\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 * @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 {afterRenderEffect, Directive, ElementRef, inject} from '@angular/core';\nimport {ComboboxDialogPattern} from '../private';\nimport {Combobox} from './combobox';\nimport {ComboboxPopup} from './combobox-popup';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\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","/**\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 Directive,\n ElementRef,\n inject,\n model,\n untracked,\n WritableSignal,\n} from '@angular/core';\nimport {ComboboxDialogPattern} from '../private';\nimport {Combobox} from './combobox';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\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 * @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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\n"],"names":["COMBOBOX","InjectionToken","ComboboxPopup","combobox","inject","optional","_controls","signal","undefined","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","exportAs","ngImport","decorators","args","Combobox","textDirection","Directionality","valueSignal","asReadonly","_elementRef","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","popup","contentChild","filterMode","input","disabled","transform","booleanAttribute","readonly","firstMatch","expanded","computed","alwaysExpanded","_pattern","inputElement","inputs","inputEl","ComboboxPattern","inputValue","containerEl","popupControls","constructor","afterRenderEffect","set","contentVisible","isFocused","open","selected","close","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","listeners","properties","providers","provide","useExisting","descendants","hostDirectives","directive","i1","Input","alias","required","ComboboxDialog","_popup","ComboboxDialogPattern","id","showModal","ComboboxInput","value","model","controls","items","untracked","onFilter","outputs","attributes","ComboboxPopupContainer","DeferredContent"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-tokens.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-dialog.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-input.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup-container.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 {InjectionToken} from '@angular/core';\nimport type {Combobox} from './combobox';\n\n/** Token used to provide the combobox to child components. */\nexport const COMBOBOX = new InjectionToken<Combobox<unknown>>('COMBOBOX');\n","/**\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 {Directive, inject, signal} from '@angular/core';\nimport {ComboboxListboxControls, ComboboxTreeControls, ComboboxDialogPattern} from '../private';\nimport type {Combobox} from './combobox';\nimport {COMBOBOX} from './combobox-tokens';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\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 * @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 signal,\n} from '@angular/core';\nimport {DeferredContentAware, ComboboxPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {COMBOBOX} from './combobox-tokens';\nimport {ComboboxPopup} from './combobox-popup';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\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 providers: [{provide: COMBOBOX, useExisting: Combobox}],\n})\nexport class Combobox<V> {\n /** A signal wrapper for directionality. */\n protected readonly textDirection = inject(Directionality).valueSignal.asReadonly();\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 readonly 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 * @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 {afterRenderEffect, Directive, ElementRef, inject} from '@angular/core';\nimport {ComboboxDialogPattern} from '../private';\nimport {Combobox} from './combobox';\nimport {ComboboxPopup} from './combobox-popup';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\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 readonly _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","/**\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 Directive,\n ElementRef,\n inject,\n model,\n untracked,\n WritableSignal,\n} from '@angular/core';\nimport {ComboboxDialogPattern} from '../private';\nimport {Combobox} from './combobox';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\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 readonly 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 * @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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\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 * @see [Combobox](guide/aria/combobox)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n * @see [Autocomplete](guide/aria/autocomplete)\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\n"],"names":["COMBOBOX","InjectionToken","ComboboxPopup","combobox","inject","optional","_controls","signal","undefined","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","exportAs","ngImport","decorators","args","Combobox","textDirection","Directionality","valueSignal","asReadonly","_elementRef","ElementRef","element","nativeElement","_deferredContentAware","DeferredContentAware","popup","contentChild","filterMode","input","disabled","transform","booleanAttribute","readonly","firstMatch","expanded","computed","alwaysExpanded","_pattern","inputElement","inputs","inputEl","ComboboxPattern","inputValue","containerEl","popupControls","constructor","afterRenderEffect","set","contentVisible","isFocused","open","selected","close","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","listeners","properties","providers","provide","useExisting","descendants","hostDirectives","directive","i1","Input","alias","required","ComboboxDialog","_popup","ComboboxDialogPattern","id","showModal","ComboboxInput","value","model","controls","items","untracked","onFilter","outputs","attributes","ComboboxPopupContainer","DeferredContent"],"mappings":"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"}
package/fesm2022/grid.mjs CHANGED
@@ -1,12 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ElementRef, contentChildren, computed, input, booleanAttribute, NgZone, afterRenderEffect, Directive, output, Renderer2, model } from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, contentChildren, computed, input, booleanAttribute, afterRenderEffect, Directive, output, Renderer2, contentChild, model } from '@angular/core';
3
3
  import { Directionality } from '@angular/cdk/bidi';
4
4
  import { GridPattern, GridCellWidgetPattern, GridCellPattern, GridRowPattern } from './_widget-chunk.mjs';
5
5
  import { _IdGenerator } from '@angular/cdk/a11y';
6
6
  import './_signal-like-chunk.mjs';
7
7
  import '@angular/core/primitives/signals';
8
8
  import './_pointer-event-manager-chunk.mjs';
9
- import './_list-navigation-chunk.mjs';
10
9
 
11
10
  const GRID_CELL = new InjectionToken('GRID_CELL');
12
11
  const GRID_ROW = new InjectionToken('GRID_ROW');
@@ -60,12 +59,6 @@ class Grid {
60
59
  selectionMode = input('follow', ...(ngDevMode ? [{
61
60
  debugName: "selectionMode"
62
61
  }] : []));
63
- enableRangeSelection = input(false, {
64
- ...(ngDevMode ? {
65
- debugName: "enableRangeSelection"
66
- } : {}),
67
- transform: booleanAttribute
68
- });
69
62
  _pattern = new GridPattern({
70
63
  ...this,
71
64
  rows: this._rowPatterns,
@@ -73,16 +66,6 @@ class Grid {
73
66
  element: () => this.element
74
67
  });
75
68
  constructor() {
76
- const ngZone = inject(NgZone);
77
- ngZone.runOutsideAngular(() => {
78
- this.element.addEventListener('pointermove', event => {
79
- if (this._pattern.acceptsPointerMove()) {
80
- ngZone.run(() => this._pattern.onPointermove(event));
81
- }
82
- }, {
83
- passive: true
84
- });
85
- });
86
69
  afterRenderEffect(() => this._pattern.setDefaultStateEffect());
87
70
  afterRenderEffect(() => this._pattern.resetStateEffect());
88
71
  afterRenderEffect(() => this._pattern.resetFocusEffect());
@@ -173,13 +156,6 @@ class Grid {
173
156
  isSignal: true,
174
157
  isRequired: false,
175
158
  transformFunction: null
176
- },
177
- enableRangeSelection: {
178
- classPropertyName: "enableRangeSelection",
179
- publicName: "enableRangeSelection",
180
- isSignal: true,
181
- isRequired: false,
182
- transformFunction: null
183
159
  }
184
160
  },
185
161
  host: {
@@ -189,7 +165,6 @@ class Grid {
189
165
  listeners: {
190
166
  "keydown": "_pattern.onKeydown($event)",
191
167
  "pointerdown": "_pattern.onPointerdown($event)",
192
- "pointerup": "_pattern.onPointerup($event)",
193
168
  "focusin": "_pattern.onFocusIn($event)",
194
169
  "focusout": "_pattern.onFocusOut($event)"
195
170
  },
@@ -228,7 +203,6 @@ i0.ɵɵngDeclareClassMetadata({
228
203
  '[attr.aria-activedescendant]': '_pattern.activeDescendant()',
229
204
  '(keydown)': '_pattern.onKeydown($event)',
230
205
  '(pointerdown)': '_pattern.onPointerdown($event)',
231
- '(pointerup)': '_pattern.onPointerup($event)',
232
206
  '(focusin)': '_pattern.onFocusIn($event)',
233
207
  '(focusout)': '_pattern.onFocusOut($event)'
234
208
  }
@@ -308,14 +282,6 @@ i0.ɵɵngDeclareClassMetadata({
308
282
  alias: "selectionMode",
309
283
  required: false
310
284
  }]
311
- }],
312
- enableRangeSelection: [{
313
- type: i0.Input,
314
- args: [{
315
- isSignal: true,
316
- alias: "enableRangeSelection",
317
- required: false
318
- }]
319
285
  }]
320
286
  }
321
287
  });
@@ -527,14 +493,14 @@ class GridCell {
527
493
  active = computed(() => this._pattern.active(), ...(ngDevMode ? [{
528
494
  debugName: "active"
529
495
  }] : []));
530
- _widgets = contentChildren(GridCellWidget, {
496
+ _widget = contentChild(GridCellWidget, {
531
497
  ...(ngDevMode ? {
532
- debugName: "_widgets"
498
+ debugName: "_widget"
533
499
  } : {}),
534
500
  descendants: true
535
501
  });
536
- _widgetPatterns = computed(() => this._widgets().map(w => w._pattern), ...(ngDevMode ? [{
537
- debugName: "_widgetPatterns"
502
+ _widgetPattern = computed(() => this._widget()?._pattern, ...(ngDevMode ? [{
503
+ debugName: "_widgetPattern"
538
504
  }] : []));
539
505
  _row = inject(GRID_ROW);
540
506
  textDirection = inject(Directionality).valueSignal;
@@ -568,15 +534,6 @@ class GridCell {
568
534
  selectable = input(true, ...(ngDevMode ? [{
569
535
  debugName: "selectable"
570
536
  }] : []));
571
- orientation = input('horizontal', ...(ngDevMode ? [{
572
- debugName: "orientation"
573
- }] : []));
574
- wrap = input(true, {
575
- ...(ngDevMode ? {
576
- debugName: "wrap"
577
- } : {}),
578
- transform: booleanAttribute
579
- });
580
537
  tabindex = input(...(ngDevMode ? [undefined, {
581
538
  debugName: "tabindex"
582
539
  }] : []));
@@ -587,7 +544,7 @@ class GridCell {
587
544
  ...this,
588
545
  grid: this._row._gridPattern,
589
546
  row: () => this._row._pattern,
590
- widgets: this._widgetPatterns,
547
+ widget: this._widgetPattern,
591
548
  getWidget: e => this._getWidget(e),
592
549
  element: () => this.element
593
550
  });
@@ -625,10 +582,11 @@ class GridCell {
625
582
  };
626
583
  _getWidget(element) {
627
584
  let target = element;
585
+ const widget = this._widgetPattern();
586
+ if (!widget) return undefined;
628
587
  while (target) {
629
- const pattern = this._widgetPatterns().find(w => w.element() === target);
630
- if (pattern) {
631
- return pattern;
588
+ if (widget.element() === target) {
589
+ return widget;
632
590
  }
633
591
  target = target.parentElement?.closest('[ngGridCellWidget]');
634
592
  }
@@ -712,20 +670,6 @@ class GridCell {
712
670
  isRequired: false,
713
671
  transformFunction: null
714
672
  },
715
- orientation: {
716
- classPropertyName: "orientation",
717
- publicName: "orientation",
718
- isSignal: true,
719
- isRequired: false,
720
- transformFunction: null
721
- },
722
- wrap: {
723
- classPropertyName: "wrap",
724
- publicName: "wrap",
725
- isSignal: true,
726
- isRequired: false,
727
- transformFunction: null
728
- },
729
673
  tabindex: {
730
674
  classPropertyName: "tabindex",
731
675
  publicName: "tabindex",
@@ -742,7 +686,8 @@ class GridCell {
742
686
  useExisting: GridCell
743
687
  }],
744
688
  queries: [{
745
- propertyName: "_widgets",
689
+ propertyName: "_widget",
690
+ first: true,
746
691
  predicate: GridCellWidget,
747
692
  descendants: true,
748
693
  isSignal: true
@@ -769,8 +714,8 @@ i0.ɵɵngDeclareClassMetadata({
769
714
  }],
770
715
  ctorParameters: () => [],
771
716
  propDecorators: {
772
- _widgets: [{
773
- type: i0.ContentChildren,
717
+ _widget: [{
718
+ type: i0.ContentChild,
774
719
  args: [i0.forwardRef(() => GridCellWidget), {
775
720
  ...{
776
721
  descendants: true
@@ -853,22 +798,6 @@ i0.ɵɵngDeclareClassMetadata({
853
798
  required: false
854
799
  }]
855
800
  }],
856
- orientation: [{
857
- type: i0.Input,
858
- args: [{
859
- isSignal: true,
860
- alias: "orientation",
861
- required: false
862
- }]
863
- }],
864
- wrap: [{
865
- type: i0.Input,
866
- args: [{
867
- isSignal: true,
868
- alias: "wrap",
869
- required: false
870
- }]
871
- }],
872
801
  tabindex: [{
873
802
  type: i0.Input,
874
803
  args: [{