@angular/aria 21.0.0-next.9 → 21.0.0-rc.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.
Files changed (49) hide show
  1. package/_adev_assets/aria-accordion.json +373 -0
  2. package/_adev_assets/aria-combobox.json +383 -0
  3. package/_adev_assets/aria-grid.json +647 -0
  4. package/_adev_assets/aria-listbox.json +511 -0
  5. package/_adev_assets/aria-menu.json +852 -0
  6. package/_adev_assets/aria-tabs.json +987 -0
  7. package/_adev_assets/aria-toolbar.json +696 -0
  8. package/_adev_assets/aria-tree.json +1071 -0
  9. package/fesm2022/_widget-chunk.mjs +949 -0
  10. package/fesm2022/_widget-chunk.mjs.map +1 -0
  11. package/fesm2022/accordion.mjs +372 -174
  12. package/fesm2022/accordion.mjs.map +1 -1
  13. package/fesm2022/aria.mjs +1 -2
  14. package/fesm2022/aria.mjs.map +1 -1
  15. package/fesm2022/combobox.mjs +308 -116
  16. package/fesm2022/combobox.mjs.map +1 -1
  17. package/fesm2022/grid.mjs +566 -0
  18. package/fesm2022/grid.mjs.map +1 -0
  19. package/fesm2022/listbox.mjs +384 -184
  20. package/fesm2022/listbox.mjs.map +1 -1
  21. package/fesm2022/menu.mjs +591 -0
  22. package/fesm2022/menu.mjs.map +1 -0
  23. package/fesm2022/private.mjs +2338 -0
  24. package/fesm2022/private.mjs.map +1 -0
  25. package/fesm2022/tabs.mjs +484 -276
  26. package/fesm2022/tabs.mjs.map +1 -1
  27. package/fesm2022/toolbar.mjs +366 -200
  28. package/fesm2022/toolbar.mjs.map +1 -1
  29. package/fesm2022/tree.mjs +515 -267
  30. package/fesm2022/tree.mjs.map +1 -1
  31. package/package.json +12 -12
  32. package/types/_grid-chunk.d.ts +608 -0
  33. package/types/accordion.d.ts +8 -8
  34. package/types/combobox.d.ts +20 -7
  35. package/types/grid.d.ts +120 -0
  36. package/types/listbox.d.ts +9 -7
  37. package/types/menu.d.ts +170 -0
  38. package/types/{ui-patterns.d.ts → private.d.ts} +555 -433
  39. package/types/tabs.d.ts +8 -8
  40. package/types/toolbar.d.ts +31 -28
  41. package/types/tree.d.ts +11 -9
  42. package/fesm2022/deferred-content.mjs +0 -60
  43. package/fesm2022/deferred-content.mjs.map +0 -1
  44. package/fesm2022/radio-group.mjs +0 -197
  45. package/fesm2022/radio-group.mjs.map +0 -1
  46. package/fesm2022/ui-patterns.mjs +0 -2504
  47. package/fesm2022/ui-patterns.mjs.map +0 -1
  48. package/types/deferred-content.d.ts +0 -38
  49. package/types/radio-group.d.ts +0 -82
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/accordion/accordion.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 Directive,\n input,\n ElementRef,\n inject,\n contentChildren,\n afterRenderEffect,\n signal,\n model,\n booleanAttribute,\n computed,\n WritableSignal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DeferredContent, DeferredContentAware} from '@angular/aria/deferred-content';\nimport {\n AccordionGroupPattern,\n AccordionPanelPattern,\n AccordionTriggerPattern,\n} from '@angular/aria/ui-patterns';\n\n/**\n * Represents the content panel of an accordion item. It is controlled by an\n * associated `AccordionTrigger`.\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'class': 'ng-accordion-panel',\n 'role': 'region',\n '[attr.id]': 'pattern.id()',\n '[attr.aria-labelledby]': 'pattern.accordionTrigger()?.id()',\n '[attr.inert]': 'pattern.hidden() ? 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 private readonly _id = inject(_IdGenerator).getId('accordion-trigger-');\n\n /** A local unique identifier for the panel, used to match with its trigger's value. */\n value = input.required<string>();\n\n /** The parent accordion trigger pattern that controls this panel. This is set by AccordionGroup. */\n readonly accordionTrigger: WritableSignal<AccordionTriggerPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this panel. */\n readonly pattern: AccordionPanelPattern = new AccordionPanelPattern({\n id: () => this._id,\n value: this.value,\n accordionTrigger: () => this.accordionTrigger(),\n });\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(!this.pattern.hidden());\n });\n }\n}\n\n/**\n * Represents the trigger button for an accordion item. It controls the expansion\n * state of an associated `AccordionPanel`.\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n 'class': 'ng-accordion-trigger',\n '[attr.data-active]': 'pattern.active()',\n 'role': 'button',\n '[id]': 'pattern.id()',\n '[attr.aria-expanded]': 'pattern.expanded()',\n '[attr.aria-controls]': 'pattern.controls()',\n '[attr.aria-disabled]': 'pattern.disabled()',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.tabindex]': 'pattern.tabindex()',\n '(keydown)': 'pattern.onKeydown($event)',\n '(pointerdown)': 'pattern.onPointerdown($event)',\n '(focusin)': 'pattern.onFocus($event)',\n },\n})\nexport class AccordionTrigger {\n /** A global unique identifier for the trigger. */\n private readonly _id = inject(_IdGenerator).getId('ng-accordion-trigger-');\n\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(AccordionGroup);\n\n /** A local unique identifier for the trigger, used to match with its panel's value. */\n value = input.required<string>();\n\n /** Whether the trigger is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /**\n * Whether this trigger is completely inaccessible.\n *\n * TODO(ok7sai): Consider move this to UI patterns.\n */\n readonly hardDisabled = computed(() => this.pattern.disabled() && this.pattern.tabindex() < 0);\n\n /** The accordion panel pattern controlled by this trigger. This is set by AccordionGroup. */\n readonly accordionPanel: WritableSignal<AccordionPanelPattern | undefined> = signal(undefined);\n\n /** The UI pattern instance for this trigger. */\n readonly pattern: AccordionTriggerPattern = new AccordionTriggerPattern({\n id: () => this._id,\n value: this.value,\n disabled: this.disabled,\n element: () => this._elementRef.nativeElement,\n accordionGroup: computed(() => this._accordionGroup.pattern),\n accordionPanel: this.accordionPanel,\n });\n}\n\n/**\n * 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@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n 'class': 'ng-accordion-group',\n },\n})\nexport class AccordionGroup {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The AccordionTriggers nested inside this group. */\n protected readonly _triggers = contentChildren(AccordionTrigger, {descendants: true});\n\n /** The AccordionPanels nested inside this group. */\n protected readonly _panels = contentChildren(AccordionPanel, {descendants: true});\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n multiExpandable = input(true, {transform: booleanAttribute});\n\n /** The values of the current selected/expanded accordions. */\n value = model<string[]>([]);\n\n /** Whether disabled items should be skipped during keyboard navigation. */\n skipDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n // TODO(ok7sai): Consider making `activeItem` an internal state in the pattern and call\n // `setDefaultState` in the CDK.\n activeItem: signal(undefined),\n items: computed(() => this._triggers().map(trigger => trigger.pattern)),\n expandedIds: this.value,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n element: () => this._elementRef.nativeElement,\n });\n\n constructor() {\n // Effect to link triggers with their corresponding panels and update the group's items.\n afterRenderEffect(() => {\n const triggers = this._triggers();\n const panels = this._panels();\n\n for (const trigger of triggers) {\n const panel = panels.find(p => p.value() === trigger.value());\n trigger.accordionPanel.set(panel?.pattern);\n if (panel) {\n panel.accordionTrigger.set(trigger.pattern);\n }\n }\n });\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the content\n * for a `AccordionPanel`. This content can be lazily loaded.\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n"],"names":[],"mappings":";;;;;;;;AA8BA;;;AAGG;MAkBU,cAAc,CAAA;;AAER,IAAA,qBAAqB,GAAG,MAAM,CAAC,oBAAoB,CAAC;;IAGpD,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;;AAGvE,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAU;;AAGvB,IAAA,gBAAgB,GACvB,MAAM,CAAC,SAAS,4DAAC;;IAGV,OAAO,GAA0B,IAAI,qBAAqB,CAAC;AAClE,QAAA,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,QAAA,gBAAgB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE;AAChD,KAAA,CAAC;AAEF,IAAA,WAAA,GAAA;;QAEE,iBAAiB,CAAC,MAAK;AACrB,YAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AACvE,SAAC,CAAC;;8GAzBO,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,kCAAA,EAAA,YAAA,EAAA,gCAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAjB1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,cAAc,EAAE;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,oBAAoB;4BAC/B,MAAM,EAAE,CAAC,iBAAiB,CAAC;AAC5B,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,oBAAoB;AAC7B,wBAAA,MAAM,EAAE,QAAQ;AAChB,wBAAA,WAAW,EAAE,cAAc;AAC3B,wBAAA,wBAAwB,EAAE,kCAAkC;AAC5D,wBAAA,cAAc,EAAE,gCAAgC;AACjD,qBAAA;AACF,iBAAA;;AA8BD;;;AAGG;MAmBU,gBAAgB,CAAA;;IAEV,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC;;AAGzD,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;AAGhC,IAAA,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;;AAGzD,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAU;;AAGhC,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,4CAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;AAEtD;;;;AAIG;IACM,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;AAGrF,IAAA,cAAc,GAAsD,MAAM,CAAC,SAAS,0DAAC;;IAGrF,OAAO,GAA4B,IAAI,uBAAuB,CAAC;AACtE,QAAA,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG;QAClB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa;QAC7C,cAAc,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QAC5D,cAAc,EAAE,IAAI,CAAC,cAAc;AACpC,KAAA,CAAC;8GAlCS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,2BAAA,EAAA,aAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAlB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,sBAAsB;AAC/B,wBAAA,oBAAoB,EAAE,kBAAkB;AACxC,wBAAA,MAAM,EAAE,QAAQ;AAChB,wBAAA,MAAM,EAAE,cAAc;AACtB,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,iBAAiB,EAAE,8BAA8B;AACjD,wBAAA,iBAAiB,EAAE,oBAAoB;AACvC,wBAAA,WAAW,EAAE,2BAA2B;AACxC,wBAAA,eAAe,EAAE,+BAA+B;AAChD,wBAAA,WAAW,EAAE,yBAAyB;AACvC,qBAAA;AACF,iBAAA;;AAsCD;;;AAGG;MAQU,cAAc,CAAA;;AAER,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;AAG9B,IAAA,SAAS,GAAG,eAAe,CAAC,gBAAgB,6CAAG,WAAW,EAAE,IAAI,EAAA,CAAA,GAAA,CAAlB,EAAC,WAAW,EAAE,IAAI,EAAC,GAAC;;AAGlE,IAAA,OAAO,GAAG,eAAe,CAAC,cAAc,2CAAG,WAAW,EAAE,IAAI,EAAA,CAAA,GAAA,CAAlB,EAAC,WAAW,EAAE,IAAI,EAAC,GAAC;;AAGxE,IAAA,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW;;AAG3D,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,4CAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;;AAGtD,IAAA,eAAe,GAAG,KAAK,CAAC,IAAI,mDAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;;AAG5D,IAAA,KAAK,GAAG,KAAK,CAAW,EAAE,iDAAC;;AAG3B,IAAA,YAAY,GAAG,KAAK,CAAC,IAAI,gDAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;;AAGzD,IAAA,IAAI,GAAG,KAAK,CAAC,KAAK,wCAAG,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAA5B,EAAC,SAAS,EAAE,gBAAgB,EAAC,GAAC;;IAGzC,OAAO,GAA0B,IAAI,qBAAqB,CAAC;AAClE,QAAA,GAAG,IAAI;;;AAGP,QAAA,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QACvE,WAAW,EAAE,IAAI,CAAC,KAAK;;AAEvB,QAAA,WAAW,EAAE,MAAM,UAAU;QAC7B,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa;AAC9C,KAAA,CAAC;AAEF,IAAA,WAAA,GAAA;;QAEE,iBAAiB,CAAC,MAAK;AACrB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE;AACjC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;AAE7B,YAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC7D,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC1C,IAAI,KAAK,EAAE;oBACT,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;;;AAGjD,SAAC,CAAC;;8GAtDO,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAKsB,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAGlB,cAAc,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGARhD,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,oBAAoB;AAC9B,qBAAA;AACF,iBAAA;;AA2DD;;;AAGG;MAKU,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iCAAiC;oBAC3C,cAAc,EAAE,CAAC,eAAe,CAAC;AAClC,iBAAA;;;;;"}
1
+ {"version":3,"file":"accordion.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/accordion/accordion.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 Directive,\n input,\n ElementRef,\n inject,\n contentChildren,\n afterRenderEffect,\n signal,\n model,\n booleanAttribute,\n computed,\n WritableSignal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n DeferredContent,\n DeferredContentAware,\n AccordionGroupPattern,\n AccordionPanelPattern,\n AccordionTriggerPattern,\n} from '@angular/aria/private';\n\n/**\n * Represents the content panel of an accordion item. It is controlled by an\n * associated `AccordionTrigger`.\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'class': 'ng-accordion-panel',\n 'role': 'region',\n '[attr.id]': '_pattern.id()',\n '[attr.aria-labelledby]': '_pattern.accordionTrigger()?.id()',\n '[attr.inert]': '_pattern.hidden() ? 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 private readonly _id = inject(_IdGenerator).getId('accordion-trigger-', true);\n\n /** A local unique identifier for the panel, used to match with its trigger's value. */\n value = input.required<string>();\n\n /** The parent accordion trigger pattern that controls this panel. This is set by AccordionGroup. */\n readonly accordionTrigger: WritableSignal<AccordionTriggerPattern | undefined> =\n signal(undefined);\n\n /** The UI pattern instance for this panel. */\n readonly _pattern: AccordionPanelPattern = new AccordionPanelPattern({\n id: () => this._id,\n value: this.value,\n accordionTrigger: () => this.accordionTrigger(),\n });\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this._deferredContentAware.contentVisible.set(!this._pattern.hidden());\n });\n }\n}\n\n/**\n * Represents the trigger button for an accordion item. It controls the expansion\n * state of an associated `AccordionPanel`.\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n 'class': 'ng-accordion-trigger',\n '[attr.data-active]': '_pattern.active()',\n 'role': 'button',\n '[id]': '_pattern.id()',\n '[attr.aria-expanded]': '_pattern.expanded()',\n '[attr.aria-controls]': '_pattern.controls()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n})\nexport class AccordionTrigger {\n /** A global unique identifier for the trigger. */\n private readonly _id = inject(_IdGenerator).getId('ng-accordion-trigger-', true);\n\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(AccordionGroup);\n\n /** A local unique identifier for the trigger, used to match with its panel's value. */\n value = input.required<string>();\n\n /** Whether the trigger is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /**\n * Whether this trigger is completely inaccessible.\n *\n * TODO(ok7sai): Consider move this to UI patterns.\n */\n readonly hardDisabled = computed(() => this._pattern.disabled() && this._pattern.tabIndex() < 0);\n\n /** The accordion panel pattern controlled by this trigger. This is set by AccordionGroup. */\n readonly accordionPanel: WritableSignal<AccordionPanelPattern | undefined> = signal(undefined);\n\n /** The UI pattern instance for this trigger. */\n readonly _pattern: AccordionTriggerPattern = new AccordionTriggerPattern({\n id: () => this._id,\n value: this.value,\n disabled: this.disabled,\n element: () => this._elementRef.nativeElement,\n accordionGroup: computed(() => this._accordionGroup._pattern),\n accordionPanel: this.accordionPanel,\n });\n}\n\n/**\n * 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@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n 'class': 'ng-accordion-group',\n },\n})\nexport class AccordionGroup {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The AccordionTriggers nested inside this group. */\n protected readonly _triggers = contentChildren(AccordionTrigger, {descendants: true});\n\n /** The AccordionPanels nested inside this group. */\n protected readonly _panels = contentChildren(AccordionPanel, {descendants: true});\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n multiExpandable = input(true, {transform: booleanAttribute});\n\n /** The values of the current selected/expanded accordions. */\n value = model<string[]>([]);\n\n /** Whether to allow disabled items to receive focus. */\n softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly _pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n // TODO(ok7sai): Consider making `activeItem` an internal state in the pattern and call\n // `setDefaultState` in the CDK.\n activeItem: signal(undefined),\n items: computed(() => this._triggers().map(trigger => trigger._pattern)),\n expandedIds: this.value,\n // TODO(ok7sai): Investigate whether an accordion should support horizontal mode.\n orientation: () => 'vertical',\n element: () => this._elementRef.nativeElement,\n });\n\n constructor() {\n // Effect to link triggers with their corresponding panels and update the group's items.\n afterRenderEffect(() => {\n const triggers = this._triggers();\n const panels = this._panels();\n\n for (const trigger of triggers) {\n const panel = panels.find(p => p.value() === trigger.value());\n trigger.accordionPanel.set(panel?._pattern);\n if (panel) {\n panel.accordionTrigger.set(trigger._pattern);\n }\n }\n });\n }\n}\n\n/**\n * A structural directive that marks the `ng-template` to be used as the content\n * for a `AccordionPanel`. This content can be lazily loaded.\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n"],"names":["AccordionPanel","_deferredContentAware","inject","DeferredContentAware","_id","_IdGenerator","getId","value","input","required","accordionTrigger","signal","undefined","_pattern","AccordionPanelPattern","id","constructor","afterRenderEffect","contentVisible","set","hidden","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","classAttribute","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","AccordionTrigger","_elementRef","ElementRef","_accordionGroup","AccordionGroup","disabled","transform","booleanAttribute","hardDisabled","computed","tabIndex","ngDevMode","debugName","accordionPanel","AccordionTriggerPattern","element","nativeElement","accordionGroup","listeners","_triggers","contentChildren","descendants","_panels","textDirection","Directionality","valueSignal","multiExpandable","model","softDisabled","wrap","AccordionGroupPattern","activeItem","items","map","trigger","expandedIds","orientation","triggers","panels","panel","find","p","outputs","queries","propertyName","predicate","AccordionContent","DeferredContent"],"mappings":"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"}
package/fesm2022/aria.mjs CHANGED
@@ -1,7 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- /** Current version of the CDK Experimental package. */
4
- const VERSION = new Version('21.0.0-next.9');
3
+ const VERSION = new Version('21.0.0-rc.1');
5
4
 
6
5
  export { VERSION };
7
6
  //# sourceMappingURL=aria.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aria.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/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 CDK Experimental package. */\nexport const VERSION = new Version('21.0.0-next.9');\n"],"names":[],"mappings":";;AAUA;MACa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
1
+ {"version":3,"file":"aria.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/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 CDK Experimental package. */\nexport const VERSION = new Version('21.0.0-rc.1');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}
@@ -1,130 +1,322 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, contentChild, input, signal, afterRenderEffect, Directive, model, untracked } from '@angular/core';
3
- import * as i1 from '@angular/aria/deferred-content';
4
- import { DeferredContentAware, DeferredContent } from '@angular/aria/deferred-content';
5
- import { ComboboxPattern } from '@angular/aria/ui-patterns';
2
+ import { inject, ElementRef, contentChild, input, signal, computed, afterRenderEffect, Directive, model, untracked } from '@angular/core';
3
+ import * as i1 from '@angular/aria/private';
4
+ import { DeferredContentAware, ComboboxPattern, DeferredContent } from '@angular/aria/private';
5
+ import { Directionality } from '@angular/cdk/bidi';
6
+ import { toSignal } from '@angular/core/rxjs-interop';
6
7
 
7
8
  class Combobox {
8
- /** The element that the combobox is attached to. */
9
- _elementRef = inject(ElementRef);
10
- /** The DeferredContentAware host directive. */
11
- _deferredContentAware = inject(DeferredContentAware, { optional: true });
12
- /** The combobox popup. */
13
- popup = contentChild(ComboboxPopup, ...(ngDevMode ? [{ debugName: "popup" }] : []));
14
- /** The filter mode for the combobox. */
15
- filterMode = input('manual', ...(ngDevMode ? [{ debugName: "filterMode" }] : []));
16
- /** Whether the combobox is focused. */
17
- isFocused = signal(false, ...(ngDevMode ? [{ debugName: "isFocused" }] : []));
18
- /** The value of the first matching item in the popup. */
19
- firstMatch = input(undefined, ...(ngDevMode ? [{ debugName: "firstMatch" }] : []));
20
- /** Whether the listbox has received focus yet. */
21
- _hasBeenFocused = signal(false, ...(ngDevMode ? [{ debugName: "_hasBeenFocused" }] : []));
22
- /** The combobox ui pattern. */
23
- pattern = new ComboboxPattern({
24
- ...this,
25
- inputValue: signal(''),
26
- inputEl: signal(undefined),
27
- containerEl: () => this._elementRef.nativeElement,
28
- popupControls: () => this.popup()?.controls(),
9
+ _directionality = inject(Directionality);
10
+ textDirection = toSignal(this._directionality.change, {
11
+ initialValue: this._directionality.value
12
+ });
13
+ _elementRef = inject(ElementRef);
14
+ _deferredContentAware = inject(DeferredContentAware, {
15
+ optional: true
16
+ });
17
+ popup = contentChild(ComboboxPopup, ...(ngDevMode ? [{
18
+ debugName: "popup"
19
+ }] : []));
20
+ filterMode = input('manual', ...(ngDevMode ? [{
21
+ debugName: "filterMode"
22
+ }] : []));
23
+ isFocused = signal(false, ...(ngDevMode ? [{
24
+ debugName: "isFocused"
25
+ }] : []));
26
+ _hasBeenFocused = signal(false, ...(ngDevMode ? [{
27
+ debugName: "_hasBeenFocused"
28
+ }] : []));
29
+ disabled = input(false, ...(ngDevMode ? [{
30
+ debugName: "disabled"
31
+ }] : []));
32
+ readonly = input(false, ...(ngDevMode ? [{
33
+ debugName: "readonly"
34
+ }] : []));
35
+ firstMatch = input(undefined, ...(ngDevMode ? [{
36
+ debugName: "firstMatch"
37
+ }] : []));
38
+ expanded = computed(() => this._pattern.expanded(), ...(ngDevMode ? [{
39
+ debugName: "expanded"
40
+ }] : []));
41
+ inputElement = computed(() => this._pattern.inputs.inputEl(), ...(ngDevMode ? [{
42
+ debugName: "inputElement"
43
+ }] : []));
44
+ _pattern = new ComboboxPattern({
45
+ ...this,
46
+ textDirection: this.textDirection,
47
+ disabled: this.disabled,
48
+ readonly: this.readonly,
49
+ inputValue: signal(''),
50
+ inputEl: signal(undefined),
51
+ containerEl: () => this._elementRef.nativeElement,
52
+ popupControls: () => this.popup()?.controls()
53
+ });
54
+ constructor() {
55
+ afterRenderEffect(() => {
56
+ if (!this._deferredContentAware?.contentVisible() && this._pattern.isFocused()) {
57
+ this._deferredContentAware?.contentVisible.set(true);
58
+ }
29
59
  });
30
- constructor() {
31
- afterRenderEffect(() => {
32
- if (!this._deferredContentAware?.contentVisible() && this.pattern.isFocused()) {
33
- this._deferredContentAware?.contentVisible.set(true);
34
- }
35
- });
36
- afterRenderEffect(() => {
37
- if (!this._hasBeenFocused() && this.pattern.isFocused()) {
38
- this._hasBeenFocused.set(true);
39
- }
40
- });
41
- }
42
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: Combobox, deps: [], target: i0.ɵɵFactoryTarget.Directive });
43
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.2.0-next.2", type: Combobox, isStandalone: true, selector: "[ngCombobox]", inputs: { filterMode: { classPropertyName: "filterMode", publicName: "filterMode", isSignal: true, isRequired: false, transformFunction: null }, firstMatch: { classPropertyName: "firstMatch", publicName: "firstMatch", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "pattern.onInput($event)", "keydown": "pattern.onKeydown($event)", "pointerup": "pattern.onPointerup($event)", "focusin": "pattern.onFocusIn()", "focusout": "pattern.onFocusOut($event)" }, properties: { "attr.data-expanded": "pattern.expanded()" } }, queries: [{ propertyName: "popup", first: true, predicate: ComboboxPopup, descendants: true, isSignal: true }], exportAs: ["ngCombobox"], hostDirectives: [{ directive: i1.DeferredContentAware, inputs: ["preserveContent", "preserveContent"] }], ngImport: i0 });
60
+ afterRenderEffect(() => {
61
+ if (!this._hasBeenFocused() && this._pattern.isFocused()) {
62
+ this._hasBeenFocused.set(true);
63
+ }
64
+ });
65
+ }
66
+ static ɵfac = i0.ɵɵngDeclareFactory({
67
+ minVersion: "12.0.0",
68
+ version: "20.2.0-next.2",
69
+ ngImport: i0,
70
+ type: Combobox,
71
+ deps: [],
72
+ target: i0.ɵɵFactoryTarget.Directive
73
+ });
74
+ static ɵdir = i0.ɵɵngDeclareDirective({
75
+ minVersion: "17.2.0",
76
+ version: "20.2.0-next.2",
77
+ type: Combobox,
78
+ isStandalone: true,
79
+ selector: "[ngCombobox]",
80
+ inputs: {
81
+ filterMode: {
82
+ classPropertyName: "filterMode",
83
+ publicName: "filterMode",
84
+ isSignal: true,
85
+ isRequired: false,
86
+ transformFunction: null
87
+ },
88
+ disabled: {
89
+ classPropertyName: "disabled",
90
+ publicName: "disabled",
91
+ isSignal: true,
92
+ isRequired: false,
93
+ transformFunction: null
94
+ },
95
+ readonly: {
96
+ classPropertyName: "readonly",
97
+ publicName: "readonly",
98
+ isSignal: true,
99
+ isRequired: false,
100
+ transformFunction: null
101
+ },
102
+ firstMatch: {
103
+ classPropertyName: "firstMatch",
104
+ publicName: "firstMatch",
105
+ isSignal: true,
106
+ isRequired: false,
107
+ transformFunction: null
108
+ }
109
+ },
110
+ host: {
111
+ listeners: {
112
+ "input": "_pattern.onInput($event)",
113
+ "keydown": "_pattern.onKeydown($event)",
114
+ "pointerup": "_pattern.onPointerup($event)",
115
+ "focusin": "_pattern.onFocusIn()",
116
+ "focusout": "_pattern.onFocusOut($event)"
117
+ },
118
+ properties: {
119
+ "attr.data-expanded": "expanded()"
120
+ }
121
+ },
122
+ queries: [{
123
+ propertyName: "popup",
124
+ first: true,
125
+ predicate: ComboboxPopup,
126
+ descendants: true,
127
+ isSignal: true
128
+ }],
129
+ exportAs: ["ngCombobox"],
130
+ hostDirectives: [{
131
+ directive: i1.DeferredContentAware,
132
+ inputs: ["preserveContent", "preserveContent"]
133
+ }],
134
+ ngImport: i0
135
+ });
44
136
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: Combobox, decorators: [{
46
- type: Directive,
47
- args: [{
48
- selector: '[ngCombobox]',
49
- exportAs: 'ngCombobox',
50
- hostDirectives: [
51
- {
52
- directive: DeferredContentAware,
53
- inputs: ['preserveContent'],
54
- },
55
- ],
56
- host: {
57
- '[attr.data-expanded]': 'pattern.expanded()',
58
- '(input)': 'pattern.onInput($event)',
59
- '(keydown)': 'pattern.onKeydown($event)',
60
- '(pointerup)': 'pattern.onPointerup($event)',
61
- '(focusin)': 'pattern.onFocusIn()',
62
- '(focusout)': 'pattern.onFocusOut($event)',
63
- },
64
- }]
65
- }], ctorParameters: () => [] });
137
+ i0.ɵɵngDeclareClassMetadata({
138
+ minVersion: "12.0.0",
139
+ version: "20.2.0-next.2",
140
+ ngImport: i0,
141
+ type: Combobox,
142
+ decorators: [{
143
+ type: Directive,
144
+ args: [{
145
+ selector: '[ngCombobox]',
146
+ exportAs: 'ngCombobox',
147
+ hostDirectives: [{
148
+ directive: DeferredContentAware,
149
+ inputs: ['preserveContent']
150
+ }],
151
+ host: {
152
+ '[attr.data-expanded]': 'expanded()',
153
+ '(input)': '_pattern.onInput($event)',
154
+ '(keydown)': '_pattern.onKeydown($event)',
155
+ '(pointerup)': '_pattern.onPointerup($event)',
156
+ '(focusin)': '_pattern.onFocusIn()',
157
+ '(focusout)': '_pattern.onFocusOut($event)'
158
+ }
159
+ }]
160
+ }],
161
+ ctorParameters: () => []
162
+ });
66
163
  class ComboboxInput {
67
- /** The element that the combobox is attached to. */
68
- _elementRef = inject(ElementRef);
69
- /** The combobox that the input belongs to. */
70
- combobox = inject(Combobox);
71
- /** The value of the input. */
72
- value = model('', ...(ngDevMode ? [{ debugName: "value" }] : []));
73
- constructor() {
74
- this.combobox.pattern.inputs.inputEl.set(this._elementRef.nativeElement);
75
- this.combobox.pattern.inputs.inputValue = this.value;
76
- /** Focuses & selects the first item in the combobox if the user changes the input value. */
77
- afterRenderEffect(() => {
78
- this.combobox.popup()?.controls()?.items();
79
- untracked(() => this.combobox.pattern.onFilter());
80
- });
81
- }
82
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: ComboboxInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
83
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.2", type: ComboboxInput, isStandalone: true, selector: "input[ngComboboxInput]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { attributes: { "role": "combobox" }, properties: { "value": "value()", "attr.aria-expanded": "combobox.pattern.expanded()", "attr.aria-activedescendant": "combobox.pattern.activedescendant()", "attr.aria-controls": "combobox.pattern.popupId()", "attr.aria-haspopup": "combobox.pattern.hasPopup()", "attr.aria-autocomplete": "combobox.pattern.autocomplete()" } }, exportAs: ["ngComboboxInput"], ngImport: i0 });
164
+ _elementRef = inject(ElementRef);
165
+ combobox = inject(Combobox);
166
+ value = model('', ...(ngDevMode ? [{
167
+ debugName: "value"
168
+ }] : []));
169
+ constructor() {
170
+ this.combobox._pattern.inputs.inputEl.set(this._elementRef.nativeElement);
171
+ this.combobox._pattern.inputs.inputValue = this.value;
172
+ afterRenderEffect(() => {
173
+ this.value();
174
+ this.combobox.popup()?.controls()?.items();
175
+ untracked(() => this.combobox._pattern.onFilter());
176
+ });
177
+ }
178
+ static ɵfac = i0.ɵɵngDeclareFactory({
179
+ minVersion: "12.0.0",
180
+ version: "20.2.0-next.2",
181
+ ngImport: i0,
182
+ type: ComboboxInput,
183
+ deps: [],
184
+ target: i0.ɵɵFactoryTarget.Directive
185
+ });
186
+ static ɵdir = i0.ɵɵngDeclareDirective({
187
+ minVersion: "17.1.0",
188
+ version: "20.2.0-next.2",
189
+ type: ComboboxInput,
190
+ isStandalone: true,
191
+ selector: "input[ngComboboxInput]",
192
+ inputs: {
193
+ value: {
194
+ classPropertyName: "value",
195
+ publicName: "value",
196
+ isSignal: true,
197
+ isRequired: false,
198
+ transformFunction: null
199
+ }
200
+ },
201
+ outputs: {
202
+ value: "valueChange"
203
+ },
204
+ host: {
205
+ attributes: {
206
+ "role": "combobox"
207
+ },
208
+ properties: {
209
+ "value": "value()",
210
+ "attr.aria-expanded": "combobox._pattern.expanded()",
211
+ "attr.aria-activedescendant": "combobox._pattern.activeDescendant()",
212
+ "attr.aria-controls": "combobox._pattern.popupId()",
213
+ "attr.aria-haspopup": "combobox._pattern.hasPopup()",
214
+ "attr.aria-autocomplete": "combobox._pattern.autocomplete()",
215
+ "attr.readonly": "combobox._pattern.readonly()"
216
+ }
217
+ },
218
+ exportAs: ["ngComboboxInput"],
219
+ ngImport: i0
220
+ });
84
221
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: ComboboxInput, decorators: [{
86
- type: Directive,
87
- args: [{
88
- selector: 'input[ngComboboxInput]',
89
- exportAs: 'ngComboboxInput',
90
- host: {
91
- 'role': 'combobox',
92
- '[value]': 'value()',
93
- '[attr.aria-expanded]': 'combobox.pattern.expanded()',
94
- '[attr.aria-activedescendant]': 'combobox.pattern.activedescendant()',
95
- '[attr.aria-controls]': 'combobox.pattern.popupId()',
96
- '[attr.aria-haspopup]': 'combobox.pattern.hasPopup()',
97
- '[attr.aria-autocomplete]': 'combobox.pattern.autocomplete()',
98
- },
99
- }]
100
- }], ctorParameters: () => [] });
222
+ i0.ɵɵngDeclareClassMetadata({
223
+ minVersion: "12.0.0",
224
+ version: "20.2.0-next.2",
225
+ ngImport: i0,
226
+ type: ComboboxInput,
227
+ decorators: [{
228
+ type: Directive,
229
+ args: [{
230
+ selector: 'input[ngComboboxInput]',
231
+ exportAs: 'ngComboboxInput',
232
+ host: {
233
+ 'role': 'combobox',
234
+ '[value]': 'value()',
235
+ '[attr.aria-expanded]': 'combobox._pattern.expanded()',
236
+ '[attr.aria-activedescendant]': 'combobox._pattern.activeDescendant()',
237
+ '[attr.aria-controls]': 'combobox._pattern.popupId()',
238
+ '[attr.aria-haspopup]': 'combobox._pattern.hasPopup()',
239
+ '[attr.aria-autocomplete]': 'combobox._pattern.autocomplete()',
240
+ '[attr.readonly]': 'combobox._pattern.readonly()'
241
+ }
242
+ }]
243
+ }],
244
+ ctorParameters: () => []
245
+ });
101
246
  class ComboboxPopupContainer {
102
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: ComboboxPopupContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
103
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: ComboboxPopupContainer, isStandalone: true, selector: "ng-template[ngComboboxPopupContainer]", exportAs: ["ngComboboxPopupContainer"], hostDirectives: [{ directive: i1.DeferredContent }], ngImport: i0 });
247
+ static ɵfac = i0.ɵɵngDeclareFactory({
248
+ minVersion: "12.0.0",
249
+ version: "20.2.0-next.2",
250
+ ngImport: i0,
251
+ type: ComboboxPopupContainer,
252
+ deps: [],
253
+ target: i0.ɵɵFactoryTarget.Directive
254
+ });
255
+ static ɵdir = i0.ɵɵngDeclareDirective({
256
+ minVersion: "14.0.0",
257
+ version: "20.2.0-next.2",
258
+ type: ComboboxPopupContainer,
259
+ isStandalone: true,
260
+ selector: "ng-template[ngComboboxPopupContainer]",
261
+ exportAs: ["ngComboboxPopupContainer"],
262
+ hostDirectives: [{
263
+ directive: i1.DeferredContent
264
+ }],
265
+ ngImport: i0
266
+ });
104
267
  }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: ComboboxPopupContainer, decorators: [{
106
- type: Directive,
107
- args: [{
108
- selector: 'ng-template[ngComboboxPopupContainer]',
109
- exportAs: 'ngComboboxPopupContainer',
110
- hostDirectives: [DeferredContent],
111
- }]
112
- }] });
268
+ i0.ɵɵngDeclareClassMetadata({
269
+ minVersion: "12.0.0",
270
+ version: "20.2.0-next.2",
271
+ ngImport: i0,
272
+ type: ComboboxPopupContainer,
273
+ decorators: [{
274
+ type: Directive,
275
+ args: [{
276
+ selector: 'ng-template[ngComboboxPopupContainer]',
277
+ exportAs: 'ngComboboxPopupContainer',
278
+ hostDirectives: [DeferredContent]
279
+ }]
280
+ }]
281
+ });
113
282
  class ComboboxPopup {
114
- /** The combobox that the popup belongs to. */
115
- combobox = inject(Combobox, { optional: true });
116
- /** The controls the popup exposes to the combobox. */
117
- controls = signal(undefined, ...(ngDevMode ? [{ debugName: "controls" }] : []));
118
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: ComboboxPopup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
119
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.2", type: ComboboxPopup, isStandalone: true, selector: "[ngComboboxPopup]", exportAs: ["ngComboboxPopup"], ngImport: i0 });
283
+ combobox = inject(Combobox, {
284
+ optional: true
285
+ });
286
+ controls = signal(undefined, ...(ngDevMode ? [{
287
+ debugName: "controls"
288
+ }] : []));
289
+ static ɵfac = i0.ɵɵngDeclareFactory({
290
+ minVersion: "12.0.0",
291
+ version: "20.2.0-next.2",
292
+ ngImport: i0,
293
+ type: ComboboxPopup,
294
+ deps: [],
295
+ target: i0.ɵɵFactoryTarget.Directive
296
+ });
297
+ static ɵdir = i0.ɵɵngDeclareDirective({
298
+ minVersion: "14.0.0",
299
+ version: "20.2.0-next.2",
300
+ type: ComboboxPopup,
301
+ isStandalone: true,
302
+ selector: "[ngComboboxPopup]",
303
+ exportAs: ["ngComboboxPopup"],
304
+ ngImport: i0
305
+ });
120
306
  }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: ComboboxPopup, decorators: [{
122
- type: Directive,
123
- args: [{
124
- selector: '[ngComboboxPopup]',
125
- exportAs: 'ngComboboxPopup',
126
- }]
127
- }] });
307
+ i0.ɵɵngDeclareClassMetadata({
308
+ minVersion: "12.0.0",
309
+ version: "20.2.0-next.2",
310
+ ngImport: i0,
311
+ type: ComboboxPopup,
312
+ decorators: [{
313
+ type: Directive,
314
+ args: [{
315
+ selector: '[ngComboboxPopup]',
316
+ exportAs: 'ngComboboxPopup'
317
+ }]
318
+ }]
319
+ });
128
320
 
129
321
  export { Combobox, ComboboxInput, ComboboxPopup, ComboboxPopupContainer };
130
322
  //# sourceMappingURL=combobox.mjs.map
@@ -1 +1 @@
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 contentChild,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\nimport {DeferredContent, DeferredContentAware} from '@angular/aria/deferred-content';\nimport {\n ComboboxPattern,\n ComboboxListboxControls,\n ComboboxTreeControls,\n} from '@angular/aria/ui-patterns';\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]': 'pattern.expanded()',\n '(input)': 'pattern.onInput($event)',\n '(keydown)': 'pattern.onKeydown($event)',\n '(pointerup)': 'pattern.onPointerup($event)',\n '(focusin)': 'pattern.onFocusIn()',\n '(focusout)': 'pattern.onFocusOut($event)',\n },\n})\nexport class Combobox<V> {\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject(ElementRef);\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 /** The filter mode for the combobox. */\n filterMode = input<'manual' | 'auto-select' | 'highlight'>('manual');\n\n /** Whether the combobox is focused. */\n readonly isFocused = signal(false);\n\n /** The value of the first matching item in the popup. */\n firstMatch = input<V | undefined>(undefined);\n\n /** Whether the listbox has received focus yet. */\n private _hasBeenFocused = signal(false);\n\n /** The combobox ui pattern. */\n readonly pattern = new ComboboxPattern<any, V>({\n ...this,\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._deferredContentAware?.contentVisible() && this.pattern.isFocused()) {\n this._deferredContentAware?.contentVisible.set(true);\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasBeenFocused() && this.pattern.isFocused()) {\n this._hasBeenFocused.set(true);\n }\n });\n }\n}\n\n@Directive({\n selector: 'input[ngComboboxInput]',\n exportAs: 'ngComboboxInput',\n host: {\n 'role': 'combobox',\n '[value]': 'value()',\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 },\n})\nexport class ComboboxInput {\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\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 /** Focuses & selects the first item in the combobox if the user changes the input value. */\n afterRenderEffect(() => {\n this.combobox.popup()?.controls()?.items();\n untracked(() => this.combobox.pattern.onFilter());\n });\n }\n}\n\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\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 controls the popup exposes to the combobox. */\n readonly controls = signal<\n ComboboxListboxControls<any, V> | ComboboxTreeControls<any, V> | undefined\n >(undefined);\n}\n"],"names":[],"mappings":"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"}
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 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} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {toSignal} from '@angular/core/rxjs-interop';\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 '(pointerup)': '_pattern.onPointerup($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 /** 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 /** The filter mode for the combobox. */\n filterMode = input<'manual' | 'auto-select' | 'highlight'>('manual');\n\n /** Whether the combobox is focused. */\n readonly isFocused = signal(false);\n\n /** Whether the combobox has received focus yet. */\n private _hasBeenFocused = signal(false);\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false);\n\n /** Whether the combobox is read-only. */\n readonly readonly = input(false);\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._pattern.expanded());\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._deferredContentAware?.contentVisible() && this._pattern.isFocused()) {\n this._deferredContentAware?.contentVisible.set(true);\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasBeenFocused() && this._pattern.isFocused()) {\n this._hasBeenFocused.set(true);\n }\n });\n }\n}\n\n@Directive({\n selector: 'input[ngComboboxInput]',\n exportAs: 'ngComboboxInput',\n host: {\n 'role': 'combobox',\n '[value]': 'value()',\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 /** 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 /** Focuses & selects the first item in the combobox if the user changes the input value. */\n afterRenderEffect(() => {\n this.value();\n this.combobox.popup()?.controls()?.items();\n untracked(() => this.combobox._pattern.onFilter());\n });\n }\n}\n\n@Directive({\n selector: 'ng-template[ngComboboxPopupContainer]',\n exportAs: 'ngComboboxPopupContainer',\n hostDirectives: [DeferredContent],\n})\nexport class ComboboxPopupContainer {}\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 controls the popup exposes to the combobox. */\n readonly controls = signal<\n ComboboxListboxControls<any, V> | ComboboxTreeControls<any, V> | undefined\n >(undefined);\n}\n"],"names":["Combobox","_directionality","inject","Directionality","textDirection","toSignal","change","initialValue","value","_elementRef","ElementRef","_deferredContentAware","DeferredContentAware","optional","popup","contentChild","ComboboxPopup","filterMode","input","isFocused","signal","_hasBeenFocused","disabled","readonly","firstMatch","undefined","expanded","computed","_pattern","inputElement","inputs","inputEl","ComboboxPattern","inputValue","containerEl","nativeElement","popupControls","controls","constructor","afterRenderEffect","contentVisible","set","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","descendants","isSignal","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","selector","host","ComboboxInput","combobox","model","items","untracked","onFilter","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","attributes","properties","ComboboxPopupContainer","DeferredContent"],"mappings":"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"}