New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@angular/aria

Package Overview
Dependencies
Maintainers
2
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@angular/aria - npm Package Compare versions

Comparing version
21.2.3
to
21.2.4
+1
-1
fesm2022/_accordion-chunk.mjs.map

@@ -1,1 +0,1 @@

{"version":3,"file":"_accordion-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/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 {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager';\nimport {ExpansionItem, ListExpansion, ListExpansionInputs} from '../behaviors/expansion/expansion';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../behaviors/list-focus/list-focus';\nimport {\n ListNavigation,\n ListNavigationInputs,\n ListNavigationItem,\n} from '../behaviors/list-navigation/list-navigation';\nimport {computed, SignalLike, WritableSignalLike} from '../behaviors/signal-like/signal-like';\n\n/** Inputs of the AccordionGroupPattern. */\nexport interface AccordionGroupInputs extends Omit<\n ListNavigationInputs<AccordionTriggerPattern> &\n ListFocusInputs<AccordionTriggerPattern> &\n Omit<ListExpansionInputs, 'items'>,\n 'focusMode'\n> {}\n\nconst focusMode = () => 'roving' as const;\n\n/** A pattern controls the nested Accordions. */\nexport class AccordionGroupPattern {\n /** Controls navigation for the group. */\n readonly navigationBehavior: ListNavigation<AccordionTriggerPattern>;\n\n /** Controls focus for the group. */\n readonly focusBehavior: ListFocus<AccordionTriggerPattern>;\n\n /** Controls expansion for the group. */\n readonly expansionBehavior: ListExpansion;\n\n constructor(readonly inputs: AccordionGroupInputs) {\n this.focusBehavior = new ListFocus({\n ...inputs,\n focusMode,\n });\n this.navigationBehavior = new ListNavigation({\n ...inputs,\n focusMode,\n focusManager: this.focusBehavior,\n });\n this.expansionBehavior = new ListExpansion({\n ...inputs,\n });\n }\n\n /** The key used to navigate to the previous accordion trigger. */\n prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next accordion trigger. */\n nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The keydown event manager for the accordion trigger. */\n keydown = computed(() => {\n return new KeyboardEventManager()\n .on(this.prevKey, () => this.navigationBehavior.prev(), {ignoreRepeat: false})\n .on(this.nextKey, () => this.navigationBehavior.next(), {ignoreRepeat: false})\n .on('Home', () => this.navigationBehavior.first())\n .on('End', () => this.navigationBehavior.last())\n .on(' ', () => this.toggle())\n .on('Enter', () => this.toggle());\n });\n\n /** The pointerdown event manager for the accordion trigger. */\n pointerdown = computed(() => {\n return new PointerEventManager().on(e => {\n const item = this._findTriggerPattern(e.target as Element);\n if (!item) return;\n\n this.navigationBehavior.goto(item);\n this.expansionBehavior.toggle(item);\n });\n });\n\n /** Handles keydown events on the trigger, delegating to the group if not disabled. */\n onKeydown(event: KeyboardEvent): void {\n this.keydown().handle(event);\n }\n\n /** Handles pointerdown events on the trigger, delegating to the group if not disabled. */\n onPointerdown(event: PointerEvent): void {\n this.pointerdown().handle(event);\n }\n\n /** Handles focus events on the trigger. This ensures the tabbing changes the active index. */\n onFocus(event: FocusEvent): void {\n const item = this._findTriggerPattern(event.target as Element);\n if (!item) return;\n if (!this.focusBehavior.isFocusable(item)) return;\n\n this.focusBehavior.focus(item);\n }\n\n /** Toggles the expansion state of the active accordion item. */\n toggle() {\n const activeItem = this.inputs.activeItem();\n if (activeItem === undefined) return;\n this.expansionBehavior.toggle(activeItem);\n }\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this.expansionBehavior.openAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this.expansionBehavior.closeAll();\n }\n\n /** Finds the trigger pattern for a given element. */\n private _findTriggerPattern(\n element: Element | null | undefined,\n ): AccordionTriggerPattern | undefined {\n let target = element;\n\n while (target) {\n const pattern = this.inputs.items().find(t => t.element() === target);\n if (pattern) {\n return pattern;\n }\n\n target = target.parentElement?.closest('[ngAccordionTrigger]');\n }\n\n return undefined;\n }\n}\n\n/** Inputs for the AccordionTriggerPattern. */\nexport interface AccordionTriggerInputs\n extends Omit<ListNavigationItem & ListFocusItem, 'index'>, Omit<ExpansionItem, 'expandable'> {\n /** The parent accordion group that controls this trigger. */\n accordionGroup: SignalLike<AccordionGroupPattern>;\n\n /** The accordion panel id controlled by this trigger. */\n accordionPanelId: SignalLike<string>;\n}\n\n/** A pattern controls the expansion state of an accordion. */\nexport class AccordionTriggerPattern implements ListNavigationItem, ListFocusItem, ExpansionItem {\n /** A unique identifier for this trigger. */\n readonly id: SignalLike<string>; // set from inputs\n\n /** A reference to the trigger element. */\n readonly element: SignalLike<HTMLElement> = () => this.inputs.element()!;\n\n /** Whether this trigger has expandable panel. */\n readonly expandable: SignalLike<boolean> = () => true;\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded: WritableSignalLike<boolean>; // set from inputs\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this.inputs.accordionGroup().inputs.activeItem() === this);\n\n /** Id of the accordion panel controlled by the trigger. */\n readonly controls: SignalLike<string>; // set from inputs\n\n /** The tabindex of the trigger. */\n readonly tabIndex = computed(() =>\n this.inputs.accordionGroup().focusBehavior.isFocusable(this) ? 0 : -1,\n );\n\n /** Whether the trigger is disabled. Disabling an accordion group disables all the triggers. */\n readonly disabled = computed(\n () => this.inputs.disabled() || this.inputs.accordionGroup().inputs.disabled(),\n );\n\n /** Whether the trigger is hard disabled. */\n readonly hardDisabled = computed(\n () => this.disabled() && !this.inputs.accordionGroup().inputs.softDisabled(),\n );\n\n constructor(readonly inputs: AccordionTriggerInputs) {\n this.id = inputs.id;\n this.expanded = inputs.expanded;\n this.controls = inputs.accordionPanelId;\n }\n\n /** Opens the accordion panel. */\n open(): void {\n this.inputs.accordionGroup().expansionBehavior.open(this);\n }\n\n /** Closes the accordion panel. */\n close(): void {\n this.inputs.accordionGroup().expansionBehavior.close(this);\n }\n\n /** Toggles the accordion panel. */\n toggle(): void {\n this.inputs.accordionGroup().expansionBehavior.toggle(this);\n }\n}\n"],"names":["focusMode","AccordionGroupPattern","inputs","navigationBehavior","focusBehavior","expansionBehavior","constructor","ListFocus","ListNavigation","focusManager","ListExpansion","prevKey","computed","orientation","textDirection","nextKey","keydown","KeyboardEventManager","on","prev","ignoreRepeat","next","first","last","toggle","pointerdown","PointerEventManager","e","item","_findTriggerPattern","target","goto","onKeydown","event","handle","onPointerdown","onFocus","isFocusable","focus","activeItem","undefined","expandAll","openAll","collapseAll","closeAll","element","pattern","items","find","t","parentElement","closest","AccordionTriggerPattern","id","expandable","expanded","active","accordionGroup","controls","tabIndex","disabled","hardDisabled","softDisabled","accordionPanelId","open","close"],"mappings":"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"}
{"version":3,"file":"_accordion-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/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 {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager';\nimport {ExpansionItem, ListExpansion, ListExpansionInputs} from '../behaviors/expansion/expansion';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../behaviors/list-focus/list-focus';\nimport {\n ListNavigation,\n ListNavigationInputs,\n ListNavigationItem,\n} from '../behaviors/list-navigation/list-navigation';\nimport {computed, SignalLike, WritableSignalLike} from '../behaviors/signal-like/signal-like';\n\n/** Inputs of the AccordionGroupPattern. */\nexport interface AccordionGroupInputs extends Omit<\n ListNavigationInputs<AccordionTriggerPattern> &\n ListFocusInputs<AccordionTriggerPattern> &\n Omit<ListExpansionInputs, 'items'>,\n 'focusMode'\n> {}\n\nconst focusMode = () => 'roving' as const;\n\n/** A pattern controls the nested Accordions. */\nexport class AccordionGroupPattern {\n /** Controls navigation for the group. */\n readonly navigationBehavior: ListNavigation<AccordionTriggerPattern>;\n\n /** Controls focus for the group. */\n readonly focusBehavior: ListFocus<AccordionTriggerPattern>;\n\n /** Controls expansion for the group. */\n readonly expansionBehavior: ListExpansion;\n\n constructor(readonly inputs: AccordionGroupInputs) {\n this.focusBehavior = new ListFocus({\n ...inputs,\n focusMode,\n });\n this.navigationBehavior = new ListNavigation({\n ...inputs,\n focusMode,\n focusManager: this.focusBehavior,\n });\n this.expansionBehavior = new ListExpansion({\n ...inputs,\n });\n }\n\n /** The key used to navigate to the previous accordion trigger. */\n prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next accordion trigger. */\n nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The keydown event manager for the accordion trigger. */\n keydown = computed(() => {\n return new KeyboardEventManager()\n .on(this.prevKey, () => this.navigationBehavior.prev(), {ignoreRepeat: false})\n .on(this.nextKey, () => this.navigationBehavior.next(), {ignoreRepeat: false})\n .on('Home', () => this.navigationBehavior.first())\n .on('End', () => this.navigationBehavior.last())\n .on(' ', () => this.toggle())\n .on('Enter', () => this.toggle());\n });\n\n /** The pointerdown event manager for the accordion trigger. */\n pointerdown = computed(() => {\n return new PointerEventManager().on(e => {\n const item = this._findTriggerPattern(e.target as Element);\n if (!item) return;\n\n this.navigationBehavior.goto(item);\n this.expansionBehavior.toggle(item);\n });\n });\n\n /** Handles keydown events on the trigger, delegating to the group if not disabled. */\n onKeydown(event: KeyboardEvent): void {\n this.keydown().handle(event);\n }\n\n /** Handles pointerdown events on the trigger, delegating to the group if not disabled. */\n onPointerdown(event: PointerEvent): void {\n this.pointerdown().handle(event);\n }\n\n /** Handles focus events on the trigger. This ensures the tabbing changes the active index. */\n onFocus(event: FocusEvent): void {\n const item = this._findTriggerPattern(event.target as Element);\n if (!item) return;\n if (!this.focusBehavior.isFocusable(item)) return;\n\n this.focusBehavior.focus(item);\n }\n\n /** Toggles the expansion state of the active accordion item. */\n toggle() {\n const activeItem = this.inputs.activeItem();\n if (activeItem === undefined) return;\n this.expansionBehavior.toggle(activeItem);\n }\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this.expansionBehavior.openAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this.expansionBehavior.closeAll();\n }\n\n /** Finds the trigger pattern for a given element. */\n private _findTriggerPattern(\n element: Element | null | undefined,\n ): AccordionTriggerPattern | undefined {\n let target = element;\n\n while (target) {\n const pattern = this.inputs.items().find(t => t.element() === target);\n if (pattern) {\n return pattern;\n }\n\n target = target.parentElement?.closest('[ngAccordionTrigger]');\n }\n\n return undefined;\n }\n}\n\n/** Inputs for the AccordionTriggerPattern. */\nexport interface AccordionTriggerInputs\n extends Omit<ListNavigationItem & ListFocusItem, 'index'>, Omit<ExpansionItem, 'expandable'> {\n /** The parent accordion group that controls this trigger. */\n accordionGroup: SignalLike<AccordionGroupPattern>;\n\n /** The accordion panel id controlled by this trigger. */\n accordionPanelId: SignalLike<string>;\n}\n\n/** A pattern controls the expansion state of an accordion. */\nexport class AccordionTriggerPattern implements ListNavigationItem, ListFocusItem, ExpansionItem {\n /** A unique identifier for this trigger. */\n readonly id: SignalLike<string>; // set from inputs\n\n /** A reference to the trigger element. */\n readonly element: SignalLike<HTMLElement> = () => this.inputs.element()!;\n\n /** Whether this trigger has expandable panel. */\n readonly expandable: SignalLike<boolean> = () => true;\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded: WritableSignalLike<boolean>; // set from inputs\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this.inputs.accordionGroup().inputs.activeItem() === this);\n\n /** Id of the accordion panel controlled by the trigger. */\n readonly controls: SignalLike<string>; // set from inputs\n\n /** The tabindex of the trigger. */\n readonly tabIndex = computed(() =>\n this.inputs.accordionGroup().focusBehavior.isFocusable(this) ? 0 : -1,\n );\n\n /** Whether the trigger is disabled. Disabling an accordion group disables all the triggers. */\n readonly disabled = computed(\n () => this.inputs.disabled() || this.inputs.accordionGroup().inputs.disabled(),\n );\n\n /** Whether the trigger is hard disabled. */\n readonly hardDisabled = computed(\n () => this.disabled() && !this.inputs.accordionGroup().inputs.softDisabled(),\n );\n\n constructor(readonly inputs: AccordionTriggerInputs) {\n this.id = inputs.id;\n this.expanded = inputs.expanded;\n this.controls = inputs.accordionPanelId;\n }\n\n /** Opens the accordion panel. */\n open(): void {\n this.inputs.accordionGroup().expansionBehavior.open(this);\n }\n\n /** Closes the accordion panel. */\n close(): void {\n this.inputs.accordionGroup().expansionBehavior.close(this);\n }\n\n /** Toggles the accordion panel. */\n toggle(): void {\n this.inputs.accordionGroup().expansionBehavior.toggle(this);\n }\n}\n"],"names":["focusMode","AccordionGroupPattern","inputs","navigationBehavior","focusBehavior","expansionBehavior","constructor","ListFocus","ListNavigation","focusManager","ListExpansion","prevKey","computed","orientation","textDirection","nextKey","keydown","KeyboardEventManager","on","prev","ignoreRepeat","next","first","last","toggle","pointerdown","PointerEventManager","e","item","_findTriggerPattern","target","goto","onKeydown","event","handle","onPointerdown","onFocus","isFocusable","focus","activeItem","undefined","expandAll","openAll","collapseAll","closeAll","element","pattern","items","find","t","parentElement","closest","AccordionTriggerPattern","id","expandable","expanded","active","accordionGroup","controls","tabIndex","disabled","hardDisabled","softDisabled","accordionPanelId","open","close"],"mappings":";;;;;AA0BA,MAAMA,SAAS,GAAGA,MAAM,QAAiB;MAG5BC,qBAAqB,CAAA;EAUXC,MAAA;EARZC,kBAAkB;EAGlBC,aAAa;EAGbC,iBAAiB;EAE1BC,WAAAA,CAAqBJ,MAA4B,EAAA;IAA5B,IAAM,CAAAA,MAAA,GAANA,MAAM;AACzB,IAAA,IAAI,CAACE,aAAa,GAAG,IAAIG,SAAS,CAAC;AACjC,MAAA,GAAGL,MAAM;AACTF,MAAAA;AACD,KAAA,CAAC;AACF,IAAA,IAAI,CAACG,kBAAkB,GAAG,IAAIK,cAAc,CAAC;AAC3C,MAAA,GAAGN,MAAM;MACTF,SAAS;MACTS,YAAY,EAAE,IAAI,CAACL;AACpB,KAAA,CAAC;AACF,IAAA,IAAI,CAACC,iBAAiB,GAAG,IAAIK,aAAa,CAAC;MACzC,GAAGR;AACJ,KAAA,CAAC;AACJ;EAGAS,OAAO,GAAGC,QAAQ,CAAC,MAAK;IACtB,IAAI,IAAI,CAACV,MAAM,CAACW,WAAW,EAAE,KAAK,UAAU,EAAE;AAC5C,MAAA,OAAO,SAAS;AAClB;AACA,IAAA,OAAO,IAAI,CAACX,MAAM,CAACY,aAAa,EAAE,KAAK,KAAK,GAAG,YAAY,GAAG,WAAW;AAC3E,GAAC,CAAC;EAGFC,OAAO,GAAGH,QAAQ,CAAC,MAAK;IACtB,IAAI,IAAI,CAACV,MAAM,CAACW,WAAW,EAAE,KAAK,UAAU,EAAE;AAC5C,MAAA,OAAO,WAAW;AACpB;AACA,IAAA,OAAO,IAAI,CAACX,MAAM,CAACY,aAAa,EAAE,KAAK,KAAK,GAAG,WAAW,GAAG,YAAY;AAC3E,GAAC,CAAC;EAGFE,OAAO,GAAGJ,QAAQ,CAAC,MAAK;AACtB,IAAA,OAAO,IAAIK,oBAAoB,EAAE,CAC9BC,EAAE,CAAC,IAAI,CAACP,OAAO,EAAE,MAAM,IAAI,CAACR,kBAAkB,CAACgB,IAAI,EAAE,EAAE;AAACC,MAAAA,YAAY,EAAE;KAAM,CAAA,CAC5EF,EAAE,CAAC,IAAI,CAACH,OAAO,EAAE,MAAM,IAAI,CAACZ,kBAAkB,CAACkB,IAAI,EAAE,EAAE;AAACD,MAAAA,YAAY,EAAE;KAAM,CAAA,CAC5EF,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAACf,kBAAkB,CAACmB,KAAK,EAAE,CAAA,CAChDJ,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,CAACf,kBAAkB,CAACoB,IAAI,EAAE,CAAA,CAC9CL,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAACM,MAAM,EAAE,CAAA,CAC3BN,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAACM,MAAM,EAAE,CAAC;AACrC,GAAC,CAAC;EAGFC,WAAW,GAAGb,QAAQ,CAAC,MAAK;IAC1B,OAAO,IAAIc,mBAAmB,EAAE,CAACR,EAAE,CAACS,CAAC,IAAG;MACtC,MAAMC,IAAI,GAAG,IAAI,CAACC,mBAAmB,CAACF,CAAC,CAACG,MAAiB,CAAC;MAC1D,IAAI,CAACF,IAAI,EAAE;AAEX,MAAA,IAAI,CAACzB,kBAAkB,CAAC4B,IAAI,CAACH,IAAI,CAAC;AAClC,MAAA,IAAI,CAACvB,iBAAiB,CAACmB,MAAM,CAACI,IAAI,CAAC;AACrC,KAAC,CAAC;AACJ,GAAC,CAAC;EAGFI,SAASA,CAACC,KAAoB,EAAA;IAC5B,IAAI,CAACjB,OAAO,EAAE,CAACkB,MAAM,CAACD,KAAK,CAAC;AAC9B;EAGAE,aAAaA,CAACF,KAAmB,EAAA;IAC/B,IAAI,CAACR,WAAW,EAAE,CAACS,MAAM,CAACD,KAAK,CAAC;AAClC;EAGAG,OAAOA,CAACH,KAAiB,EAAA;IACvB,MAAML,IAAI,GAAG,IAAI,CAACC,mBAAmB,CAACI,KAAK,CAACH,MAAiB,CAAC;IAC9D,IAAI,CAACF,IAAI,EAAE;IACX,IAAI,CAAC,IAAI,CAACxB,aAAa,CAACiC,WAAW,CAACT,IAAI,CAAC,EAAE;AAE3C,IAAA,IAAI,CAACxB,aAAa,CAACkC,KAAK,CAACV,IAAI,CAAC;AAChC;AAGAJ,EAAAA,MAAMA,GAAA;IACJ,MAAMe,UAAU,GAAG,IAAI,CAACrC,MAAM,CAACqC,UAAU,EAAE;IAC3C,IAAIA,UAAU,KAAKC,SAAS,EAAE;AAC9B,IAAA,IAAI,CAACnC,iBAAiB,CAACmB,MAAM,CAACe,UAAU,CAAC;AAC3C;AAGAE,EAAAA,SAASA,GAAA;AACP,IAAA,IAAI,CAACpC,iBAAiB,CAACqC,OAAO,EAAE;AAClC;AAGAC,EAAAA,WAAWA,GAAA;AACT,IAAA,IAAI,CAACtC,iBAAiB,CAACuC,QAAQ,EAAE;AACnC;EAGQf,mBAAmBA,CACzBgB,OAAmC,EAAA;IAEnC,IAAIf,MAAM,GAAGe,OAAO;AAEpB,IAAA,OAAOf,MAAM,EAAE;MACb,MAAMgB,OAAO,GAAG,IAAI,CAAC5C,MAAM,CAAC6C,KAAK,EAAE,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACJ,OAAO,EAAE,KAAKf,MAAM,CAAC;AACrE,MAAA,IAAIgB,OAAO,EAAE;AACX,QAAA,OAAOA,OAAO;AAChB;MAEAhB,MAAM,GAAGA,MAAM,CAACoB,aAAa,EAAEC,OAAO,CAAC,sBAAsB,CAAC;AAChE;AAEA,IAAA,OAAOX,SAAS;AAClB;AACD;MAaYY,uBAAuB,CAAA;EAkCblD,MAAA;EAhCZmD,EAAE;EAGFR,OAAO,GAA4BA,MAAM,IAAI,CAAC3C,MAAM,CAAC2C,OAAO,EAAG;EAG/DS,UAAU,GAAwBA,MAAM,IAAI;EAG5CC,QAAQ;AAGRC,EAAAA,MAAM,GAAG5C,QAAQ,CAAC,MAAM,IAAI,CAACV,MAAM,CAACuD,cAAc,EAAE,CAACvD,MAAM,CAACqC,UAAU,EAAE,KAAK,IAAI,CAAC;EAGlFmB,QAAQ;EAGRC,QAAQ,GAAG/C,QAAQ,CAAC,MAC3B,IAAI,CAACV,MAAM,CAACuD,cAAc,EAAE,CAACrD,aAAa,CAACiC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACtE;EAGQuB,QAAQ,GAAGhD,QAAQ,CAC1B,MAAM,IAAI,CAACV,MAAM,CAAC0D,QAAQ,EAAE,IAAI,IAAI,CAAC1D,MAAM,CAACuD,cAAc,EAAE,CAACvD,MAAM,CAAC0D,QAAQ,EAAE,CAC/E;EAGQC,YAAY,GAAGjD,QAAQ,CAC9B,MAAM,IAAI,CAACgD,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC1D,MAAM,CAACuD,cAAc,EAAE,CAACvD,MAAM,CAAC4D,YAAY,EAAE,CAC7E;EAEDxD,WAAAA,CAAqBJ,MAA8B,EAAA;IAA9B,IAAM,CAAAA,MAAA,GAANA,MAAM;AACzB,IAAA,IAAI,CAACmD,EAAE,GAAGnD,MAAM,CAACmD,EAAE;AACnB,IAAA,IAAI,CAACE,QAAQ,GAAGrD,MAAM,CAACqD,QAAQ;AAC/B,IAAA,IAAI,CAACG,QAAQ,GAAGxD,MAAM,CAAC6D,gBAAgB;AACzC;AAGAC,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAAC9D,MAAM,CAACuD,cAAc,EAAE,CAACpD,iBAAiB,CAAC2D,IAAI,CAAC,IAAI,CAAC;AAC3D;AAGAC,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAAC/D,MAAM,CAACuD,cAAc,EAAE,CAACpD,iBAAiB,CAAC4D,KAAK,CAAC,IAAI,CAAC;AAC5D;AAGAzC,EAAAA,MAAMA,GAAA;AACJ,IAAA,IAAI,CAACtB,MAAM,CAACuD,cAAc,EAAE,CAACpD,iBAAiB,CAACmB,MAAM,CAAC,IAAI,CAAC;AAC7D;AACD;;;;"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_combobox-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/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 {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager';\nimport {\n computed,\n signal,\n SignalLike,\n WritableSignalLike,\n} from '../behaviors/signal-like/signal-like';\nimport {ListItem} from '../behaviors/list/list';\n\n/** Represents the required inputs for a combobox. */\nexport interface ComboboxInputs<T extends ListItem<V>, V> {\n /** The controls for the popup associated with the combobox. */\n popupControls: SignalLike<\n ComboboxListboxControls<T, V> | ComboboxTreeControls<T, V> | ComboboxDialogPattern | undefined\n >;\n\n /** The HTML input element that serves as the combobox input. */\n inputEl: SignalLike<HTMLInputElement | undefined>;\n\n /** The HTML element that serves as the combobox container. */\n containerEl: SignalLike<HTMLElement | undefined>;\n\n /** The filtering mode for the combobox. */\n filterMode: SignalLike<'manual' | 'auto-select' | 'highlight'>;\n\n /** The current value of the combobox. */\n inputValue?: WritableSignalLike<string>;\n\n /** The value of the first matching item in the popup. */\n firstMatch: SignalLike<V | undefined>;\n\n /** Whether the combobox is disabled. */\n disabled: SignalLike<boolean>;\n\n /** Whether the combobox is read-only. */\n readonly: SignalLike<boolean>;\n\n /** Whether the combobox is in a right-to-left context. */\n textDirection: SignalLike<'rtl' | 'ltr'>;\n\n /** Whether the combobox is always expanded. */\n alwaysExpanded: SignalLike<boolean>;\n}\n\n/** An interface that allows combobox popups to expose the necessary controls for the combobox. */\nexport interface ComboboxListboxControls<T extends ListItem<V>, V> {\n /** A unique identifier for the popup. */\n id: () => string;\n\n /** The ARIA role for the popup. */\n role: SignalLike<'listbox' | 'tree' | 'grid'>;\n\n // TODO(wagnermaciel): Add validation that ensures only readonly comboboxes can have multi-select popups.\n\n /** Whether multiple items in the popup can be selected at once. */\n multi: SignalLike<boolean>;\n\n /** The ID of the active item in the popup. */\n activeId: SignalLike<string | undefined>;\n\n /** The list of items in the popup. */\n items: SignalLike<T[]>;\n\n /** Navigates to the given item in the popup. */\n focus: (item: T, opts?: {focusElement?: boolean}) => void;\n\n /** Navigates to the next item in the popup. */\n next: () => void;\n\n /** Navigates to the previous item in the popup. */\n prev: () => void;\n\n /** Navigates to the first item in the popup. */\n first: () => void;\n\n /** Navigates to the last item in the popup. */\n last: () => void;\n\n /** Selects the current item in the popup. */\n select: (item?: T) => void;\n\n /** Toggles the selection state of the given item in the popup. */\n toggle: (item?: T) => void;\n\n /** Clears the selection state of the popup. */\n clearSelection: () => void;\n\n /** Removes focus from any item in the popup. */\n unfocus: () => void;\n\n /** Returns the item corresponding to the given event. */\n getItem: (e: PointerEvent) => T | undefined;\n\n /** Returns the currently active (focused) item in the popup. */\n getActiveItem: () => T | undefined;\n\n /** Returns the currently selected items in the popup. */\n getSelectedItems: () => T[];\n\n /** Sets the value of the combobox based on the selected item. */\n setValue: (value: V | undefined) => void; // For re-setting the value if the popup was destroyed.\n}\n\nexport interface ComboboxTreeControls<T extends ListItem<V>, V> extends ComboboxListboxControls<\n T,\n V\n> {\n /** Whether the currently active item in the popup is collapsible. */\n isItemCollapsible: () => boolean;\n\n /** Expands the currently active item in the popup. */\n expandItem: () => void;\n\n /** Collapses the currently active item in the popup. */\n collapseItem: () => void;\n\n /** Checks if the currently active item in the popup is expandable. */\n isItemExpandable: (item?: T) => boolean;\n\n /** Expands all nodes in the tree. */\n expandAll: () => void;\n\n /** Collapses all nodes in the tree. */\n collapseAll: () => void;\n\n /** Toggles the expansion state of the currently active item in the popup. */\n toggleExpansion: (item?: T) => void;\n\n /** Whether the current active item is selectable. */\n isItemSelectable: (item?: T) => boolean;\n}\n\n/** Controls the state of a combobox. */\nexport class ComboboxPattern<T extends ListItem<V>, V> {\n /** Whether the combobox is expanded. */\n expanded = signal(false);\n\n /** Whether the combobox is disabled. */\n disabled = () => this.inputs.disabled();\n\n /** The ID of the active item in the combobox. */\n activeDescendant = computed(() => {\n const popupControls = this.inputs.popupControls();\n if (popupControls instanceof ComboboxDialogPattern) {\n return null;\n }\n\n return popupControls?.activeId() ?? null;\n });\n\n /** The currently highlighted item in the combobox. */\n highlightedItem = signal<T | undefined>(undefined);\n\n /** Whether the most recent input event was a deletion. */\n isDeleting = false;\n\n /** Whether the combobox is focused. */\n isFocused = signal(false);\n\n /** Whether the combobox has ever been focused. */\n hasBeenFocused = signal(false);\n\n /** The key used to navigate to the previous item in the list. */\n expandKey = computed(() => (this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight'));\n\n /** The key used to navigate to the next item in the list. */\n collapseKey = computed(() =>\n this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft',\n );\n\n /** The ID of the popup associated with the combobox. */\n popupId = computed(() => this.inputs.popupControls()?.id() || null);\n\n /** The autocomplete behavior of the combobox. */\n autocomplete = computed(() => (this.inputs.filterMode() === 'highlight' ? 'both' : 'list'));\n\n /** The ARIA role of the popup associated with the combobox. */\n hasPopup = computed(() => this.inputs.popupControls()?.role() || null);\n\n /** Whether the combobox is read-only. */\n readonly = computed(() => this.inputs.readonly() || this.inputs.disabled() || null);\n\n /** Returns the listbox controls for the combobox. */\n listControls = () => {\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return null;\n }\n\n return popupControls;\n };\n\n /** Returns the tree controls for the combobox. */\n treeControls = () => {\n const popupControls = this.inputs.popupControls();\n\n if (popupControls?.role() === 'tree') {\n return popupControls as ComboboxTreeControls<T, V>;\n }\n\n return null;\n };\n\n /** The keydown event manager for the combobox. */\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n const popupControls = this.inputs.popupControls();\n\n if (!popupControls) {\n return manager;\n }\n\n if (popupControls instanceof ComboboxDialogPattern) {\n if (!this.expanded()) {\n manager.on('ArrowUp', () => this.open()).on('ArrowDown', () => this.open());\n\n if (this.readonly()) {\n manager.on('Enter', () => this.open()).on(' ', () => this.open());\n }\n }\n\n return manager;\n }\n\n if (!this.inputs.alwaysExpanded()) {\n manager.on('Escape', () => this.close({reset: !this.readonly()}));\n }\n\n if (!this.expanded()) {\n manager\n .on('ArrowDown', () => this.open({first: true}))\n .on('ArrowUp', () => this.open({last: true}));\n\n if (this.readonly()) {\n manager\n .on('Enter', () => this.open({selected: true}))\n .on(' ', () => this.open({selected: true}));\n }\n\n return manager;\n }\n\n manager\n .on('ArrowDown', () => this.next(), {ignoreRepeat: false})\n .on('ArrowUp', () => this.prev(), {ignoreRepeat: false})\n .on('Home', () => this.first())\n .on('End', () => this.last());\n\n if (this.readonly()) {\n manager.on(' ', () => this.select({commit: true, close: !popupControls.multi()}));\n }\n\n if (popupControls.role() === 'listbox') {\n manager.on('Enter', () => {\n this.select({commit: true, close: !popupControls.multi()});\n });\n }\n\n const treeControls = this.treeControls();\n\n if (treeControls?.isItemSelectable()) {\n manager.on('Enter', () => this.select({commit: true, close: true}));\n }\n\n if (treeControls?.isItemExpandable()) {\n manager\n .on(this.expandKey(), () => this.expandItem())\n .on(this.collapseKey(), () => this.collapseItem());\n\n if (!treeControls.isItemSelectable()) {\n manager.on('Enter', () => this.expandItem());\n }\n }\n\n if (treeControls?.isItemCollapsible()) {\n manager.on(this.collapseKey(), () => this.collapseItem());\n }\n\n return manager;\n });\n\n /** The click event manager for the combobox. */\n click = computed(() =>\n new PointerEventManager().on(e => {\n if (e.target === this.inputs.inputEl()) {\n if (this.readonly()) {\n this.expanded() ? this.close() : this.open({selected: true});\n }\n }\n\n const controls = this.inputs.popupControls();\n\n if (controls instanceof ComboboxDialogPattern) {\n return;\n }\n\n const item = controls?.getItem(e);\n\n if (item) {\n if (controls?.role() === 'tree') {\n const treeControls = controls as ComboboxTreeControls<T, V>;\n\n if (treeControls.isItemExpandable(item) && !treeControls.isItemSelectable(item)) {\n treeControls.toggleExpansion(item);\n this.inputs.inputEl()?.focus();\n return;\n }\n }\n\n this.select({item, commit: true, close: !controls?.multi()});\n this.inputs.inputEl()?.focus(); // Return focus to the input after selecting.\n }\n }),\n );\n\n constructor(readonly inputs: ComboboxInputs<T, V>) {}\n\n /** Handles keydown events for the combobox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.inputs.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles click events for the combobox. */\n onClick(event: MouseEvent) {\n if (!this.inputs.disabled()) {\n this.click().handle(event as PointerEvent);\n }\n }\n\n /** Handles input events for the combobox. */\n onInput(event: Event) {\n if (this.inputs.disabled() || this.inputs.readonly()) {\n return;\n }\n\n const inputEl = this.inputs.inputEl();\n\n if (!inputEl) {\n return;\n }\n\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return;\n }\n\n this.open();\n this.inputs.inputValue?.set(inputEl.value);\n this.isDeleting = event instanceof InputEvent && !!event.inputType.match(/^delete/);\n\n if (this.inputs.filterMode() === 'highlight' && !this.isDeleting) {\n this.highlight();\n }\n }\n\n /** Handles focus in events for the combobox. */\n onFocusIn() {\n if (this.inputs.alwaysExpanded() && !this.hasBeenFocused()) {\n const firstSelectedItem = this.listControls()?.getSelectedItems()[0];\n firstSelectedItem ? this.listControls()?.focus(firstSelectedItem) : this.first();\n }\n\n this.isFocused.set(true);\n this.hasBeenFocused.set(true);\n }\n\n /** Handles focus out events for the combobox. */\n onFocusOut(event: FocusEvent) {\n if (this.inputs.disabled()) {\n return;\n }\n\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return;\n }\n\n if (\n !(event.relatedTarget instanceof HTMLElement) ||\n !this.inputs.containerEl()?.contains(event.relatedTarget)\n ) {\n this.isFocused.set(false);\n\n if (!this.expanded()) {\n return;\n }\n\n if (this.readonly()) {\n this.close();\n return;\n }\n\n if (this.inputs.filterMode() !== 'manual') {\n this.commit();\n } else {\n const item = popupControls\n ?.items()\n .find(i => i.searchTerm() === this.inputs.inputEl()?.value);\n\n if (item) {\n this.select({item});\n }\n }\n\n this.close();\n }\n }\n\n /** The first matching item in the combobox. */\n firstMatch = computed(() => {\n // TODO(wagnermaciel): Consider whether we should not provide this default behavior for the\n // listbox. Instead, we may want to allow users to have no match so that typing does not focus\n // any option.\n if (this.listControls()?.role() === 'listbox') {\n return this.listControls()?.items()[0];\n }\n\n return this.listControls()\n ?.items()\n .find(i => i.value() === this.inputs.firstMatch());\n });\n\n /** Handles filtering logic for the combobox. */\n onFilter() {\n if (this.readonly()) {\n return;\n }\n\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return;\n }\n\n // TODO(wagnermaciel)\n // When the user first interacts with the combobox, the popup will lazily render for the first\n // time. This is a simple way to detect this and avoid auto-focus & selection logic, but this\n // should probably be moved to the component layer instead.\n const isInitialRender = !this.inputs.inputValue?.().length && !this.isDeleting;\n\n if (isInitialRender) {\n return;\n }\n\n // Avoid refocusing the input if a filter event occurs after focus has left the combobox.\n if (!this.isFocused()) {\n return;\n }\n\n if (this.inputs.popupControls()?.role() === 'tree') {\n const treeControls = this.inputs.popupControls() as ComboboxTreeControls<T, V>;\n this.inputs.inputValue?.().length ? treeControls.expandAll() : treeControls.collapseAll();\n }\n\n const item = this.firstMatch();\n\n if (!item) {\n popupControls?.clearSelection();\n popupControls?.unfocus();\n return;\n }\n\n popupControls?.focus(item);\n\n if (this.inputs.filterMode() !== 'manual') {\n this.select({item});\n }\n\n if (this.inputs.filterMode() === 'highlight' && !this.isDeleting) {\n this.highlight();\n }\n }\n\n /** Highlights the currently selected item in the combobox. */\n highlight() {\n const inputEl = this.inputs.inputEl();\n const selectedItems = this.listControls()?.getSelectedItems();\n const item = selectedItems?.[0];\n\n if (!inputEl || !item) {\n return;\n }\n\n const isHighlightable = item\n .searchTerm()\n .toLowerCase()\n .startsWith(this.inputs.inputValue!().toLowerCase());\n\n if (isHighlightable) {\n inputEl.value =\n this.inputs.inputValue!() + item.searchTerm().slice(this.inputs.inputValue!().length);\n inputEl.setSelectionRange(this.inputs.inputValue!().length, item.searchTerm().length);\n this.highlightedItem.set(item);\n }\n }\n\n /** Closes the combobox. */\n close(opts?: {reset: boolean}) {\n const popupControls = this.inputs.popupControls();\n\n if (this.inputs.alwaysExpanded()) {\n return;\n }\n\n if (popupControls instanceof ComboboxDialogPattern) {\n this.expanded.set(false);\n return;\n }\n\n if (this.readonly()) {\n this.expanded.set(false);\n popupControls?.unfocus();\n return;\n }\n\n if (!opts?.reset) {\n if (this.inputs.filterMode() === 'manual') {\n if (\n !this.listControls()\n ?.items()\n .some(i => i.searchTerm() === this.inputs.inputEl()?.value)\n ) {\n this.listControls()?.clearSelection();\n }\n }\n\n this.expanded.set(false);\n popupControls?.unfocus();\n return;\n }\n\n if (!this.expanded()) {\n this.inputs.inputValue?.set('');\n popupControls?.clearSelection();\n\n const inputEl = this.inputs.inputEl();\n\n if (inputEl) {\n inputEl.value = '';\n }\n } else if (this.expanded()) {\n this.expanded.set(false);\n const selectedItem = popupControls?.getSelectedItems()?.[0];\n\n if (selectedItem?.searchTerm() !== this.inputs.inputValue!()) {\n popupControls?.clearSelection();\n }\n\n return;\n }\n\n this.close();\n\n if (!this.readonly()) {\n popupControls?.clearSelection();\n }\n }\n\n /** Opens the combobox. */\n open(nav?: {first?: boolean; last?: boolean; selected?: boolean}) {\n this.expanded.set(true);\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return;\n }\n\n const inputEl = this.inputs.inputEl();\n\n if (inputEl && this.inputs.filterMode() === 'highlight') {\n const isHighlighting = inputEl.selectionStart !== inputEl.value.length;\n this.inputs.inputValue?.set(inputEl.value.slice(0, inputEl.selectionStart || 0));\n if (!isHighlighting) {\n this.highlightedItem.set(undefined);\n }\n }\n\n if (nav?.first) {\n this.first();\n }\n if (nav?.last) {\n this.last();\n }\n if (nav?.selected) {\n const selectedItem = popupControls\n ?.items()\n .find(i => popupControls?.getSelectedItems().includes(i));\n\n if (selectedItem) {\n popupControls?.focus(selectedItem);\n }\n }\n }\n\n /** Navigates to the next focusable item in the combobox popup. */\n next() {\n this._navigate(() => this.listControls()?.next());\n }\n\n /** Navigates to the previous focusable item in the combobox popup. */\n prev() {\n this._navigate(() => this.listControls()?.prev());\n }\n\n /** Navigates to the first focusable item in the combobox popup. */\n first() {\n this._navigate(() => this.listControls()?.first());\n }\n\n /** Navigates to the last focusable item in the combobox popup. */\n last() {\n this._navigate(() => this.listControls()?.last());\n }\n\n /** Collapses the currently focused item in the combobox. */\n collapseItem() {\n const controls = this.inputs.popupControls() as ComboboxTreeControls<T, V>;\n this._navigate(() => controls?.collapseItem());\n }\n\n /** Expands the currently focused item in the combobox. */\n expandItem() {\n const controls = this.inputs.popupControls() as ComboboxTreeControls<T, V>;\n this._navigate(() => controls?.expandItem());\n }\n\n /** Selects an item in the combobox popup. */\n select(opts: {item?: T; commit?: boolean; close?: boolean} = {}) {\n const controls = this.listControls();\n\n // When no item is specified (e.g. on keyboard toggle), get the active item instead.\n // Note: this is only necessary for disabled check, as select/toggle will check active item too.\n const item = opts.item ?? controls?.getActiveItem();\n\n // Check if item is disabled before proceeding.\n if (item?.disabled()) {\n return;\n }\n\n if (opts.item) {\n controls?.focus(opts.item, {focusElement: false});\n }\n\n controls?.multi() ? controls.toggle(opts.item) : controls?.select(opts.item);\n\n if (opts.commit) {\n this.commit();\n }\n if (opts.close) {\n this.close();\n }\n }\n\n /** Updates the value of the input based on the currently selected item. */\n commit() {\n const inputEl = this.inputs.inputEl();\n const selectedItems = this.listControls()?.getSelectedItems();\n\n if (!inputEl) {\n return;\n }\n\n inputEl.value = selectedItems?.map(i => i.searchTerm()).join(', ') || '';\n this.inputs.inputValue?.set(inputEl.value);\n\n if (this.inputs.filterMode() === 'highlight' && !this.readonly()) {\n const length = inputEl.value.length;\n inputEl.setSelectionRange(length, length);\n }\n }\n\n /** Navigates and handles additional actions based on filter mode. */\n private _navigate(operation: () => void) {\n operation();\n\n if (this.inputs.filterMode() !== 'manual') {\n this.select();\n }\n\n if (this.inputs.filterMode() === 'highlight') {\n // This is to handle when the user navigates back to the originally highlighted item.\n // E.g. User types \"Al\", highlights \"Alice\", then navigates down and back up to \"Alice\".\n const selectedItem = this.listControls()?.getSelectedItems()[0];\n\n if (!selectedItem) {\n return;\n }\n\n if (selectedItem === this.highlightedItem()) {\n this.highlight();\n } else {\n const inputEl = this.inputs.inputEl()!;\n inputEl.value = selectedItem?.searchTerm()!;\n }\n }\n }\n}\n\nexport class ComboboxDialogPattern {\n id = () => this.inputs.id();\n\n role = () => 'dialog' as const;\n\n keydown = computed(() => {\n return new KeyboardEventManager().on('Escape', () => this.inputs.combobox.close());\n });\n\n constructor(\n readonly inputs: {\n combobox: ComboboxPattern<any, any>;\n element: SignalLike<HTMLDialogElement>;\n id: SignalLike<string>;\n },\n ) {}\n\n onKeydown(event: KeyboardEvent) {\n this.keydown().handle(event);\n }\n\n onClick(event: MouseEvent) {\n // The \"click\" event fires on the dialog when the user clicks outside of the dialog content.\n if (event.target === this.inputs.element()) {\n this.inputs.combobox.close();\n }\n }\n}\n"],"names":["ComboboxPattern","inputs","expanded","signal","disabled","activeDescendant","computed","popupControls","ComboboxDialogPattern","activeId","highlightedItem","undefined","isDeleting","isFocused","hasBeenFocused","expandKey","textDirection","collapseKey","popupId","id","autocomplete","filterMode","hasPopup","role","readonly","listControls","treeControls","keydown","manager","KeyboardEventManager","on","open","alwaysExpanded","close","reset","first","last","selected","next","ignoreRepeat","prev","select","commit","multi","isItemSelectable","isItemExpandable","expandItem","collapseItem","isItemCollapsible","click","PointerEventManager","e","target","inputEl","controls","item","getItem","toggleExpansion","focus","constructor","onKeydown","event","handle","onClick","onInput","inputValue","set","value","InputEvent","inputType","match","highlight","onFocusIn","firstSelectedItem","getSelectedItems","onFocusOut","relatedTarget","HTMLElement","containerEl","contains","items","find","i","searchTerm","firstMatch","onFilter","isInitialRender","length","expandAll","collapseAll","clearSelection","unfocus","selectedItems","isHighlightable","toLowerCase","startsWith","slice","setSelectionRange","opts","some","selectedItem","nav","isHighlighting","selectionStart","includes","_navigate","getActiveItem","focusElement","toggle","map","join","operation","combobox","element"],"mappings":";;;MA6IaA,eAAe,CAAA;EAuLLC,MAAA;AArLrBC,EAAAA,QAAQ,GAAGC,MAAM,CAAC,KAAK,CAAC;EAGxBC,QAAQ,GAAGA,MAAM,IAAI,CAACH,MAAM,CAACG,QAAQ,EAAE;EAGvCC,gBAAgB,GAAGC,QAAQ,CAAC,MAAK;IAC/B,MAAMC,aAAa,GAAG,IAAI,CAACN,MAAM,CAACM,aAAa,EAAE;IACjD,IAAIA,aAAa,YAAYC,qBAAqB,EAAE;AAClD,MAAA,OAAO,IAAI;AACb;AAEA,IAAA,OAAOD,aAAa,EAAEE,QAAQ,EAAE,IAAI,IAAI;AAC1C,GAAC,CAAC;AAGFC,EAAAA,eAAe,GAAGP,MAAM,CAAgBQ,SAAS,CAAC;AAGlDC,EAAAA,UAAU,GAAG,KAAK;AAGlBC,EAAAA,SAAS,GAAGV,MAAM,CAAC,KAAK,CAAC;AAGzBW,EAAAA,cAAc,GAAGX,MAAM,CAAC,KAAK,CAAC;AAG9BY,EAAAA,SAAS,GAAGT,QAAQ,CAAC,MAAO,IAAI,CAACL,MAAM,CAACe,aAAa,EAAE,KAAK,KAAK,GAAG,WAAW,GAAG,YAAa,CAAC;AAGhGC,EAAAA,WAAW,GAAGX,QAAQ,CAAC,MACrB,IAAI,CAACL,MAAM,CAACe,aAAa,EAAE,KAAK,KAAK,GAAG,YAAY,GAAG,WAAW,CACnE;AAGDE,EAAAA,OAAO,GAAGZ,QAAQ,CAAC,MAAM,IAAI,CAACL,MAAM,CAACM,aAAa,EAAE,EAAEY,EAAE,EAAE,IAAI,IAAI,CAAC;AAGnEC,EAAAA,YAAY,GAAGd,QAAQ,CAAC,MAAO,IAAI,CAACL,MAAM,CAACoB,UAAU,EAAE,KAAK,WAAW,GAAG,MAAM,GAAG,MAAO,CAAC;AAG3FC,EAAAA,QAAQ,GAAGhB,QAAQ,CAAC,MAAM,IAAI,CAACL,MAAM,CAACM,aAAa,EAAE,EAAEgB,IAAI,EAAE,IAAI,IAAI,CAAC;EAGtEC,QAAQ,GAAGlB,QAAQ,CAAC,MAAM,IAAI,CAACL,MAAM,CAACuB,QAAQ,EAAE,IAAI,IAAI,CAACvB,MAAM,CAACG,QAAQ,EAAE,IAAI,IAAI,CAAC;EAGnFqB,YAAY,GAAGA,MAAK;IAClB,MAAMlB,aAAa,GAAG,IAAI,CAACN,MAAM,CAACM,aAAa,EAAE;IAEjD,IAAIA,aAAa,YAAYC,qBAAqB,EAAE;AAClD,MAAA,OAAO,IAAI;AACb;AAEA,IAAA,OAAOD,aAAa;GACrB;EAGDmB,YAAY,GAAGA,MAAK;IAClB,MAAMnB,aAAa,GAAG,IAAI,CAACN,MAAM,CAACM,aAAa,EAAE;AAEjD,IAAA,IAAIA,aAAa,EAAEgB,IAAI,EAAE,KAAK,MAAM,EAAE;AACpC,MAAA,OAAOhB,aAA2C;AACpD;AAEA,IAAA,OAAO,IAAI;GACZ;EAGDoB,OAAO,GAAGrB,QAAQ,CAAC,MAAK;AACtB,IAAA,MAAMsB,OAAO,GAAG,IAAIC,oBAAoB,EAAE;IAC1C,MAAMtB,aAAa,GAAG,IAAI,CAACN,MAAM,CAACM,aAAa,EAAE;IAEjD,IAAI,CAACA,aAAa,EAAE;AAClB,MAAA,OAAOqB,OAAO;AAChB;IAEA,IAAIrB,aAAa,YAAYC,qBAAqB,EAAE;AAClD,MAAA,IAAI,CAAC,IAAI,CAACN,QAAQ,EAAE,EAAE;QACpB0B,OAAO,CAACE,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,CAACC,IAAI,EAAE,CAAC,CAACD,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,CAACC,IAAI,EAAE,CAAC;AAE3E,QAAA,IAAI,IAAI,CAACP,QAAQ,EAAE,EAAE;UACnBI,OAAO,CAACE,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAACC,IAAI,EAAE,CAAC,CAACD,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAACC,IAAI,EAAE,CAAC;AACnE;AACF;AAEA,MAAA,OAAOH,OAAO;AAChB;IAEA,IAAI,CAAC,IAAI,CAAC3B,MAAM,CAAC+B,cAAc,EAAE,EAAE;MACjCJ,OAAO,CAACE,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAACG,KAAK,CAAC;AAACC,QAAAA,KAAK,EAAE,CAAC,IAAI,CAACV,QAAQ;AAAE,OAAC,CAAC,CAAC;AACnE;AAEA,IAAA,IAAI,CAAC,IAAI,CAACtB,QAAQ,EAAE,EAAE;MACpB0B,OAAO,CACJE,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,CAACC,IAAI,CAAC;AAACI,QAAAA,KAAK,EAAE;OAAK,CAAC,CAAA,CAC9CL,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,CAACC,IAAI,CAAC;AAACK,QAAAA,IAAI,EAAE;AAAK,OAAA,CAAC,CAAC;AAE/C,MAAA,IAAI,IAAI,CAACZ,QAAQ,EAAE,EAAE;QACnBI,OAAO,CACJE,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAACC,IAAI,CAAC;AAACM,UAAAA,QAAQ,EAAE;SAAK,CAAC,CAAA,CAC7CP,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAACC,IAAI,CAAC;AAACM,UAAAA,QAAQ,EAAE;AAAK,SAAA,CAAC,CAAC;AAC/C;AAEA,MAAA,OAAOT,OAAO;AAChB;IAEAA,OAAO,CACJE,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,CAACQ,IAAI,EAAE,EAAE;AAACC,MAAAA,YAAY,EAAE;KAAM,CAAA,CACxDT,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,CAACU,IAAI,EAAE,EAAE;AAACD,MAAAA,YAAY,EAAE;KAAM,CAAA,CACtDT,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAACK,KAAK,EAAE,CAAA,CAC7BL,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,CAACM,IAAI,EAAE,CAAC;AAE/B,IAAA,IAAI,IAAI,CAACZ,QAAQ,EAAE,EAAE;MACnBI,OAAO,CAACE,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAACW,MAAM,CAAC;AAACC,QAAAA,MAAM,EAAE,IAAI;AAAET,QAAAA,KAAK,EAAE,CAAC1B,aAAa,CAACoC,KAAK;AAAE,OAAC,CAAC,CAAC;AACnF;AAEA,IAAA,IAAIpC,aAAa,CAACgB,IAAI,EAAE,KAAK,SAAS,EAAE;AACtCK,MAAAA,OAAO,CAACE,EAAE,CAAC,OAAO,EAAE,MAAK;QACvB,IAAI,CAACW,MAAM,CAAC;AAACC,UAAAA,MAAM,EAAE,IAAI;AAAET,UAAAA,KAAK,EAAE,CAAC1B,aAAa,CAACoC,KAAK;AAAE,SAAC,CAAC;AAC5D,OAAC,CAAC;AACJ;AAEA,IAAA,MAAMjB,YAAY,GAAG,IAAI,CAACA,YAAY,EAAE;AAExC,IAAA,IAAIA,YAAY,EAAEkB,gBAAgB,EAAE,EAAE;MACpChB,OAAO,CAACE,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAACW,MAAM,CAAC;AAACC,QAAAA,MAAM,EAAE,IAAI;AAAET,QAAAA,KAAK,EAAE;AAAI,OAAC,CAAC,CAAC;AACrE;AAEA,IAAA,IAAIP,YAAY,EAAEmB,gBAAgB,EAAE,EAAE;AACpCjB,MAAAA,OAAO,CACJE,EAAE,CAAC,IAAI,CAACf,SAAS,EAAE,EAAE,MAAM,IAAI,CAAC+B,UAAU,EAAE,CAAA,CAC5ChB,EAAE,CAAC,IAAI,CAACb,WAAW,EAAE,EAAE,MAAM,IAAI,CAAC8B,YAAY,EAAE,CAAC;AAEpD,MAAA,IAAI,CAACrB,YAAY,CAACkB,gBAAgB,EAAE,EAAE;QACpChB,OAAO,CAACE,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAACgB,UAAU,EAAE,CAAC;AAC9C;AACF;AAEA,IAAA,IAAIpB,YAAY,EAAEsB,iBAAiB,EAAE,EAAE;AACrCpB,MAAAA,OAAO,CAACE,EAAE,CAAC,IAAI,CAACb,WAAW,EAAE,EAAE,MAAM,IAAI,CAAC8B,YAAY,EAAE,CAAC;AAC3D;AAEA,IAAA,OAAOnB,OAAO;AAChB,GAAC,CAAC;AAGFqB,EAAAA,KAAK,GAAG3C,QAAQ,CAAC,MACf,IAAI4C,mBAAmB,EAAE,CAACpB,EAAE,CAACqB,CAAC,IAAG;IAC/B,IAAIA,CAAC,CAACC,MAAM,KAAK,IAAI,CAACnD,MAAM,CAACoD,OAAO,EAAE,EAAE;AACtC,MAAA,IAAI,IAAI,CAAC7B,QAAQ,EAAE,EAAE;AACnB,QAAA,IAAI,CAACtB,QAAQ,EAAE,GAAG,IAAI,CAAC+B,KAAK,EAAE,GAAG,IAAI,CAACF,IAAI,CAAC;AAACM,UAAAA,QAAQ,EAAE;AAAK,SAAA,CAAC;AAC9D;AACF;IAEA,MAAMiB,QAAQ,GAAG,IAAI,CAACrD,MAAM,CAACM,aAAa,EAAE;IAE5C,IAAI+C,QAAQ,YAAY9C,qBAAqB,EAAE;AAC7C,MAAA;AACF;AAEA,IAAA,MAAM+C,IAAI,GAAGD,QAAQ,EAAEE,OAAO,CAACL,CAAC,CAAC;AAEjC,IAAA,IAAII,IAAI,EAAE;AACR,MAAA,IAAID,QAAQ,EAAE/B,IAAI,EAAE,KAAK,MAAM,EAAE;QAC/B,MAAMG,YAAY,GAAG4B,QAAsC;AAE3D,QAAA,IAAI5B,YAAY,CAACmB,gBAAgB,CAACU,IAAI,CAAC,IAAI,CAAC7B,YAAY,CAACkB,gBAAgB,CAACW,IAAI,CAAC,EAAE;AAC/E7B,UAAAA,YAAY,CAAC+B,eAAe,CAACF,IAAI,CAAC;UAClC,IAAI,CAACtD,MAAM,CAACoD,OAAO,EAAE,EAAEK,KAAK,EAAE;AAC9B,UAAA;AACF;AACF;MAEA,IAAI,CAACjB,MAAM,CAAC;QAACc,IAAI;AAAEb,QAAAA,MAAM,EAAE,IAAI;AAAET,QAAAA,KAAK,EAAE,CAACqB,QAAQ,EAAEX,KAAK;AAAE,OAAC,CAAC;MAC5D,IAAI,CAAC1C,MAAM,CAACoD,OAAO,EAAE,EAAEK,KAAK,EAAE;AAChC;AACF,GAAC,CAAC,CACH;EAEDC,WAAAA,CAAqB1D,MAA4B,EAAA;IAA5B,IAAM,CAAAA,MAAA,GAANA,MAAM;AAAyB;EAGpD2D,SAASA,CAACC,KAAoB,EAAA;IAC5B,IAAI,CAAC,IAAI,CAAC5D,MAAM,CAACG,QAAQ,EAAE,EAAE;MAC3B,IAAI,CAACuB,OAAO,EAAE,CAACmC,MAAM,CAACD,KAAK,CAAC;AAC9B;AACF;EAGAE,OAAOA,CAACF,KAAiB,EAAA;IACvB,IAAI,CAAC,IAAI,CAAC5D,MAAM,CAACG,QAAQ,EAAE,EAAE;MAC3B,IAAI,CAAC6C,KAAK,EAAE,CAACa,MAAM,CAACD,KAAqB,CAAC;AAC5C;AACF;EAGAG,OAAOA,CAACH,KAAY,EAAA;AAClB,IAAA,IAAI,IAAI,CAAC5D,MAAM,CAACG,QAAQ,EAAE,IAAI,IAAI,CAACH,MAAM,CAACuB,QAAQ,EAAE,EAAE;AACpD,MAAA;AACF;IAEA,MAAM6B,OAAO,GAAG,IAAI,CAACpD,MAAM,CAACoD,OAAO,EAAE;IAErC,IAAI,CAACA,OAAO,EAAE;AACZ,MAAA;AACF;IAEA,MAAM9C,aAAa,GAAG,IAAI,CAACN,MAAM,CAACM,aAAa,EAAE;IAEjD,IAAIA,aAAa,YAAYC,qBAAqB,EAAE;AAClD,MAAA;AACF;IAEA,IAAI,CAACuB,IAAI,EAAE;IACX,IAAI,CAAC9B,MAAM,CAACgE,UAAU,EAAEC,GAAG,CAACb,OAAO,CAACc,KAAK,CAAC;AAC1C,IAAA,IAAI,CAACvD,UAAU,GAAGiD,KAAK,YAAYO,UAAU,IAAI,CAAC,CAACP,KAAK,CAACQ,SAAS,CAACC,KAAK,CAAC,SAAS,CAAC;AAEnF,IAAA,IAAI,IAAI,CAACrE,MAAM,CAACoB,UAAU,EAAE,KAAK,WAAW,IAAI,CAAC,IAAI,CAACT,UAAU,EAAE;MAChE,IAAI,CAAC2D,SAAS,EAAE;AAClB;AACF;AAGAC,EAAAA,SAASA,GAAA;AACP,IAAA,IAAI,IAAI,CAACvE,MAAM,CAAC+B,cAAc,EAAE,IAAI,CAAC,IAAI,CAAClB,cAAc,EAAE,EAAE;AAC1D,MAAA,MAAM2D,iBAAiB,GAAG,IAAI,CAAChD,YAAY,EAAE,EAAEiD,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACpED,MAAAA,iBAAiB,GAAG,IAAI,CAAChD,YAAY,EAAE,EAAEiC,KAAK,CAACe,iBAAiB,CAAC,GAAG,IAAI,CAACtC,KAAK,EAAE;AAClF;AAEA,IAAA,IAAI,CAACtB,SAAS,CAACqD,GAAG,CAAC,IAAI,CAAC;AACxB,IAAA,IAAI,CAACpD,cAAc,CAACoD,GAAG,CAAC,IAAI,CAAC;AAC/B;EAGAS,UAAUA,CAACd,KAAiB,EAAA;AAC1B,IAAA,IAAI,IAAI,CAAC5D,MAAM,CAACG,QAAQ,EAAE,EAAE;AAC1B,MAAA;AACF;IAEA,MAAMG,aAAa,GAAG,IAAI,CAACN,MAAM,CAACM,aAAa,EAAE;IAEjD,IAAIA,aAAa,YAAYC,qBAAqB,EAAE;AAClD,MAAA;AACF;IAEA,IACE,EAAEqD,KAAK,CAACe,aAAa,YAAYC,WAAW,CAAC,IAC7C,CAAC,IAAI,CAAC5E,MAAM,CAAC6E,WAAW,EAAE,EAAEC,QAAQ,CAAClB,KAAK,CAACe,aAAa,CAAC,EACzD;AACA,MAAA,IAAI,CAAC/D,SAAS,CAACqD,GAAG,CAAC,KAAK,CAAC;AAEzB,MAAA,IAAI,CAAC,IAAI,CAAChE,QAAQ,EAAE,EAAE;AACpB,QAAA;AACF;AAEA,MAAA,IAAI,IAAI,CAACsB,QAAQ,EAAE,EAAE;QACnB,IAAI,CAACS,KAAK,EAAE;AACZ,QAAA;AACF;MAEA,IAAI,IAAI,CAAChC,MAAM,CAACoB,UAAU,EAAE,KAAK,QAAQ,EAAE;QACzC,IAAI,CAACqB,MAAM,EAAE;AACf,OAAA,MAAO;QACL,MAAMa,IAAI,GAAGhD,aAAa,EACtByE,KAAK,EAAE,CACRC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,UAAU,EAAE,KAAK,IAAI,CAAClF,MAAM,CAACoD,OAAO,EAAE,EAAEc,KAAK,CAAC;AAE7D,QAAA,IAAIZ,IAAI,EAAE;UACR,IAAI,CAACd,MAAM,CAAC;AAACc,YAAAA;AAAI,WAAC,CAAC;AACrB;AACF;MAEA,IAAI,CAACtB,KAAK,EAAE;AACd;AACF;EAGAmD,UAAU,GAAG9E,QAAQ,CAAC,MAAK;IAIzB,IAAI,IAAI,CAACmB,YAAY,EAAE,EAAEF,IAAI,EAAE,KAAK,SAAS,EAAE;MAC7C,OAAO,IAAI,CAACE,YAAY,EAAE,EAAEuD,KAAK,EAAE,CAAC,CAAC,CAAC;AACxC;IAEA,OAAO,IAAI,CAACvD,YAAY,EAAE,EACtBuD,KAAK,EAAE,CACRC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACf,KAAK,EAAE,KAAK,IAAI,CAAClE,MAAM,CAACmF,UAAU,EAAE,CAAC;AACtD,GAAC,CAAC;AAGFC,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,IAAI,CAAC7D,QAAQ,EAAE,EAAE;AACnB,MAAA;AACF;IAEA,MAAMjB,aAAa,GAAG,IAAI,CAACN,MAAM,CAACM,aAAa,EAAE;IAEjD,IAAIA,aAAa,YAAYC,qBAAqB,EAAE;AAClD,MAAA;AACF;AAMA,IAAA,MAAM8E,eAAe,GAAG,CAAC,IAAI,CAACrF,MAAM,CAACgE,UAAU,IAAI,CAACsB,MAAM,IAAI,CAAC,IAAI,CAAC3E,UAAU;AAE9E,IAAA,IAAI0E,eAAe,EAAE;AACnB,MAAA;AACF;AAGA,IAAA,IAAI,CAAC,IAAI,CAACzE,SAAS,EAAE,EAAE;AACrB,MAAA;AACF;AAEA,IAAA,IAAI,IAAI,CAACZ,MAAM,CAACM,aAAa,EAAE,EAAEgB,IAAI,EAAE,KAAK,MAAM,EAAE;MAClD,MAAMG,YAAY,GAAG,IAAI,CAACzB,MAAM,CAACM,aAAa,EAAgC;AAC9E,MAAA,IAAI,CAACN,MAAM,CAACgE,UAAU,IAAI,CAACsB,MAAM,GAAG7D,YAAY,CAAC8D,SAAS,EAAE,GAAG9D,YAAY,CAAC+D,WAAW,EAAE;AAC3F;AAEA,IAAA,MAAMlC,IAAI,GAAG,IAAI,CAAC6B,UAAU,EAAE;IAE9B,IAAI,CAAC7B,IAAI,EAAE;MACThD,aAAa,EAAEmF,cAAc,EAAE;MAC/BnF,aAAa,EAAEoF,OAAO,EAAE;AACxB,MAAA;AACF;AAEApF,IAAAA,aAAa,EAAEmD,KAAK,CAACH,IAAI,CAAC;IAE1B,IAAI,IAAI,CAACtD,MAAM,CAACoB,UAAU,EAAE,KAAK,QAAQ,EAAE;MACzC,IAAI,CAACoB,MAAM,CAAC;AAACc,QAAAA;AAAI,OAAC,CAAC;AACrB;AAEA,IAAA,IAAI,IAAI,CAACtD,MAAM,CAACoB,UAAU,EAAE,KAAK,WAAW,IAAI,CAAC,IAAI,CAACT,UAAU,EAAE;MAChE,IAAI,CAAC2D,SAAS,EAAE;AAClB;AACF;AAGAA,EAAAA,SAASA,GAAA;IACP,MAAMlB,OAAO,GAAG,IAAI,CAACpD,MAAM,CAACoD,OAAO,EAAE;IACrC,MAAMuC,aAAa,GAAG,IAAI,CAACnE,YAAY,EAAE,EAAEiD,gBAAgB,EAAE;AAC7D,IAAA,MAAMnB,IAAI,GAAGqC,aAAa,GAAG,CAAC,CAAC;AAE/B,IAAA,IAAI,CAACvC,OAAO,IAAI,CAACE,IAAI,EAAE;AACrB,MAAA;AACF;IAEA,MAAMsC,eAAe,GAAGtC,IAAI,CACzB4B,UAAU,EAAE,CACZW,WAAW,EAAE,CACbC,UAAU,CAAC,IAAI,CAAC9F,MAAM,CAACgE,UAAW,EAAE,CAAC6B,WAAW,EAAE,CAAC;AAEtD,IAAA,IAAID,eAAe,EAAE;AACnBxC,MAAAA,OAAO,CAACc,KAAK,GACX,IAAI,CAAClE,MAAM,CAACgE,UAAW,EAAE,GAAGV,IAAI,CAAC4B,UAAU,EAAE,CAACa,KAAK,CAAC,IAAI,CAAC/F,MAAM,CAACgE,UAAW,EAAE,CAACsB,MAAM,CAAC;MACvFlC,OAAO,CAAC4C,iBAAiB,CAAC,IAAI,CAAChG,MAAM,CAACgE,UAAW,EAAE,CAACsB,MAAM,EAAEhC,IAAI,CAAC4B,UAAU,EAAE,CAACI,MAAM,CAAC;AACrF,MAAA,IAAI,CAAC7E,eAAe,CAACwD,GAAG,CAACX,IAAI,CAAC;AAChC;AACF;EAGAtB,KAAKA,CAACiE,IAAuB,EAAA;IAC3B,MAAM3F,aAAa,GAAG,IAAI,CAACN,MAAM,CAACM,aAAa,EAAE;AAEjD,IAAA,IAAI,IAAI,CAACN,MAAM,CAAC+B,cAAc,EAAE,EAAE;AAChC,MAAA;AACF;IAEA,IAAIzB,aAAa,YAAYC,qBAAqB,EAAE;AAClD,MAAA,IAAI,CAACN,QAAQ,CAACgE,GAAG,CAAC,KAAK,CAAC;AACxB,MAAA;AACF;AAEA,IAAA,IAAI,IAAI,CAAC1C,QAAQ,EAAE,EAAE;AACnB,MAAA,IAAI,CAACtB,QAAQ,CAACgE,GAAG,CAAC,KAAK,CAAC;MACxB3D,aAAa,EAAEoF,OAAO,EAAE;AACxB,MAAA;AACF;AAEA,IAAA,IAAI,CAACO,IAAI,EAAEhE,KAAK,EAAE;MAChB,IAAI,IAAI,CAACjC,MAAM,CAACoB,UAAU,EAAE,KAAK,QAAQ,EAAE;AACzC,QAAA,IACE,CAAC,IAAI,CAACI,YAAY,EAAE,EAChBuD,KAAK,EAAE,CACRmB,IAAI,CAACjB,CAAC,IAAIA,CAAC,CAACC,UAAU,EAAE,KAAK,IAAI,CAAClF,MAAM,CAACoD,OAAO,EAAE,EAAEc,KAAK,CAAC,EAC7D;AACA,UAAA,IAAI,CAAC1C,YAAY,EAAE,EAAEiE,cAAc,EAAE;AACvC;AACF;AAEA,MAAA,IAAI,CAACxF,QAAQ,CAACgE,GAAG,CAAC,KAAK,CAAC;MACxB3D,aAAa,EAAEoF,OAAO,EAAE;AACxB,MAAA;AACF;AAEA,IAAA,IAAI,CAAC,IAAI,CAACzF,QAAQ,EAAE,EAAE;MACpB,IAAI,CAACD,MAAM,CAACgE,UAAU,EAAEC,GAAG,CAAC,EAAE,CAAC;MAC/B3D,aAAa,EAAEmF,cAAc,EAAE;MAE/B,MAAMrC,OAAO,GAAG,IAAI,CAACpD,MAAM,CAACoD,OAAO,EAAE;AAErC,MAAA,IAAIA,OAAO,EAAE;QACXA,OAAO,CAACc,KAAK,GAAG,EAAE;AACpB;AACF,KAAA,MAAO,IAAI,IAAI,CAACjE,QAAQ,EAAE,EAAE;AAC1B,MAAA,IAAI,CAACA,QAAQ,CAACgE,GAAG,CAAC,KAAK,CAAC;MACxB,MAAMkC,YAAY,GAAG7F,aAAa,EAAEmE,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAE3D,MAAA,IAAI0B,YAAY,EAAEjB,UAAU,EAAE,KAAK,IAAI,CAAClF,MAAM,CAACgE,UAAW,EAAE,EAAE;QAC5D1D,aAAa,EAAEmF,cAAc,EAAE;AACjC;AAEA,MAAA;AACF;IAEA,IAAI,CAACzD,KAAK,EAAE;AAEZ,IAAA,IAAI,CAAC,IAAI,CAACT,QAAQ,EAAE,EAAE;MACpBjB,aAAa,EAAEmF,cAAc,EAAE;AACjC;AACF;EAGA3D,IAAIA,CAACsE,GAA2D,EAAA;AAC9D,IAAA,IAAI,CAACnG,QAAQ,CAACgE,GAAG,CAAC,IAAI,CAAC;IACvB,MAAM3D,aAAa,GAAG,IAAI,CAACN,MAAM,CAACM,aAAa,EAAE;IAEjD,IAAIA,aAAa,YAAYC,qBAAqB,EAAE;AAClD,MAAA;AACF;IAEA,MAAM6C,OAAO,GAAG,IAAI,CAACpD,MAAM,CAACoD,OAAO,EAAE;IAErC,IAAIA,OAAO,IAAI,IAAI,CAACpD,MAAM,CAACoB,UAAU,EAAE,KAAK,WAAW,EAAE;MACvD,MAAMiF,cAAc,GAAGjD,OAAO,CAACkD,cAAc,KAAKlD,OAAO,CAACc,KAAK,CAACoB,MAAM;MACtE,IAAI,CAACtF,MAAM,CAACgE,UAAU,EAAEC,GAAG,CAACb,OAAO,CAACc,KAAK,CAAC6B,KAAK,CAAC,CAAC,EAAE3C,OAAO,CAACkD,cAAc,IAAI,CAAC,CAAC,CAAC;MAChF,IAAI,CAACD,cAAc,EAAE;AACnB,QAAA,IAAI,CAAC5F,eAAe,CAACwD,GAAG,CAACvD,SAAS,CAAC;AACrC;AACF;IAEA,IAAI0F,GAAG,EAAElE,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,EAAE;AACd;IACA,IAAIkE,GAAG,EAAEjE,IAAI,EAAE;MACb,IAAI,CAACA,IAAI,EAAE;AACb;IACA,IAAIiE,GAAG,EAAEhE,QAAQ,EAAE;MACjB,MAAM+D,YAAY,GAAG7F,aAAa,EAC9ByE,KAAK,EAAE,CACRC,IAAI,CAACC,CAAC,IAAI3E,aAAa,EAAEmE,gBAAgB,EAAE,CAAC8B,QAAQ,CAACtB,CAAC,CAAC,CAAC;AAE3D,MAAA,IAAIkB,YAAY,EAAE;AAChB7F,QAAAA,aAAa,EAAEmD,KAAK,CAAC0C,YAAY,CAAC;AACpC;AACF;AACF;AAGA9D,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAACmE,SAAS,CAAC,MAAM,IAAI,CAAChF,YAAY,EAAE,EAAEa,IAAI,EAAE,CAAC;AACnD;AAGAE,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAACiE,SAAS,CAAC,MAAM,IAAI,CAAChF,YAAY,EAAE,EAAEe,IAAI,EAAE,CAAC;AACnD;AAGAL,EAAAA,KAAKA,GAAA;AACH,IAAA,IAAI,CAACsE,SAAS,CAAC,MAAM,IAAI,CAAChF,YAAY,EAAE,EAAEU,KAAK,EAAE,CAAC;AACpD;AAGAC,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAACqE,SAAS,CAAC,MAAM,IAAI,CAAChF,YAAY,EAAE,EAAEW,IAAI,EAAE,CAAC;AACnD;AAGAW,EAAAA,YAAYA,GAAA;IACV,MAAMO,QAAQ,GAAG,IAAI,CAACrD,MAAM,CAACM,aAAa,EAAgC;IAC1E,IAAI,CAACkG,SAAS,CAAC,MAAMnD,QAAQ,EAAEP,YAAY,EAAE,CAAC;AAChD;AAGAD,EAAAA,UAAUA,GAAA;IACR,MAAMQ,QAAQ,GAAG,IAAI,CAACrD,MAAM,CAACM,aAAa,EAAgC;IAC1E,IAAI,CAACkG,SAAS,CAAC,MAAMnD,QAAQ,EAAER,UAAU,EAAE,CAAC;AAC9C;AAGAL,EAAAA,MAAMA,CAACyD,OAAsD,EAAE,EAAA;AAC7D,IAAA,MAAM5C,QAAQ,GAAG,IAAI,CAAC7B,YAAY,EAAE;IAIpC,MAAM8B,IAAI,GAAG2C,IAAI,CAAC3C,IAAI,IAAID,QAAQ,EAAEoD,aAAa,EAAE;AAGnD,IAAA,IAAInD,IAAI,EAAEnD,QAAQ,EAAE,EAAE;AACpB,MAAA;AACF;IAEA,IAAI8F,IAAI,CAAC3C,IAAI,EAAE;AACbD,MAAAA,QAAQ,EAAEI,KAAK,CAACwC,IAAI,CAAC3C,IAAI,EAAE;AAACoD,QAAAA,YAAY,EAAE;AAAK,OAAC,CAAC;AACnD;IAEArD,QAAQ,EAAEX,KAAK,EAAE,GAAGW,QAAQ,CAACsD,MAAM,CAACV,IAAI,CAAC3C,IAAI,CAAC,GAAGD,QAAQ,EAAEb,MAAM,CAACyD,IAAI,CAAC3C,IAAI,CAAC;IAE5E,IAAI2C,IAAI,CAACxD,MAAM,EAAE;MACf,IAAI,CAACA,MAAM,EAAE;AACf;IACA,IAAIwD,IAAI,CAACjE,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,EAAE;AACd;AACF;AAGAS,EAAAA,MAAMA,GAAA;IACJ,MAAMW,OAAO,GAAG,IAAI,CAACpD,MAAM,CAACoD,OAAO,EAAE;IACrC,MAAMuC,aAAa,GAAG,IAAI,CAACnE,YAAY,EAAE,EAAEiD,gBAAgB,EAAE;IAE7D,IAAI,CAACrB,OAAO,EAAE;AACZ,MAAA;AACF;IAEAA,OAAO,CAACc,KAAK,GAAGyB,aAAa,EAAEiB,GAAG,CAAC3B,CAAC,IAAIA,CAAC,CAACC,UAAU,EAAE,CAAC,CAAC2B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACxE,IAAI,CAAC7G,MAAM,CAACgE,UAAU,EAAEC,GAAG,CAACb,OAAO,CAACc,KAAK,CAAC;AAE1C,IAAA,IAAI,IAAI,CAAClE,MAAM,CAACoB,UAAU,EAAE,KAAK,WAAW,IAAI,CAAC,IAAI,CAACG,QAAQ,EAAE,EAAE;AAChE,MAAA,MAAM+D,MAAM,GAAGlC,OAAO,CAACc,KAAK,CAACoB,MAAM;AACnClC,MAAAA,OAAO,CAAC4C,iBAAiB,CAACV,MAAM,EAAEA,MAAM,CAAC;AAC3C;AACF;EAGQkB,SAASA,CAACM,SAAqB,EAAA;AACrCA,IAAAA,SAAS,EAAE;IAEX,IAAI,IAAI,CAAC9G,MAAM,CAACoB,UAAU,EAAE,KAAK,QAAQ,EAAE;MACzC,IAAI,CAACoB,MAAM,EAAE;AACf;IAEA,IAAI,IAAI,CAACxC,MAAM,CAACoB,UAAU,EAAE,KAAK,WAAW,EAAE;AAG5C,MAAA,MAAM+E,YAAY,GAAG,IAAI,CAAC3E,YAAY,EAAE,EAAEiD,gBAAgB,EAAE,CAAC,CAAC,CAAC;MAE/D,IAAI,CAAC0B,YAAY,EAAE;AACjB,QAAA;AACF;AAEA,MAAA,IAAIA,YAAY,KAAK,IAAI,CAAC1F,eAAe,EAAE,EAAE;QAC3C,IAAI,CAAC6D,SAAS,EAAE;AAClB,OAAA,MAAO;QACL,MAAMlB,OAAO,GAAG,IAAI,CAACpD,MAAM,CAACoD,OAAO,EAAG;AACtCA,QAAAA,OAAO,CAACc,KAAK,GAAGiC,YAAY,EAAEjB,UAAU,EAAG;AAC7C;AACF;AACF;AACD;MAEY3E,qBAAqB,CAAA;EAUrBP,MAAA;EATXkB,EAAE,GAAGA,MAAM,IAAI,CAAClB,MAAM,CAACkB,EAAE,EAAE;EAE3BI,IAAI,GAAGA,MAAM,QAAiB;EAE9BI,OAAO,GAAGrB,QAAQ,CAAC,MAAK;AACtB,IAAA,OAAO,IAAIuB,oBAAoB,EAAE,CAACC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC7B,MAAM,CAAC+G,QAAQ,CAAC/E,KAAK,EAAE,CAAC;AACpF,GAAC,CAAC;EAEF0B,WAAAA,CACW1D,MAIR,EAAA;IAJQ,IAAM,CAAAA,MAAA,GAANA,MAAM;AAKd;EAEH2D,SAASA,CAACC,KAAoB,EAAA;IAC5B,IAAI,CAAClC,OAAO,EAAE,CAACmC,MAAM,CAACD,KAAK,CAAC;AAC9B;EAEAE,OAAOA,CAACF,KAAiB,EAAA;IAEvB,IAAIA,KAAK,CAACT,MAAM,KAAK,IAAI,CAACnD,MAAM,CAACgH,OAAO,EAAE,EAAE;AAC1C,MAAA,IAAI,CAAChH,MAAM,CAAC+G,QAAQ,CAAC/E,KAAK,EAAE;AAC9B;AACF;AACD;;;;"}
{"version":3,"file":"_combobox-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/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 {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager';\nimport {\n computed,\n signal,\n SignalLike,\n WritableSignalLike,\n} from '../behaviors/signal-like/signal-like';\nimport {ListItem} from '../behaviors/list/list';\n\n/** Represents the required inputs for a combobox. */\nexport interface ComboboxInputs<T extends ListItem<V>, V> {\n /** The controls for the popup associated with the combobox. */\n popupControls: SignalLike<\n ComboboxListboxControls<T, V> | ComboboxTreeControls<T, V> | ComboboxDialogPattern | undefined\n >;\n\n /** The HTML input element that serves as the combobox input. */\n inputEl: SignalLike<HTMLInputElement | undefined>;\n\n /** The HTML element that serves as the combobox container. */\n containerEl: SignalLike<HTMLElement | undefined>;\n\n /** The filtering mode for the combobox. */\n filterMode: SignalLike<'manual' | 'auto-select' | 'highlight'>;\n\n /** The current value of the combobox. */\n inputValue?: WritableSignalLike<string>;\n\n /** The value of the first matching item in the popup. */\n firstMatch: SignalLike<V | undefined>;\n\n /** Whether the combobox is disabled. */\n disabled: SignalLike<boolean>;\n\n /** Whether the combobox is read-only. */\n readonly: SignalLike<boolean>;\n\n /** Whether the combobox is in a right-to-left context. */\n textDirection: SignalLike<'rtl' | 'ltr'>;\n\n /** Whether the combobox is always expanded. */\n alwaysExpanded: SignalLike<boolean>;\n}\n\n/** An interface that allows combobox popups to expose the necessary controls for the combobox. */\nexport interface ComboboxListboxControls<T extends ListItem<V>, V> {\n /** A unique identifier for the popup. */\n id: () => string;\n\n /** The ARIA role for the popup. */\n role: SignalLike<'listbox' | 'tree' | 'grid'>;\n\n // TODO(wagnermaciel): Add validation that ensures only readonly comboboxes can have multi-select popups.\n\n /** Whether multiple items in the popup can be selected at once. */\n multi: SignalLike<boolean>;\n\n /** The ID of the active item in the popup. */\n activeId: SignalLike<string | undefined>;\n\n /** The list of items in the popup. */\n items: SignalLike<T[]>;\n\n /** Navigates to the given item in the popup. */\n focus: (item: T, opts?: {focusElement?: boolean}) => void;\n\n /** Navigates to the next item in the popup. */\n next: () => void;\n\n /** Navigates to the previous item in the popup. */\n prev: () => void;\n\n /** Navigates to the first item in the popup. */\n first: () => void;\n\n /** Navigates to the last item in the popup. */\n last: () => void;\n\n /** Selects the current item in the popup. */\n select: (item?: T) => void;\n\n /** Toggles the selection state of the given item in the popup. */\n toggle: (item?: T) => void;\n\n /** Clears the selection state of the popup. */\n clearSelection: () => void;\n\n /** Removes focus from any item in the popup. */\n unfocus: () => void;\n\n /** Returns the item corresponding to the given event. */\n getItem: (e: PointerEvent) => T | undefined;\n\n /** Returns the currently active (focused) item in the popup. */\n getActiveItem: () => T | undefined;\n\n /** Returns the currently selected items in the popup. */\n getSelectedItems: () => T[];\n\n /** Sets the value of the combobox based on the selected item. */\n setValue: (value: V | undefined) => void; // For re-setting the value if the popup was destroyed.\n}\n\nexport interface ComboboxTreeControls<T extends ListItem<V>, V> extends ComboboxListboxControls<\n T,\n V\n> {\n /** Whether the currently active item in the popup is collapsible. */\n isItemCollapsible: () => boolean;\n\n /** Expands the currently active item in the popup. */\n expandItem: () => void;\n\n /** Collapses the currently active item in the popup. */\n collapseItem: () => void;\n\n /** Checks if the currently active item in the popup is expandable. */\n isItemExpandable: (item?: T) => boolean;\n\n /** Expands all nodes in the tree. */\n expandAll: () => void;\n\n /** Collapses all nodes in the tree. */\n collapseAll: () => void;\n\n /** Toggles the expansion state of the currently active item in the popup. */\n toggleExpansion: (item?: T) => void;\n\n /** Whether the current active item is selectable. */\n isItemSelectable: (item?: T) => boolean;\n}\n\n/** Controls the state of a combobox. */\nexport class ComboboxPattern<T extends ListItem<V>, V> {\n /** Whether the combobox is expanded. */\n expanded = signal(false);\n\n /** Whether the combobox is disabled. */\n disabled = () => this.inputs.disabled();\n\n /** The ID of the active item in the combobox. */\n activeDescendant = computed(() => {\n const popupControls = this.inputs.popupControls();\n if (popupControls instanceof ComboboxDialogPattern) {\n return null;\n }\n\n return popupControls?.activeId() ?? null;\n });\n\n /** The currently highlighted item in the combobox. */\n highlightedItem = signal<T | undefined>(undefined);\n\n /** Whether the most recent input event was a deletion. */\n isDeleting = false;\n\n /** Whether the combobox is focused. */\n isFocused = signal(false);\n\n /** Whether the combobox has ever been focused. */\n hasBeenFocused = signal(false);\n\n /** The key used to navigate to the previous item in the list. */\n expandKey = computed(() => (this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight'));\n\n /** The key used to navigate to the next item in the list. */\n collapseKey = computed(() =>\n this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft',\n );\n\n /** The ID of the popup associated with the combobox. */\n popupId = computed(() => this.inputs.popupControls()?.id() || null);\n\n /** The autocomplete behavior of the combobox. */\n autocomplete = computed(() => (this.inputs.filterMode() === 'highlight' ? 'both' : 'list'));\n\n /** The ARIA role of the popup associated with the combobox. */\n hasPopup = computed(() => this.inputs.popupControls()?.role() || null);\n\n /** Whether the combobox is read-only. */\n readonly = computed(() => this.inputs.readonly() || this.inputs.disabled() || null);\n\n /** Returns the listbox controls for the combobox. */\n listControls = () => {\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return null;\n }\n\n return popupControls;\n };\n\n /** Returns the tree controls for the combobox. */\n treeControls = () => {\n const popupControls = this.inputs.popupControls();\n\n if (popupControls?.role() === 'tree') {\n return popupControls as ComboboxTreeControls<T, V>;\n }\n\n return null;\n };\n\n /** The keydown event manager for the combobox. */\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n const popupControls = this.inputs.popupControls();\n\n if (!popupControls) {\n return manager;\n }\n\n if (popupControls instanceof ComboboxDialogPattern) {\n if (!this.expanded()) {\n manager.on('ArrowUp', () => this.open()).on('ArrowDown', () => this.open());\n\n if (this.readonly()) {\n manager.on('Enter', () => this.open()).on(' ', () => this.open());\n }\n }\n\n return manager;\n }\n\n if (!this.inputs.alwaysExpanded()) {\n manager.on('Escape', () => this.close({reset: !this.readonly()}));\n }\n\n if (!this.expanded()) {\n manager\n .on('ArrowDown', () => this.open({first: true}))\n .on('ArrowUp', () => this.open({last: true}));\n\n if (this.readonly()) {\n manager\n .on('Enter', () => this.open({selected: true}))\n .on(' ', () => this.open({selected: true}));\n }\n\n return manager;\n }\n\n manager\n .on('ArrowDown', () => this.next(), {ignoreRepeat: false})\n .on('ArrowUp', () => this.prev(), {ignoreRepeat: false})\n .on('Home', () => this.first())\n .on('End', () => this.last());\n\n if (this.readonly()) {\n manager.on(' ', () => this.select({commit: true, close: !popupControls.multi()}));\n }\n\n if (popupControls.role() === 'listbox') {\n manager.on('Enter', () => {\n this.select({commit: true, close: !popupControls.multi()});\n });\n }\n\n const treeControls = this.treeControls();\n\n if (treeControls?.isItemSelectable()) {\n manager.on('Enter', () => this.select({commit: true, close: true}));\n }\n\n if (treeControls?.isItemExpandable()) {\n manager\n .on(this.expandKey(), () => this.expandItem())\n .on(this.collapseKey(), () => this.collapseItem());\n\n if (!treeControls.isItemSelectable()) {\n manager.on('Enter', () => this.expandItem());\n }\n }\n\n if (treeControls?.isItemCollapsible()) {\n manager.on(this.collapseKey(), () => this.collapseItem());\n }\n\n return manager;\n });\n\n /** The click event manager for the combobox. */\n click = computed(() =>\n new PointerEventManager().on(e => {\n if (e.target === this.inputs.inputEl()) {\n if (this.readonly()) {\n this.expanded() ? this.close() : this.open({selected: true});\n }\n }\n\n const controls = this.inputs.popupControls();\n\n if (controls instanceof ComboboxDialogPattern) {\n return;\n }\n\n const item = controls?.getItem(e);\n\n if (item) {\n if (controls?.role() === 'tree') {\n const treeControls = controls as ComboboxTreeControls<T, V>;\n\n if (treeControls.isItemExpandable(item) && !treeControls.isItemSelectable(item)) {\n treeControls.toggleExpansion(item);\n this.inputs.inputEl()?.focus();\n return;\n }\n }\n\n this.select({item, commit: true, close: !controls?.multi()});\n this.inputs.inputEl()?.focus(); // Return focus to the input after selecting.\n }\n }),\n );\n\n constructor(readonly inputs: ComboboxInputs<T, V>) {}\n\n /** Handles keydown events for the combobox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.inputs.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles click events for the combobox. */\n onClick(event: MouseEvent) {\n if (!this.inputs.disabled()) {\n this.click().handle(event as PointerEvent);\n }\n }\n\n /** Handles input events for the combobox. */\n onInput(event: Event) {\n if (this.inputs.disabled() || this.inputs.readonly()) {\n return;\n }\n\n const inputEl = this.inputs.inputEl();\n\n if (!inputEl) {\n return;\n }\n\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return;\n }\n\n this.open();\n this.inputs.inputValue?.set(inputEl.value);\n this.isDeleting = event instanceof InputEvent && !!event.inputType.match(/^delete/);\n\n if (this.inputs.filterMode() === 'highlight' && !this.isDeleting) {\n this.highlight();\n }\n }\n\n /** Handles focus in events for the combobox. */\n onFocusIn() {\n if (this.inputs.alwaysExpanded() && !this.hasBeenFocused()) {\n const firstSelectedItem = this.listControls()?.getSelectedItems()[0];\n firstSelectedItem ? this.listControls()?.focus(firstSelectedItem) : this.first();\n }\n\n this.isFocused.set(true);\n this.hasBeenFocused.set(true);\n }\n\n /** Handles focus out events for the combobox. */\n onFocusOut(event: FocusEvent) {\n if (this.inputs.disabled()) {\n return;\n }\n\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return;\n }\n\n if (\n !(event.relatedTarget instanceof HTMLElement) ||\n !this.inputs.containerEl()?.contains(event.relatedTarget)\n ) {\n this.isFocused.set(false);\n\n if (!this.expanded()) {\n return;\n }\n\n if (this.readonly()) {\n this.close();\n return;\n }\n\n if (this.inputs.filterMode() !== 'manual') {\n this.commit();\n } else {\n const item = popupControls\n ?.items()\n .find(i => i.searchTerm() === this.inputs.inputEl()?.value);\n\n if (item) {\n this.select({item});\n }\n }\n\n this.close();\n }\n }\n\n /** The first matching item in the combobox. */\n firstMatch = computed(() => {\n // TODO(wagnermaciel): Consider whether we should not provide this default behavior for the\n // listbox. Instead, we may want to allow users to have no match so that typing does not focus\n // any option.\n if (this.listControls()?.role() === 'listbox') {\n return this.listControls()?.items()[0];\n }\n\n return this.listControls()\n ?.items()\n .find(i => i.value() === this.inputs.firstMatch());\n });\n\n /** Handles filtering logic for the combobox. */\n onFilter() {\n if (this.readonly()) {\n return;\n }\n\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return;\n }\n\n // TODO(wagnermaciel)\n // When the user first interacts with the combobox, the popup will lazily render for the first\n // time. This is a simple way to detect this and avoid auto-focus & selection logic, but this\n // should probably be moved to the component layer instead.\n const isInitialRender = !this.inputs.inputValue?.().length && !this.isDeleting;\n\n if (isInitialRender) {\n return;\n }\n\n // Avoid refocusing the input if a filter event occurs after focus has left the combobox.\n if (!this.isFocused()) {\n return;\n }\n\n if (this.inputs.popupControls()?.role() === 'tree') {\n const treeControls = this.inputs.popupControls() as ComboboxTreeControls<T, V>;\n this.inputs.inputValue?.().length ? treeControls.expandAll() : treeControls.collapseAll();\n }\n\n const item = this.firstMatch();\n\n if (!item) {\n popupControls?.clearSelection();\n popupControls?.unfocus();\n return;\n }\n\n popupControls?.focus(item);\n\n if (this.inputs.filterMode() !== 'manual') {\n this.select({item});\n }\n\n if (this.inputs.filterMode() === 'highlight' && !this.isDeleting) {\n this.highlight();\n }\n }\n\n /** Highlights the currently selected item in the combobox. */\n highlight() {\n const inputEl = this.inputs.inputEl();\n const selectedItems = this.listControls()?.getSelectedItems();\n const item = selectedItems?.[0];\n\n if (!inputEl || !item) {\n return;\n }\n\n const isHighlightable = item\n .searchTerm()\n .toLowerCase()\n .startsWith(this.inputs.inputValue!().toLowerCase());\n\n if (isHighlightable) {\n inputEl.value =\n this.inputs.inputValue!() + item.searchTerm().slice(this.inputs.inputValue!().length);\n inputEl.setSelectionRange(this.inputs.inputValue!().length, item.searchTerm().length);\n this.highlightedItem.set(item);\n }\n }\n\n /** Closes the combobox. */\n close(opts?: {reset: boolean}) {\n const popupControls = this.inputs.popupControls();\n\n if (this.inputs.alwaysExpanded()) {\n return;\n }\n\n if (popupControls instanceof ComboboxDialogPattern) {\n this.expanded.set(false);\n return;\n }\n\n if (this.readonly()) {\n this.expanded.set(false);\n popupControls?.unfocus();\n return;\n }\n\n if (!opts?.reset) {\n if (this.inputs.filterMode() === 'manual') {\n if (\n !this.listControls()\n ?.items()\n .some(i => i.searchTerm() === this.inputs.inputEl()?.value)\n ) {\n this.listControls()?.clearSelection();\n }\n }\n\n this.expanded.set(false);\n popupControls?.unfocus();\n return;\n }\n\n if (!this.expanded()) {\n this.inputs.inputValue?.set('');\n popupControls?.clearSelection();\n\n const inputEl = this.inputs.inputEl();\n\n if (inputEl) {\n inputEl.value = '';\n }\n } else if (this.expanded()) {\n this.expanded.set(false);\n const selectedItem = popupControls?.getSelectedItems()?.[0];\n\n if (selectedItem?.searchTerm() !== this.inputs.inputValue!()) {\n popupControls?.clearSelection();\n }\n\n return;\n }\n\n this.close();\n\n if (!this.readonly()) {\n popupControls?.clearSelection();\n }\n }\n\n /** Opens the combobox. */\n open(nav?: {first?: boolean; last?: boolean; selected?: boolean}) {\n this.expanded.set(true);\n const popupControls = this.inputs.popupControls();\n\n if (popupControls instanceof ComboboxDialogPattern) {\n return;\n }\n\n const inputEl = this.inputs.inputEl();\n\n if (inputEl && this.inputs.filterMode() === 'highlight') {\n const isHighlighting = inputEl.selectionStart !== inputEl.value.length;\n this.inputs.inputValue?.set(inputEl.value.slice(0, inputEl.selectionStart || 0));\n if (!isHighlighting) {\n this.highlightedItem.set(undefined);\n }\n }\n\n if (nav?.first) {\n this.first();\n }\n if (nav?.last) {\n this.last();\n }\n if (nav?.selected) {\n const selectedItem = popupControls\n ?.items()\n .find(i => popupControls?.getSelectedItems().includes(i));\n\n if (selectedItem) {\n popupControls?.focus(selectedItem);\n }\n }\n }\n\n /** Navigates to the next focusable item in the combobox popup. */\n next() {\n this._navigate(() => this.listControls()?.next());\n }\n\n /** Navigates to the previous focusable item in the combobox popup. */\n prev() {\n this._navigate(() => this.listControls()?.prev());\n }\n\n /** Navigates to the first focusable item in the combobox popup. */\n first() {\n this._navigate(() => this.listControls()?.first());\n }\n\n /** Navigates to the last focusable item in the combobox popup. */\n last() {\n this._navigate(() => this.listControls()?.last());\n }\n\n /** Collapses the currently focused item in the combobox. */\n collapseItem() {\n const controls = this.inputs.popupControls() as ComboboxTreeControls<T, V>;\n this._navigate(() => controls?.collapseItem());\n }\n\n /** Expands the currently focused item in the combobox. */\n expandItem() {\n const controls = this.inputs.popupControls() as ComboboxTreeControls<T, V>;\n this._navigate(() => controls?.expandItem());\n }\n\n /** Selects an item in the combobox popup. */\n select(opts: {item?: T; commit?: boolean; close?: boolean} = {}) {\n const controls = this.listControls();\n\n // When no item is specified (e.g. on keyboard toggle), get the active item instead.\n // Note: this is only necessary for disabled check, as select/toggle will check active item too.\n const item = opts.item ?? controls?.getActiveItem();\n\n // Check if item is disabled before proceeding.\n if (item?.disabled()) {\n return;\n }\n\n if (opts.item) {\n controls?.focus(opts.item, {focusElement: false});\n }\n\n controls?.multi() ? controls.toggle(opts.item) : controls?.select(opts.item);\n\n if (opts.commit) {\n this.commit();\n }\n if (opts.close) {\n this.close();\n }\n }\n\n /** Updates the value of the input based on the currently selected item. */\n commit() {\n const inputEl = this.inputs.inputEl();\n const selectedItems = this.listControls()?.getSelectedItems();\n\n if (!inputEl) {\n return;\n }\n\n inputEl.value = selectedItems?.map(i => i.searchTerm()).join(', ') || '';\n this.inputs.inputValue?.set(inputEl.value);\n\n if (this.inputs.filterMode() === 'highlight' && !this.readonly()) {\n const length = inputEl.value.length;\n inputEl.setSelectionRange(length, length);\n }\n }\n\n /** Navigates and handles additional actions based on filter mode. */\n private _navigate(operation: () => void) {\n operation();\n\n if (this.inputs.filterMode() !== 'manual') {\n this.select();\n }\n\n if (this.inputs.filterMode() === 'highlight') {\n // This is to handle when the user navigates back to the originally highlighted item.\n // E.g. User types \"Al\", highlights \"Alice\", then navigates down and back up to \"Alice\".\n const selectedItem = this.listControls()?.getSelectedItems()[0];\n\n if (!selectedItem) {\n return;\n }\n\n if (selectedItem === this.highlightedItem()) {\n this.highlight();\n } else {\n const inputEl = this.inputs.inputEl()!;\n inputEl.value = selectedItem?.searchTerm()!;\n }\n }\n }\n}\n\nexport class ComboboxDialogPattern {\n id = () => this.inputs.id();\n\n role = () => 'dialog' as const;\n\n keydown = computed(() => {\n return new KeyboardEventManager().on('Escape', () => this.inputs.combobox.close());\n });\n\n constructor(\n readonly inputs: {\n combobox: ComboboxPattern<any, any>;\n element: SignalLike<HTMLDialogElement>;\n id: SignalLike<string>;\n },\n ) {}\n\n onKeydown(event: KeyboardEvent) {\n this.keydown().handle(event);\n }\n\n onClick(event: MouseEvent) {\n // The \"click\" event fires on the dialog when the user clicks outside of the dialog content.\n if (event.target === this.inputs.element()) {\n this.inputs.combobox.close();\n }\n }\n}\n"],"names":["ComboboxPattern","inputs","expanded","signal","disabled","activeDescendant","computed","popupControls","ComboboxDialogPattern","activeId","highlightedItem","undefined","isDeleting","isFocused","hasBeenFocused","expandKey","textDirection","collapseKey","popupId","id","autocomplete","filterMode","hasPopup","role","readonly","listControls","treeControls","keydown","manager","KeyboardEventManager","on","open","alwaysExpanded","close","reset","first","last","selected","next","ignoreRepeat","prev","select","commit","multi","isItemSelectable","isItemExpandable","expandItem","collapseItem","isItemCollapsible","click","PointerEventManager","e","target","inputEl","controls","item","getItem","toggleExpansion","focus","constructor","onKeydown","event","handle","onClick","onInput","inputValue","set","value","InputEvent","inputType","match","highlight","onFocusIn","firstSelectedItem","getSelectedItems","onFocusOut","relatedTarget","HTMLElement","containerEl","contains","items","find","i","searchTerm","firstMatch","onFilter","isInitialRender","length","expandAll","collapseAll","clearSelection","unfocus","selectedItems","isHighlightable","toLowerCase","startsWith","slice","setSelectionRange","opts","some","selectedItem","nav","isHighlighting","selectionStart","includes","_navigate","getActiveItem","focusElement","toggle","map","join","operation","combobox","element"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_combobox-listbox-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/listbox/listbox.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/listbox/option.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/listbox/combobox-listbox.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 {OptionPattern} from './option';\nimport {KeyboardEventManager, PointerEventManager, Modifier} from '../behaviors/event-manager';\nimport {computed, signal, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {List, ListInputs} from '../behaviors/list/list';\n\n/** Represents the required inputs for a listbox. */\nexport type ListboxInputs<V> = ListInputs<OptionPattern<V>, V> & {\n /** A unique identifier for the listbox. */\n id: SignalLike<string>;\n\n /** Whether the listbox is readonly. */\n readonly: SignalLike<boolean>;\n};\n\n/** Controls the state of a listbox. */\nexport class ListboxPattern<V> {\n listBehavior: List<OptionPattern<V>, V>;\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** Whether the listbox is disabled. */\n disabled = computed(() => this.listBehavior.disabled());\n\n /** Whether the listbox is readonly. */\n readonly: SignalLike<boolean>;\n\n /** The tab index of the listbox. */\n tabIndex: SignalLike<-1 | 0> = computed(() => this.listBehavior.tabIndex());\n\n /** The id of the current active item. */\n activeDescendant = computed(() => this.listBehavior.activeDescendant());\n\n /** Whether multiple items in the list can be selected at once. */\n multi: SignalLike<boolean>;\n\n /** The number of items in the listbox. */\n setsize = computed(() => this.inputs.items().length);\n\n /** Whether the listbox selection follows focus. */\n followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** Whether the listbox should wrap. Used to disable wrapping while range selecting. */\n wrap = signal(true);\n\n /** The key used to navigate to the previous item in the list. */\n prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next item in the list. */\n nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n dynamicSpaceKey = computed(() => (this.listBehavior.isTyping() ? '' : ' '));\n\n /** The regexp used to decide if a key should trigger typeahead. */\n typeaheadRegexp = /^.$/;\n\n /** The keydown event manager for the listbox. */\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n if (this.readonly()) {\n return manager\n .on(this.prevKey, () => this.listBehavior.prev(), {ignoreRepeat: false})\n .on(this.nextKey, () => this.listBehavior.next(), {ignoreRepeat: false})\n .on('Home', () => this.listBehavior.first())\n .on('End', () => this.listBehavior.last())\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key));\n }\n\n if (!this.followFocus()) {\n manager\n .on(this.prevKey, () => this.listBehavior.prev(), {ignoreRepeat: false})\n .on(this.nextKey, () => this.listBehavior.next(), {ignoreRepeat: false})\n .on('Home', () => this.listBehavior.first())\n .on('End', () => this.listBehavior.last())\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key));\n }\n\n if (this.followFocus()) {\n manager\n .on(this.prevKey, () => this.listBehavior.prev({selectOne: true}), {ignoreRepeat: false})\n .on(this.nextKey, () => this.listBehavior.next({selectOne: true}), {ignoreRepeat: false})\n .on('Home', () => this.listBehavior.first({selectOne: true}))\n .on('End', () => this.listBehavior.last({selectOne: true}))\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key, {selectOne: true}));\n }\n\n if (this.inputs.multi()) {\n manager\n .on(Modifier.Any, 'Shift', () => this.listBehavior.anchor(this.listBehavior.activeIndex()))\n .on(Modifier.Shift, this.prevKey, () => this.listBehavior.prev({selectRange: true}), {\n ignoreRepeat: false,\n })\n .on(Modifier.Shift, this.nextKey, () => this.listBehavior.next({selectRange: true}), {\n ignoreRepeat: false,\n })\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'Home', () =>\n this.listBehavior.first({selectRange: true, anchor: false}),\n )\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'End', () =>\n this.listBehavior.last({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, 'Enter', () =>\n this.listBehavior.updateSelection({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, this.dynamicSpaceKey, () =>\n this.listBehavior.updateSelection({selectRange: true, anchor: false}),\n );\n }\n\n if (!this.followFocus() && this.inputs.multi()) {\n manager\n .on(this.dynamicSpaceKey, () => this.listBehavior.toggle())\n .on('Enter', () => this.listBehavior.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => this.listBehavior.toggleAll());\n }\n\n if (!this.followFocus() && !this.inputs.multi()) {\n manager.on(this.dynamicSpaceKey, () => this.listBehavior.toggleOne());\n manager.on('Enter', () => this.listBehavior.toggleOne());\n }\n\n if (this.inputs.multi() && this.followFocus()) {\n manager\n .on([Modifier.Ctrl, Modifier.Meta], this.prevKey, () => this.listBehavior.prev(), {\n ignoreRepeat: false,\n })\n .on([Modifier.Ctrl, Modifier.Meta], this.nextKey, () => this.listBehavior.next(), {\n ignoreRepeat: false,\n })\n .on([Modifier.Ctrl, Modifier.Meta], ' ', () => this.listBehavior.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Enter', () => this.listBehavior.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Home', () => this.listBehavior.first())\n .on([Modifier.Ctrl, Modifier.Meta], 'End', () => this.listBehavior.last())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => {\n this.listBehavior.toggleAll();\n this.listBehavior.select(); // Ensure the currect option remains selected.\n });\n }\n\n return manager;\n });\n\n /** The pointerdown event manager for the listbox. */\n pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.readonly()) {\n return manager.on(e => this.listBehavior.goto(this._getItem(e)!));\n }\n\n if (this.multi()) {\n manager.on(Modifier.Shift, e =>\n this.listBehavior.goto(this._getItem(e)!, {selectRange: true}),\n );\n }\n\n if (!this.multi() && this.followFocus()) {\n return manager.on(e => this.listBehavior.goto(this._getItem(e)!, {selectOne: true}));\n }\n\n if (!this.multi() && !this.followFocus()) {\n return manager.on(e => this.listBehavior.goto(this._getItem(e)!, {toggle: true}));\n }\n\n if (this.multi() && this.followFocus()) {\n return manager\n .on(e => this.listBehavior.goto(this._getItem(e)!, {selectOne: true}))\n .on(Modifier.Ctrl, e => this.listBehavior.goto(this._getItem(e)!, {toggle: true}));\n }\n\n if (this.multi() && !this.followFocus()) {\n return manager.on(e => this.listBehavior.goto(this._getItem(e)!, {toggle: true}));\n }\n\n return manager;\n });\n\n constructor(readonly inputs: ListboxInputs<V>) {\n this.readonly = inputs.readonly;\n this.orientation = inputs.orientation;\n this.multi = inputs.multi;\n this.listBehavior = new List(inputs);\n }\n\n /** Returns a set of violations */\n validate(): string[] {\n const violations: string[] = [];\n\n if (!this.inputs.multi() && this.inputs.values().length > 1) {\n violations.push(\n `A single-select listbox should not have multiple selected options. Selected options: ${this.inputs.values().join(', ')}`,\n );\n }\n\n return violations;\n }\n\n /** Handles keydown events for the listbox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /**\n * Sets the listbox to it's default initial state.\n *\n * Sets the active index of the listbox to the first focusable selected\n * item if one exists. Otherwise, sets focus to the first focusable item.\n *\n * This method should be called once the listbox and it's options are properly initialized,\n * meaning the ListboxPattern and OptionPatterns should have references to each other before this\n * is called.\n */\n setDefaultState() {\n let firstItem: OptionPattern<V> | null = null;\n\n for (const item of this.inputs.items()) {\n if (this.listBehavior.isFocusable(item)) {\n if (!firstItem) {\n firstItem = item;\n }\n if (item.selected()) {\n this.inputs.activeItem.set(item);\n return;\n }\n }\n }\n\n if (firstItem) {\n this.inputs.activeItem.set(firstItem);\n }\n }\n\n protected _getItem(e: PointerEvent) {\n if (!(e.target instanceof HTMLElement)) {\n return;\n }\n\n const element = e.target.closest('[role=\"option\"]');\n return this.inputs.items().find(i => i.element() === element);\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 {computed, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {List, ListInputs, ListItem} from '../behaviors/list/list';\n\n/**\n * Represents the properties exposed by a listbox that need to be accessed by an option.\n * This exists to avoid circular dependency errors between the listbox and option.\n */\ninterface ListboxPattern<V> {\n inputs: ListInputs<OptionPattern<V>, V>;\n listBehavior: List<OptionPattern<V>, V>;\n}\n\n/** Represents the required inputs for an option in a listbox. */\nexport interface OptionInputs<V> extends Omit<ListItem<V>, 'index' | 'selectable'> {\n listbox: SignalLike<ListboxPattern<V> | undefined>;\n}\n\n/** Represents an option in a listbox. */\nexport class OptionPattern<V> {\n /** A unique identifier for the option. */\n id: SignalLike<string>;\n\n /** The value of the option. */\n value: SignalLike<V>;\n\n /** The position of the option in the list. */\n index = computed(() => this.listbox()?.inputs.items().indexOf(this) ?? -1);\n\n /** Whether the option is active. */\n active = computed(() => this.listbox()?.inputs.activeItem() === this);\n\n /** Whether the option is selected. */\n selected = computed(() => this.listbox()?.inputs.values().includes(this.value()));\n\n /** Whether the option is selectable. */\n selectable = () => true;\n\n /** Whether the option is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The text used by the typeahead search. */\n searchTerm: SignalLike<string>;\n\n /** A reference to the parent listbox. */\n listbox: SignalLike<ListboxPattern<V> | undefined>;\n\n /** The tab index of the option. */\n tabIndex = computed(() => this.listbox()?.listBehavior.getItemTabindex(this));\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement | undefined>;\n\n constructor(args: OptionInputs<V>) {\n this.id = args.id;\n this.value = args.value;\n this.listbox = args.listbox;\n this.element = args.element;\n this.disabled = args.disabled;\n this.searchTerm = args.searchTerm;\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 {ListboxInputs, ListboxPattern} from './listbox';\nimport {SignalLike, computed} from '../behaviors/signal-like/signal-like';\nimport {OptionPattern} from './option';\nimport {ComboboxPattern, ComboboxListboxControls} from '../combobox/combobox';\n\nexport type ComboboxListboxInputs<V> = ListboxInputs<V> & {\n /** The combobox controlling the listbox. */\n combobox: SignalLike<ComboboxPattern<OptionPattern<V>, V> | undefined>;\n};\n\nexport class ComboboxListboxPattern<V>\n extends ListboxPattern<V>\n implements ComboboxListboxControls<OptionPattern<V>, V>\n{\n /** A unique identifier for the popup. */\n id = computed(() => this.inputs.id());\n\n /** The ARIA role for the listbox. */\n role = computed(() => 'listbox' as const);\n\n /** The id of the active (focused) item in the listbox. */\n activeId = computed(() => this.listBehavior.activeDescendant());\n\n /** The list of options in the listbox. */\n items: SignalLike<OptionPattern<V>[]> = computed(() => this.inputs.items());\n\n /** The tab index for the listbox. Always -1 because the combobox handles focus. */\n override tabIndex: SignalLike<-1 | 0> = () => -1;\n\n /** Whether multiple items in the list can be selected at once. */\n override multi = computed(() => {\n return this.inputs.combobox()?.readonly() ? this.inputs.multi() : false;\n });\n\n constructor(override readonly inputs: ComboboxListboxInputs<V>) {\n if (inputs.combobox()) {\n inputs.focusMode = () => 'activedescendant';\n inputs.element = inputs.combobox()!.inputs.inputEl;\n }\n\n super(inputs);\n }\n\n /** Noop. The combobox handles keydown events. */\n override onKeydown(_: KeyboardEvent): void {}\n\n /** Noop. The combobox handles pointerdown events. */\n override onPointerdown(_: PointerEvent): void {}\n\n /** Noop. The combobox controls the open state. */\n override setDefaultState(): void {}\n\n /** Navigates to the specified item in the listbox. */\n focus = (item: OptionPattern<V>, opts?: {focusElement?: boolean}) => {\n this.listBehavior.goto(item, opts);\n };\n\n /** Navigates to the previous focusable item in the listbox. */\n getActiveItem = () => this.inputs.activeItem();\n\n /** Navigates to the next focusable item in the listbox. */\n next = () => this.listBehavior.next();\n\n /** Navigates to the previous focusable item in the listbox. */\n prev = () => this.listBehavior.prev();\n\n /** Navigates to the last focusable item in the listbox. */\n last = () => this.listBehavior.last();\n\n /** Navigates to the first focusable item in the listbox. */\n first = () => this.listBehavior.first();\n\n /** Unfocuses the currently focused item in the listbox. */\n unfocus = () => this.listBehavior.unfocus();\n\n /** Selects the specified item in the listbox. */\n select = (item?: OptionPattern<V>) => this.listBehavior.select(item);\n\n /** Toggles the selection state of the given item in the listbox. */\n toggle = (item?: OptionPattern<V>) => this.listBehavior.toggle(item);\n\n /** Clears the selection in the listbox. */\n clearSelection = () => this.listBehavior.deselectAll();\n\n /** Retrieves the OptionPattern associated with a pointer event. */\n getItem = (e: PointerEvent) => this._getItem(e);\n\n /** Retrieves the currently selected items in the listbox. */\n getSelectedItems = () => {\n // NOTE: We need to do this funky for loop to preserve the order of the selected values.\n const items = [];\n for (const value of this.inputs.values()) {\n const item = this.items().find(i => i.value() === value);\n if (item) {\n items.push(item);\n }\n }\n return items;\n };\n\n /** Sets the value of the combobox listbox. */\n setValue = (value: V | undefined) => this.inputs.values.set(value ? [value] : []);\n}\n"],"names":["ListboxPattern","inputs","listBehavior","orientation","disabled","computed","readonly","tabIndex","activeDescendant","multi","setsize","items","length","followFocus","selectionMode","wrap","signal","prevKey","textDirection","nextKey","dynamicSpaceKey","isTyping","typeaheadRegexp","keydown","manager","KeyboardEventManager","on","prev","ignoreRepeat","next","first","last","e","search","key","selectOne","Modifier","Any","anchor","activeIndex","Shift","selectRange","Ctrl","Meta","updateSelection","toggle","toggleAll","toggleOne","select","pointerdown","PointerEventManager","goto","_getItem","constructor","List","validate","violations","values","push","join","onKeydown","event","handle","onPointerdown","setDefaultState","firstItem","item","isFocusable","selected","activeItem","set","target","HTMLElement","element","closest","find","i","OptionPattern","id","value","index","listbox","indexOf","active","includes","selectable","searchTerm","getItemTabindex","args","ComboboxListboxPattern","role","activeId","combobox","focusMode","inputEl","_","focus","opts","getActiveItem","unfocus","clearSelection","deselectAll","getItem","getSelectedItems","setValue"],"mappings":"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"}
{"version":3,"file":"_combobox-listbox-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/listbox/listbox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/listbox/option.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/listbox/combobox-listbox.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 {OptionPattern} from './option';\nimport {KeyboardEventManager, PointerEventManager, Modifier} from '../behaviors/event-manager';\nimport {computed, signal, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {List, ListInputs} from '../behaviors/list/list';\n\n/** Represents the required inputs for a listbox. */\nexport type ListboxInputs<V> = ListInputs<OptionPattern<V>, V> & {\n /** A unique identifier for the listbox. */\n id: SignalLike<string>;\n\n /** Whether the listbox is readonly. */\n readonly: SignalLike<boolean>;\n};\n\n/** Controls the state of a listbox. */\nexport class ListboxPattern<V> {\n listBehavior: List<OptionPattern<V>, V>;\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** Whether the listbox is disabled. */\n disabled = computed(() => this.listBehavior.disabled());\n\n /** Whether the listbox is readonly. */\n readonly: SignalLike<boolean>;\n\n /** The tab index of the listbox. */\n tabIndex: SignalLike<-1 | 0> = computed(() => this.listBehavior.tabIndex());\n\n /** The id of the current active item. */\n activeDescendant = computed(() => this.listBehavior.activeDescendant());\n\n /** Whether multiple items in the list can be selected at once. */\n multi: SignalLike<boolean>;\n\n /** The number of items in the listbox. */\n setsize = computed(() => this.inputs.items().length);\n\n /** Whether the listbox selection follows focus. */\n followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** Whether the listbox should wrap. Used to disable wrapping while range selecting. */\n wrap = signal(true);\n\n /** The key used to navigate to the previous item in the list. */\n prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next item in the list. */\n nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n dynamicSpaceKey = computed(() => (this.listBehavior.isTyping() ? '' : ' '));\n\n /** The regexp used to decide if a key should trigger typeahead. */\n typeaheadRegexp = /^.$/;\n\n /** The keydown event manager for the listbox. */\n keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n if (this.readonly()) {\n return manager\n .on(this.prevKey, () => this.listBehavior.prev(), {ignoreRepeat: false})\n .on(this.nextKey, () => this.listBehavior.next(), {ignoreRepeat: false})\n .on('Home', () => this.listBehavior.first())\n .on('End', () => this.listBehavior.last())\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key));\n }\n\n if (!this.followFocus()) {\n manager\n .on(this.prevKey, () => this.listBehavior.prev(), {ignoreRepeat: false})\n .on(this.nextKey, () => this.listBehavior.next(), {ignoreRepeat: false})\n .on('Home', () => this.listBehavior.first())\n .on('End', () => this.listBehavior.last())\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key));\n }\n\n if (this.followFocus()) {\n manager\n .on(this.prevKey, () => this.listBehavior.prev({selectOne: true}), {ignoreRepeat: false})\n .on(this.nextKey, () => this.listBehavior.next({selectOne: true}), {ignoreRepeat: false})\n .on('Home', () => this.listBehavior.first({selectOne: true}))\n .on('End', () => this.listBehavior.last({selectOne: true}))\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key, {selectOne: true}));\n }\n\n if (this.inputs.multi()) {\n manager\n .on(Modifier.Any, 'Shift', () => this.listBehavior.anchor(this.listBehavior.activeIndex()))\n .on(Modifier.Shift, this.prevKey, () => this.listBehavior.prev({selectRange: true}), {\n ignoreRepeat: false,\n })\n .on(Modifier.Shift, this.nextKey, () => this.listBehavior.next({selectRange: true}), {\n ignoreRepeat: false,\n })\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'Home', () =>\n this.listBehavior.first({selectRange: true, anchor: false}),\n )\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'End', () =>\n this.listBehavior.last({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, 'Enter', () =>\n this.listBehavior.updateSelection({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, this.dynamicSpaceKey, () =>\n this.listBehavior.updateSelection({selectRange: true, anchor: false}),\n );\n }\n\n if (!this.followFocus() && this.inputs.multi()) {\n manager\n .on(this.dynamicSpaceKey, () => this.listBehavior.toggle())\n .on('Enter', () => this.listBehavior.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => this.listBehavior.toggleAll());\n }\n\n if (!this.followFocus() && !this.inputs.multi()) {\n manager.on(this.dynamicSpaceKey, () => this.listBehavior.toggleOne());\n manager.on('Enter', () => this.listBehavior.toggleOne());\n }\n\n if (this.inputs.multi() && this.followFocus()) {\n manager\n .on([Modifier.Ctrl, Modifier.Meta], this.prevKey, () => this.listBehavior.prev(), {\n ignoreRepeat: false,\n })\n .on([Modifier.Ctrl, Modifier.Meta], this.nextKey, () => this.listBehavior.next(), {\n ignoreRepeat: false,\n })\n .on([Modifier.Ctrl, Modifier.Meta], ' ', () => this.listBehavior.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Enter', () => this.listBehavior.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Home', () => this.listBehavior.first())\n .on([Modifier.Ctrl, Modifier.Meta], 'End', () => this.listBehavior.last())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => {\n this.listBehavior.toggleAll();\n this.listBehavior.select(); // Ensure the currect option remains selected.\n });\n }\n\n return manager;\n });\n\n /** The pointerdown event manager for the listbox. */\n pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.readonly()) {\n return manager.on(e => this.listBehavior.goto(this._getItem(e)!));\n }\n\n if (this.multi()) {\n manager.on(Modifier.Shift, e =>\n this.listBehavior.goto(this._getItem(e)!, {selectRange: true}),\n );\n }\n\n if (!this.multi() && this.followFocus()) {\n return manager.on(e => this.listBehavior.goto(this._getItem(e)!, {selectOne: true}));\n }\n\n if (!this.multi() && !this.followFocus()) {\n return manager.on(e => this.listBehavior.goto(this._getItem(e)!, {toggle: true}));\n }\n\n if (this.multi() && this.followFocus()) {\n return manager\n .on(e => this.listBehavior.goto(this._getItem(e)!, {selectOne: true}))\n .on(Modifier.Ctrl, e => this.listBehavior.goto(this._getItem(e)!, {toggle: true}));\n }\n\n if (this.multi() && !this.followFocus()) {\n return manager.on(e => this.listBehavior.goto(this._getItem(e)!, {toggle: true}));\n }\n\n return manager;\n });\n\n constructor(readonly inputs: ListboxInputs<V>) {\n this.readonly = inputs.readonly;\n this.orientation = inputs.orientation;\n this.multi = inputs.multi;\n this.listBehavior = new List(inputs);\n }\n\n /** Returns a set of violations */\n validate(): string[] {\n const violations: string[] = [];\n\n if (!this.inputs.multi() && this.inputs.values().length > 1) {\n violations.push(\n `A single-select listbox should not have multiple selected options. Selected options: ${this.inputs.values().join(', ')}`,\n );\n }\n\n return violations;\n }\n\n /** Handles keydown events for the listbox. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /**\n * Sets the listbox to it's default initial state.\n *\n * Sets the active index of the listbox to the first focusable selected\n * item if one exists. Otherwise, sets focus to the first focusable item.\n *\n * This method should be called once the listbox and it's options are properly initialized,\n * meaning the ListboxPattern and OptionPatterns should have references to each other before this\n * is called.\n */\n setDefaultState() {\n let firstItem: OptionPattern<V> | null = null;\n\n for (const item of this.inputs.items()) {\n if (this.listBehavior.isFocusable(item)) {\n if (!firstItem) {\n firstItem = item;\n }\n if (item.selected()) {\n this.inputs.activeItem.set(item);\n return;\n }\n }\n }\n\n if (firstItem) {\n this.inputs.activeItem.set(firstItem);\n }\n }\n\n protected _getItem(e: PointerEvent) {\n if (!(e.target instanceof HTMLElement)) {\n return;\n }\n\n const element = e.target.closest('[role=\"option\"]');\n return this.inputs.items().find(i => i.element() === element);\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 {computed, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {List, ListInputs, ListItem} from '../behaviors/list/list';\n\n/**\n * Represents the properties exposed by a listbox that need to be accessed by an option.\n * This exists to avoid circular dependency errors between the listbox and option.\n */\ninterface ListboxPattern<V> {\n inputs: ListInputs<OptionPattern<V>, V>;\n listBehavior: List<OptionPattern<V>, V>;\n}\n\n/** Represents the required inputs for an option in a listbox. */\nexport interface OptionInputs<V> extends Omit<ListItem<V>, 'index' | 'selectable'> {\n listbox: SignalLike<ListboxPattern<V> | undefined>;\n}\n\n/** Represents an option in a listbox. */\nexport class OptionPattern<V> {\n /** A unique identifier for the option. */\n id: SignalLike<string>;\n\n /** The value of the option. */\n value: SignalLike<V>;\n\n /** The position of the option in the list. */\n index = computed(() => this.listbox()?.inputs.items().indexOf(this) ?? -1);\n\n /** Whether the option is active. */\n active = computed(() => this.listbox()?.inputs.activeItem() === this);\n\n /** Whether the option is selected. */\n selected = computed(() => this.listbox()?.inputs.values().includes(this.value()));\n\n /** Whether the option is selectable. */\n selectable = () => true;\n\n /** Whether the option is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The text used by the typeahead search. */\n searchTerm: SignalLike<string>;\n\n /** A reference to the parent listbox. */\n listbox: SignalLike<ListboxPattern<V> | undefined>;\n\n /** The tab index of the option. */\n tabIndex = computed(() => this.listbox()?.listBehavior.getItemTabindex(this));\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement | undefined>;\n\n constructor(args: OptionInputs<V>) {\n this.id = args.id;\n this.value = args.value;\n this.listbox = args.listbox;\n this.element = args.element;\n this.disabled = args.disabled;\n this.searchTerm = args.searchTerm;\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 {ListboxInputs, ListboxPattern} from './listbox';\nimport {SignalLike, computed} from '../behaviors/signal-like/signal-like';\nimport {OptionPattern} from './option';\nimport {ComboboxPattern, ComboboxListboxControls} from '../combobox/combobox';\n\nexport type ComboboxListboxInputs<V> = ListboxInputs<V> & {\n /** The combobox controlling the listbox. */\n combobox: SignalLike<ComboboxPattern<OptionPattern<V>, V> | undefined>;\n};\n\nexport class ComboboxListboxPattern<V>\n extends ListboxPattern<V>\n implements ComboboxListboxControls<OptionPattern<V>, V>\n{\n /** A unique identifier for the popup. */\n id = computed(() => this.inputs.id());\n\n /** The ARIA role for the listbox. */\n role = computed(() => 'listbox' as const);\n\n /** The id of the active (focused) item in the listbox. */\n activeId = computed(() => this.listBehavior.activeDescendant());\n\n /** The list of options in the listbox. */\n items: SignalLike<OptionPattern<V>[]> = computed(() => this.inputs.items());\n\n /** The tab index for the listbox. Always -1 because the combobox handles focus. */\n override tabIndex: SignalLike<-1 | 0> = () => -1;\n\n /** Whether multiple items in the list can be selected at once. */\n override multi = computed(() => {\n return this.inputs.combobox()?.readonly() ? this.inputs.multi() : false;\n });\n\n constructor(override readonly inputs: ComboboxListboxInputs<V>) {\n if (inputs.combobox()) {\n inputs.focusMode = () => 'activedescendant';\n inputs.element = inputs.combobox()!.inputs.inputEl;\n }\n\n super(inputs);\n }\n\n /** Noop. The combobox handles keydown events. */\n override onKeydown(_: KeyboardEvent): void {}\n\n /** Noop. The combobox handles pointerdown events. */\n override onPointerdown(_: PointerEvent): void {}\n\n /** Noop. The combobox controls the open state. */\n override setDefaultState(): void {}\n\n /** Navigates to the specified item in the listbox. */\n focus = (item: OptionPattern<V>, opts?: {focusElement?: boolean}) => {\n this.listBehavior.goto(item, opts);\n };\n\n /** Navigates to the previous focusable item in the listbox. */\n getActiveItem = () => this.inputs.activeItem();\n\n /** Navigates to the next focusable item in the listbox. */\n next = () => this.listBehavior.next();\n\n /** Navigates to the previous focusable item in the listbox. */\n prev = () => this.listBehavior.prev();\n\n /** Navigates to the last focusable item in the listbox. */\n last = () => this.listBehavior.last();\n\n /** Navigates to the first focusable item in the listbox. */\n first = () => this.listBehavior.first();\n\n /** Unfocuses the currently focused item in the listbox. */\n unfocus = () => this.listBehavior.unfocus();\n\n /** Selects the specified item in the listbox. */\n select = (item?: OptionPattern<V>) => this.listBehavior.select(item);\n\n /** Toggles the selection state of the given item in the listbox. */\n toggle = (item?: OptionPattern<V>) => this.listBehavior.toggle(item);\n\n /** Clears the selection in the listbox. */\n clearSelection = () => this.listBehavior.deselectAll();\n\n /** Retrieves the OptionPattern associated with a pointer event. */\n getItem = (e: PointerEvent) => this._getItem(e);\n\n /** Retrieves the currently selected items in the listbox. */\n getSelectedItems = () => {\n // NOTE: We need to do this funky for loop to preserve the order of the selected values.\n const items = [];\n for (const value of this.inputs.values()) {\n const item = this.items().find(i => i.value() === value);\n if (item) {\n items.push(item);\n }\n }\n return items;\n };\n\n /** Sets the value of the combobox listbox. */\n setValue = (value: V | undefined) => this.inputs.values.set(value ? [value] : []);\n}\n"],"names":["ListboxPattern","inputs","listBehavior","orientation","disabled","computed","readonly","tabIndex","activeDescendant","multi","setsize","items","length","followFocus","selectionMode","wrap","signal","prevKey","textDirection","nextKey","dynamicSpaceKey","isTyping","typeaheadRegexp","keydown","manager","KeyboardEventManager","on","prev","ignoreRepeat","next","first","last","e","search","key","selectOne","Modifier","Any","anchor","activeIndex","Shift","selectRange","Ctrl","Meta","updateSelection","toggle","toggleAll","toggleOne","select","pointerdown","PointerEventManager","goto","_getItem","constructor","List","validate","violations","values","push","join","onKeydown","event","handle","onPointerdown","setDefaultState","firstItem","item","isFocusable","selected","activeItem","set","target","HTMLElement","element","closest","find","i","OptionPattern","id","value","index","listbox","indexOf","active","includes","selectable","searchTerm","getItemTabindex","args","ComboboxListboxPattern","role","activeId","combobox","focusMode","inputEl","_","focus","opts","getActiveItem","unfocus","clearSelection","deselectAll","getItem","getSelectedItems","setValue"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_combobox-tree-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/tree/tree.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/tree/tree.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/tree/combobox-tree.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 {computed, signal, SignalLike} from '../signal-like/signal-like';\nimport {ExpansionItem, ListExpansion, ListExpansionInputs} from '../expansion/expansion';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\nimport {\n ListNavigation,\n ListNavigationInputs,\n ListNavigationItem,\n} from '../list-navigation/list-navigation';\nimport {\n ListSelection,\n ListSelectionInputs,\n ListSelectionItem,\n} from '../list-selection/list-selection';\nimport {\n ListTypeahead,\n ListTypeaheadInputs,\n ListTypeaheadItem,\n} from '../list-typeahead/list-typeahead';\nimport {NavOptions} from '../list/list';\n\n/** Represents an item in the tree. */\nexport interface TreeItem<V, T extends TreeItem<V, T>>\n extends\n ListTypeaheadItem,\n ListNavigationItem,\n ListSelectionItem<V>,\n ListFocusItem,\n ExpansionItem {\n /** The children of this item. */\n children: SignalLike<T[] | undefined>;\n\n /** The parent of this item. */\n parent: SignalLike<T | undefined>;\n\n /** Whether this item is visible. */\n visible: SignalLike<boolean>;\n}\n\n/** The necessary inputs for the tree behavior. */\nexport type TreeInputs<T extends TreeItem<V, T>, V> = ListFocusInputs<T> &\n ListNavigationInputs<T> &\n ListSelectionInputs<T, V> &\n ListTypeaheadInputs<T> &\n ListExpansionInputs;\n\n/** Controls focus for a tree, ensuring that only visible items are focusable. */\nclass TreeListFocus<T extends TreeItem<V, T>, V> extends ListFocus<T> {\n override isFocusable(item: T): boolean {\n return super.isFocusable(item) && item.visible();\n }\n}\n\n/** Controls the state of a tree. */\nexport class Tree<T extends TreeItem<V, T>, V> {\n /** Controls navigation for the tree. */\n navigationBehavior: ListNavigation<T>;\n\n /** Controls selection for the tree. */\n selectionBehavior: ListSelection<T, V>;\n\n /** Controls typeahead for the tree. */\n typeaheadBehavior: ListTypeahead<T>;\n\n /** Controls focus for the tree. */\n focusBehavior: ListFocus<T>;\n\n /** Controls expansion for the tree. */\n expansionBehavior: ListExpansion;\n\n /** Whether the tree is disabled. */\n disabled = computed(() => this.focusBehavior.isListDisabled());\n\n /** The id of the current active item. */\n activeDescendant = computed(() => this.focusBehavior.getActiveDescendant());\n\n /** The tab index of the tree. */\n tabIndex = computed(() => this.focusBehavior.getListTabIndex());\n\n /** The index of the currently active item in the tree (within the flattened list). */\n activeIndex = computed(() => this.focusBehavior.activeIndex());\n\n /** The uncommitted index for selecting a range of options. */\n private _anchorIndex = signal(0);\n\n /** Whether the list should wrap. */\n private _wrap = signal(true);\n\n constructor(readonly inputs: TreeInputs<T, V>) {\n this.focusBehavior = new TreeListFocus<T, V>(inputs);\n this.selectionBehavior = new ListSelection<T, V>({...inputs, focusManager: this.focusBehavior});\n this.typeaheadBehavior = new ListTypeahead<T>({...inputs, focusManager: this.focusBehavior});\n this.expansionBehavior = new ListExpansion(inputs);\n this.navigationBehavior = new ListNavigation<T>({\n ...inputs,\n focusManager: this.focusBehavior,\n wrap: computed(() => this._wrap() && this.inputs.wrap()),\n });\n }\n\n /** Returns the tab index for the given item. */\n getItemTabindex(item: T) {\n return this.focusBehavior.getItemTabIndex(item);\n }\n\n /** Navigates to the first option in the tree. */\n first(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.first(opts));\n }\n\n /** Navigates to the last option in the tree. */\n last(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.last(opts));\n }\n\n /** Navigates to the next option in the tree. */\n next(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.next(opts));\n }\n\n /** Navigates to the previous option in the tree. */\n prev(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.prev(opts));\n }\n\n /** Navigates to the first child of the current active item. */\n firstChild(opts?: NavOptions<T>) {\n this._navigate(opts, () => {\n const item = this.inputs.activeItem();\n const items = item?.children?.() ?? [];\n return this.navigationBehavior.first({items, ...opts});\n });\n }\n\n /** Navigates to the last child of the current active item. */\n lastChild(opts?: NavOptions<T>) {\n this._navigate(opts, () => {\n const item = this.inputs.activeItem();\n const items = item?.children?.() ?? [];\n return this.navigationBehavior.last({items, ...opts});\n });\n }\n\n /** Navigates to the next sibling of the current active item. */\n nextSibling(opts?: NavOptions<T>) {\n this._navigate(opts, () => {\n const item = this.inputs.activeItem();\n const items = item?.parent?.()?.children?.() ?? [];\n return this.navigationBehavior.next({items, ...opts});\n });\n }\n\n /** Navigates to the previous sibling of the current active item. */\n prevSibling(opts?: NavOptions<T>) {\n this._navigate(opts, () => {\n const item = this.inputs.activeItem();\n const items = item?.parent?.()?.children?.() ?? [];\n return this.navigationBehavior.prev({items, ...opts});\n });\n }\n\n /** Navigates to the parent of the current active item. */\n parent(opts?: NavOptions<T>) {\n this._navigate(opts, () =>\n this.navigationBehavior.goto(this.inputs.activeItem()?.parent?.(), opts),\n );\n }\n\n /** Navigates to the given item in the tree. */\n goto(item: T, opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.goto(item, opts));\n }\n\n /** Removes focus from the tree. */\n unfocus() {\n this.inputs.activeItem.set(undefined);\n }\n\n /** Marks the given index as the potential start of a range selection. */\n anchor(index: number) {\n this._anchorIndex.set(index);\n }\n\n /** Handles typeahead search navigation for the tree. */\n search(char: string, opts?: NavOptions<T>) {\n this._navigate(opts, () => this.typeaheadBehavior.search(char));\n }\n\n /** Checks if the tree is currently typing for typeahead search. */\n isTyping() {\n return this.typeaheadBehavior.isTyping();\n }\n\n /** Selects the currently active item in the tree. */\n select(item?: T) {\n this.selectionBehavior.select(item);\n }\n\n /** Sets the selection to only the current active item. */\n selectOne() {\n this.selectionBehavior.selectOne();\n }\n\n /** Deselects the currently active item in the tree. */\n deselect(item?: T) {\n this.selectionBehavior.deselect(item);\n }\n\n /** Deselects all items in the tree. */\n deselectAll() {\n this.selectionBehavior.deselectAll();\n }\n\n /** Toggles the currently active item in the tree. */\n toggle(item?: T) {\n this.selectionBehavior.toggle(item);\n }\n\n /** Toggles the currently active item in the tree, deselecting all other items. */\n toggleOne() {\n this.selectionBehavior.toggleOne();\n }\n\n /** Toggles the selection of all items in the tree. */\n toggleAll() {\n this.selectionBehavior.toggleAll();\n }\n\n /** Toggles the expansion of the given item. */\n toggleExpansion(item?: T) {\n item ??= this.inputs.activeItem();\n if (!item || !this.isFocusable(item)) return;\n\n if (this.isExpandable(item)) {\n this.expansionBehavior.toggle(item);\n }\n }\n\n /** Expands the given item. */\n expand(item: T) {\n if (this.isExpandable(item)) {\n this.expansionBehavior.open(item);\n }\n }\n\n /** Collapses the given item. */\n collapse(item: T) {\n this.expansionBehavior.close(item);\n }\n\n /** Expands all sibling items of the given item (or active item). */\n expandSiblings(item?: T) {\n item ??= this.inputs.activeItem();\n if (!item) return;\n\n const parent = item.parent?.();\n // TODO: This assumes that items without a parent are root items.\n const siblings = parent ? parent.children?.() : this.inputs.items().filter(i => !i.parent?.());\n siblings?.forEach(s => this.expand(s));\n }\n\n /** Expands all items in the tree. */\n expandAll() {\n this.expansionBehavior.openAll();\n }\n\n /** Collapses all items in the tree. */\n collapseAll() {\n this.expansionBehavior.closeAll();\n }\n\n /** Checks if the given item is able to receive focus. */\n isFocusable(item: T) {\n return this.focusBehavior.isFocusable(item);\n }\n\n /** Checks if the given item is expandable. */\n isExpandable(item: T) {\n return this.expansionBehavior.isExpandable(item);\n }\n\n /** Handles updating selection for the tree. */\n updateSelection(opts: NavOptions<T> = {anchor: true}) {\n if (opts.toggle) {\n this.selectionBehavior.toggle();\n }\n if (opts.select) {\n this.selectionBehavior.select();\n }\n if (opts.selectOne) {\n this.selectionBehavior.selectOne();\n }\n if (opts.selectRange) {\n this.selectionBehavior.selectRange();\n }\n if (!opts.anchor) {\n this.anchor(this.selectionBehavior.rangeStartIndex());\n }\n }\n\n /**\n * Safely performs a navigation operation.\n */\n private _navigate(opts: NavOptions<T> = {}, operation: () => boolean) {\n if (opts?.selectRange) {\n this._wrap.set(false);\n this.selectionBehavior.rangeStartIndex.set(this._anchorIndex());\n }\n\n const moved = operation();\n\n if (moved) {\n this.updateSelection(opts);\n }\n\n this._wrap.set(true);\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 {SignalLike, computed, WritableSignalLike} from '../behaviors/signal-like/signal-like';\nimport {Tree, TreeItem, TreeInputs as TreeBehaviorInputs} from '../behaviors/tree/tree';\nimport {KeyboardEventManager, PointerEventManager, Modifier} from '../behaviors/event-manager';\n\n/** Represents the required inputs for a tree item. */\nexport interface TreeItemInputs<V> extends Omit<\n TreeItem<V, TreeItemPattern<V>>,\n 'index' | 'parent' | 'visible' | 'expandable'\n> {\n /** The parent item. */\n parent: SignalLike<TreeItemPattern<V> | TreePattern<V>>;\n\n /** Whether this item has children. Children can be lazily loaded. */\n hasChildren: SignalLike<boolean>;\n\n /** The tree pattern this item belongs to. */\n tree: SignalLike<TreePattern<V>>;\n}\n\n/**\n * Represents an item in a Tree.\n */\nexport class TreeItemPattern<V> implements TreeItem<V, TreeItemPattern<V>> {\n /** A unique identifier for this item. */\n readonly id: SignalLike<string> = () => this.inputs.id();\n\n /** The value of this item. */\n readonly value: SignalLike<V> = () => this.inputs.value();\n\n /** A reference to the item element. */\n readonly element: SignalLike<HTMLElement> = () => this.inputs.element()!;\n\n /** Whether the item is disabled. */\n readonly disabled: SignalLike<boolean> = () => this.inputs.disabled();\n\n /** The text used by the typeahead search. */\n readonly searchTerm: SignalLike<string> = () => this.inputs.searchTerm();\n\n /** The tree pattern this item belongs to. */\n readonly tree: SignalLike<TreePattern<V>> = () => this.inputs.tree();\n\n /** The parent item. */\n readonly parent: SignalLike<TreeItemPattern<V> | undefined> = computed(() => {\n const parent = this.inputs.parent();\n return parent instanceof TreeItemPattern ? parent : undefined;\n });\n\n /** The children items. */\n readonly children: SignalLike<TreeItemPattern<V>[]> = () => this.inputs.children() ?? [];\n\n /** The position of this item among its siblings. */\n readonly index = computed(() => this.tree().inputs.items().indexOf(this));\n\n /** Whether the item is expandable. It's expandable if children item exist. */\n readonly expandable: SignalLike<boolean> = () => this.inputs.hasChildren();\n\n /** Whether the item is selectable. */\n readonly selectable: SignalLike<boolean> = () => this.inputs.selectable();\n\n /** Whether the item is expanded. */\n readonly expanded: WritableSignalLike<boolean>;\n\n /** The level of the current item in a tree. */\n readonly level: SignalLike<number> = computed(() => this.inputs.parent().level() + 1);\n\n /** Whether this item is visible. */\n readonly visible: SignalLike<boolean> = computed(\n () => this.inputs.parent().expanded() && this.inputs.parent().visible(),\n );\n\n /** The number of items under the same parent at the same level. */\n readonly setsize = computed(() => this.inputs.parent().children().length);\n\n /** The position of this item among its siblings (1-based). */\n readonly posinset = computed(() => this.inputs.parent().children().indexOf(this) + 1);\n\n /** Whether the item is active. */\n readonly active = computed(() => this.tree().activeItem() === this);\n\n /** The tab index of the item. */\n readonly tabIndex = computed(() => this.tree().treeBehavior.getItemTabindex(this));\n\n /** Whether the item is selected. */\n readonly selected: SignalLike<boolean | undefined> = computed(() => {\n if (this.tree().nav()) {\n return undefined;\n }\n if (!this.selectable()) {\n return undefined;\n }\n return this.tree().values().includes(this.value());\n });\n\n /** The current type of this item. */\n readonly current: SignalLike<string | undefined> = computed(() => {\n if (!this.tree().nav()) {\n return undefined;\n }\n if (!this.selectable()) {\n return undefined;\n }\n return this.tree().values().includes(this.value()) ? this.tree().currentType() : undefined;\n });\n\n constructor(readonly inputs: TreeItemInputs<V>) {\n this.expanded = inputs.expanded;\n }\n}\n\n/** The selection operations that the tree can perform. */\ninterface SelectOptions {\n toggle?: boolean;\n selectOne?: boolean;\n selectRange?: boolean;\n anchor?: boolean;\n}\n\n/** Represents the required inputs for a tree. */\nexport interface TreeInputs<V> extends Omit<\n TreeBehaviorInputs<TreeItemPattern<V>, V>,\n 'multiExpandable'\n> {\n /** A unique identifier for the tree. */\n id: SignalLike<string>;\n\n /** Whether the tree is in navigation mode. */\n nav: SignalLike<boolean>;\n\n /** The aria-current type. */\n currentType: SignalLike<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>;\n\n /** The text direction of the tree. */\n textDirection: SignalLike<'ltr' | 'rtl'>;\n}\n\n/** Controls the state and interactions of a tree view. */\nexport class TreePattern<V> implements TreeInputs<V> {\n /** The tree behavior for the tree. */\n readonly treeBehavior: Tree<TreeItemPattern<V>, V>;\n\n /** The root level is 0. */\n readonly level = () => 0;\n\n /** The root is always expanded. */\n readonly expanded = () => true;\n\n /** The root is always visible. */\n readonly visible = () => true;\n\n /** The tab index of the tree. */\n readonly tabIndex: SignalLike<-1 | 0> = computed(() => this.treeBehavior.tabIndex());\n\n /** The id of the current active item. */\n readonly activeDescendant = computed(() => this.treeBehavior.activeDescendant());\n\n /** The direct children of the root (top-level tree items). */\n readonly children = computed(() =>\n this.inputs.items().filter(item => item.level() === this.level() + 1),\n );\n\n /** Whether the tree selection follows focus. */\n readonly followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** Whether the tree direction is RTL. */\n readonly isRtl = computed(() => this.inputs.textDirection() === 'rtl');\n\n /** The key for navigating to the previous item. */\n readonly prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.isRtl() ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for navigating to the next item. */\n readonly nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.isRtl() ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The key for collapsing an item or moving to its parent. */\n readonly collapseKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowUp';\n }\n return this.isRtl() ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for expanding an item or moving to its first child. */\n readonly expandKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowDown';\n }\n return this.isRtl() ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n readonly dynamicSpaceKey = computed(() => (this.treeBehavior.isTyping() ? '' : ' '));\n\n /** Regular expression to match characters for typeahead. */\n readonly typeaheadRegexp = /^.$/;\n\n /** The keydown event manager for the tree. */\n readonly keydown = computed(() => {\n const manager = new KeyboardEventManager();\n const tree = this.treeBehavior;\n\n manager\n .on(this.prevKey, () => tree.prev({selectOne: this.followFocus()}), {ignoreRepeat: false})\n .on(this.nextKey, () => tree.next({selectOne: this.followFocus()}), {ignoreRepeat: false})\n .on('Home', () => tree.first({selectOne: this.followFocus()}))\n .on('End', () => tree.last({selectOne: this.followFocus()}))\n .on(this.typeaheadRegexp, e => tree.search(e.key, {selectOne: this.followFocus()}))\n .on(Modifier.Shift, '*', () => tree.expandSiblings())\n .on(this.expandKey, () => this._expandOrFirstChild({selectOne: this.followFocus()}))\n .on(this.collapseKey, () => this._collapseOrParent({selectOne: this.followFocus()}));\n\n if (this.inputs.multi()) {\n manager\n // TODO: Tracking the anchor by index can break if the\n // tree is expanded or collapsed causing the index to change.\n .on(Modifier.Any, 'Shift', () => tree.anchor(this.treeBehavior.activeIndex()))\n .on(Modifier.Shift, this.prevKey, () => tree.prev({selectRange: true}), {\n ignoreRepeat: false,\n })\n .on(Modifier.Shift, this.nextKey, () => tree.next({selectRange: true}), {\n ignoreRepeat: false,\n })\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'Home', () =>\n tree.first({selectRange: true, anchor: false}),\n )\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'End', () =>\n tree.last({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, 'Enter', () => tree.updateSelection({selectRange: true, anchor: false}))\n .on(Modifier.Shift, this.dynamicSpaceKey, () =>\n tree.updateSelection({selectRange: true, anchor: false}),\n );\n }\n\n if (!this.followFocus() && this.inputs.multi()) {\n manager\n .on(this.dynamicSpaceKey, () => tree.toggle())\n .on('Enter', () => tree.toggle(), {preventDefault: !this.nav()})\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => tree.toggleAll());\n }\n\n if (!this.followFocus() && !this.inputs.multi()) {\n manager.on(this.dynamicSpaceKey, () => tree.selectOne());\n manager.on('Enter', () => tree.selectOne(), {preventDefault: !this.nav()});\n }\n\n if (this.inputs.multi() && this.followFocus()) {\n manager\n .on([Modifier.Ctrl, Modifier.Meta], this.prevKey, () => tree.prev(), {ignoreRepeat: false})\n .on([Modifier.Ctrl, Modifier.Meta], this.nextKey, () => tree.next(), {ignoreRepeat: false})\n .on([Modifier.Ctrl, Modifier.Meta], this.expandKey, () => this._expandOrFirstChild())\n .on([Modifier.Ctrl, Modifier.Meta], this.collapseKey, () => this._collapseOrParent())\n .on([Modifier.Ctrl, Modifier.Meta], ' ', () => tree.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Enter', () => tree.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Home', () => tree.first())\n .on([Modifier.Ctrl, Modifier.Meta], 'End', () => tree.last())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => {\n tree.toggleAll();\n tree.select(); // Ensure the currect item remains selected.\n });\n }\n\n return manager;\n });\n\n /** The pointerdown event manager for the tree. */\n pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.multi()) {\n manager.on(Modifier.Shift, e => this.goto(e, {selectRange: true}));\n }\n\n if (!this.multi()) {\n return manager.on(e => this.goto(e, {selectOne: true}));\n }\n\n if (this.multi() && this.followFocus()) {\n return manager\n .on(e => this.goto(e, {selectOne: true}))\n .on(Modifier.Ctrl, e => this.goto(e, {toggle: true}));\n }\n\n if (this.multi() && !this.followFocus()) {\n return manager.on(e => this.goto(e, {toggle: true}));\n }\n\n return manager;\n });\n\n /** A unique identifier for the tree. */\n readonly id: SignalLike<string> = () => this.inputs.id();\n\n /** The host native element. */\n readonly element: SignalLike<HTMLElement> = () => this.inputs.element()!;\n\n /** Whether the tree is in navigation mode. */\n readonly nav: SignalLike<boolean> = () => this.inputs.nav();\n\n /** The aria-current type. */\n readonly currentType: SignalLike<\n 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'\n > = () => this.inputs.currentType();\n\n /** All items in the tree, in document order (DFS-like, a flattened list). */\n readonly items: SignalLike<TreeItemPattern<V>[]> = () => this.inputs.items();\n\n /** The focus strategy used by the tree. */\n readonly focusMode: SignalLike<'roving' | 'activedescendant'> = () => this.inputs.focusMode();\n\n /** Whether the tree is disabled. */\n readonly disabled: SignalLike<boolean> = () => this.inputs.disabled();\n\n /** The currently active item in the tree. */\n readonly activeItem: WritableSignalLike<TreeItemPattern<V> | undefined>;\n\n /** Whether disabled items should be focusable. */\n readonly softDisabled: SignalLike<boolean> = () => this.inputs.softDisabled();\n\n /** Whether the focus should wrap when navigating past the first or last item. */\n readonly wrap: SignalLike<boolean> = () => this.inputs.wrap();\n\n /** The orientation of the tree. */\n readonly orientation: SignalLike<'vertical' | 'horizontal'> = () => this.inputs.orientation();\n\n /** The text direction of the tree. */\n readonly textDirection: SignalLike<'ltr' | 'rtl'> = () => this.textDirection();\n\n /** Whether multiple items can be selected at the same time. */\n readonly multi: SignalLike<boolean> = computed(() => (this.nav() ? false : this.inputs.multi()));\n\n /** The selection mode of the tree. */\n readonly selectionMode: SignalLike<'follow' | 'explicit'> = () => this.inputs.selectionMode();\n\n /** The delay in milliseconds to wait before clearing the typeahead buffer. */\n readonly typeaheadDelay: SignalLike<number> = () => this.inputs.typeaheadDelay();\n\n /** The current selected items of the tree. */\n readonly values: WritableSignalLike<V[]>;\n\n constructor(readonly inputs: TreeInputs<V>) {\n this.activeItem = inputs.activeItem;\n this.values = inputs.values;\n\n this.treeBehavior = new Tree<TreeItemPattern<V>, V>({\n ...inputs,\n multi: this.multi,\n multiExpandable: () => true,\n });\n }\n\n /** Returns a set of violations */\n validate(): string[] {\n const violations: string[] = [];\n\n if (!this.inputs.multi() && this.inputs.values().length > 1) {\n violations.push(\n `A single-select tree should not have multiple selected options. Selected options: ${this.inputs.values().join(', ')}`,\n );\n }\n\n return violations;\n }\n\n /**\n * Sets the tree to it's default initial state.\n *\n * Sets the active index of the tree to the first focusable selected tree item if one exists.\n * Otherwise, sets focus to the first focusable tree item.\n */\n setDefaultState() {\n let firstItem: TreeItemPattern<V> | undefined;\n\n for (const item of this.inputs.items()) {\n if (!item.visible()) continue;\n if (!this.treeBehavior.isFocusable(item)) continue;\n\n if (firstItem === undefined) {\n firstItem = item;\n }\n\n if (item.selected()) {\n this.activeItem.set(item);\n return;\n }\n }\n\n if (firstItem !== undefined) {\n this.activeItem.set(firstItem);\n }\n }\n\n /** Handles keydown events on the tree. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles pointerdown events on the tree. */\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /** Navigates to the given tree item in the tree. */\n goto(e: PointerEvent, opts?: SelectOptions) {\n const item = this._getItem(e);\n if (!item) return;\n\n this.treeBehavior.goto(item, opts);\n this.treeBehavior.toggleExpansion(item);\n }\n\n /** Expands the active item if possible, otherwise navigates to the first child. */\n _expandOrFirstChild(opts?: SelectOptions) {\n const item = this.treeBehavior.inputs.activeItem();\n if (item && this.treeBehavior.isExpandable(item) && !item.expanded()) {\n this.treeBehavior.expand(item);\n } else {\n this.treeBehavior.firstChild(opts);\n }\n }\n\n /** Collapses the active item if possible, otherwise navigates to the parent. */\n _collapseOrParent(opts?: SelectOptions) {\n const item = this.treeBehavior.inputs.activeItem();\n if (item && this.treeBehavior.isExpandable(item) && item.expanded()) {\n this.treeBehavior.collapse(item);\n } else {\n this.treeBehavior.parent(opts);\n }\n }\n\n /** Retrieves the TreeItemPattern associated with a DOM event, if any. */\n protected _getItem(event: Event): TreeItemPattern<V> | undefined {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n const element = event.target.closest('[role=\"treeitem\"]');\n return this.inputs.items().find(i => i.element() === element);\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 {TreeInputs, TreePattern, TreeItemPattern} from './tree';\nimport {computed, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {ComboboxPattern, ComboboxTreeControls} from '../combobox/combobox';\n\nexport type ComboboxTreeInputs<V> = TreeInputs<V> & {\n /** The combobox controlling the tree. */\n combobox: SignalLike<ComboboxPattern<TreeItemPattern<V>, V> | undefined>;\n};\n\nexport class ComboboxTreePattern<V>\n extends TreePattern<V>\n implements ComboboxTreeControls<TreeItemPattern<V>, V>\n{\n /** Toggles to expand or collapse a tree item. */\n toggleExpansion = (item?: TreeItemPattern<V>) => this.treeBehavior.toggleExpansion(item);\n\n /** Whether the currently focused item is collapsible. */\n isItemCollapsible = () => this.inputs.activeItem()?.parent() instanceof TreeItemPattern;\n\n /** The ARIA role for the tree. */\n role = () => 'tree' as const;\n\n /* The id of the active (focused) item in the tree. */\n activeId = computed(() => this.treeBehavior.activeDescendant());\n\n /** Returns the currently active (focused) item in the tree. */\n getActiveItem = () => this.inputs.activeItem();\n\n /** The list of items in the tree. */\n override items = computed(() => this.inputs.items());\n\n /** The tab index for the tree. Always -1 because the combobox handles focus. */\n override tabIndex: SignalLike<-1 | 0> = () => -1;\n\n constructor(override readonly inputs: ComboboxTreeInputs<V>) {\n if (inputs.combobox()) {\n inputs.multi = () => false;\n inputs.focusMode = () => 'activedescendant';\n inputs.element = inputs.combobox()!.inputs.inputEl;\n }\n\n super(inputs);\n }\n\n /** Noop. The combobox handles keydown events. */\n override onKeydown(_: KeyboardEvent): void {}\n\n /** Noop. The combobox handles pointerdown events. */\n override onPointerdown(_: PointerEvent): void {}\n\n /** Noop. The combobox controls the open state. */\n override setDefaultState(): void {}\n\n /** Navigates to the specified item in the tree. */\n focus = (item: TreeItemPattern<V>) => this.treeBehavior.goto(item);\n\n /** Navigates to the next focusable item in the tree. */\n next = () => this.treeBehavior.next();\n\n /** Navigates to the previous focusable item in the tree. */\n prev = () => this.treeBehavior.prev();\n\n /** Navigates to the last focusable item in the tree. */\n last = () => this.treeBehavior.last();\n\n /** Navigates to the first focusable item in the tree. */\n first = () => this.treeBehavior.first();\n\n /** Unfocuses the currently focused item in the tree. */\n unfocus = () => this.treeBehavior.unfocus();\n\n // TODO: handle non-selectable parent nodes.\n /** Selects the specified item in the tree or the current active item if not provided. */\n select = (item?: TreeItemPattern<V>) => this.treeBehavior.select(item);\n\n /** Toggles the selection state of the given item in the tree or the current active item if not provided. */\n toggle = (item?: TreeItemPattern<V>) => this.treeBehavior.toggle(item);\n\n /** Clears the selection in the tree. */\n clearSelection = () => this.treeBehavior.deselectAll();\n\n /** Retrieves the TreeItemPattern associated with a pointer event. */\n getItem = (e: PointerEvent) => this._getItem(e);\n\n /** Retrieves the currently selected items in the tree */\n getSelectedItems = () => this.inputs.items().filter(item => item.selected());\n\n /** Sets the value of the combobox tree. */\n setValue = (value: V | undefined) => this.inputs.values.set(value ? [value] : []);\n\n /** Expands the currently focused item if it is expandable, or navigates to the first child. */\n expandItem = () => this._expandOrFirstChild();\n\n /** Collapses the currently focused item if it is expandable, or navigates to the parent. */\n collapseItem = () => this._collapseOrParent();\n\n /** Whether the specified item or the currently active item is expandable. */\n isItemExpandable(item: TreeItemPattern<V> | undefined = this.inputs.activeItem()) {\n return item ? item.expandable() : false;\n }\n\n /** Expands all of the tree items. */\n expandAll = () => this.treeBehavior.expandAll();\n\n /** Collapses all of the tree items. */\n collapseAll = () => this.treeBehavior.collapseAll();\n\n /** Whether the currently active item is selectable. */\n isItemSelectable = (item: TreeItemPattern<V> | undefined = this.inputs.activeItem()) => {\n return item ? item.selectable() : false;\n };\n}\n"],"names":["TreeListFocus","ListFocus","isFocusable","item","visible","Tree","inputs","navigationBehavior","selectionBehavior","typeaheadBehavior","focusBehavior","expansionBehavior","disabled","computed","isListDisabled","activeDescendant","getActiveDescendant","tabIndex","getListTabIndex","activeIndex","_anchorIndex","signal","_wrap","constructor","ListSelection","focusManager","ListTypeahead","ListExpansion","ListNavigation","wrap","getItemTabindex","getItemTabIndex","first","opts","_navigate","last","next","prev","firstChild","activeItem","items","children","lastChild","nextSibling","parent","prevSibling","goto","unfocus","set","undefined","anchor","index","search","char","isTyping","select","selectOne","deselect","deselectAll","toggle","toggleOne","toggleAll","toggleExpansion","isExpandable","expand","open","collapse","close","expandSiblings","siblings","filter","i","forEach","s","expandAll","openAll","collapseAll","closeAll","updateSelection","selectRange","rangeStartIndex","operation","moved","TreeItemPattern","id","value","element","searchTerm","tree","indexOf","expandable","hasChildren","selectable","expanded","level","setsize","length","posinset","active","treeBehavior","selected","nav","values","includes","current","currentType","TreePattern","followFocus","selectionMode","isRtl","textDirection","prevKey","orientation","nextKey","collapseKey","expandKey","dynamicSpaceKey","typeaheadRegexp","keydown","manager","KeyboardEventManager","on","ignoreRepeat","e","key","Modifier","Shift","_expandOrFirstChild","_collapseOrParent","multi","Any","Ctrl","Meta","preventDefault","pointerdown","PointerEventManager","focusMode","softDisabled","typeaheadDelay","multiExpandable","validate","violations","push","join","setDefaultState","firstItem","onKeydown","event","handle","onPointerdown","_getItem","target","HTMLElement","closest","find","ComboboxTreePattern","isItemCollapsible","role","activeId","getActiveItem","combobox","inputEl","_","focus","clearSelection","getItem","getSelectedItems","setValue","expandItem","collapseItem","isItemExpandable","isItemSelectable"],"mappings":"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"}
{"version":3,"file":"_combobox-tree-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/tree/tree.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/tree/tree.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/tree/combobox-tree.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 {computed, signal, SignalLike} from '../signal-like/signal-like';\nimport {ExpansionItem, ListExpansion, ListExpansionInputs} from '../expansion/expansion';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\nimport {\n ListNavigation,\n ListNavigationInputs,\n ListNavigationItem,\n} from '../list-navigation/list-navigation';\nimport {\n ListSelection,\n ListSelectionInputs,\n ListSelectionItem,\n} from '../list-selection/list-selection';\nimport {\n ListTypeahead,\n ListTypeaheadInputs,\n ListTypeaheadItem,\n} from '../list-typeahead/list-typeahead';\nimport {NavOptions} from '../list/list';\n\n/** Represents an item in the tree. */\nexport interface TreeItem<V, T extends TreeItem<V, T>>\n extends\n ListTypeaheadItem,\n ListNavigationItem,\n ListSelectionItem<V>,\n ListFocusItem,\n ExpansionItem {\n /** The children of this item. */\n children: SignalLike<T[] | undefined>;\n\n /** The parent of this item. */\n parent: SignalLike<T | undefined>;\n\n /** Whether this item is visible. */\n visible: SignalLike<boolean>;\n}\n\n/** The necessary inputs for the tree behavior. */\nexport type TreeInputs<T extends TreeItem<V, T>, V> = ListFocusInputs<T> &\n ListNavigationInputs<T> &\n ListSelectionInputs<T, V> &\n ListTypeaheadInputs<T> &\n ListExpansionInputs;\n\n/** Controls focus for a tree, ensuring that only visible items are focusable. */\nclass TreeListFocus<T extends TreeItem<V, T>, V> extends ListFocus<T> {\n override isFocusable(item: T): boolean {\n return super.isFocusable(item) && item.visible();\n }\n}\n\n/** Controls the state of a tree. */\nexport class Tree<T extends TreeItem<V, T>, V> {\n /** Controls navigation for the tree. */\n navigationBehavior: ListNavigation<T>;\n\n /** Controls selection for the tree. */\n selectionBehavior: ListSelection<T, V>;\n\n /** Controls typeahead for the tree. */\n typeaheadBehavior: ListTypeahead<T>;\n\n /** Controls focus for the tree. */\n focusBehavior: ListFocus<T>;\n\n /** Controls expansion for the tree. */\n expansionBehavior: ListExpansion;\n\n /** Whether the tree is disabled. */\n disabled = computed(() => this.focusBehavior.isListDisabled());\n\n /** The id of the current active item. */\n activeDescendant = computed(() => this.focusBehavior.getActiveDescendant());\n\n /** The tab index of the tree. */\n tabIndex = computed(() => this.focusBehavior.getListTabIndex());\n\n /** The index of the currently active item in the tree (within the flattened list). */\n activeIndex = computed(() => this.focusBehavior.activeIndex());\n\n /** The uncommitted index for selecting a range of options. */\n private _anchorIndex = signal(0);\n\n /** Whether the list should wrap. */\n private _wrap = signal(true);\n\n constructor(readonly inputs: TreeInputs<T, V>) {\n this.focusBehavior = new TreeListFocus<T, V>(inputs);\n this.selectionBehavior = new ListSelection<T, V>({...inputs, focusManager: this.focusBehavior});\n this.typeaheadBehavior = new ListTypeahead<T>({...inputs, focusManager: this.focusBehavior});\n this.expansionBehavior = new ListExpansion(inputs);\n this.navigationBehavior = new ListNavigation<T>({\n ...inputs,\n focusManager: this.focusBehavior,\n wrap: computed(() => this._wrap() && this.inputs.wrap()),\n });\n }\n\n /** Returns the tab index for the given item. */\n getItemTabindex(item: T) {\n return this.focusBehavior.getItemTabIndex(item);\n }\n\n /** Navigates to the first option in the tree. */\n first(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.first(opts));\n }\n\n /** Navigates to the last option in the tree. */\n last(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.last(opts));\n }\n\n /** Navigates to the next option in the tree. */\n next(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.next(opts));\n }\n\n /** Navigates to the previous option in the tree. */\n prev(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.prev(opts));\n }\n\n /** Navigates to the first child of the current active item. */\n firstChild(opts?: NavOptions<T>) {\n this._navigate(opts, () => {\n const item = this.inputs.activeItem();\n const items = item?.children?.() ?? [];\n return this.navigationBehavior.first({items, ...opts});\n });\n }\n\n /** Navigates to the last child of the current active item. */\n lastChild(opts?: NavOptions<T>) {\n this._navigate(opts, () => {\n const item = this.inputs.activeItem();\n const items = item?.children?.() ?? [];\n return this.navigationBehavior.last({items, ...opts});\n });\n }\n\n /** Navigates to the next sibling of the current active item. */\n nextSibling(opts?: NavOptions<T>) {\n this._navigate(opts, () => {\n const item = this.inputs.activeItem();\n const items = item?.parent?.()?.children?.() ?? [];\n return this.navigationBehavior.next({items, ...opts});\n });\n }\n\n /** Navigates to the previous sibling of the current active item. */\n prevSibling(opts?: NavOptions<T>) {\n this._navigate(opts, () => {\n const item = this.inputs.activeItem();\n const items = item?.parent?.()?.children?.() ?? [];\n return this.navigationBehavior.prev({items, ...opts});\n });\n }\n\n /** Navigates to the parent of the current active item. */\n parent(opts?: NavOptions<T>) {\n this._navigate(opts, () =>\n this.navigationBehavior.goto(this.inputs.activeItem()?.parent?.(), opts),\n );\n }\n\n /** Navigates to the given item in the tree. */\n goto(item: T, opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.goto(item, opts));\n }\n\n /** Removes focus from the tree. */\n unfocus() {\n this.inputs.activeItem.set(undefined);\n }\n\n /** Marks the given index as the potential start of a range selection. */\n anchor(index: number) {\n this._anchorIndex.set(index);\n }\n\n /** Handles typeahead search navigation for the tree. */\n search(char: string, opts?: NavOptions<T>) {\n this._navigate(opts, () => this.typeaheadBehavior.search(char));\n }\n\n /** Checks if the tree is currently typing for typeahead search. */\n isTyping() {\n return this.typeaheadBehavior.isTyping();\n }\n\n /** Selects the currently active item in the tree. */\n select(item?: T) {\n this.selectionBehavior.select(item);\n }\n\n /** Sets the selection to only the current active item. */\n selectOne() {\n this.selectionBehavior.selectOne();\n }\n\n /** Deselects the currently active item in the tree. */\n deselect(item?: T) {\n this.selectionBehavior.deselect(item);\n }\n\n /** Deselects all items in the tree. */\n deselectAll() {\n this.selectionBehavior.deselectAll();\n }\n\n /** Toggles the currently active item in the tree. */\n toggle(item?: T) {\n this.selectionBehavior.toggle(item);\n }\n\n /** Toggles the currently active item in the tree, deselecting all other items. */\n toggleOne() {\n this.selectionBehavior.toggleOne();\n }\n\n /** Toggles the selection of all items in the tree. */\n toggleAll() {\n this.selectionBehavior.toggleAll();\n }\n\n /** Toggles the expansion of the given item. */\n toggleExpansion(item?: T) {\n item ??= this.inputs.activeItem();\n if (!item || !this.isFocusable(item)) return;\n\n if (this.isExpandable(item)) {\n this.expansionBehavior.toggle(item);\n }\n }\n\n /** Expands the given item. */\n expand(item: T) {\n if (this.isExpandable(item)) {\n this.expansionBehavior.open(item);\n }\n }\n\n /** Collapses the given item. */\n collapse(item: T) {\n this.expansionBehavior.close(item);\n }\n\n /** Expands all sibling items of the given item (or active item). */\n expandSiblings(item?: T) {\n item ??= this.inputs.activeItem();\n if (!item) return;\n\n const parent = item.parent?.();\n // TODO: This assumes that items without a parent are root items.\n const siblings = parent ? parent.children?.() : this.inputs.items().filter(i => !i.parent?.());\n siblings?.forEach(s => this.expand(s));\n }\n\n /** Expands all items in the tree. */\n expandAll() {\n this.expansionBehavior.openAll();\n }\n\n /** Collapses all items in the tree. */\n collapseAll() {\n this.expansionBehavior.closeAll();\n }\n\n /** Checks if the given item is able to receive focus. */\n isFocusable(item: T) {\n return this.focusBehavior.isFocusable(item);\n }\n\n /** Checks if the given item is expandable. */\n isExpandable(item: T) {\n return this.expansionBehavior.isExpandable(item);\n }\n\n /** Handles updating selection for the tree. */\n updateSelection(opts: NavOptions<T> = {anchor: true}) {\n if (opts.toggle) {\n this.selectionBehavior.toggle();\n }\n if (opts.select) {\n this.selectionBehavior.select();\n }\n if (opts.selectOne) {\n this.selectionBehavior.selectOne();\n }\n if (opts.selectRange) {\n this.selectionBehavior.selectRange();\n }\n if (!opts.anchor) {\n this.anchor(this.selectionBehavior.rangeStartIndex());\n }\n }\n\n /**\n * Safely performs a navigation operation.\n */\n private _navigate(opts: NavOptions<T> = {}, operation: () => boolean) {\n if (opts?.selectRange) {\n this._wrap.set(false);\n this.selectionBehavior.rangeStartIndex.set(this._anchorIndex());\n }\n\n const moved = operation();\n\n if (moved) {\n this.updateSelection(opts);\n }\n\n this._wrap.set(true);\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 {SignalLike, computed, WritableSignalLike} from '../behaviors/signal-like/signal-like';\nimport {Tree, TreeItem, TreeInputs as TreeBehaviorInputs} from '../behaviors/tree/tree';\nimport {KeyboardEventManager, PointerEventManager, Modifier} from '../behaviors/event-manager';\n\n/** Represents the required inputs for a tree item. */\nexport interface TreeItemInputs<V> extends Omit<\n TreeItem<V, TreeItemPattern<V>>,\n 'index' | 'parent' | 'visible' | 'expandable'\n> {\n /** The parent item. */\n parent: SignalLike<TreeItemPattern<V> | TreePattern<V>>;\n\n /** Whether this item has children. Children can be lazily loaded. */\n hasChildren: SignalLike<boolean>;\n\n /** The tree pattern this item belongs to. */\n tree: SignalLike<TreePattern<V>>;\n}\n\n/**\n * Represents an item in a Tree.\n */\nexport class TreeItemPattern<V> implements TreeItem<V, TreeItemPattern<V>> {\n /** A unique identifier for this item. */\n readonly id: SignalLike<string> = () => this.inputs.id();\n\n /** The value of this item. */\n readonly value: SignalLike<V> = () => this.inputs.value();\n\n /** A reference to the item element. */\n readonly element: SignalLike<HTMLElement> = () => this.inputs.element()!;\n\n /** Whether the item is disabled. */\n readonly disabled: SignalLike<boolean> = () => this.inputs.disabled();\n\n /** The text used by the typeahead search. */\n readonly searchTerm: SignalLike<string> = () => this.inputs.searchTerm();\n\n /** The tree pattern this item belongs to. */\n readonly tree: SignalLike<TreePattern<V>> = () => this.inputs.tree();\n\n /** The parent item. */\n readonly parent: SignalLike<TreeItemPattern<V> | undefined> = computed(() => {\n const parent = this.inputs.parent();\n return parent instanceof TreeItemPattern ? parent : undefined;\n });\n\n /** The children items. */\n readonly children: SignalLike<TreeItemPattern<V>[]> = () => this.inputs.children() ?? [];\n\n /** The position of this item among its siblings. */\n readonly index = computed(() => this.tree().inputs.items().indexOf(this));\n\n /** Whether the item is expandable. It's expandable if children item exist. */\n readonly expandable: SignalLike<boolean> = () => this.inputs.hasChildren();\n\n /** Whether the item is selectable. */\n readonly selectable: SignalLike<boolean> = () => this.inputs.selectable();\n\n /** Whether the item is expanded. */\n readonly expanded: WritableSignalLike<boolean>;\n\n /** The level of the current item in a tree. */\n readonly level: SignalLike<number> = computed(() => this.inputs.parent().level() + 1);\n\n /** Whether this item is visible. */\n readonly visible: SignalLike<boolean> = computed(\n () => this.inputs.parent().expanded() && this.inputs.parent().visible(),\n );\n\n /** The number of items under the same parent at the same level. */\n readonly setsize = computed(() => this.inputs.parent().children().length);\n\n /** The position of this item among its siblings (1-based). */\n readonly posinset = computed(() => this.inputs.parent().children().indexOf(this) + 1);\n\n /** Whether the item is active. */\n readonly active = computed(() => this.tree().activeItem() === this);\n\n /** The tab index of the item. */\n readonly tabIndex = computed(() => this.tree().treeBehavior.getItemTabindex(this));\n\n /** Whether the item is selected. */\n readonly selected: SignalLike<boolean | undefined> = computed(() => {\n if (this.tree().nav()) {\n return undefined;\n }\n if (!this.selectable()) {\n return undefined;\n }\n return this.tree().values().includes(this.value());\n });\n\n /** The current type of this item. */\n readonly current: SignalLike<string | undefined> = computed(() => {\n if (!this.tree().nav()) {\n return undefined;\n }\n if (!this.selectable()) {\n return undefined;\n }\n return this.tree().values().includes(this.value()) ? this.tree().currentType() : undefined;\n });\n\n constructor(readonly inputs: TreeItemInputs<V>) {\n this.expanded = inputs.expanded;\n }\n}\n\n/** The selection operations that the tree can perform. */\ninterface SelectOptions {\n toggle?: boolean;\n selectOne?: boolean;\n selectRange?: boolean;\n anchor?: boolean;\n}\n\n/** Represents the required inputs for a tree. */\nexport interface TreeInputs<V> extends Omit<\n TreeBehaviorInputs<TreeItemPattern<V>, V>,\n 'multiExpandable'\n> {\n /** A unique identifier for the tree. */\n id: SignalLike<string>;\n\n /** Whether the tree is in navigation mode. */\n nav: SignalLike<boolean>;\n\n /** The aria-current type. */\n currentType: SignalLike<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>;\n\n /** The text direction of the tree. */\n textDirection: SignalLike<'ltr' | 'rtl'>;\n}\n\n/** Controls the state and interactions of a tree view. */\nexport class TreePattern<V> implements TreeInputs<V> {\n /** The tree behavior for the tree. */\n readonly treeBehavior: Tree<TreeItemPattern<V>, V>;\n\n /** The root level is 0. */\n readonly level = () => 0;\n\n /** The root is always expanded. */\n readonly expanded = () => true;\n\n /** The root is always visible. */\n readonly visible = () => true;\n\n /** The tab index of the tree. */\n readonly tabIndex: SignalLike<-1 | 0> = computed(() => this.treeBehavior.tabIndex());\n\n /** The id of the current active item. */\n readonly activeDescendant = computed(() => this.treeBehavior.activeDescendant());\n\n /** The direct children of the root (top-level tree items). */\n readonly children = computed(() =>\n this.inputs.items().filter(item => item.level() === this.level() + 1),\n );\n\n /** Whether the tree selection follows focus. */\n readonly followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** Whether the tree direction is RTL. */\n readonly isRtl = computed(() => this.inputs.textDirection() === 'rtl');\n\n /** The key for navigating to the previous item. */\n readonly prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.isRtl() ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for navigating to the next item. */\n readonly nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.isRtl() ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The key for collapsing an item or moving to its parent. */\n readonly collapseKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowUp';\n }\n return this.isRtl() ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key for expanding an item or moving to its first child. */\n readonly expandKey = computed(() => {\n if (this.inputs.orientation() === 'horizontal') {\n return 'ArrowDown';\n }\n return this.isRtl() ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n readonly dynamicSpaceKey = computed(() => (this.treeBehavior.isTyping() ? '' : ' '));\n\n /** Regular expression to match characters for typeahead. */\n readonly typeaheadRegexp = /^.$/;\n\n /** The keydown event manager for the tree. */\n readonly keydown = computed(() => {\n const manager = new KeyboardEventManager();\n const tree = this.treeBehavior;\n\n manager\n .on(this.prevKey, () => tree.prev({selectOne: this.followFocus()}), {ignoreRepeat: false})\n .on(this.nextKey, () => tree.next({selectOne: this.followFocus()}), {ignoreRepeat: false})\n .on('Home', () => tree.first({selectOne: this.followFocus()}))\n .on('End', () => tree.last({selectOne: this.followFocus()}))\n .on(this.typeaheadRegexp, e => tree.search(e.key, {selectOne: this.followFocus()}))\n .on(Modifier.Shift, '*', () => tree.expandSiblings())\n .on(this.expandKey, () => this._expandOrFirstChild({selectOne: this.followFocus()}))\n .on(this.collapseKey, () => this._collapseOrParent({selectOne: this.followFocus()}));\n\n if (this.inputs.multi()) {\n manager\n // TODO: Tracking the anchor by index can break if the\n // tree is expanded or collapsed causing the index to change.\n .on(Modifier.Any, 'Shift', () => tree.anchor(this.treeBehavior.activeIndex()))\n .on(Modifier.Shift, this.prevKey, () => tree.prev({selectRange: true}), {\n ignoreRepeat: false,\n })\n .on(Modifier.Shift, this.nextKey, () => tree.next({selectRange: true}), {\n ignoreRepeat: false,\n })\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'Home', () =>\n tree.first({selectRange: true, anchor: false}),\n )\n .on([Modifier.Ctrl | Modifier.Shift, Modifier.Meta | Modifier.Shift], 'End', () =>\n tree.last({selectRange: true, anchor: false}),\n )\n .on(Modifier.Shift, 'Enter', () => tree.updateSelection({selectRange: true, anchor: false}))\n .on(Modifier.Shift, this.dynamicSpaceKey, () =>\n tree.updateSelection({selectRange: true, anchor: false}),\n );\n }\n\n if (!this.followFocus() && this.inputs.multi()) {\n manager\n .on(this.dynamicSpaceKey, () => tree.toggle())\n .on('Enter', () => tree.toggle(), {preventDefault: !this.nav()})\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => tree.toggleAll());\n }\n\n if (!this.followFocus() && !this.inputs.multi()) {\n manager.on(this.dynamicSpaceKey, () => tree.selectOne());\n manager.on('Enter', () => tree.selectOne(), {preventDefault: !this.nav()});\n }\n\n if (this.inputs.multi() && this.followFocus()) {\n manager\n .on([Modifier.Ctrl, Modifier.Meta], this.prevKey, () => tree.prev(), {ignoreRepeat: false})\n .on([Modifier.Ctrl, Modifier.Meta], this.nextKey, () => tree.next(), {ignoreRepeat: false})\n .on([Modifier.Ctrl, Modifier.Meta], this.expandKey, () => this._expandOrFirstChild())\n .on([Modifier.Ctrl, Modifier.Meta], this.collapseKey, () => this._collapseOrParent())\n .on([Modifier.Ctrl, Modifier.Meta], ' ', () => tree.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Enter', () => tree.toggle())\n .on([Modifier.Ctrl, Modifier.Meta], 'Home', () => tree.first())\n .on([Modifier.Ctrl, Modifier.Meta], 'End', () => tree.last())\n .on([Modifier.Ctrl, Modifier.Meta], 'A', () => {\n tree.toggleAll();\n tree.select(); // Ensure the currect item remains selected.\n });\n }\n\n return manager;\n });\n\n /** The pointerdown event manager for the tree. */\n pointerdown = computed(() => {\n const manager = new PointerEventManager();\n\n if (this.multi()) {\n manager.on(Modifier.Shift, e => this.goto(e, {selectRange: true}));\n }\n\n if (!this.multi()) {\n return manager.on(e => this.goto(e, {selectOne: true}));\n }\n\n if (this.multi() && this.followFocus()) {\n return manager\n .on(e => this.goto(e, {selectOne: true}))\n .on(Modifier.Ctrl, e => this.goto(e, {toggle: true}));\n }\n\n if (this.multi() && !this.followFocus()) {\n return manager.on(e => this.goto(e, {toggle: true}));\n }\n\n return manager;\n });\n\n /** A unique identifier for the tree. */\n readonly id: SignalLike<string> = () => this.inputs.id();\n\n /** The host native element. */\n readonly element: SignalLike<HTMLElement> = () => this.inputs.element()!;\n\n /** Whether the tree is in navigation mode. */\n readonly nav: SignalLike<boolean> = () => this.inputs.nav();\n\n /** The aria-current type. */\n readonly currentType: SignalLike<\n 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'\n > = () => this.inputs.currentType();\n\n /** All items in the tree, in document order (DFS-like, a flattened list). */\n readonly items: SignalLike<TreeItemPattern<V>[]> = () => this.inputs.items();\n\n /** The focus strategy used by the tree. */\n readonly focusMode: SignalLike<'roving' | 'activedescendant'> = () => this.inputs.focusMode();\n\n /** Whether the tree is disabled. */\n readonly disabled: SignalLike<boolean> = () => this.inputs.disabled();\n\n /** The currently active item in the tree. */\n readonly activeItem: WritableSignalLike<TreeItemPattern<V> | undefined>;\n\n /** Whether disabled items should be focusable. */\n readonly softDisabled: SignalLike<boolean> = () => this.inputs.softDisabled();\n\n /** Whether the focus should wrap when navigating past the first or last item. */\n readonly wrap: SignalLike<boolean> = () => this.inputs.wrap();\n\n /** The orientation of the tree. */\n readonly orientation: SignalLike<'vertical' | 'horizontal'> = () => this.inputs.orientation();\n\n /** The text direction of the tree. */\n readonly textDirection: SignalLike<'ltr' | 'rtl'> = () => this.textDirection();\n\n /** Whether multiple items can be selected at the same time. */\n readonly multi: SignalLike<boolean> = computed(() => (this.nav() ? false : this.inputs.multi()));\n\n /** The selection mode of the tree. */\n readonly selectionMode: SignalLike<'follow' | 'explicit'> = () => this.inputs.selectionMode();\n\n /** The delay in milliseconds to wait before clearing the typeahead buffer. */\n readonly typeaheadDelay: SignalLike<number> = () => this.inputs.typeaheadDelay();\n\n /** The current selected items of the tree. */\n readonly values: WritableSignalLike<V[]>;\n\n constructor(readonly inputs: TreeInputs<V>) {\n this.activeItem = inputs.activeItem;\n this.values = inputs.values;\n\n this.treeBehavior = new Tree<TreeItemPattern<V>, V>({\n ...inputs,\n multi: this.multi,\n multiExpandable: () => true,\n });\n }\n\n /** Returns a set of violations */\n validate(): string[] {\n const violations: string[] = [];\n\n if (!this.inputs.multi() && this.inputs.values().length > 1) {\n violations.push(\n `A single-select tree should not have multiple selected options. Selected options: ${this.inputs.values().join(', ')}`,\n );\n }\n\n return violations;\n }\n\n /**\n * Sets the tree to it's default initial state.\n *\n * Sets the active index of the tree to the first focusable selected tree item if one exists.\n * Otherwise, sets focus to the first focusable tree item.\n */\n setDefaultState() {\n let firstItem: TreeItemPattern<V> | undefined;\n\n for (const item of this.inputs.items()) {\n if (!item.visible()) continue;\n if (!this.treeBehavior.isFocusable(item)) continue;\n\n if (firstItem === undefined) {\n firstItem = item;\n }\n\n if (item.selected()) {\n this.activeItem.set(item);\n return;\n }\n }\n\n if (firstItem !== undefined) {\n this.activeItem.set(firstItem);\n }\n }\n\n /** Handles keydown events on the tree. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** Handles pointerdown events on the tree. */\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /** Navigates to the given tree item in the tree. */\n goto(e: PointerEvent, opts?: SelectOptions) {\n const item = this._getItem(e);\n if (!item) return;\n\n this.treeBehavior.goto(item, opts);\n this.treeBehavior.toggleExpansion(item);\n }\n\n /** Expands the active item if possible, otherwise navigates to the first child. */\n _expandOrFirstChild(opts?: SelectOptions) {\n const item = this.treeBehavior.inputs.activeItem();\n if (item && this.treeBehavior.isExpandable(item) && !item.expanded()) {\n this.treeBehavior.expand(item);\n } else {\n this.treeBehavior.firstChild(opts);\n }\n }\n\n /** Collapses the active item if possible, otherwise navigates to the parent. */\n _collapseOrParent(opts?: SelectOptions) {\n const item = this.treeBehavior.inputs.activeItem();\n if (item && this.treeBehavior.isExpandable(item) && item.expanded()) {\n this.treeBehavior.collapse(item);\n } else {\n this.treeBehavior.parent(opts);\n }\n }\n\n /** Retrieves the TreeItemPattern associated with a DOM event, if any. */\n protected _getItem(event: Event): TreeItemPattern<V> | undefined {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n const element = event.target.closest('[role=\"treeitem\"]');\n return this.inputs.items().find(i => i.element() === element);\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 {TreeInputs, TreePattern, TreeItemPattern} from './tree';\nimport {computed, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {ComboboxPattern, ComboboxTreeControls} from '../combobox/combobox';\n\nexport type ComboboxTreeInputs<V> = TreeInputs<V> & {\n /** The combobox controlling the tree. */\n combobox: SignalLike<ComboboxPattern<TreeItemPattern<V>, V> | undefined>;\n};\n\nexport class ComboboxTreePattern<V>\n extends TreePattern<V>\n implements ComboboxTreeControls<TreeItemPattern<V>, V>\n{\n /** Toggles to expand or collapse a tree item. */\n toggleExpansion = (item?: TreeItemPattern<V>) => this.treeBehavior.toggleExpansion(item);\n\n /** Whether the currently focused item is collapsible. */\n isItemCollapsible = () => this.inputs.activeItem()?.parent() instanceof TreeItemPattern;\n\n /** The ARIA role for the tree. */\n role = () => 'tree' as const;\n\n /* The id of the active (focused) item in the tree. */\n activeId = computed(() => this.treeBehavior.activeDescendant());\n\n /** Returns the currently active (focused) item in the tree. */\n getActiveItem = () => this.inputs.activeItem();\n\n /** The list of items in the tree. */\n override items = computed(() => this.inputs.items());\n\n /** The tab index for the tree. Always -1 because the combobox handles focus. */\n override tabIndex: SignalLike<-1 | 0> = () => -1;\n\n constructor(override readonly inputs: ComboboxTreeInputs<V>) {\n if (inputs.combobox()) {\n inputs.multi = () => false;\n inputs.focusMode = () => 'activedescendant';\n inputs.element = inputs.combobox()!.inputs.inputEl;\n }\n\n super(inputs);\n }\n\n /** Noop. The combobox handles keydown events. */\n override onKeydown(_: KeyboardEvent): void {}\n\n /** Noop. The combobox handles pointerdown events. */\n override onPointerdown(_: PointerEvent): void {}\n\n /** Noop. The combobox controls the open state. */\n override setDefaultState(): void {}\n\n /** Navigates to the specified item in the tree. */\n focus = (item: TreeItemPattern<V>) => this.treeBehavior.goto(item);\n\n /** Navigates to the next focusable item in the tree. */\n next = () => this.treeBehavior.next();\n\n /** Navigates to the previous focusable item in the tree. */\n prev = () => this.treeBehavior.prev();\n\n /** Navigates to the last focusable item in the tree. */\n last = () => this.treeBehavior.last();\n\n /** Navigates to the first focusable item in the tree. */\n first = () => this.treeBehavior.first();\n\n /** Unfocuses the currently focused item in the tree. */\n unfocus = () => this.treeBehavior.unfocus();\n\n // TODO: handle non-selectable parent nodes.\n /** Selects the specified item in the tree or the current active item if not provided. */\n select = (item?: TreeItemPattern<V>) => this.treeBehavior.select(item);\n\n /** Toggles the selection state of the given item in the tree or the current active item if not provided. */\n toggle = (item?: TreeItemPattern<V>) => this.treeBehavior.toggle(item);\n\n /** Clears the selection in the tree. */\n clearSelection = () => this.treeBehavior.deselectAll();\n\n /** Retrieves the TreeItemPattern associated with a pointer event. */\n getItem = (e: PointerEvent) => this._getItem(e);\n\n /** Retrieves the currently selected items in the tree */\n getSelectedItems = () => this.inputs.items().filter(item => item.selected());\n\n /** Sets the value of the combobox tree. */\n setValue = (value: V | undefined) => this.inputs.values.set(value ? [value] : []);\n\n /** Expands the currently focused item if it is expandable, or navigates to the first child. */\n expandItem = () => this._expandOrFirstChild();\n\n /** Collapses the currently focused item if it is expandable, or navigates to the parent. */\n collapseItem = () => this._collapseOrParent();\n\n /** Whether the specified item or the currently active item is expandable. */\n isItemExpandable(item: TreeItemPattern<V> | undefined = this.inputs.activeItem()) {\n return item ? item.expandable() : false;\n }\n\n /** Expands all of the tree items. */\n expandAll = () => this.treeBehavior.expandAll();\n\n /** Collapses all of the tree items. */\n collapseAll = () => this.treeBehavior.collapseAll();\n\n /** Whether the currently active item is selectable. */\n isItemSelectable = (item: TreeItemPattern<V> | undefined = this.inputs.activeItem()) => {\n return item ? item.selectable() : false;\n };\n}\n"],"names":["TreeListFocus","ListFocus","isFocusable","item","visible","Tree","inputs","navigationBehavior","selectionBehavior","typeaheadBehavior","focusBehavior","expansionBehavior","disabled","computed","isListDisabled","activeDescendant","getActiveDescendant","tabIndex","getListTabIndex","activeIndex","_anchorIndex","signal","_wrap","constructor","ListSelection","focusManager","ListTypeahead","ListExpansion","ListNavigation","wrap","getItemTabindex","getItemTabIndex","first","opts","_navigate","last","next","prev","firstChild","activeItem","items","children","lastChild","nextSibling","parent","prevSibling","goto","unfocus","set","undefined","anchor","index","search","char","isTyping","select","selectOne","deselect","deselectAll","toggle","toggleOne","toggleAll","toggleExpansion","isExpandable","expand","open","collapse","close","expandSiblings","siblings","filter","i","forEach","s","expandAll","openAll","collapseAll","closeAll","updateSelection","selectRange","rangeStartIndex","operation","moved","TreeItemPattern","id","value","element","searchTerm","tree","indexOf","expandable","hasChildren","selectable","expanded","level","setsize","length","posinset","active","treeBehavior","selected","nav","values","includes","current","currentType","TreePattern","followFocus","selectionMode","isRtl","textDirection","prevKey","orientation","nextKey","collapseKey","expandKey","dynamicSpaceKey","typeaheadRegexp","keydown","manager","KeyboardEventManager","on","ignoreRepeat","e","key","Modifier","Shift","_expandOrFirstChild","_collapseOrParent","multi","Any","Ctrl","Meta","preventDefault","pointerdown","PointerEventManager","focusMode","softDisabled","typeaheadDelay","multiExpandable","validate","violations","push","join","setDefaultState","firstItem","onKeydown","event","handle","onPointerdown","_getItem","target","HTMLElement","closest","find","ComboboxTreePattern","isItemCollapsible","role","activeId","getActiveItem","combobox","inputEl","_","focus","clearSelection","getItem","getSelectedItems","setValue","expandItem","collapseItem","isItemExpandable","isItemSelectable"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_deferred-content-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/deferred-content/deferred-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 {\n afterRenderEffect,\n Directive,\n inject,\n TemplateRef,\n signal,\n ViewContainerRef,\n model,\n EmbeddedViewRef,\n OnDestroy,\n} from '@angular/core';\n\n/**\n * A container directive controls the visibility of its content.\n */\n@Directive()\nexport class DeferredContentAware {\n readonly contentVisible = signal(false);\n readonly preserveContent = model(false);\n}\n\n/**\n * DeferredContent loads/unloads the content based on the visibility.\n * The visibilty signal is sent from a parent directive implements\n * DeferredContentAware.\n *\n * Use this directive as a host directive. For example:\n *\n * ```ts\n * @Directive({\n * selector: 'ng-template[AccordionContent]',\n * hostDirectives: [DeferredContent],\n * })\n * class AccordionContent {}\n * ```\n */\n@Directive()\nexport class DeferredContent implements OnDestroy {\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n private readonly _templateRef = inject(TemplateRef);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private _currentViewRef: EmbeddedViewRef<unknown> | null = null;\n private _isRendered = false;\n\n readonly deferredContentAware = signal(this._deferredContentAware);\n\n constructor() {\n afterRenderEffect(() => {\n if (this.deferredContentAware()?.contentVisible()) {\n if (!this._isRendered) {\n this._destroyContent();\n this._currentViewRef = this._viewContainerRef.createEmbeddedView(this._templateRef);\n this._isRendered = true;\n }\n } else if (!this.deferredContentAware()?.preserveContent()) {\n this._destroyContent();\n this._isRendered = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this._destroyContent();\n }\n\n private _destroyContent() {\n const ref = this._currentViewRef;\n\n if (ref && !ref.destroyed) {\n ref.destroy();\n this._currentViewRef = null;\n }\n }\n}\n"],"names":["DeferredContentAware","contentVisible","signal","preserveContent","model","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","ngImport","decorators","DeferredContent","_deferredContentAware","inject","optional","_templateRef","TemplateRef","_viewContainerRef","ViewContainerRef","_currentViewRef","_isRendered","deferredContentAware","constructor","afterRenderEffect","_destroyContent","createEmbeddedView","ngOnDestroy","ref","destroyed","destroy"],"mappings":";;;MAwBaA,oBAAoB,CAAA;EACtBC,cAAc,GAAGC,MAAM,CAAC,KAAK;;WAAC;EAC9BC,eAAe,GAAGC,KAAK,CAAC,KAAK;;WAAC;;;;;UAF5BJ,oBAAoB;AAAAK,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAApBT,oBAAoB;AAAAU,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,MAAA,EAAA;AAAAR,MAAAA,eAAA,EAAA;AAAAS,QAAAA,iBAAA,EAAA,iBAAA;AAAAC,QAAAA,UAAA,EAAA,iBAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,OAAA,EAAA;AAAAd,MAAAA,eAAA,EAAA;KAAA;AAAAe,IAAAA,QAAA,EAAAX;AAAA,GAAA,CAAA;;;;;;QAApBP,oBAAoB;AAAAmB,EAAAA,UAAA,EAAA,CAAA;UADhCV;;;;;;;;;;;;;;;;MAsBYW,eAAe,CAAA;AACTC,EAAAA,qBAAqB,GAAGC,MAAM,CAACtB,oBAAoB,EAAE;AAACuB,IAAAA,QAAQ,EAAE;AAAK,GAAA,CAAC;AACtEC,EAAAA,YAAY,GAAGF,MAAM,CAACG,WAAW,CAAC;AAClCC,EAAAA,iBAAiB,GAAGJ,MAAM,CAACK,gBAAgB,CAAC;AACrDC,EAAAA,eAAe,GAAoC,IAAI;AACvDC,EAAAA,WAAW,GAAG,KAAK;EAElBC,oBAAoB,GAAG5B,MAAM,CAAC,IAAI,CAACmB,qBAAqB;;WAAC;AAElEU,EAAAA,WAAAA,GAAA;AACEC,IAAAA,iBAAiB,CAAC,MAAK;MACrB,IAAI,IAAI,CAACF,oBAAoB,EAAE,EAAE7B,cAAc,EAAE,EAAE;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC4B,WAAW,EAAE;UACrB,IAAI,CAACI,eAAe,EAAE;AACtB,UAAA,IAAI,CAACL,eAAe,GAAG,IAAI,CAACF,iBAAiB,CAACQ,kBAAkB,CAAC,IAAI,CAACV,YAAY,CAAC;UACnF,IAAI,CAACK,WAAW,GAAG,IAAI;AACzB;AACF,OAAA,MAAO,IAAI,CAAC,IAAI,CAACC,oBAAoB,EAAE,EAAE3B,eAAe,EAAE,EAAE;QAC1D,IAAI,CAAC8B,eAAe,EAAE;QACtB,IAAI,CAACJ,WAAW,GAAG,KAAK;AAC1B;AACF,KAAC,CAAC;AACJ;AAEAM,EAAAA,WAAWA,GAAA;IACT,IAAI,CAACF,eAAe,EAAE;AACxB;AAEQA,EAAAA,eAAeA,GAAA;AACrB,IAAA,MAAMG,GAAG,GAAG,IAAI,CAACR,eAAe;AAEhC,IAAA,IAAIQ,GAAG,IAAI,CAACA,GAAG,CAACC,SAAS,EAAE;MACzBD,GAAG,CAACE,OAAO,EAAE;MACb,IAAI,CAACV,eAAe,GAAG,IAAI;AAC7B;AACF;;;;;UAnCWR,eAAe;AAAAf,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAfW,eAAe;AAAAV,IAAAA,YAAA,EAAA,IAAA;AAAAQ,IAAAA,QAAA,EAAAX;AAAA,GAAA,CAAA;;;;;;QAAfa,eAAe;AAAAD,EAAAA,UAAA,EAAA,CAAA;UAD3BV;;;;;;;"}
{"version":3,"file":"_deferred-content-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/deferred-content/deferred-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 {\n afterRenderEffect,\n Directive,\n inject,\n TemplateRef,\n signal,\n ViewContainerRef,\n model,\n EmbeddedViewRef,\n OnDestroy,\n} from '@angular/core';\n\n/**\n * A container directive controls the visibility of its content.\n */\n@Directive()\nexport class DeferredContentAware {\n readonly contentVisible = signal(false);\n readonly preserveContent = model(false);\n}\n\n/**\n * DeferredContent loads/unloads the content based on the visibility.\n * The visibilty signal is sent from a parent directive implements\n * DeferredContentAware.\n *\n * Use this directive as a host directive. For example:\n *\n * ```ts\n * @Directive({\n * selector: 'ng-template[AccordionContent]',\n * hostDirectives: [DeferredContent],\n * })\n * class AccordionContent {}\n * ```\n */\n@Directive()\nexport class DeferredContent implements OnDestroy {\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n private readonly _templateRef = inject(TemplateRef);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private _currentViewRef: EmbeddedViewRef<unknown> | null = null;\n private _isRendered = false;\n\n readonly deferredContentAware = signal(this._deferredContentAware);\n\n constructor() {\n afterRenderEffect(() => {\n if (this.deferredContentAware()?.contentVisible()) {\n if (!this._isRendered) {\n this._destroyContent();\n this._currentViewRef = this._viewContainerRef.createEmbeddedView(this._templateRef);\n this._isRendered = true;\n }\n } else if (!this.deferredContentAware()?.preserveContent()) {\n this._destroyContent();\n this._isRendered = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this._destroyContent();\n }\n\n private _destroyContent() {\n const ref = this._currentViewRef;\n\n if (ref && !ref.destroyed) {\n ref.destroy();\n this._currentViewRef = null;\n }\n }\n}\n"],"names":["DeferredContentAware","contentVisible","signal","preserveContent","model","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","ngImport","decorators","DeferredContent","_deferredContentAware","inject","optional","_templateRef","TemplateRef","_viewContainerRef","ViewContainerRef","_currentViewRef","_isRendered","deferredContentAware","constructor","afterRenderEffect","_destroyContent","createEmbeddedView","ngOnDestroy","ref","destroyed","destroy"],"mappings":";;;MAwBaA,oBAAoB,CAAA;EACtBC,cAAc,GAAGC,MAAM,CAAC,KAAK;;WAAC;EAC9BC,eAAe,GAAGC,KAAK,CAAC,KAAK;;WAAC;;;;;UAF5BJ,oBAAoB;AAAAK,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAApBT,oBAAoB;AAAAU,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,MAAA,EAAA;AAAAR,MAAAA,eAAA,EAAA;AAAAS,QAAAA,iBAAA,EAAA,iBAAA;AAAAC,QAAAA,UAAA,EAAA,iBAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,OAAA,EAAA;AAAAd,MAAAA,eAAA,EAAA;KAAA;AAAAe,IAAAA,QAAA,EAAAX;AAAA,GAAA,CAAA;;;;;;QAApBP,oBAAoB;AAAAmB,EAAAA,UAAA,EAAA,CAAA;UADhCV;;;;;;;;;;;;;;;;MAsBYW,eAAe,CAAA;AACTC,EAAAA,qBAAqB,GAAGC,MAAM,CAACtB,oBAAoB,EAAE;AAACuB,IAAAA,QAAQ,EAAE;AAAK,GAAA,CAAC;AACtEC,EAAAA,YAAY,GAAGF,MAAM,CAACG,WAAW,CAAC;AAClCC,EAAAA,iBAAiB,GAAGJ,MAAM,CAACK,gBAAgB,CAAC;AACrDC,EAAAA,eAAe,GAAoC,IAAI;AACvDC,EAAAA,WAAW,GAAG,KAAK;EAElBC,oBAAoB,GAAG5B,MAAM,CAAC,IAAI,CAACmB,qBAAqB;;WAAC;AAElEU,EAAAA,WAAAA,GAAA;AACEC,IAAAA,iBAAiB,CAAC,MAAK;MACrB,IAAI,IAAI,CAACF,oBAAoB,EAAE,EAAE7B,cAAc,EAAE,EAAE;AACjD,QAAA,IAAI,CAAC,IAAI,CAAC4B,WAAW,EAAE;UACrB,IAAI,CAACI,eAAe,EAAE;AACtB,UAAA,IAAI,CAACL,eAAe,GAAG,IAAI,CAACF,iBAAiB,CAACQ,kBAAkB,CAAC,IAAI,CAACV,YAAY,CAAC;UACnF,IAAI,CAACK,WAAW,GAAG,IAAI;AACzB;AACF,OAAA,MAAO,IAAI,CAAC,IAAI,CAACC,oBAAoB,EAAE,EAAE3B,eAAe,EAAE,EAAE;QAC1D,IAAI,CAAC8B,eAAe,EAAE;QACtB,IAAI,CAACJ,WAAW,GAAG,KAAK;AAC1B;AACF,KAAC,CAAC;AACJ;AAEAM,EAAAA,WAAWA,GAAA;IACT,IAAI,CAACF,eAAe,EAAE;AACxB;AAEQA,EAAAA,eAAeA,GAAA;AACrB,IAAA,MAAMG,GAAG,GAAG,IAAI,CAACR,eAAe;AAEhC,IAAA,IAAIQ,GAAG,IAAI,CAACA,GAAG,CAACC,SAAS,EAAE;MACzBD,GAAG,CAACE,OAAO,EAAE;MACb,IAAI,CAACV,eAAe,GAAG,IAAI;AAC7B;AACF;;;;;UAnCWR,eAAe;AAAAf,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAfW,eAAe;AAAAV,IAAAA,YAAA,EAAA,IAAA;AAAAQ,IAAAA,QAAA,EAAAX;AAAA,GAAA,CAAA;;;;;;QAAfa,eAAe;AAAAD,EAAAA,UAAA,EAAA,CAAA;UAD3BV;;;;;;;"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_expansion-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/expansion/expansion.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 */\nimport {SignalLike, WritableSignalLike} from '../signal-like/signal-like';\n\n/** Represents an item that can be expanded or collapsed. */\nexport interface ExpansionItem {\n /** Whether the item is expandable. */\n expandable: SignalLike<boolean>;\n\n /** Whether the item is expanded. */\n expanded: WritableSignalLike<boolean>;\n\n /** Whether the expansion is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for an expansion behavior. */\nexport interface ListExpansionInputs {\n /** Whether multiple items can be expanded at once. */\n multiExpandable: SignalLike<boolean>;\n\n /** An array of expansion items. */\n items: SignalLike<ExpansionItem[]>;\n\n /** Whether all expansions are disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Manages the expansion state of a list of items. */\nexport class ListExpansion {\n constructor(readonly inputs: ListExpansionInputs) {}\n\n /** Opens the specified item. */\n open(item: ExpansionItem): boolean {\n if (!this.isExpandable(item)) return false;\n if (item.expanded()) return false;\n if (!this.inputs.multiExpandable()) {\n this.closeAll();\n }\n item.expanded.set(true);\n return true;\n }\n\n /** Closes the specified item. */\n close(item: ExpansionItem): boolean {\n if (!this.isExpandable(item)) return false;\n\n item.expanded.set(false);\n return true;\n }\n\n /** Toggles the expansion state of the specified item. */\n toggle(item: ExpansionItem): boolean {\n return item.expanded() ? this.close(item) : this.open(item);\n }\n\n /** Opens all focusable items in the list. */\n openAll(): void {\n if (this.inputs.multiExpandable()) {\n for (const item of this.inputs.items()) {\n this.open(item);\n }\n }\n }\n\n /** Closes all focusable items in the list. */\n closeAll(): void {\n for (const item of this.inputs.items()) {\n this.close(item);\n }\n }\n\n /** Checks whether the specified item is expandable / collapsible. */\n isExpandable(item: ExpansionItem) {\n return !this.inputs.disabled() && !item.disabled() && item.expandable();\n }\n}\n"],"names":["ListExpansion","inputs","constructor","open","item","isExpandable","expanded","multiExpandable","closeAll","set","close","toggle","openAll","items","disabled","expandable"],"mappings":"MAkCaA,aAAa,CAAA;EACHC,MAAA;EAArBC,WAAAA,CAAqBD,MAA2B,EAAA;IAA3B,IAAM,CAAAA,MAAA,GAANA,MAAM;AAAwB;EAGnDE,IAAIA,CAACC,IAAmB,EAAA;IACtB,IAAI,CAAC,IAAI,CAACC,YAAY,CAACD,IAAI,CAAC,EAAE,OAAO,KAAK;AAC1C,IAAA,IAAIA,IAAI,CAACE,QAAQ,EAAE,EAAE,OAAO,KAAK;IACjC,IAAI,CAAC,IAAI,CAACL,MAAM,CAACM,eAAe,EAAE,EAAE;MAClC,IAAI,CAACC,QAAQ,EAAE;AACjB;AACAJ,IAAAA,IAAI,CAACE,QAAQ,CAACG,GAAG,CAAC,IAAI,CAAC;AACvB,IAAA,OAAO,IAAI;AACb;EAGAC,KAAKA,CAACN,IAAmB,EAAA;IACvB,IAAI,CAAC,IAAI,CAACC,YAAY,CAACD,IAAI,CAAC,EAAE,OAAO,KAAK;AAE1CA,IAAAA,IAAI,CAACE,QAAQ,CAACG,GAAG,CAAC,KAAK,CAAC;AACxB,IAAA,OAAO,IAAI;AACb;EAGAE,MAAMA,CAACP,IAAmB,EAAA;AACxB,IAAA,OAAOA,IAAI,CAACE,QAAQ,EAAE,GAAG,IAAI,CAACI,KAAK,CAACN,IAAI,CAAC,GAAG,IAAI,CAACD,IAAI,CAACC,IAAI,CAAC;AAC7D;AAGAQ,EAAAA,OAAOA,GAAA;AACL,IAAA,IAAI,IAAI,CAACX,MAAM,CAACM,eAAe,EAAE,EAAE;MACjC,KAAK,MAAMH,IAAI,IAAI,IAAI,CAACH,MAAM,CAACY,KAAK,EAAE,EAAE;AACtC,QAAA,IAAI,CAACV,IAAI,CAACC,IAAI,CAAC;AACjB;AACF;AACF;AAGAI,EAAAA,QAAQA,GAAA;IACN,KAAK,MAAMJ,IAAI,IAAI,IAAI,CAACH,MAAM,CAACY,KAAK,EAAE,EAAE;AACtC,MAAA,IAAI,CAACH,KAAK,CAACN,IAAI,CAAC;AAClB;AACF;EAGAC,YAAYA,CAACD,IAAmB,EAAA;IAC9B,OAAO,CAAC,IAAI,CAACH,MAAM,CAACa,QAAQ,EAAE,IAAI,CAACV,IAAI,CAACU,QAAQ,EAAE,IAAIV,IAAI,CAACW,UAAU,EAAE;AACzE;AACD;;;;"}
{"version":3,"file":"_expansion-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/expansion/expansion.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 */\nimport {SignalLike, WritableSignalLike} from '../signal-like/signal-like';\n\n/** Represents an item that can be expanded or collapsed. */\nexport interface ExpansionItem {\n /** Whether the item is expandable. */\n expandable: SignalLike<boolean>;\n\n /** Whether the item is expanded. */\n expanded: WritableSignalLike<boolean>;\n\n /** Whether the expansion is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for an expansion behavior. */\nexport interface ListExpansionInputs {\n /** Whether multiple items can be expanded at once. */\n multiExpandable: SignalLike<boolean>;\n\n /** An array of expansion items. */\n items: SignalLike<ExpansionItem[]>;\n\n /** Whether all expansions are disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Manages the expansion state of a list of items. */\nexport class ListExpansion {\n constructor(readonly inputs: ListExpansionInputs) {}\n\n /** Opens the specified item. */\n open(item: ExpansionItem): boolean {\n if (!this.isExpandable(item)) return false;\n if (item.expanded()) return false;\n if (!this.inputs.multiExpandable()) {\n this.closeAll();\n }\n item.expanded.set(true);\n return true;\n }\n\n /** Closes the specified item. */\n close(item: ExpansionItem): boolean {\n if (!this.isExpandable(item)) return false;\n\n item.expanded.set(false);\n return true;\n }\n\n /** Toggles the expansion state of the specified item. */\n toggle(item: ExpansionItem): boolean {\n return item.expanded() ? this.close(item) : this.open(item);\n }\n\n /** Opens all focusable items in the list. */\n openAll(): void {\n if (this.inputs.multiExpandable()) {\n for (const item of this.inputs.items()) {\n this.open(item);\n }\n }\n }\n\n /** Closes all focusable items in the list. */\n closeAll(): void {\n for (const item of this.inputs.items()) {\n this.close(item);\n }\n }\n\n /** Checks whether the specified item is expandable / collapsible. */\n isExpandable(item: ExpansionItem) {\n return !this.inputs.disabled() && !item.disabled() && item.expandable();\n }\n}\n"],"names":["ListExpansion","inputs","constructor","open","item","isExpandable","expanded","multiExpandable","closeAll","set","close","toggle","openAll","items","disabled","expandable"],"mappings":"MAkCaA,aAAa,CAAA;EACHC,MAAA;EAArBC,WAAAA,CAAqBD,MAA2B,EAAA;IAA3B,IAAM,CAAAA,MAAA,GAANA,MAAM;AAAwB;EAGnDE,IAAIA,CAACC,IAAmB,EAAA;IACtB,IAAI,CAAC,IAAI,CAACC,YAAY,CAACD,IAAI,CAAC,EAAE,OAAO,KAAK;AAC1C,IAAA,IAAIA,IAAI,CAACE,QAAQ,EAAE,EAAE,OAAO,KAAK;IACjC,IAAI,CAAC,IAAI,CAACL,MAAM,CAACM,eAAe,EAAE,EAAE;MAClC,IAAI,CAACC,QAAQ,EAAE;AACjB;AACAJ,IAAAA,IAAI,CAACE,QAAQ,CAACG,GAAG,CAAC,IAAI,CAAC;AACvB,IAAA,OAAO,IAAI;AACb;EAGAC,KAAKA,CAACN,IAAmB,EAAA;IACvB,IAAI,CAAC,IAAI,CAACC,YAAY,CAACD,IAAI,CAAC,EAAE,OAAO,KAAK;AAE1CA,IAAAA,IAAI,CAACE,QAAQ,CAACG,GAAG,CAAC,KAAK,CAAC;AACxB,IAAA,OAAO,IAAI;AACb;EAGAE,MAAMA,CAACP,IAAmB,EAAA;AACxB,IAAA,OAAOA,IAAI,CAACE,QAAQ,EAAE,GAAG,IAAI,CAACI,KAAK,CAACN,IAAI,CAAC,GAAG,IAAI,CAACD,IAAI,CAACC,IAAI,CAAC;AAC7D;AAGAQ,EAAAA,OAAOA,GAAA;AACL,IAAA,IAAI,IAAI,CAACX,MAAM,CAACM,eAAe,EAAE,EAAE;MACjC,KAAK,MAAMH,IAAI,IAAI,IAAI,CAACH,MAAM,CAACY,KAAK,EAAE,EAAE;AACtC,QAAA,IAAI,CAACV,IAAI,CAACC,IAAI,CAAC;AACjB;AACF;AACF;AAGAI,EAAAA,QAAQA,GAAA;IACN,KAAK,MAAMJ,IAAI,IAAI,IAAI,CAACH,MAAM,CAACY,KAAK,EAAE,EAAE;AACtC,MAAA,IAAI,CAACH,KAAK,CAACN,IAAI,CAAC;AAClB;AACF;EAGAC,YAAYA,CAACD,IAAmB,EAAA;IAC9B,OAAO,CAAC,IAAI,CAACH,MAAM,CAACa,QAAQ,EAAE,IAAI,CAACV,IAAI,CAACU,QAAQ,EAAE,IAAIV,IAAI,CAACW,UAAU,EAAE;AACzE;AACD;;;;"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_list-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list/list.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 {computed, signal} from '../signal-like/signal-like';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\nimport {\n ListNavigation,\n ListNavigationInputs,\n ListNavigationItem,\n} from '../list-navigation/list-navigation';\nimport {\n ListSelection,\n ListSelectionInputs,\n ListSelectionItem,\n} from '../list-selection/list-selection';\nimport {\n ListTypeahead,\n ListTypeaheadInputs,\n ListTypeaheadItem,\n} from '../list-typeahead/list-typeahead';\n\n/** The operations that the list can perform after navigation. */\nexport interface NavOptions<T = any> {\n toggle?: boolean;\n select?: boolean;\n selectOne?: boolean;\n selectRange?: boolean;\n anchor?: boolean;\n focusElement?: boolean;\n items?: T[];\n}\n\n/** Represents an item in the list. */\nexport type ListItem<V> = ListTypeaheadItem &\n ListNavigationItem &\n ListSelectionItem<V> &\n ListFocusItem;\n\n/** The necessary inputs for the list behavior. */\nexport type ListInputs<T extends ListItem<V>, V> = ListFocusInputs<T> &\n ListNavigationInputs<T> &\n ListSelectionInputs<T, V> &\n ListTypeaheadInputs<T>;\n\n/** Controls the state of a list. */\nexport class List<T extends ListItem<V>, V> {\n /** Controls navigation for the list. */\n navigationBehavior: ListNavigation<T>;\n\n /** Controls selection for the list. */\n selectionBehavior: ListSelection<T, V>;\n\n /** Controls typeahead for the list. */\n typeaheadBehavior: ListTypeahead<T>;\n\n /** Controls focus for the list. */\n focusBehavior: ListFocus<T>;\n\n /** Whether the list is disabled. */\n disabled = computed(() => this.focusBehavior.isListDisabled());\n\n /** The id of the current active item. */\n activeDescendant = computed(() => this.focusBehavior.getActiveDescendant());\n\n /** The tab index of the list. */\n tabIndex = computed(() => this.focusBehavior.getListTabIndex());\n\n /** The index of the currently active item in the list. */\n activeIndex = computed(() => this.focusBehavior.activeIndex());\n\n /**\n * The uncommitted index for selecting a range of options.\n *\n * NOTE: This is subtly distinct from the \"rangeStartIndex\" in the ListSelection behavior.\n * The anchorIndex does not necessarily represent the start of a range, but represents the most\n * recent index where the user showed intent to begin a range selection. Usually, this is wherever\n * the user most recently pressed the \"Shift\" key, but if the user presses shift + space to select\n * from the anchor, the user is not intending to start a new range from this index.\n *\n * In other words, \"rangeStartIndex\" is only set when a user commits to starting a range selection\n * while \"anchorIndex\" is set whenever a user indicates they may be starting a range selection.\n */\n private _anchorIndex = signal(0);\n\n /** Whether the list should wrap. Used to disable wrapping while range selecting. */\n private _wrap = signal(true);\n\n constructor(readonly inputs: ListInputs<T, V>) {\n this.focusBehavior = new ListFocus(inputs);\n this.selectionBehavior = new ListSelection({...inputs, focusManager: this.focusBehavior});\n this.typeaheadBehavior = new ListTypeahead({...inputs, focusManager: this.focusBehavior});\n this.navigationBehavior = new ListNavigation({\n ...inputs,\n focusManager: this.focusBehavior,\n wrap: computed(() => this._wrap() && this.inputs.wrap()),\n });\n }\n\n /** Returns the tab index for the given item. */\n getItemTabindex(item: T) {\n return this.focusBehavior.getItemTabIndex(item);\n }\n\n /** Navigates to the first option in the list. */\n first(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.first(opts));\n }\n\n /** Navigates to the last option in the list. */\n last(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.last(opts));\n }\n\n /** Navigates to the next option in the list. */\n next(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.next(opts));\n }\n\n /** Navigates to the previous option in the list. */\n prev(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.prev(opts));\n }\n\n /** Navigates to the given item in the list. */\n goto(item: T, opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.goto(item, opts));\n }\n\n /** Removes focus from the list. */\n unfocus() {\n this.inputs.activeItem.set(undefined);\n }\n\n /** Marks the given index as the potential start of a range selection. */\n anchor(index: number) {\n this._anchorIndex.set(index);\n }\n\n /** Handles typeahead search navigation for the list. */\n search(char: string, opts?: NavOptions) {\n this._navigate(opts, () => this.typeaheadBehavior.search(char));\n }\n\n /** Checks if the list is currently typing for typeahead search. */\n isTyping() {\n return this.typeaheadBehavior.isTyping();\n }\n\n /** Selects the currently active item in the list. */\n select(item?: T) {\n this.selectionBehavior.select(item);\n }\n\n /** Sets the selection to only the current active item. */\n selectOne() {\n this.selectionBehavior.selectOne();\n }\n\n /** Deselects the currently active item in the list. */\n deselect(item?: T) {\n this.selectionBehavior.deselect(item);\n }\n\n /** Deselects all items in the list. */\n deselectAll() {\n this.selectionBehavior.deselectAll();\n }\n\n /** Toggles the currently active item in the list. */\n toggle(item?: T) {\n this.selectionBehavior.toggle(item);\n }\n\n /** Toggles the currently active item in the list, deselecting all other items. */\n toggleOne() {\n this.selectionBehavior.toggleOne();\n }\n\n /** Toggles the selection of all items in the list. */\n toggleAll() {\n this.selectionBehavior.toggleAll();\n }\n\n /** Checks if the given item is able to receive focus. */\n isFocusable(item: T) {\n return this.focusBehavior.isFocusable(item);\n }\n\n /** Handles updating selection for the list. */\n updateSelection(opts: NavOptions = {anchor: true}) {\n if (opts.toggle) {\n this.selectionBehavior.toggle();\n }\n if (opts.select) {\n this.selectionBehavior.select();\n }\n if (opts.selectOne) {\n this.selectionBehavior.selectOne();\n }\n if (opts.selectRange) {\n this.selectionBehavior.selectRange();\n }\n if (!opts.anchor) {\n this.anchor(this.selectionBehavior.rangeStartIndex());\n }\n }\n\n /**\n * Safely performs a navigation operation.\n *\n * Handles conditionally disabling wrapping for when a navigation\n * operation is occurring while the user is selecting a range of options.\n *\n * Handles boilerplate calling of focus & selection operations. Also ensures these\n * additional operations are only called if the navigation operation moved focus to a new option.\n */\n private _navigate(opts: NavOptions = {}, operation: () => boolean) {\n if (opts?.selectRange) {\n this._wrap.set(false);\n this.selectionBehavior.rangeStartIndex.set(this._anchorIndex());\n }\n\n const moved = operation();\n\n if (moved) {\n this.updateSelection(opts);\n }\n\n this._wrap.set(true);\n }\n}\n"],"names":["List","inputs","navigationBehavior","selectionBehavior","typeaheadBehavior","focusBehavior","disabled","computed","isListDisabled","activeDescendant","getActiveDescendant","tabIndex","getListTabIndex","activeIndex","_anchorIndex","signal","_wrap","constructor","ListFocus","ListSelection","focusManager","ListTypeahead","ListNavigation","wrap","getItemTabindex","item","getItemTabIndex","first","opts","_navigate","last","next","prev","goto","unfocus","activeItem","set","undefined","anchor","index","search","char","isTyping","select","selectOne","deselect","deselectAll","toggle","toggleOne","toggleAll","isFocusable","updateSelection","selectRange","rangeStartIndex","operation","moved"],"mappings":"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"}
{"version":3,"file":"_list-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list/list.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 {computed, signal} from '../signal-like/signal-like';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\nimport {\n ListNavigation,\n ListNavigationInputs,\n ListNavigationItem,\n} from '../list-navigation/list-navigation';\nimport {\n ListSelection,\n ListSelectionInputs,\n ListSelectionItem,\n} from '../list-selection/list-selection';\nimport {\n ListTypeahead,\n ListTypeaheadInputs,\n ListTypeaheadItem,\n} from '../list-typeahead/list-typeahead';\n\n/** The operations that the list can perform after navigation. */\nexport interface NavOptions<T = any> {\n toggle?: boolean;\n select?: boolean;\n selectOne?: boolean;\n selectRange?: boolean;\n anchor?: boolean;\n focusElement?: boolean;\n items?: T[];\n}\n\n/** Represents an item in the list. */\nexport type ListItem<V> = ListTypeaheadItem &\n ListNavigationItem &\n ListSelectionItem<V> &\n ListFocusItem;\n\n/** The necessary inputs for the list behavior. */\nexport type ListInputs<T extends ListItem<V>, V> = ListFocusInputs<T> &\n ListNavigationInputs<T> &\n ListSelectionInputs<T, V> &\n ListTypeaheadInputs<T>;\n\n/** Controls the state of a list. */\nexport class List<T extends ListItem<V>, V> {\n /** Controls navigation for the list. */\n navigationBehavior: ListNavigation<T>;\n\n /** Controls selection for the list. */\n selectionBehavior: ListSelection<T, V>;\n\n /** Controls typeahead for the list. */\n typeaheadBehavior: ListTypeahead<T>;\n\n /** Controls focus for the list. */\n focusBehavior: ListFocus<T>;\n\n /** Whether the list is disabled. */\n disabled = computed(() => this.focusBehavior.isListDisabled());\n\n /** The id of the current active item. */\n activeDescendant = computed(() => this.focusBehavior.getActiveDescendant());\n\n /** The tab index of the list. */\n tabIndex = computed(() => this.focusBehavior.getListTabIndex());\n\n /** The index of the currently active item in the list. */\n activeIndex = computed(() => this.focusBehavior.activeIndex());\n\n /**\n * The uncommitted index for selecting a range of options.\n *\n * NOTE: This is subtly distinct from the \"rangeStartIndex\" in the ListSelection behavior.\n * The anchorIndex does not necessarily represent the start of a range, but represents the most\n * recent index where the user showed intent to begin a range selection. Usually, this is wherever\n * the user most recently pressed the \"Shift\" key, but if the user presses shift + space to select\n * from the anchor, the user is not intending to start a new range from this index.\n *\n * In other words, \"rangeStartIndex\" is only set when a user commits to starting a range selection\n * while \"anchorIndex\" is set whenever a user indicates they may be starting a range selection.\n */\n private _anchorIndex = signal(0);\n\n /** Whether the list should wrap. Used to disable wrapping while range selecting. */\n private _wrap = signal(true);\n\n constructor(readonly inputs: ListInputs<T, V>) {\n this.focusBehavior = new ListFocus(inputs);\n this.selectionBehavior = new ListSelection({...inputs, focusManager: this.focusBehavior});\n this.typeaheadBehavior = new ListTypeahead({...inputs, focusManager: this.focusBehavior});\n this.navigationBehavior = new ListNavigation({\n ...inputs,\n focusManager: this.focusBehavior,\n wrap: computed(() => this._wrap() && this.inputs.wrap()),\n });\n }\n\n /** Returns the tab index for the given item. */\n getItemTabindex(item: T) {\n return this.focusBehavior.getItemTabIndex(item);\n }\n\n /** Navigates to the first option in the list. */\n first(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.first(opts));\n }\n\n /** Navigates to the last option in the list. */\n last(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.last(opts));\n }\n\n /** Navigates to the next option in the list. */\n next(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.next(opts));\n }\n\n /** Navigates to the previous option in the list. */\n prev(opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.prev(opts));\n }\n\n /** Navigates to the given item in the list. */\n goto(item: T, opts?: NavOptions<T>) {\n this._navigate(opts, () => this.navigationBehavior.goto(item, opts));\n }\n\n /** Removes focus from the list. */\n unfocus() {\n this.inputs.activeItem.set(undefined);\n }\n\n /** Marks the given index as the potential start of a range selection. */\n anchor(index: number) {\n this._anchorIndex.set(index);\n }\n\n /** Handles typeahead search navigation for the list. */\n search(char: string, opts?: NavOptions) {\n this._navigate(opts, () => this.typeaheadBehavior.search(char));\n }\n\n /** Checks if the list is currently typing for typeahead search. */\n isTyping() {\n return this.typeaheadBehavior.isTyping();\n }\n\n /** Selects the currently active item in the list. */\n select(item?: T) {\n this.selectionBehavior.select(item);\n }\n\n /** Sets the selection to only the current active item. */\n selectOne() {\n this.selectionBehavior.selectOne();\n }\n\n /** Deselects the currently active item in the list. */\n deselect(item?: T) {\n this.selectionBehavior.deselect(item);\n }\n\n /** Deselects all items in the list. */\n deselectAll() {\n this.selectionBehavior.deselectAll();\n }\n\n /** Toggles the currently active item in the list. */\n toggle(item?: T) {\n this.selectionBehavior.toggle(item);\n }\n\n /** Toggles the currently active item in the list, deselecting all other items. */\n toggleOne() {\n this.selectionBehavior.toggleOne();\n }\n\n /** Toggles the selection of all items in the list. */\n toggleAll() {\n this.selectionBehavior.toggleAll();\n }\n\n /** Checks if the given item is able to receive focus. */\n isFocusable(item: T) {\n return this.focusBehavior.isFocusable(item);\n }\n\n /** Handles updating selection for the list. */\n updateSelection(opts: NavOptions = {anchor: true}) {\n if (opts.toggle) {\n this.selectionBehavior.toggle();\n }\n if (opts.select) {\n this.selectionBehavior.select();\n }\n if (opts.selectOne) {\n this.selectionBehavior.selectOne();\n }\n if (opts.selectRange) {\n this.selectionBehavior.selectRange();\n }\n if (!opts.anchor) {\n this.anchor(this.selectionBehavior.rangeStartIndex());\n }\n }\n\n /**\n * Safely performs a navigation operation.\n *\n * Handles conditionally disabling wrapping for when a navigation\n * operation is occurring while the user is selecting a range of options.\n *\n * Handles boilerplate calling of focus & selection operations. Also ensures these\n * additional operations are only called if the navigation operation moved focus to a new option.\n */\n private _navigate(opts: NavOptions = {}, operation: () => boolean) {\n if (opts?.selectRange) {\n this._wrap.set(false);\n this.selectionBehavior.rangeStartIndex.set(this._anchorIndex());\n }\n\n const moved = operation();\n\n if (moved) {\n this.updateSelection(opts);\n }\n\n this._wrap.set(true);\n }\n}\n"],"names":["List","inputs","navigationBehavior","selectionBehavior","typeaheadBehavior","focusBehavior","disabled","computed","isListDisabled","activeDescendant","getActiveDescendant","tabIndex","getListTabIndex","activeIndex","_anchorIndex","signal","_wrap","constructor","ListFocus","ListSelection","focusManager","ListTypeahead","ListNavigation","wrap","getItemTabindex","item","getItemTabIndex","first","opts","_navigate","last","next","prev","goto","unfocus","activeItem","set","undefined","anchor","index","search","char","isTyping","select","selectOne","deselect","deselectAll","toggle","toggleOne","toggleAll","isFocusable","updateSelection","selectRange","rangeStartIndex","operation","moved"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_list-navigation-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list-focus/list-focus.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list-navigation/list-navigation.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 {computed, signal, SignalLike, WritableSignalLike} from '../signal-like/signal-like';\n\n/** Represents an item in a collection, such as a listbox option, than may receive focus. */\nexport interface ListFocusItem {\n /** A unique identifier for the item. */\n id: SignalLike<string>;\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement | undefined>;\n\n /** Whether an item is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for a collection that contains focusable items. */\nexport interface ListFocusInputs<T extends ListFocusItem> {\n /** The focus strategy used by the list. */\n focusMode: SignalLike<'roving' | 'activedescendant'>;\n\n /** Whether the list is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The items in the list. */\n items: SignalLike<T[]>;\n\n /** The active item. */\n activeItem: WritableSignalLike<T | undefined>;\n\n /** Whether disabled items in the list should be focusable. */\n softDisabled: SignalLike<boolean>;\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement | undefined>;\n}\n\n/** Controls focus for a list of items. */\nexport class ListFocus<T extends ListFocusItem> {\n /** The last item that was active. */\n prevActiveItem = signal<T | undefined>(undefined);\n\n /** The index of the last item that was active. */\n prevActiveIndex = computed(() => {\n return this.prevActiveItem() ? this.inputs.items().indexOf(this.prevActiveItem()!) : -1;\n });\n\n /** The current active index in the list. */\n activeIndex = computed(() => {\n return this.inputs.activeItem() ? this.inputs.items().indexOf(this.inputs.activeItem()!) : -1;\n });\n\n constructor(readonly inputs: ListFocusInputs<T>) {}\n\n /** Whether the list is in a disabled state. */\n isListDisabled(): boolean {\n return this.inputs.disabled() || this.inputs.items().every(i => i.disabled());\n }\n\n /** The id of the current active item. */\n getActiveDescendant(): string | undefined {\n if (this.isListDisabled()) {\n return undefined;\n }\n if (this.inputs.focusMode() === 'roving') {\n return undefined;\n }\n return this.inputs.activeItem()?.id() ?? undefined;\n }\n\n /** The tab index for the list. */\n getListTabIndex(): -1 | 0 {\n if (this.isListDisabled()) {\n return 0;\n }\n return this.inputs.focusMode() === 'activedescendant' ? 0 : -1;\n }\n\n /** Returns the tab index for the given item. */\n getItemTabIndex(item: T): -1 | 0 {\n if (this.isListDisabled()) {\n return -1;\n }\n if (this.inputs.focusMode() === 'activedescendant') {\n return -1;\n }\n return this.inputs.activeItem() === item ? 0 : -1;\n }\n\n /** Moves focus to the given item if it is focusable. */\n focus(item: T, opts?: {focusElement?: boolean}): boolean {\n if (this.isListDisabled() || !this.isFocusable(item)) {\n return false;\n }\n\n this.prevActiveItem.set(this.inputs.activeItem());\n this.inputs.activeItem.set(item);\n\n if (opts?.focusElement || opts?.focusElement === undefined) {\n this.inputs.focusMode() === 'roving'\n ? item.element()?.focus()\n : this.inputs.element()?.focus();\n }\n\n return true;\n }\n\n /** Returns true if the given item can be navigated to. */\n isFocusable(item: T): boolean {\n return !item.disabled() || this.inputs.softDisabled();\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 {SignalLike} from '../signal-like/signal-like';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\n\n/** Represents an item in a collection, such as a listbox option, than can be navigated to. */\nexport interface ListNavigationItem extends ListFocusItem {}\n\n/** Represents the required inputs for a collection that has navigable items. */\nexport interface ListNavigationInputs<T extends ListNavigationItem> extends ListFocusInputs<T> {\n /** Whether focus should wrap when navigating. */\n wrap: SignalLike<boolean>;\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** The direction that text is read based on the users locale. */\n textDirection: SignalLike<'rtl' | 'ltr'>;\n}\n\n/** Options for list navigation. */\nexport interface ListNavigationOpts<T> {\n /**\n * Whether to focus the item's element.\n * Defaults to true.\n */\n focusElement?: boolean;\n\n /**\n * The list of items to navigate through.\n * Defaults to the list of items from the inputs.\n */\n items?: T[];\n}\n\n/** Controls navigation for a list of items. */\nexport class ListNavigation<T extends ListNavigationItem> {\n constructor(readonly inputs: ListNavigationInputs<T> & {focusManager: ListFocus<T>}) {}\n\n /** Navigates to the given item. */\n goto(item?: T, opts?: ListNavigationOpts<T>): boolean {\n return item ? this.inputs.focusManager.focus(item, opts) : false;\n }\n\n /** Navigates to the next item in the list. */\n next(opts?: ListNavigationOpts<T>): boolean {\n return this._advance(1, opts);\n }\n\n /** Peeks the next item in the list. */\n peekNext(opts?: ListNavigationOpts<T>): T | undefined {\n return this._peek(1, opts);\n }\n\n /** Navigates to the previous item in the list. */\n prev(opts?: ListNavigationOpts<T>): boolean {\n return this._advance(-1, opts);\n }\n\n /** Peeks the previous item in the list. */\n peekPrev(opts?: ListNavigationOpts<T>): T | undefined {\n return this._peek(-1, opts);\n }\n\n /** Navigates to the first item in the list. */\n first(opts?: ListNavigationOpts<T>): boolean {\n const item = this.peekFirst(opts);\n return item ? this.goto(item, opts) : false;\n }\n\n /** Navigates to the last item in the list. */\n last(opts?: ListNavigationOpts<T>): boolean {\n const item = this.peekLast(opts);\n return item ? this.goto(item, opts) : false;\n }\n\n /** Gets the first focusable item from the given list of items. */\n peekFirst(opts?: ListNavigationOpts<T>): T | undefined {\n const items = opts?.items ?? this.inputs.items();\n return items.find(i => this.inputs.focusManager.isFocusable(i));\n }\n\n /** Gets the last focusable item from the given list of items. */\n peekLast(opts?: ListNavigationOpts<T>): T | undefined {\n const items = opts?.items ?? this.inputs.items();\n for (let i = items.length - 1; i >= 0; i--) {\n if (this.inputs.focusManager.isFocusable(items[i])) {\n return items[i];\n }\n }\n return;\n }\n\n /** Advances to the next or previous focusable item in the list based on the given delta. */\n private _advance(delta: 1 | -1, opts?: ListNavigationOpts<T>): boolean {\n const item = this._peek(delta, opts);\n return item ? this.goto(item, opts) : false;\n }\n\n /** Peeks the next or previous focusable item in the list based on the given delta. */\n private _peek(delta: 1 | -1, opts?: ListNavigationOpts<T>): T | undefined {\n const items = opts?.items ?? this.inputs.items();\n const itemCount = items.length;\n const activeItem = this.inputs.focusManager.inputs.activeItem();\n const startIndex =\n opts?.items && activeItem\n ? items.indexOf(activeItem)\n : this.inputs.focusManager.activeIndex();\n\n const step = (i: number) =>\n this.inputs.wrap() ? (i + delta + itemCount) % itemCount : i + delta;\n\n // If wrapping is enabled, this loop ultimately terminates when `i` gets back to `startIndex`\n // in the case that all options are disabled. If wrapping is disabled, the loop terminates\n // when the index goes out of bounds.\n for (let i = step(startIndex); i !== startIndex && i < itemCount && i >= 0; i = step(i)) {\n if (this.inputs.focusManager.isFocusable(items[i])) {\n return items[i];\n }\n }\n\n return;\n }\n}\n"],"names":["ListFocus","inputs","prevActiveItem","signal","undefined","prevActiveIndex","computed","items","indexOf","activeIndex","activeItem","constructor","isListDisabled","disabled","every","i","getActiveDescendant","focusMode","id","getListTabIndex","getItemTabIndex","item","focus","opts","isFocusable","set","focusElement","element","softDisabled","ListNavigation","goto","focusManager","next","_advance","peekNext","_peek","prev","peekPrev","first","peekFirst","last","peekLast","find","length","delta","itemCount","startIndex","step","wrap"],"mappings":"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"}
{"version":3,"file":"_list-navigation-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list-focus/list-focus.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list-navigation/list-navigation.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 {computed, signal, SignalLike, WritableSignalLike} from '../signal-like/signal-like';\n\n/** Represents an item in a collection, such as a listbox option, than may receive focus. */\nexport interface ListFocusItem {\n /** A unique identifier for the item. */\n id: SignalLike<string>;\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement | undefined>;\n\n /** Whether an item is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for a collection that contains focusable items. */\nexport interface ListFocusInputs<T extends ListFocusItem> {\n /** The focus strategy used by the list. */\n focusMode: SignalLike<'roving' | 'activedescendant'>;\n\n /** Whether the list is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The items in the list. */\n items: SignalLike<T[]>;\n\n /** The active item. */\n activeItem: WritableSignalLike<T | undefined>;\n\n /** Whether disabled items in the list should be focusable. */\n softDisabled: SignalLike<boolean>;\n\n /** The html element that should receive focus. */\n element: SignalLike<HTMLElement | undefined>;\n}\n\n/** Controls focus for a list of items. */\nexport class ListFocus<T extends ListFocusItem> {\n /** The last item that was active. */\n prevActiveItem = signal<T | undefined>(undefined);\n\n /** The index of the last item that was active. */\n prevActiveIndex = computed(() => {\n return this.prevActiveItem() ? this.inputs.items().indexOf(this.prevActiveItem()!) : -1;\n });\n\n /** The current active index in the list. */\n activeIndex = computed(() => {\n return this.inputs.activeItem() ? this.inputs.items().indexOf(this.inputs.activeItem()!) : -1;\n });\n\n constructor(readonly inputs: ListFocusInputs<T>) {}\n\n /** Whether the list is in a disabled state. */\n isListDisabled(): boolean {\n return this.inputs.disabled() || this.inputs.items().every(i => i.disabled());\n }\n\n /** The id of the current active item. */\n getActiveDescendant(): string | undefined {\n if (this.isListDisabled()) {\n return undefined;\n }\n if (this.inputs.focusMode() === 'roving') {\n return undefined;\n }\n return this.inputs.activeItem()?.id() ?? undefined;\n }\n\n /** The tab index for the list. */\n getListTabIndex(): -1 | 0 {\n if (this.isListDisabled()) {\n return 0;\n }\n return this.inputs.focusMode() === 'activedescendant' ? 0 : -1;\n }\n\n /** Returns the tab index for the given item. */\n getItemTabIndex(item: T): -1 | 0 {\n if (this.isListDisabled()) {\n return -1;\n }\n if (this.inputs.focusMode() === 'activedescendant') {\n return -1;\n }\n return this.inputs.activeItem() === item ? 0 : -1;\n }\n\n /** Moves focus to the given item if it is focusable. */\n focus(item: T, opts?: {focusElement?: boolean}): boolean {\n if (this.isListDisabled() || !this.isFocusable(item)) {\n return false;\n }\n\n this.prevActiveItem.set(this.inputs.activeItem());\n this.inputs.activeItem.set(item);\n\n if (opts?.focusElement || opts?.focusElement === undefined) {\n this.inputs.focusMode() === 'roving'\n ? item.element()?.focus()\n : this.inputs.element()?.focus();\n }\n\n return true;\n }\n\n /** Returns true if the given item can be navigated to. */\n isFocusable(item: T): boolean {\n return !item.disabled() || this.inputs.softDisabled();\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 {SignalLike} from '../signal-like/signal-like';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\n\n/** Represents an item in a collection, such as a listbox option, than can be navigated to. */\nexport interface ListNavigationItem extends ListFocusItem {}\n\n/** Represents the required inputs for a collection that has navigable items. */\nexport interface ListNavigationInputs<T extends ListNavigationItem> extends ListFocusInputs<T> {\n /** Whether focus should wrap when navigating. */\n wrap: SignalLike<boolean>;\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** The direction that text is read based on the users locale. */\n textDirection: SignalLike<'rtl' | 'ltr'>;\n}\n\n/** Options for list navigation. */\nexport interface ListNavigationOpts<T> {\n /**\n * Whether to focus the item's element.\n * Defaults to true.\n */\n focusElement?: boolean;\n\n /**\n * The list of items to navigate through.\n * Defaults to the list of items from the inputs.\n */\n items?: T[];\n}\n\n/** Controls navigation for a list of items. */\nexport class ListNavigation<T extends ListNavigationItem> {\n constructor(readonly inputs: ListNavigationInputs<T> & {focusManager: ListFocus<T>}) {}\n\n /** Navigates to the given item. */\n goto(item?: T, opts?: ListNavigationOpts<T>): boolean {\n return item ? this.inputs.focusManager.focus(item, opts) : false;\n }\n\n /** Navigates to the next item in the list. */\n next(opts?: ListNavigationOpts<T>): boolean {\n return this._advance(1, opts);\n }\n\n /** Peeks the next item in the list. */\n peekNext(opts?: ListNavigationOpts<T>): T | undefined {\n return this._peek(1, opts);\n }\n\n /** Navigates to the previous item in the list. */\n prev(opts?: ListNavigationOpts<T>): boolean {\n return this._advance(-1, opts);\n }\n\n /** Peeks the previous item in the list. */\n peekPrev(opts?: ListNavigationOpts<T>): T | undefined {\n return this._peek(-1, opts);\n }\n\n /** Navigates to the first item in the list. */\n first(opts?: ListNavigationOpts<T>): boolean {\n const item = this.peekFirst(opts);\n return item ? this.goto(item, opts) : false;\n }\n\n /** Navigates to the last item in the list. */\n last(opts?: ListNavigationOpts<T>): boolean {\n const item = this.peekLast(opts);\n return item ? this.goto(item, opts) : false;\n }\n\n /** Gets the first focusable item from the given list of items. */\n peekFirst(opts?: ListNavigationOpts<T>): T | undefined {\n const items = opts?.items ?? this.inputs.items();\n return items.find(i => this.inputs.focusManager.isFocusable(i));\n }\n\n /** Gets the last focusable item from the given list of items. */\n peekLast(opts?: ListNavigationOpts<T>): T | undefined {\n const items = opts?.items ?? this.inputs.items();\n for (let i = items.length - 1; i >= 0; i--) {\n if (this.inputs.focusManager.isFocusable(items[i])) {\n return items[i];\n }\n }\n return;\n }\n\n /** Advances to the next or previous focusable item in the list based on the given delta. */\n private _advance(delta: 1 | -1, opts?: ListNavigationOpts<T>): boolean {\n const item = this._peek(delta, opts);\n return item ? this.goto(item, opts) : false;\n }\n\n /** Peeks the next or previous focusable item in the list based on the given delta. */\n private _peek(delta: 1 | -1, opts?: ListNavigationOpts<T>): T | undefined {\n const items = opts?.items ?? this.inputs.items();\n const itemCount = items.length;\n const activeItem = this.inputs.focusManager.inputs.activeItem();\n const startIndex =\n opts?.items && activeItem\n ? items.indexOf(activeItem)\n : this.inputs.focusManager.activeIndex();\n\n const step = (i: number) =>\n this.inputs.wrap() ? (i + delta + itemCount) % itemCount : i + delta;\n\n // If wrapping is enabled, this loop ultimately terminates when `i` gets back to `startIndex`\n // in the case that all options are disabled. If wrapping is disabled, the loop terminates\n // when the index goes out of bounds.\n for (let i = step(startIndex); i !== startIndex && i < itemCount && i >= 0; i = step(i)) {\n if (this.inputs.focusManager.isFocusable(items[i])) {\n return items[i];\n }\n }\n\n return;\n }\n}\n"],"names":["ListFocus","inputs","prevActiveItem","signal","undefined","prevActiveIndex","computed","items","indexOf","activeIndex","activeItem","constructor","isListDisabled","disabled","every","i","getActiveDescendant","focusMode","id","getListTabIndex","getItemTabIndex","item","focus","opts","isFocusable","set","focusElement","element","softDisabled","ListNavigation","goto","focusManager","next","_advance","peekNext","_peek","prev","peekPrev","first","peekFirst","last","peekLast","find","length","delta","itemCount","startIndex","step","wrap"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_list-typeahead-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list-selection/list-selection.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list-typeahead/list-typeahead.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 {computed, signal, SignalLike, WritableSignalLike} from '../signal-like/signal-like';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\n\n/** Represents an item in a collection, such as a listbox option, that can be selected. */\nexport interface ListSelectionItem<V> extends ListFocusItem {\n /** The value of the item. */\n value: SignalLike<V>;\n\n /** Whether the item is selectable. */\n selectable: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for a collection that contains selectable items. */\nexport interface ListSelectionInputs<T extends ListSelectionItem<V>, V> extends ListFocusInputs<T> {\n /** Whether multiple items in the list can be selected at once. */\n multi: SignalLike<boolean>;\n\n /** The current value of the list selection. */\n values: WritableSignalLike<V[]>;\n\n /** The selection strategy used by the list. */\n selectionMode: SignalLike<'follow' | 'explicit'>;\n}\n\n/** Controls selection for a list of items. */\nexport class ListSelection<T extends ListSelectionItem<V>, V> {\n /** The start index to use for range selection. */\n rangeStartIndex = signal<number>(0);\n\n /** The end index to use for range selection. */\n rangeEndIndex = signal<number>(0);\n\n /** The currently selected items. */\n selectedItems = computed(() =>\n this.inputs.items().filter(item => this.inputs.values().includes(item.value())),\n );\n\n constructor(readonly inputs: ListSelectionInputs<T, V> & {focusManager: ListFocus<T>}) {}\n\n /** Selects the item at the current active index. */\n select(item?: ListSelectionItem<V>, opts = {anchor: true}) {\n item = item ?? (this.inputs.focusManager.inputs.activeItem() as ListSelectionItem<V>);\n\n if (\n !item ||\n item.disabled() ||\n !item.selectable() ||\n !this.inputs.focusManager.isFocusable(item as T) ||\n this.inputs.values().includes(item.value())\n ) {\n return;\n }\n\n if (!this.inputs.multi()) {\n this.deselectAll();\n }\n\n const index = this.inputs.items().findIndex(i => i === item);\n if (opts.anchor) {\n this.beginRangeSelection(index);\n }\n this.inputs.values.update(values => values.concat(item.value()));\n }\n\n /** Deselects the item at the current active index. */\n deselect(item?: ListSelectionItem<V>) {\n item = item ?? this.inputs.focusManager.inputs.activeItem();\n\n if (item && !item.disabled() && item.selectable()) {\n this.inputs.values.update(values => values.filter(value => value !== item.value()));\n }\n }\n\n /** Toggles the item at the current active index. */\n toggle(item?: ListSelectionItem<V>) {\n item = item ?? this.inputs.focusManager.inputs.activeItem();\n if (item) {\n this.inputs.values().includes(item.value()) ? this.deselect(item) : this.select(item);\n }\n }\n\n /** Toggles only the item at the current active index. */\n toggleOne() {\n const item = this.inputs.focusManager.inputs.activeItem();\n if (item) {\n this.inputs.values().includes(item.value()) ? this.deselect() : this.selectOne();\n }\n }\n\n /** Selects all items in the list. */\n selectAll() {\n if (!this.inputs.multi()) {\n return; // Should we log a warning?\n }\n\n for (const item of this.inputs.items()) {\n this.select(item, {anchor: false});\n }\n\n this.beginRangeSelection();\n }\n\n /** Deselects all items in the list. */\n deselectAll() {\n // If an item is not in the list, it forcefully gets deselected.\n // This actually creates a bug for the following edge case:\n //\n // Setup: An item is not in the list (maybe it's lazily loaded), and it is disabled & selected.\n // Expected: If deselectAll() is called, it should NOT get deselected (because it is disabled).\n // Actual: Calling deselectAll() will still deselect the item.\n //\n // Why? Because we can't check if the item is disabled if it's not in the list.\n //\n // Alternatively, we could NOT deselect items that are not in the list, but this has the\n // inverse (and more common) effect of keeping enabled items selected when they aren't in the\n // list.\n\n for (const value of this.inputs.values()) {\n const item = this.inputs.items().find(i => i.value() === value);\n\n item\n ? this.deselect(item)\n : this.inputs.values.update(values => values.filter(v => v !== value));\n }\n }\n\n /**\n * Selects all items in the list or deselects all\n * items in the list if all items are already selected.\n */\n toggleAll() {\n const selectableValues = this.inputs\n .items()\n .filter(i => !i.disabled() && i.selectable() && this.inputs.focusManager.isFocusable(i))\n .map(i => i.value());\n\n selectableValues.every(i => this.inputs.values().includes(i))\n ? this.deselectAll()\n : this.selectAll();\n }\n\n /** Sets the selection to only the current active item. */\n selectOne() {\n const item = this.inputs.focusManager.inputs.activeItem();\n if (item && (item.disabled() || !item.selectable())) {\n return;\n }\n\n this.deselectAll();\n\n if (this.inputs.values().length > 0 && !this.inputs.multi()) {\n return;\n }\n\n this.select();\n }\n\n /**\n * Selects all items in the list up to the anchor item.\n *\n * Deselects all items that were previously within the\n * selected range that are now outside of the selected range\n */\n selectRange(opts = {anchor: true}) {\n const isStartOfRange = this.inputs.focusManager.prevActiveIndex() === this.rangeStartIndex();\n\n if (isStartOfRange && opts.anchor) {\n this.beginRangeSelection(this.inputs.focusManager.prevActiveIndex());\n }\n\n const itemsInRange = this._getItemsFromIndex(this.rangeStartIndex());\n const itemsOutOfRange = this._getItemsFromIndex(this.rangeEndIndex()).filter(\n i => !itemsInRange.includes(i),\n );\n\n for (const item of itemsOutOfRange) {\n this.deselect(item);\n }\n\n for (const item of itemsInRange) {\n this.select(item, {anchor: false});\n }\n\n if (itemsInRange.length) {\n const item = itemsInRange.pop();\n const index = this.inputs.items().findIndex(i => i === item);\n this.rangeEndIndex.set(index);\n }\n }\n\n /** Marks the given index as the start of a range selection. */\n beginRangeSelection(index: number = this.inputs.focusManager.activeIndex()) {\n this.rangeStartIndex.set(index);\n this.rangeEndIndex.set(index);\n }\n\n /** Returns the items in the list starting from the given index. */\n private _getItemsFromIndex(index: number) {\n if (index === -1) {\n return [];\n }\n\n const upper = Math.max(this.inputs.focusManager.activeIndex(), index);\n const lower = Math.min(this.inputs.focusManager.activeIndex(), index);\n\n const items = [];\n for (let i = lower; i <= upper; i++) {\n items.push(this.inputs.items()[i]);\n }\n\n if (this.inputs.focusManager.activeIndex() < index) {\n return items.reverse();\n }\n\n return items;\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 {computed, signal, SignalLike} from '../signal-like/signal-like';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\n\n/**\n * Represents an item in a collection, such as a listbox option, than can be navigated to by\n * typeahead.\n */\nexport interface ListTypeaheadItem extends ListFocusItem {\n /** The text used by the typeahead search. */\n searchTerm: SignalLike<string>;\n}\n\n/**\n * Represents the required inputs for a collection that contains items that can be navigated to by\n * typeahead.\n */\nexport interface ListTypeaheadInputs<T extends ListTypeaheadItem> extends ListFocusInputs<T> {\n /** The amount of time before the typeahead search is reset. */\n typeaheadDelay: SignalLike<number>;\n}\n\n/** Controls typeahead for a list of items. */\nexport class ListTypeahead<T extends ListTypeaheadItem> {\n /** A reference to the timeout for resetting the typeahead search. */\n timeout?: ReturnType<typeof setTimeout> | undefined;\n\n /** The focus controller of the parent list. */\n focusManager: ListFocus<T>;\n\n /** Whether the user is actively typing a typeahead search query. */\n isTyping = computed(() => this._query().length > 0);\n\n /** Keeps track of the characters that typeahead search is being called with. */\n private _query = signal('');\n\n /** The index where that the typeahead search was initiated from. */\n private _startIndex = signal<number | undefined>(undefined);\n\n constructor(readonly inputs: ListTypeaheadInputs<T> & {focusManager: ListFocus<T>}) {\n this.focusManager = inputs.focusManager;\n }\n\n /** Performs a typeahead search, appending the given character to the search string. */\n search(char: string): boolean {\n if (char.length !== 1) {\n return false;\n }\n\n if (!this.isTyping() && char === ' ') {\n return false;\n }\n\n if (this._startIndex() === undefined) {\n this._startIndex.set(this.focusManager.activeIndex());\n }\n\n clearTimeout(this.timeout);\n this._query.update(q => q + char.toLowerCase());\n const item = this._getItem();\n\n if (item) {\n this.focusManager.focus(item);\n }\n\n this.timeout = setTimeout(() => {\n this._query.set('');\n this._startIndex.set(undefined);\n }, this.inputs.typeaheadDelay());\n\n return true;\n }\n\n /**\n * Returns the first item whose search term matches the\n * current query starting from the the current anchor index.\n */\n private _getItem() {\n const items = this.focusManager.inputs.items();\n const itemCount = items.length;\n const startIndex = this._startIndex()!;\n\n for (let i = 0; i < itemCount; i++) {\n const index = (startIndex + 1 + i) % itemCount;\n const item = items[index];\n\n if (\n this.focusManager.isFocusable(item) &&\n item.searchTerm().toLowerCase().startsWith(this._query())\n ) {\n return item;\n }\n }\n\n return undefined;\n }\n}\n"],"names":["ListSelection","inputs","rangeStartIndex","signal","rangeEndIndex","selectedItems","computed","items","filter","item","values","includes","value","constructor","select","opts","anchor","focusManager","activeItem","disabled","selectable","isFocusable","multi","deselectAll","index","findIndex","i","beginRangeSelection","update","concat","deselect","toggle","toggleOne","selectOne","selectAll","find","v","toggleAll","selectableValues","map","every","length","selectRange","isStartOfRange","prevActiveIndex","itemsInRange","_getItemsFromIndex","itemsOutOfRange","pop","set","activeIndex","upper","Math","max","lower","min","push","reverse","ListTypeahead","timeout","isTyping","_query","_startIndex","undefined","search","char","clearTimeout","q","toLowerCase","_getItem","focus","setTimeout","typeaheadDelay","itemCount","startIndex","searchTerm","startsWith"],"mappings":"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"}
{"version":3,"file":"_list-typeahead-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list-selection/list-selection.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/list-typeahead/list-typeahead.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 {computed, signal, SignalLike, WritableSignalLike} from '../signal-like/signal-like';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\n\n/** Represents an item in a collection, such as a listbox option, that can be selected. */\nexport interface ListSelectionItem<V> extends ListFocusItem {\n /** The value of the item. */\n value: SignalLike<V>;\n\n /** Whether the item is selectable. */\n selectable: SignalLike<boolean>;\n}\n\n/** Represents the required inputs for a collection that contains selectable items. */\nexport interface ListSelectionInputs<T extends ListSelectionItem<V>, V> extends ListFocusInputs<T> {\n /** Whether multiple items in the list can be selected at once. */\n multi: SignalLike<boolean>;\n\n /** The current value of the list selection. */\n values: WritableSignalLike<V[]>;\n\n /** The selection strategy used by the list. */\n selectionMode: SignalLike<'follow' | 'explicit'>;\n}\n\n/** Controls selection for a list of items. */\nexport class ListSelection<T extends ListSelectionItem<V>, V> {\n /** The start index to use for range selection. */\n rangeStartIndex = signal<number>(0);\n\n /** The end index to use for range selection. */\n rangeEndIndex = signal<number>(0);\n\n /** The currently selected items. */\n selectedItems = computed(() =>\n this.inputs.items().filter(item => this.inputs.values().includes(item.value())),\n );\n\n constructor(readonly inputs: ListSelectionInputs<T, V> & {focusManager: ListFocus<T>}) {}\n\n /** Selects the item at the current active index. */\n select(item?: ListSelectionItem<V>, opts = {anchor: true}) {\n item = item ?? (this.inputs.focusManager.inputs.activeItem() as ListSelectionItem<V>);\n\n if (\n !item ||\n item.disabled() ||\n !item.selectable() ||\n !this.inputs.focusManager.isFocusable(item as T) ||\n this.inputs.values().includes(item.value())\n ) {\n return;\n }\n\n if (!this.inputs.multi()) {\n this.deselectAll();\n }\n\n const index = this.inputs.items().findIndex(i => i === item);\n if (opts.anchor) {\n this.beginRangeSelection(index);\n }\n this.inputs.values.update(values => values.concat(item.value()));\n }\n\n /** Deselects the item at the current active index. */\n deselect(item?: ListSelectionItem<V>) {\n item = item ?? this.inputs.focusManager.inputs.activeItem();\n\n if (item && !item.disabled() && item.selectable()) {\n this.inputs.values.update(values => values.filter(value => value !== item.value()));\n }\n }\n\n /** Toggles the item at the current active index. */\n toggle(item?: ListSelectionItem<V>) {\n item = item ?? this.inputs.focusManager.inputs.activeItem();\n if (item) {\n this.inputs.values().includes(item.value()) ? this.deselect(item) : this.select(item);\n }\n }\n\n /** Toggles only the item at the current active index. */\n toggleOne() {\n const item = this.inputs.focusManager.inputs.activeItem();\n if (item) {\n this.inputs.values().includes(item.value()) ? this.deselect() : this.selectOne();\n }\n }\n\n /** Selects all items in the list. */\n selectAll() {\n if (!this.inputs.multi()) {\n return; // Should we log a warning?\n }\n\n for (const item of this.inputs.items()) {\n this.select(item, {anchor: false});\n }\n\n this.beginRangeSelection();\n }\n\n /** Deselects all items in the list. */\n deselectAll() {\n // If an item is not in the list, it forcefully gets deselected.\n // This actually creates a bug for the following edge case:\n //\n // Setup: An item is not in the list (maybe it's lazily loaded), and it is disabled & selected.\n // Expected: If deselectAll() is called, it should NOT get deselected (because it is disabled).\n // Actual: Calling deselectAll() will still deselect the item.\n //\n // Why? Because we can't check if the item is disabled if it's not in the list.\n //\n // Alternatively, we could NOT deselect items that are not in the list, but this has the\n // inverse (and more common) effect of keeping enabled items selected when they aren't in the\n // list.\n\n for (const value of this.inputs.values()) {\n const item = this.inputs.items().find(i => i.value() === value);\n\n item\n ? this.deselect(item)\n : this.inputs.values.update(values => values.filter(v => v !== value));\n }\n }\n\n /**\n * Selects all items in the list or deselects all\n * items in the list if all items are already selected.\n */\n toggleAll() {\n const selectableValues = this.inputs\n .items()\n .filter(i => !i.disabled() && i.selectable() && this.inputs.focusManager.isFocusable(i))\n .map(i => i.value());\n\n selectableValues.every(i => this.inputs.values().includes(i))\n ? this.deselectAll()\n : this.selectAll();\n }\n\n /** Sets the selection to only the current active item. */\n selectOne() {\n const item = this.inputs.focusManager.inputs.activeItem();\n if (item && (item.disabled() || !item.selectable())) {\n return;\n }\n\n this.deselectAll();\n\n if (this.inputs.values().length > 0 && !this.inputs.multi()) {\n return;\n }\n\n this.select();\n }\n\n /**\n * Selects all items in the list up to the anchor item.\n *\n * Deselects all items that were previously within the\n * selected range that are now outside of the selected range\n */\n selectRange(opts = {anchor: true}) {\n const isStartOfRange = this.inputs.focusManager.prevActiveIndex() === this.rangeStartIndex();\n\n if (isStartOfRange && opts.anchor) {\n this.beginRangeSelection(this.inputs.focusManager.prevActiveIndex());\n }\n\n const itemsInRange = this._getItemsFromIndex(this.rangeStartIndex());\n const itemsOutOfRange = this._getItemsFromIndex(this.rangeEndIndex()).filter(\n i => !itemsInRange.includes(i),\n );\n\n for (const item of itemsOutOfRange) {\n this.deselect(item);\n }\n\n for (const item of itemsInRange) {\n this.select(item, {anchor: false});\n }\n\n if (itemsInRange.length) {\n const item = itemsInRange.pop();\n const index = this.inputs.items().findIndex(i => i === item);\n this.rangeEndIndex.set(index);\n }\n }\n\n /** Marks the given index as the start of a range selection. */\n beginRangeSelection(index: number = this.inputs.focusManager.activeIndex()) {\n this.rangeStartIndex.set(index);\n this.rangeEndIndex.set(index);\n }\n\n /** Returns the items in the list starting from the given index. */\n private _getItemsFromIndex(index: number) {\n if (index === -1) {\n return [];\n }\n\n const upper = Math.max(this.inputs.focusManager.activeIndex(), index);\n const lower = Math.min(this.inputs.focusManager.activeIndex(), index);\n\n const items = [];\n for (let i = lower; i <= upper; i++) {\n items.push(this.inputs.items()[i]);\n }\n\n if (this.inputs.focusManager.activeIndex() < index) {\n return items.reverse();\n }\n\n return items;\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 {computed, signal, SignalLike} from '../signal-like/signal-like';\nimport {ListFocus, ListFocusInputs, ListFocusItem} from '../list-focus/list-focus';\n\n/**\n * Represents an item in a collection, such as a listbox option, than can be navigated to by\n * typeahead.\n */\nexport interface ListTypeaheadItem extends ListFocusItem {\n /** The text used by the typeahead search. */\n searchTerm: SignalLike<string>;\n}\n\n/**\n * Represents the required inputs for a collection that contains items that can be navigated to by\n * typeahead.\n */\nexport interface ListTypeaheadInputs<T extends ListTypeaheadItem> extends ListFocusInputs<T> {\n /** The amount of time before the typeahead search is reset. */\n typeaheadDelay: SignalLike<number>;\n}\n\n/** Controls typeahead for a list of items. */\nexport class ListTypeahead<T extends ListTypeaheadItem> {\n /** A reference to the timeout for resetting the typeahead search. */\n timeout?: ReturnType<typeof setTimeout> | undefined;\n\n /** The focus controller of the parent list. */\n focusManager: ListFocus<T>;\n\n /** Whether the user is actively typing a typeahead search query. */\n isTyping = computed(() => this._query().length > 0);\n\n /** Keeps track of the characters that typeahead search is being called with. */\n private _query = signal('');\n\n /** The index where that the typeahead search was initiated from. */\n private _startIndex = signal<number | undefined>(undefined);\n\n constructor(readonly inputs: ListTypeaheadInputs<T> & {focusManager: ListFocus<T>}) {\n this.focusManager = inputs.focusManager;\n }\n\n /** Performs a typeahead search, appending the given character to the search string. */\n search(char: string): boolean {\n if (char.length !== 1) {\n return false;\n }\n\n if (!this.isTyping() && char === ' ') {\n return false;\n }\n\n if (this._startIndex() === undefined) {\n this._startIndex.set(this.focusManager.activeIndex());\n }\n\n clearTimeout(this.timeout);\n this._query.update(q => q + char.toLowerCase());\n const item = this._getItem();\n\n if (item) {\n this.focusManager.focus(item);\n }\n\n this.timeout = setTimeout(() => {\n this._query.set('');\n this._startIndex.set(undefined);\n }, this.inputs.typeaheadDelay());\n\n return true;\n }\n\n /**\n * Returns the first item whose search term matches the\n * current query starting from the the current anchor index.\n */\n private _getItem() {\n const items = this.focusManager.inputs.items();\n const itemCount = items.length;\n const startIndex = this._startIndex()!;\n\n for (let i = 0; i < itemCount; i++) {\n const index = (startIndex + 1 + i) % itemCount;\n const item = items[index];\n\n if (\n this.focusManager.isFocusable(item) &&\n item.searchTerm().toLowerCase().startsWith(this._query())\n ) {\n return item;\n }\n }\n\n return undefined;\n }\n}\n"],"names":["ListSelection","inputs","rangeStartIndex","signal","rangeEndIndex","selectedItems","computed","items","filter","item","values","includes","value","constructor","select","opts","anchor","focusManager","activeItem","disabled","selectable","isFocusable","multi","deselectAll","index","findIndex","i","beginRangeSelection","update","concat","deselect","toggle","toggleOne","selectOne","selectAll","find","v","toggleAll","selectableValues","map","every","length","selectRange","isStartOfRange","prevActiveIndex","itemsInRange","_getItemsFromIndex","itemsOutOfRange","pop","set","activeIndex","upper","Math","max","lower","min","push","reverse","ListTypeahead","timeout","isTyping","_query","_startIndex","undefined","search","char","clearTimeout","q","toLowerCase","_getItem","focus","setTimeout","typeaheadDelay","itemCount","startIndex","searchTerm","startsWith"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_menu-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/menu/menu.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 {KeyboardEventManager} from '../behaviors/event-manager';\nimport {computed, signal, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {List, ListInputs, ListItem} from '../behaviors/list/list';\n\n/** The inputs for the MenuBarPattern class. */\nexport interface MenuBarInputs<V> extends ListInputs<MenuItemPattern<V>, V> {\n /** The menu items contained in the menu. */\n items: SignalLike<MenuItemPattern<V>[]>;\n\n /** Callback function triggered when a menu item is selected. */\n itemSelected?: (value: V) => void;\n\n /** The text direction of the menu bar. */\n textDirection: SignalLike<'ltr' | 'rtl'>;\n}\n\n/** The inputs for the MenuPattern class. */\nexport interface MenuInputs<V> extends Omit<ListInputs<MenuItemPattern<V>, V>, 'values'> {\n /** The unique ID of the menu. */\n id: SignalLike<string>;\n\n /** The menu items contained in the menu. */\n items: SignalLike<MenuItemPattern<V>[]>;\n\n /** A reference to the parent menu or menu trigger. */\n parent: SignalLike<MenuTriggerPattern<V> | MenuItemPattern<V> | undefined>;\n\n /** Callback function triggered when a menu item is selected. */\n itemSelected?: (value: V) => void;\n\n /** The text direction of the menu bar. */\n textDirection: SignalLike<'ltr' | 'rtl'>;\n\n /** The delay in milliseconds before expanding sub-menus on hover. */\n expansionDelay: SignalLike<number>;\n}\n\n/** The inputs for the MenuTriggerPattern class. */\nexport interface MenuTriggerInputs<V> {\n /** A reference to the menu trigger element. */\n element: SignalLike<HTMLElement | undefined>;\n\n /** A reference to the menu associated with the trigger. */\n menu: SignalLike<MenuPattern<V> | undefined>;\n\n /** The text direction of the menu bar. */\n textDirection: SignalLike<'ltr' | 'rtl'>;\n\n /** Whether the menu trigger is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** The inputs for the MenuItemPattern class. */\nexport interface MenuItemInputs<V> extends Omit<ListItem<V>, 'index' | 'selectable'> {\n /** A reference to the parent menu or menu trigger. */\n parent: SignalLike<MenuPattern<V> | MenuBarPattern<V> | undefined>;\n\n /** A reference to the submenu associated with the menu item. */\n submenu: SignalLike<MenuPattern<V> | undefined>;\n}\n\n/** The menu ui pattern class. */\nexport class MenuPattern<V> {\n /** The unique ID of the menu. */\n id: SignalLike<string>;\n\n /** The role of the menu. */\n role = () => 'menu';\n\n /** Whether the menu is disabled. */\n disabled = () => this.inputs.disabled();\n\n /** Whether the menu is visible. */\n visible = computed(() => (this.inputs.parent() ? !!this.inputs.parent()?.expanded() : true));\n\n /** Controls list behavior for the menu items. */\n listBehavior: List<MenuItemPattern<V>, V>;\n\n /** Whether the menu or any of its child elements are currently focused. */\n isFocused = signal(false);\n\n /** Whether the menu has received focus. */\n hasBeenFocused = signal(false);\n\n /** Whether the menu trigger has been hovered. */\n hasBeenHovered = signal(false);\n\n /** Timeout used to open sub-menus on hover. */\n _openTimeout: any;\n\n /** Timeout used to close sub-menus on hover out. */\n _closeTimeout: any;\n\n /** The tab index of the menu. */\n tabIndex = () => this.listBehavior.tabIndex();\n\n /** Whether the menu should be focused on mouse over. */\n shouldFocus = computed(() => {\n const root = this.root();\n\n if (root instanceof MenuTriggerPattern) {\n return true;\n }\n\n if (root instanceof MenuBarPattern || root instanceof MenuPattern) {\n return root.isFocused();\n }\n\n return false;\n });\n\n /** The key used to expand sub-menus. */\n private _expandKey = computed(() => {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The key used to collapse sub-menus. */\n private _collapseKey = computed(() => {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n dynamicSpaceKey = computed(() => (this.listBehavior.isTyping() ? '' : ' '));\n\n /** The regexp used to decide if a key should trigger typeahead. */\n typeaheadRegexp = /^.$/;\n\n /** The root of the menu. */\n root: SignalLike<MenuTriggerPattern<V> | MenuBarPattern<V> | MenuPattern<V> | undefined> =\n computed(() => {\n const parent = this.inputs.parent();\n\n if (!parent) {\n return this;\n }\n\n if (parent instanceof MenuTriggerPattern) {\n return parent;\n }\n\n const grandparent = parent.inputs.parent();\n\n if (grandparent instanceof MenuBarPattern) {\n return grandparent;\n }\n\n return grandparent?.root();\n });\n\n /** Handles keyboard events for the menu. */\n keydownManager = computed(() => {\n return new KeyboardEventManager()\n .on('ArrowDown', () => this.next(), {ignoreRepeat: false})\n .on('ArrowUp', () => this.prev(), {ignoreRepeat: false})\n .on('Home', () => this.first())\n .on('End', () => this.last())\n .on('Enter', () => this.trigger())\n .on('Escape', () => this.closeAll())\n .on(this._expandKey, () => this.expand())\n .on(this._collapseKey, () => this.collapse())\n .on(this.dynamicSpaceKey, () => this.trigger())\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key));\n });\n\n constructor(readonly inputs: MenuInputs<V>) {\n this.id = inputs.id;\n this.listBehavior = new List<MenuItemPattern<V>, V>({\n ...inputs,\n values: signal([]),\n });\n }\n\n /** Sets the default state for the menu. */\n setDefaultState() {\n if (!this.inputs.parent()) {\n this.listBehavior.goto(this.inputs.items()[0], {focusElement: false});\n }\n }\n\n /** Handles keyboard events for the menu. */\n onKeydown(event: KeyboardEvent) {\n this.keydownManager().handle(event);\n }\n\n /** Handles mouseover events for the menu. */\n onMouseOver(event: MouseEvent) {\n if (!this.visible()) {\n return;\n }\n\n this.hasBeenHovered.set(true);\n const item = this.inputs.items().find(i => i.element()?.contains(event.target as Node));\n\n if (!item) {\n return;\n }\n\n const parent = this.inputs.parent();\n const activeItem = this?.inputs.activeItem();\n\n if (parent instanceof MenuItemPattern) {\n const grandparent = parent.inputs.parent();\n if (grandparent instanceof MenuPattern) {\n grandparent._clearTimeouts();\n grandparent.listBehavior.goto(parent, {focusElement: false});\n }\n }\n\n if (activeItem && activeItem !== item) {\n this._closeItem(activeItem);\n }\n\n if (item.expanded()) {\n this._clearCloseTimeout();\n }\n\n this._openItem(item);\n this.listBehavior.goto(item, {focusElement: this.shouldFocus()});\n }\n\n /** Closes the specified menu item after a delay. */\n private _closeItem(item: MenuItemPattern<V>) {\n this._clearOpenTimeout();\n\n if (!this._closeTimeout) {\n this._closeTimeout = setTimeout(() => {\n item.close();\n this._closeTimeout = undefined;\n }, this.inputs.expansionDelay());\n }\n }\n\n /** Opens the specified menu item after a delay. */\n private _openItem(item: MenuItemPattern<V>) {\n this._clearOpenTimeout();\n\n this._openTimeout = setTimeout(() => {\n item.open();\n this._openTimeout = undefined;\n }, this.inputs.expansionDelay());\n }\n\n /** Handles mouseout events for the menu. */\n onMouseOut(event: MouseEvent) {\n this._clearOpenTimeout();\n\n if (this.isFocused()) {\n return;\n }\n\n const root = this.root();\n const parent = this.inputs.parent();\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!root || !parent || parent instanceof MenuTriggerPattern) {\n return;\n }\n\n const grandparent = parent.inputs.parent();\n\n if (!grandparent || grandparent instanceof MenuBarPattern) {\n return;\n }\n\n if (!grandparent.inputs.element()?.contains(relatedTarget)) {\n parent.close();\n }\n }\n\n /** Handles click events for the menu. */\n onClick(event: MouseEvent) {\n const relatedTarget = event.target as Node | null;\n const item = this.inputs.items().find(i => i.element()?.contains(relatedTarget));\n\n if (item) {\n item.open();\n this.listBehavior.goto(item);\n this.submit(item);\n }\n }\n\n /** Handles focusin events for the menu. */\n onFocusIn() {\n this.isFocused.set(true);\n this.hasBeenFocused.set(true);\n }\n\n /** Handles the focusout event for the menu. */\n onFocusOut(event: FocusEvent) {\n const parent = this.inputs.parent();\n const parentEl = parent?.inputs.element();\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!relatedTarget) {\n this.isFocused.set(false);\n this.inputs.parent()?.close({refocus: true});\n }\n\n if (parent instanceof MenuItemPattern) {\n const grandparent = parent.inputs.parent();\n const siblings = grandparent?.inputs.items().filter(i => i !== parent);\n const item = siblings?.find(i => i.element()?.contains(relatedTarget));\n\n if (item) {\n return;\n }\n }\n\n if (\n this.visible() &&\n !parentEl?.contains(relatedTarget) &&\n !this.inputs.element()?.contains(relatedTarget)\n ) {\n this.isFocused.set(false);\n this.inputs.parent()?.close();\n }\n }\n\n /** Focuses the previous menu item. */\n prev() {\n this.inputs.activeItem()?.close();\n this.listBehavior.prev();\n }\n\n /** Focuses the next menu item. */\n next() {\n this.inputs.activeItem()?.close();\n this.listBehavior.next();\n }\n\n /** Focuses the first menu item. */\n first() {\n this.inputs.activeItem()?.close();\n this.listBehavior.first();\n }\n\n /** Focuses the last menu item. */\n last() {\n this.inputs.activeItem()?.close();\n this.listBehavior.last();\n }\n\n /** Triggers the active menu item. */\n trigger() {\n this.inputs.activeItem()?.hasPopup()\n ? this.inputs.activeItem()?.open({first: true})\n : this.submit();\n }\n\n /** Submits the menu. */\n submit(item = this.inputs.activeItem()) {\n if (!item || item.disabled() || item.submenu()) {\n return;\n }\n\n const root = this.root();\n\n if (root instanceof MenuTriggerPattern) {\n root.close({refocus: true});\n root?.inputs.menu()?.inputs.itemSelected?.(item.value());\n } else if (root instanceof MenuBarPattern) {\n root.close();\n root?.inputs.itemSelected?.(item.value());\n } else if (root instanceof MenuPattern) {\n root.inputs.activeItem()?.close({refocus: true});\n root?.inputs.itemSelected?.(item.value());\n }\n }\n\n /** Collapses the current menu or focuses the previous item in the menubar. */\n collapse() {\n const root = this.root();\n const parent = this.inputs.parent();\n\n if (parent instanceof MenuItemPattern && !(parent.inputs.parent() instanceof MenuBarPattern)) {\n parent.close({refocus: true});\n } else if (root instanceof MenuBarPattern) {\n root.prev();\n }\n }\n\n /** Expands the current menu or focuses the next item in the menubar. */\n expand() {\n const root = this.root();\n const activeItem = this.inputs.activeItem();\n\n if (activeItem?.submenu()) {\n activeItem.open({first: true});\n } else if (root instanceof MenuBarPattern) {\n root.next();\n }\n }\n\n /** Closes the menu. */\n close() {\n this.inputs.parent()?.close();\n }\n\n /** Closes the menu and all parent menus. */\n closeAll() {\n const root = this.root();\n\n if (root instanceof MenuTriggerPattern) {\n root.close({refocus: true});\n }\n\n if (root instanceof MenuBarPattern) {\n root.close();\n }\n\n if (root instanceof MenuPattern) {\n root.inputs.activeItem()?.close({refocus: true});\n }\n }\n\n /** Clears any open or close timeouts for sub-menus. */\n _clearTimeouts() {\n this._clearOpenTimeout();\n this._clearCloseTimeout();\n }\n\n /** Clears the open timeout. */\n _clearOpenTimeout() {\n if (this._openTimeout) {\n clearTimeout(this._openTimeout);\n this._openTimeout = undefined;\n }\n }\n\n /** Clears the close timeout. */\n _clearCloseTimeout() {\n if (this._closeTimeout) {\n clearTimeout(this._closeTimeout);\n this._closeTimeout = undefined;\n }\n }\n}\n\n/** The menubar ui pattern class. */\nexport class MenuBarPattern<V> {\n /** Controls list behavior for the menu items. */\n listBehavior: List<MenuItemPattern<V>, V>;\n\n /** The tab index of the menu. */\n tabIndex = () => this.listBehavior.tabIndex();\n\n /** The key used to navigate to the next item. */\n private _nextKey = computed(() => {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The key used to navigate to the previous item. */\n private _previousKey = computed(() => {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n dynamicSpaceKey = computed(() => (this.listBehavior.isTyping() ? '' : ' '));\n\n /** The regexp used to decide if a key should trigger typeahead. */\n typeaheadRegexp = /^.$/;\n\n /** Whether the menubar or any of its children are currently focused. */\n isFocused = signal(false);\n\n /** Whether the menubar has been focused. */\n hasBeenFocused = signal(false);\n\n /** Whether the menubar is disabled. */\n disabled = () => this.inputs.disabled();\n\n /** Handles keyboard events for the menu. */\n keydownManager = computed(() => {\n return new KeyboardEventManager()\n .on(this._nextKey, () => this.next(), {ignoreRepeat: false})\n .on(this._previousKey, () => this.prev(), {ignoreRepeat: false})\n .on('End', () => this.listBehavior.last())\n .on('Home', () => this.listBehavior.first())\n .on('Enter', () => this.inputs.activeItem()?.open({first: true}))\n .on('ArrowUp', () => this.inputs.activeItem()?.open({last: true}))\n .on('ArrowDown', () => this.inputs.activeItem()?.open({first: true}))\n .on(this.dynamicSpaceKey, () => this.inputs.activeItem()?.open({first: true}))\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key));\n });\n\n constructor(readonly inputs: MenuBarInputs<V>) {\n this.listBehavior = new List<MenuItemPattern<V>, V>(inputs);\n }\n\n /** Sets the default state for the menubar. */\n setDefaultState() {\n this.inputs.activeItem.set(this.inputs.items()[0]);\n }\n\n /** Handles keyboard events for the menu. */\n onKeydown(event: KeyboardEvent) {\n this.keydownManager().handle(event);\n }\n\n /** Handles click events for the menu bar. */\n onClick(event: MouseEvent) {\n const item = this.inputs.items().find(i => i.element()?.contains(event.target as Node));\n\n if (!item) {\n return;\n }\n\n this.goto(item);\n item.expanded() ? item.close() : item.open();\n }\n\n /** Handles mouseover events for the menu bar. */\n onMouseOver(event: MouseEvent) {\n const item = this.inputs.items().find(i => i.element()?.contains(event.target as Node));\n\n if (item) {\n this.goto(item, {focusElement: this.isFocused()});\n }\n }\n\n /** Handles focusin events for the menu bar. */\n onFocusIn() {\n this.isFocused.set(true);\n this.hasBeenFocused.set(true);\n }\n\n /** Handles focusout events for the menu bar. */\n onFocusOut(event: FocusEvent) {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!this.inputs.element()?.contains(relatedTarget)) {\n this.isFocused.set(false);\n this.close();\n }\n }\n\n /** Goes to and optionally focuses the specified menu item. */\n goto(item: MenuItemPattern<V>, opts?: {focusElement?: boolean}) {\n const prevItem = this.inputs.activeItem();\n this.listBehavior.goto(item, opts);\n\n if (prevItem?.expanded()) {\n prevItem?.close();\n this.inputs.activeItem()?.open();\n }\n\n if (item === prevItem) {\n if (item.expanded() && item.submenu()?.inputs.activeItem()) {\n item.submenu()?.inputs.activeItem()?.close();\n item.submenu()?.listBehavior.unfocus();\n }\n }\n }\n\n /** Focuses the next menu item. */\n next() {\n const prevItem = this.inputs.activeItem();\n this.listBehavior.next();\n\n if (prevItem?.expanded()) {\n prevItem?.close();\n this.inputs.activeItem()?.open({first: true});\n }\n }\n\n /** Focuses the previous menu item. */\n prev() {\n const prevItem = this.inputs.activeItem();\n this.listBehavior.prev();\n\n if (prevItem?.expanded()) {\n prevItem?.close();\n this.inputs.activeItem()?.open({first: true});\n }\n }\n\n /** Closes the menubar and refocuses the root menu bar item. */\n close() {\n this.inputs.activeItem()?.close({refocus: this.isFocused()});\n }\n}\n\n/** The menu trigger ui pattern class. */\nexport class MenuTriggerPattern<V> {\n /** Whether the menu is expanded. */\n expanded = signal(false);\n\n /** Whether the menu trigger has received focus. */\n hasBeenFocused = signal(false);\n\n /** The role of the menu trigger. */\n role = () => 'button';\n\n /** Whether the menu trigger has a popup. */\n hasPopup = () => true;\n\n /** The menu associated with the trigger. */\n menu: SignalLike<MenuPattern<V> | undefined>;\n\n /** The tab index of the menu trigger. */\n tabIndex = computed(() => (this.expanded() && this.menu()?.inputs.activeItem() ? -1 : 0));\n\n /** Whether the menu trigger is disabled. */\n disabled = () => this.inputs.disabled();\n\n /** Handles keyboard events for the menu trigger. */\n keydownManager = computed(() => {\n return new KeyboardEventManager()\n .on(' ', () => this.open({first: true}))\n .on('Enter', () => this.open({first: true}))\n .on('ArrowDown', () => this.open({first: true}))\n .on('ArrowUp', () => this.open({last: true}))\n .on('Escape', () => this.close({refocus: true}));\n });\n\n constructor(readonly inputs: MenuTriggerInputs<V>) {\n this.menu = this.inputs.menu;\n }\n\n /** Handles keyboard events for the menu trigger. */\n onKeydown(event: KeyboardEvent) {\n if (!this.inputs.disabled()) {\n this.keydownManager().handle(event);\n }\n }\n\n /** Handles click events for the menu trigger. */\n onClick() {\n if (!this.inputs.disabled()) {\n this.expanded() ? this.close() : this.open({first: true});\n }\n }\n\n /** Handles focusin events for the menu trigger. */\n onFocusIn() {\n this.hasBeenFocused.set(true);\n }\n\n /** Handles focusout events for the menu trigger. */\n onFocusOut(event: FocusEvent) {\n const element = this.inputs.element();\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (\n this.expanded() &&\n !element?.contains(relatedTarget) &&\n !this.inputs.menu()?.inputs.element()?.contains(relatedTarget)\n ) {\n this.close();\n }\n }\n\n /** Opens the menu. */\n open(opts?: {first?: boolean; last?: boolean}) {\n this.expanded.set(true);\n\n if (opts?.first) {\n this.inputs.menu()?.first();\n } else if (opts?.last) {\n this.inputs.menu()?.last();\n }\n }\n\n /** Closes the menu. */\n close(opts: {refocus?: boolean} = {}) {\n this.expanded.set(false);\n this.menu()?.listBehavior.unfocus();\n\n if (opts.refocus) {\n this.inputs.element()?.focus();\n }\n\n let menuitems = this.inputs.menu()?.inputs.items() ?? [];\n\n while (menuitems.length) {\n const menuitem = menuitems.pop();\n menuitem?._expanded.set(false);\n menuitem?.inputs.parent()?.listBehavior.unfocus();\n menuitems = menuitems.concat(menuitem?.submenu()?.inputs.items() ?? []);\n }\n }\n}\n\n/** The menu item ui pattern class. */\nexport class MenuItemPattern<V> implements ListItem<V> {\n /** The value of the menu item. */\n value: SignalLike<V>;\n\n /** The unique ID of the menu item. */\n id: SignalLike<string>;\n\n /** Whether the menu item is disabled. */\n disabled = () => this.inputs.parent()?.disabled() || this.inputs.disabled();\n\n /** The search term for the menu item. */\n searchTerm: SignalLike<string>;\n\n /** The element of the menu item. */\n element: SignalLike<HTMLElement | undefined>;\n\n /** Whether the menu item is active. */\n active = computed(() => this.inputs.parent()?.inputs.activeItem() === this);\n\n /** Whether the menu item has received focus. */\n hasBeenFocused = signal(false);\n\n /** The tab index of the menu item. */\n tabIndex = computed(() => {\n if (this.submenu() && this.submenu()?.inputs.activeItem()) {\n return -1;\n }\n return this.inputs.parent()?.listBehavior.getItemTabindex(this) ?? -1;\n });\n\n /** The position of the menu item in the menu. */\n index = computed(() => this.inputs.parent()?.inputs.items().indexOf(this) ?? -1);\n\n /** Whether the menu item is expanded. */\n expanded = computed(() => (this.submenu() ? this._expanded() : null));\n\n /** Whether the menu item is expanded. */\n _expanded = signal(false);\n\n /** The ID of the menu that the menu item controls. */\n controls = signal<string | undefined>(undefined);\n\n /** The role of the menu item. */\n role = () => 'menuitem';\n\n /** Whether the menu item has a popup. */\n hasPopup = computed(() => !!this.submenu());\n\n /** The submenu associated with the menu item. */\n submenu: SignalLike<MenuPattern<V> | undefined>;\n\n /** Whether the menu item is selectable. */\n selectable: SignalLike<boolean>;\n\n constructor(readonly inputs: MenuItemInputs<V>) {\n this.id = inputs.id;\n this.value = inputs.value;\n this.element = inputs.element;\n this.submenu = this.inputs.submenu;\n this.searchTerm = inputs.searchTerm;\n this.selectable = computed(() => !this.submenu());\n }\n\n /** Opens the submenu. */\n open(opts?: {first?: boolean; last?: boolean}) {\n if (this.disabled()) {\n return;\n }\n\n this._expanded.set(true);\n\n if (opts?.first) {\n this.submenu()?.first();\n }\n if (opts?.last) {\n this.submenu()?.last();\n }\n }\n\n /** Closes the submenu. */\n close(opts: {refocus?: boolean} = {}) {\n this._expanded.set(false);\n\n if (opts.refocus) {\n this.inputs.parent()?.listBehavior.goto(this);\n }\n\n let menuitems = this.inputs.submenu()?.inputs.items() ?? [];\n\n while (menuitems.length) {\n const menuitem = menuitems.pop();\n menuitem?._expanded.set(false);\n menuitem?.inputs.parent()?.listBehavior.unfocus();\n menuitems = menuitems.concat(menuitem?.submenu()?.inputs.items() ?? []);\n\n const parent = menuitem?.inputs.parent();\n\n if (parent instanceof MenuPattern) {\n parent._clearTimeouts();\n }\n }\n }\n\n /** Handles focusin events for the menu item. */\n onFocusIn() {\n this.hasBeenFocused.set(true);\n }\n}\n"],"names":["MenuPattern","inputs","id","role","disabled","visible","computed","parent","expanded","listBehavior","isFocused","signal","hasBeenFocused","hasBeenHovered","_openTimeout","_closeTimeout","tabIndex","shouldFocus","root","MenuTriggerPattern","MenuBarPattern","_expandKey","textDirection","_collapseKey","dynamicSpaceKey","isTyping","typeaheadRegexp","grandparent","keydownManager","KeyboardEventManager","on","next","ignoreRepeat","prev","first","last","trigger","closeAll","expand","collapse","e","search","key","constructor","List","values","setDefaultState","goto","items","focusElement","onKeydown","event","handle","onMouseOver","set","item","find","i","element","contains","target","activeItem","MenuItemPattern","_clearTimeouts","_closeItem","_clearCloseTimeout","_openItem","_clearOpenTimeout","setTimeout","close","undefined","expansionDelay","open","onMouseOut","relatedTarget","onClick","submit","onFocusIn","onFocusOut","parentEl","refocus","siblings","filter","hasPopup","submenu","menu","itemSelected","value","clearTimeout","_nextKey","_previousKey","opts","prevItem","unfocus","focus","menuitems","length","menuitem","pop","_expanded","concat","searchTerm","active","getItemTabindex","index","indexOf","controls","selectable"],"mappings":"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"}
{"version":3,"file":"_menu-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/menu/menu.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 {KeyboardEventManager} from '../behaviors/event-manager';\nimport {computed, signal, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {List, ListInputs, ListItem} from '../behaviors/list/list';\n\n/** The inputs for the MenuBarPattern class. */\nexport interface MenuBarInputs<V> extends ListInputs<MenuItemPattern<V>, V> {\n /** The menu items contained in the menu. */\n items: SignalLike<MenuItemPattern<V>[]>;\n\n /** Callback function triggered when a menu item is selected. */\n itemSelected?: (value: V) => void;\n\n /** The text direction of the menu bar. */\n textDirection: SignalLike<'ltr' | 'rtl'>;\n}\n\n/** The inputs for the MenuPattern class. */\nexport interface MenuInputs<V> extends Omit<ListInputs<MenuItemPattern<V>, V>, 'values'> {\n /** The unique ID of the menu. */\n id: SignalLike<string>;\n\n /** The menu items contained in the menu. */\n items: SignalLike<MenuItemPattern<V>[]>;\n\n /** A reference to the parent menu or menu trigger. */\n parent: SignalLike<MenuTriggerPattern<V> | MenuItemPattern<V> | undefined>;\n\n /** Callback function triggered when a menu item is selected. */\n itemSelected?: (value: V) => void;\n\n /** The text direction of the menu bar. */\n textDirection: SignalLike<'ltr' | 'rtl'>;\n\n /** The delay in milliseconds before expanding sub-menus on hover. */\n expansionDelay: SignalLike<number>;\n}\n\n/** The inputs for the MenuTriggerPattern class. */\nexport interface MenuTriggerInputs<V> {\n /** A reference to the menu trigger element. */\n element: SignalLike<HTMLElement | undefined>;\n\n /** A reference to the menu associated with the trigger. */\n menu: SignalLike<MenuPattern<V> | undefined>;\n\n /** The text direction of the menu bar. */\n textDirection: SignalLike<'ltr' | 'rtl'>;\n\n /** Whether the menu trigger is disabled. */\n disabled: SignalLike<boolean>;\n}\n\n/** The inputs for the MenuItemPattern class. */\nexport interface MenuItemInputs<V> extends Omit<ListItem<V>, 'index' | 'selectable'> {\n /** A reference to the parent menu or menu trigger. */\n parent: SignalLike<MenuPattern<V> | MenuBarPattern<V> | undefined>;\n\n /** A reference to the submenu associated with the menu item. */\n submenu: SignalLike<MenuPattern<V> | undefined>;\n}\n\n/** The menu ui pattern class. */\nexport class MenuPattern<V> {\n /** The unique ID of the menu. */\n id: SignalLike<string>;\n\n /** The role of the menu. */\n role = () => 'menu';\n\n /** Whether the menu is disabled. */\n disabled = () => this.inputs.disabled();\n\n /** Whether the menu is visible. */\n visible = computed(() => (this.inputs.parent() ? !!this.inputs.parent()?.expanded() : true));\n\n /** Controls list behavior for the menu items. */\n listBehavior: List<MenuItemPattern<V>, V>;\n\n /** Whether the menu or any of its child elements are currently focused. */\n isFocused = signal(false);\n\n /** Whether the menu has received focus. */\n hasBeenFocused = signal(false);\n\n /** Whether the menu trigger has been hovered. */\n hasBeenHovered = signal(false);\n\n /** Timeout used to open sub-menus on hover. */\n _openTimeout: any;\n\n /** Timeout used to close sub-menus on hover out. */\n _closeTimeout: any;\n\n /** The tab index of the menu. */\n tabIndex = () => this.listBehavior.tabIndex();\n\n /** Whether the menu should be focused on mouse over. */\n shouldFocus = computed(() => {\n const root = this.root();\n\n if (root instanceof MenuTriggerPattern) {\n return true;\n }\n\n if (root instanceof MenuBarPattern || root instanceof MenuPattern) {\n return root.isFocused();\n }\n\n return false;\n });\n\n /** The key used to expand sub-menus. */\n private _expandKey = computed(() => {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The key used to collapse sub-menus. */\n private _collapseKey = computed(() => {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n dynamicSpaceKey = computed(() => (this.listBehavior.isTyping() ? '' : ' '));\n\n /** The regexp used to decide if a key should trigger typeahead. */\n typeaheadRegexp = /^.$/;\n\n /** The root of the menu. */\n root: SignalLike<MenuTriggerPattern<V> | MenuBarPattern<V> | MenuPattern<V> | undefined> =\n computed(() => {\n const parent = this.inputs.parent();\n\n if (!parent) {\n return this;\n }\n\n if (parent instanceof MenuTriggerPattern) {\n return parent;\n }\n\n const grandparent = parent.inputs.parent();\n\n if (grandparent instanceof MenuBarPattern) {\n return grandparent;\n }\n\n return grandparent?.root();\n });\n\n /** Handles keyboard events for the menu. */\n keydownManager = computed(() => {\n return new KeyboardEventManager()\n .on('ArrowDown', () => this.next(), {ignoreRepeat: false})\n .on('ArrowUp', () => this.prev(), {ignoreRepeat: false})\n .on('Home', () => this.first())\n .on('End', () => this.last())\n .on('Enter', () => this.trigger())\n .on('Escape', () => this.closeAll())\n .on(this._expandKey, () => this.expand())\n .on(this._collapseKey, () => this.collapse())\n .on(this.dynamicSpaceKey, () => this.trigger())\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key));\n });\n\n constructor(readonly inputs: MenuInputs<V>) {\n this.id = inputs.id;\n this.listBehavior = new List<MenuItemPattern<V>, V>({\n ...inputs,\n values: signal([]),\n });\n }\n\n /** Sets the default state for the menu. */\n setDefaultState() {\n if (!this.inputs.parent()) {\n this.listBehavior.goto(this.inputs.items()[0], {focusElement: false});\n }\n }\n\n /** Handles keyboard events for the menu. */\n onKeydown(event: KeyboardEvent) {\n this.keydownManager().handle(event);\n }\n\n /** Handles mouseover events for the menu. */\n onMouseOver(event: MouseEvent) {\n if (!this.visible()) {\n return;\n }\n\n this.hasBeenHovered.set(true);\n const item = this.inputs.items().find(i => i.element()?.contains(event.target as Node));\n\n if (!item) {\n return;\n }\n\n const parent = this.inputs.parent();\n const activeItem = this?.inputs.activeItem();\n\n if (parent instanceof MenuItemPattern) {\n const grandparent = parent.inputs.parent();\n if (grandparent instanceof MenuPattern) {\n grandparent._clearTimeouts();\n grandparent.listBehavior.goto(parent, {focusElement: false});\n }\n }\n\n if (activeItem && activeItem !== item) {\n this._closeItem(activeItem);\n }\n\n if (item.expanded()) {\n this._clearCloseTimeout();\n }\n\n this._openItem(item);\n this.listBehavior.goto(item, {focusElement: this.shouldFocus()});\n }\n\n /** Closes the specified menu item after a delay. */\n private _closeItem(item: MenuItemPattern<V>) {\n this._clearOpenTimeout();\n\n if (!this._closeTimeout) {\n this._closeTimeout = setTimeout(() => {\n item.close();\n this._closeTimeout = undefined;\n }, this.inputs.expansionDelay());\n }\n }\n\n /** Opens the specified menu item after a delay. */\n private _openItem(item: MenuItemPattern<V>) {\n this._clearOpenTimeout();\n\n this._openTimeout = setTimeout(() => {\n item.open();\n this._openTimeout = undefined;\n }, this.inputs.expansionDelay());\n }\n\n /** Handles mouseout events for the menu. */\n onMouseOut(event: MouseEvent) {\n this._clearOpenTimeout();\n\n if (this.isFocused()) {\n return;\n }\n\n const root = this.root();\n const parent = this.inputs.parent();\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!root || !parent || parent instanceof MenuTriggerPattern) {\n return;\n }\n\n const grandparent = parent.inputs.parent();\n\n if (!grandparent || grandparent instanceof MenuBarPattern) {\n return;\n }\n\n if (!grandparent.inputs.element()?.contains(relatedTarget)) {\n parent.close();\n }\n }\n\n /** Handles click events for the menu. */\n onClick(event: MouseEvent) {\n const relatedTarget = event.target as Node | null;\n const item = this.inputs.items().find(i => i.element()?.contains(relatedTarget));\n\n if (item) {\n item.open();\n this.listBehavior.goto(item);\n this.submit(item);\n }\n }\n\n /** Handles focusin events for the menu. */\n onFocusIn() {\n this.isFocused.set(true);\n this.hasBeenFocused.set(true);\n }\n\n /** Handles the focusout event for the menu. */\n onFocusOut(event: FocusEvent) {\n const parent = this.inputs.parent();\n const parentEl = parent?.inputs.element();\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!relatedTarget) {\n this.isFocused.set(false);\n this.inputs.parent()?.close({refocus: true});\n }\n\n if (parent instanceof MenuItemPattern) {\n const grandparent = parent.inputs.parent();\n const siblings = grandparent?.inputs.items().filter(i => i !== parent);\n const item = siblings?.find(i => i.element()?.contains(relatedTarget));\n\n if (item) {\n return;\n }\n }\n\n if (\n this.visible() &&\n !parentEl?.contains(relatedTarget) &&\n !this.inputs.element()?.contains(relatedTarget)\n ) {\n this.isFocused.set(false);\n this.inputs.parent()?.close();\n }\n }\n\n /** Focuses the previous menu item. */\n prev() {\n this.inputs.activeItem()?.close();\n this.listBehavior.prev();\n }\n\n /** Focuses the next menu item. */\n next() {\n this.inputs.activeItem()?.close();\n this.listBehavior.next();\n }\n\n /** Focuses the first menu item. */\n first() {\n this.inputs.activeItem()?.close();\n this.listBehavior.first();\n }\n\n /** Focuses the last menu item. */\n last() {\n this.inputs.activeItem()?.close();\n this.listBehavior.last();\n }\n\n /** Triggers the active menu item. */\n trigger() {\n this.inputs.activeItem()?.hasPopup()\n ? this.inputs.activeItem()?.open({first: true})\n : this.submit();\n }\n\n /** Submits the menu. */\n submit(item = this.inputs.activeItem()) {\n if (!item || item.disabled() || item.submenu()) {\n return;\n }\n\n const root = this.root();\n\n if (root instanceof MenuTriggerPattern) {\n root.close({refocus: true});\n root?.inputs.menu()?.inputs.itemSelected?.(item.value());\n } else if (root instanceof MenuBarPattern) {\n root.close();\n root?.inputs.itemSelected?.(item.value());\n } else if (root instanceof MenuPattern) {\n root.inputs.activeItem()?.close({refocus: true});\n root?.inputs.itemSelected?.(item.value());\n }\n }\n\n /** Collapses the current menu or focuses the previous item in the menubar. */\n collapse() {\n const root = this.root();\n const parent = this.inputs.parent();\n\n if (parent instanceof MenuItemPattern && !(parent.inputs.parent() instanceof MenuBarPattern)) {\n parent.close({refocus: true});\n } else if (root instanceof MenuBarPattern) {\n root.prev();\n }\n }\n\n /** Expands the current menu or focuses the next item in the menubar. */\n expand() {\n const root = this.root();\n const activeItem = this.inputs.activeItem();\n\n if (activeItem?.submenu()) {\n activeItem.open({first: true});\n } else if (root instanceof MenuBarPattern) {\n root.next();\n }\n }\n\n /** Closes the menu. */\n close() {\n this.inputs.parent()?.close();\n }\n\n /** Closes the menu and all parent menus. */\n closeAll() {\n const root = this.root();\n\n if (root instanceof MenuTriggerPattern) {\n root.close({refocus: true});\n }\n\n if (root instanceof MenuBarPattern) {\n root.close();\n }\n\n if (root instanceof MenuPattern) {\n root.inputs.activeItem()?.close({refocus: true});\n }\n }\n\n /** Clears any open or close timeouts for sub-menus. */\n _clearTimeouts() {\n this._clearOpenTimeout();\n this._clearCloseTimeout();\n }\n\n /** Clears the open timeout. */\n _clearOpenTimeout() {\n if (this._openTimeout) {\n clearTimeout(this._openTimeout);\n this._openTimeout = undefined;\n }\n }\n\n /** Clears the close timeout. */\n _clearCloseTimeout() {\n if (this._closeTimeout) {\n clearTimeout(this._closeTimeout);\n this._closeTimeout = undefined;\n }\n }\n}\n\n/** The menubar ui pattern class. */\nexport class MenuBarPattern<V> {\n /** Controls list behavior for the menu items. */\n listBehavior: List<MenuItemPattern<V>, V>;\n\n /** The tab index of the menu. */\n tabIndex = () => this.listBehavior.tabIndex();\n\n /** The key used to navigate to the next item. */\n private _nextKey = computed(() => {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The key used to navigate to the previous item. */\n private _previousKey = computed(() => {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** Represents the space key. Does nothing when the user is actively using typeahead. */\n dynamicSpaceKey = computed(() => (this.listBehavior.isTyping() ? '' : ' '));\n\n /** The regexp used to decide if a key should trigger typeahead. */\n typeaheadRegexp = /^.$/;\n\n /** Whether the menubar or any of its children are currently focused. */\n isFocused = signal(false);\n\n /** Whether the menubar has been focused. */\n hasBeenFocused = signal(false);\n\n /** Whether the menubar is disabled. */\n disabled = () => this.inputs.disabled();\n\n /** Handles keyboard events for the menu. */\n keydownManager = computed(() => {\n return new KeyboardEventManager()\n .on(this._nextKey, () => this.next(), {ignoreRepeat: false})\n .on(this._previousKey, () => this.prev(), {ignoreRepeat: false})\n .on('End', () => this.listBehavior.last())\n .on('Home', () => this.listBehavior.first())\n .on('Enter', () => this.inputs.activeItem()?.open({first: true}))\n .on('ArrowUp', () => this.inputs.activeItem()?.open({last: true}))\n .on('ArrowDown', () => this.inputs.activeItem()?.open({first: true}))\n .on(this.dynamicSpaceKey, () => this.inputs.activeItem()?.open({first: true}))\n .on(this.typeaheadRegexp, e => this.listBehavior.search(e.key));\n });\n\n constructor(readonly inputs: MenuBarInputs<V>) {\n this.listBehavior = new List<MenuItemPattern<V>, V>(inputs);\n }\n\n /** Sets the default state for the menubar. */\n setDefaultState() {\n this.inputs.activeItem.set(this.inputs.items()[0]);\n }\n\n /** Handles keyboard events for the menu. */\n onKeydown(event: KeyboardEvent) {\n this.keydownManager().handle(event);\n }\n\n /** Handles click events for the menu bar. */\n onClick(event: MouseEvent) {\n const item = this.inputs.items().find(i => i.element()?.contains(event.target as Node));\n\n if (!item) {\n return;\n }\n\n this.goto(item);\n item.expanded() ? item.close() : item.open();\n }\n\n /** Handles mouseover events for the menu bar. */\n onMouseOver(event: MouseEvent) {\n const item = this.inputs.items().find(i => i.element()?.contains(event.target as Node));\n\n if (item) {\n this.goto(item, {focusElement: this.isFocused()});\n }\n }\n\n /** Handles focusin events for the menu bar. */\n onFocusIn() {\n this.isFocused.set(true);\n this.hasBeenFocused.set(true);\n }\n\n /** Handles focusout events for the menu bar. */\n onFocusOut(event: FocusEvent) {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!this.inputs.element()?.contains(relatedTarget)) {\n this.isFocused.set(false);\n this.close();\n }\n }\n\n /** Goes to and optionally focuses the specified menu item. */\n goto(item: MenuItemPattern<V>, opts?: {focusElement?: boolean}) {\n const prevItem = this.inputs.activeItem();\n this.listBehavior.goto(item, opts);\n\n if (prevItem?.expanded()) {\n prevItem?.close();\n this.inputs.activeItem()?.open();\n }\n\n if (item === prevItem) {\n if (item.expanded() && item.submenu()?.inputs.activeItem()) {\n item.submenu()?.inputs.activeItem()?.close();\n item.submenu()?.listBehavior.unfocus();\n }\n }\n }\n\n /** Focuses the next menu item. */\n next() {\n const prevItem = this.inputs.activeItem();\n this.listBehavior.next();\n\n if (prevItem?.expanded()) {\n prevItem?.close();\n this.inputs.activeItem()?.open({first: true});\n }\n }\n\n /** Focuses the previous menu item. */\n prev() {\n const prevItem = this.inputs.activeItem();\n this.listBehavior.prev();\n\n if (prevItem?.expanded()) {\n prevItem?.close();\n this.inputs.activeItem()?.open({first: true});\n }\n }\n\n /** Closes the menubar and refocuses the root menu bar item. */\n close() {\n this.inputs.activeItem()?.close({refocus: this.isFocused()});\n }\n}\n\n/** The menu trigger ui pattern class. */\nexport class MenuTriggerPattern<V> {\n /** Whether the menu is expanded. */\n expanded = signal(false);\n\n /** Whether the menu trigger has received focus. */\n hasBeenFocused = signal(false);\n\n /** The role of the menu trigger. */\n role = () => 'button';\n\n /** Whether the menu trigger has a popup. */\n hasPopup = () => true;\n\n /** The menu associated with the trigger. */\n menu: SignalLike<MenuPattern<V> | undefined>;\n\n /** The tab index of the menu trigger. */\n tabIndex = computed(() => (this.expanded() && this.menu()?.inputs.activeItem() ? -1 : 0));\n\n /** Whether the menu trigger is disabled. */\n disabled = () => this.inputs.disabled();\n\n /** Handles keyboard events for the menu trigger. */\n keydownManager = computed(() => {\n return new KeyboardEventManager()\n .on(' ', () => this.open({first: true}))\n .on('Enter', () => this.open({first: true}))\n .on('ArrowDown', () => this.open({first: true}))\n .on('ArrowUp', () => this.open({last: true}))\n .on('Escape', () => this.close({refocus: true}));\n });\n\n constructor(readonly inputs: MenuTriggerInputs<V>) {\n this.menu = this.inputs.menu;\n }\n\n /** Handles keyboard events for the menu trigger. */\n onKeydown(event: KeyboardEvent) {\n if (!this.inputs.disabled()) {\n this.keydownManager().handle(event);\n }\n }\n\n /** Handles click events for the menu trigger. */\n onClick() {\n if (!this.inputs.disabled()) {\n this.expanded() ? this.close() : this.open({first: true});\n }\n }\n\n /** Handles focusin events for the menu trigger. */\n onFocusIn() {\n this.hasBeenFocused.set(true);\n }\n\n /** Handles focusout events for the menu trigger. */\n onFocusOut(event: FocusEvent) {\n const element = this.inputs.element();\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (\n this.expanded() &&\n !element?.contains(relatedTarget) &&\n !this.inputs.menu()?.inputs.element()?.contains(relatedTarget)\n ) {\n this.close();\n }\n }\n\n /** Opens the menu. */\n open(opts?: {first?: boolean; last?: boolean}) {\n this.expanded.set(true);\n\n if (opts?.first) {\n this.inputs.menu()?.first();\n } else if (opts?.last) {\n this.inputs.menu()?.last();\n }\n }\n\n /** Closes the menu. */\n close(opts: {refocus?: boolean} = {}) {\n this.expanded.set(false);\n this.menu()?.listBehavior.unfocus();\n\n if (opts.refocus) {\n this.inputs.element()?.focus();\n }\n\n let menuitems = this.inputs.menu()?.inputs.items() ?? [];\n\n while (menuitems.length) {\n const menuitem = menuitems.pop();\n menuitem?._expanded.set(false);\n menuitem?.inputs.parent()?.listBehavior.unfocus();\n menuitems = menuitems.concat(menuitem?.submenu()?.inputs.items() ?? []);\n }\n }\n}\n\n/** The menu item ui pattern class. */\nexport class MenuItemPattern<V> implements ListItem<V> {\n /** The value of the menu item. */\n value: SignalLike<V>;\n\n /** The unique ID of the menu item. */\n id: SignalLike<string>;\n\n /** Whether the menu item is disabled. */\n disabled = () => this.inputs.parent()?.disabled() || this.inputs.disabled();\n\n /** The search term for the menu item. */\n searchTerm: SignalLike<string>;\n\n /** The element of the menu item. */\n element: SignalLike<HTMLElement | undefined>;\n\n /** Whether the menu item is active. */\n active = computed(() => this.inputs.parent()?.inputs.activeItem() === this);\n\n /** Whether the menu item has received focus. */\n hasBeenFocused = signal(false);\n\n /** The tab index of the menu item. */\n tabIndex = computed(() => {\n if (this.submenu() && this.submenu()?.inputs.activeItem()) {\n return -1;\n }\n return this.inputs.parent()?.listBehavior.getItemTabindex(this) ?? -1;\n });\n\n /** The position of the menu item in the menu. */\n index = computed(() => this.inputs.parent()?.inputs.items().indexOf(this) ?? -1);\n\n /** Whether the menu item is expanded. */\n expanded = computed(() => (this.submenu() ? this._expanded() : null));\n\n /** Whether the menu item is expanded. */\n _expanded = signal(false);\n\n /** The ID of the menu that the menu item controls. */\n controls = signal<string | undefined>(undefined);\n\n /** The role of the menu item. */\n role = () => 'menuitem';\n\n /** Whether the menu item has a popup. */\n hasPopup = computed(() => !!this.submenu());\n\n /** The submenu associated with the menu item. */\n submenu: SignalLike<MenuPattern<V> | undefined>;\n\n /** Whether the menu item is selectable. */\n selectable: SignalLike<boolean>;\n\n constructor(readonly inputs: MenuItemInputs<V>) {\n this.id = inputs.id;\n this.value = inputs.value;\n this.element = inputs.element;\n this.submenu = this.inputs.submenu;\n this.searchTerm = inputs.searchTerm;\n this.selectable = computed(() => !this.submenu());\n }\n\n /** Opens the submenu. */\n open(opts?: {first?: boolean; last?: boolean}) {\n if (this.disabled()) {\n return;\n }\n\n this._expanded.set(true);\n\n if (opts?.first) {\n this.submenu()?.first();\n }\n if (opts?.last) {\n this.submenu()?.last();\n }\n }\n\n /** Closes the submenu. */\n close(opts: {refocus?: boolean} = {}) {\n this._expanded.set(false);\n\n if (opts.refocus) {\n this.inputs.parent()?.listBehavior.goto(this);\n }\n\n let menuitems = this.inputs.submenu()?.inputs.items() ?? [];\n\n while (menuitems.length) {\n const menuitem = menuitems.pop();\n menuitem?._expanded.set(false);\n menuitem?.inputs.parent()?.listBehavior.unfocus();\n menuitems = menuitems.concat(menuitem?.submenu()?.inputs.items() ?? []);\n\n const parent = menuitem?.inputs.parent();\n\n if (parent instanceof MenuPattern) {\n parent._clearTimeouts();\n }\n }\n }\n\n /** Handles focusin events for the menu item. */\n onFocusIn() {\n this.hasBeenFocused.set(true);\n }\n}\n"],"names":["MenuPattern","inputs","id","role","disabled","visible","computed","parent","expanded","listBehavior","isFocused","signal","hasBeenFocused","hasBeenHovered","_openTimeout","_closeTimeout","tabIndex","shouldFocus","root","MenuTriggerPattern","MenuBarPattern","_expandKey","textDirection","_collapseKey","dynamicSpaceKey","isTyping","typeaheadRegexp","grandparent","keydownManager","KeyboardEventManager","on","next","ignoreRepeat","prev","first","last","trigger","closeAll","expand","collapse","e","search","key","constructor","List","values","setDefaultState","goto","items","focusElement","onKeydown","event","handle","onMouseOver","set","item","find","i","element","contains","target","activeItem","MenuItemPattern","_clearTimeouts","_closeItem","_clearCloseTimeout","_openItem","_clearOpenTimeout","setTimeout","close","undefined","expansionDelay","open","onMouseOut","relatedTarget","onClick","submit","onFocusIn","onFocusOut","parentEl","refocus","siblings","filter","hasPopup","submenu","menu","itemSelected","value","clearTimeout","_nextKey","_previousKey","opts","prevItem","unfocus","focus","menuitems","length","menuitem","pop","_expanded","concat","searchTerm","active","getItemTabindex","index","indexOf","controls","selectable"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_pointer-event-manager-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/event-manager/pointer-event-manager.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 EventHandler,\n EventHandlerOptions,\n EventManager,\n hasModifiers,\n ModifierInputs,\n Modifier,\n} from './event-manager';\n\n/**\n * The different mouse buttons that may appear on a pointer event.\n */\nexport enum MouseButton {\n Main = 0,\n Auxiliary = 1,\n Secondary = 2,\n}\n\n/** An event manager that is specialized for handling pointer events. */\nexport class PointerEventManager<T extends PointerEvent> extends EventManager<T> {\n options: EventHandlerOptions = {\n preventDefault: false,\n stopPropagation: false,\n };\n\n /**\n * Configures this event manager to handle events with a specific modifer and mouse button\n * combination.\n */\n on(button: MouseButton, modifiers: ModifierInputs, handler: EventHandler<T>): this;\n\n /**\n * Configures this event manager to handle events with a specific mouse button and no modifiers.\n */\n on(modifiers: ModifierInputs, handler: EventHandler<T>): this;\n\n /**\n * Configures this event manager to handle events with the main mouse button and no modifiers.\n *\n * @param handler The handler function\n * @param options Options for whether to stop propagation or prevent default.\n */\n on(handler: EventHandler<T>): this;\n\n on(...args: any[]) {\n const {button, handler, modifiers} = this._normalizeInputs(...args);\n\n this.configs.push({\n handler,\n matcher: event => this._isMatch(event, button, modifiers),\n ...this.options,\n });\n return this;\n }\n\n private _normalizeInputs(...args: any[]) {\n if (args.length === 3) {\n return {\n button: args[0] as MouseButton,\n modifiers: args[1] as ModifierInputs,\n handler: args[2] as EventHandler<T>,\n };\n }\n\n if (args.length === 2) {\n return {\n button: MouseButton.Main,\n modifiers: args[0] as ModifierInputs,\n handler: args[1] as EventHandler<T>,\n };\n }\n\n return {\n button: MouseButton.Main,\n modifiers: Modifier.None,\n handler: args[0] as EventHandler<T>,\n };\n }\n\n _isMatch(event: PointerEvent, button: MouseButton, modifiers: ModifierInputs) {\n return button === (event.button ?? 0) && hasModifiers(event, modifiers);\n }\n}\n"],"names":["MouseButton","PointerEventManager","EventManager","options","preventDefault","stopPropagation","on","args","button","handler","modifiers","_normalizeInputs","configs","push","matcher","event","_isMatch","length","Main","Modifier","None","hasModifiers"],"mappings":";;AAoBA,IAAYA,WAIX;AAJD,CAAA,UAAYA,WAAW,EAAA;EACrBA,WAAA,CAAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;EACRA,WAAA,CAAAA,WAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;EACbA,WAAA,CAAAA,WAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AACf,CAAC,EAJWA,WAAW,KAAXA,WAAW,GAItB,EAAA,CAAA,CAAA;AAGK,MAAOC,mBAA4C,SAAQC,YAAe,CAAA;AAC9EC,EAAAA,OAAO,GAAwB;AAC7BC,IAAAA,cAAc,EAAE,KAAK;AACrBC,IAAAA,eAAe,EAAE;GAClB;EAqBDC,EAAEA,CAAC,GAAGC,IAAW,EAAA;IACf,MAAM;MAACC,MAAM;MAAEC,OAAO;AAAEC,MAAAA;AAAS,KAAC,GAAG,IAAI,CAACC,gBAAgB,CAAC,GAAGJ,IAAI,CAAC;AAEnE,IAAA,IAAI,CAACK,OAAO,CAACC,IAAI,CAAC;MAChBJ,OAAO;AACPK,MAAAA,OAAO,EAAEC,KAAK,IAAI,IAAI,CAACC,QAAQ,CAACD,KAAK,EAAEP,MAAM,EAAEE,SAAS,CAAC;AACzD,MAAA,GAAG,IAAI,CAACP;AACT,KAAA,CAAC;AACF,IAAA,OAAO,IAAI;AACb;EAEQQ,gBAAgBA,CAAC,GAAGJ,IAAW,EAAA;AACrC,IAAA,IAAIA,IAAI,CAACU,MAAM,KAAK,CAAC,EAAE;MACrB,OAAO;AACLT,QAAAA,MAAM,EAAED,IAAI,CAAC,CAAC,CAAgB;AAC9BG,QAAAA,SAAS,EAAEH,IAAI,CAAC,CAAC,CAAmB;QACpCE,OAAO,EAAEF,IAAI,CAAC,CAAC;OAChB;AACH;AAEA,IAAA,IAAIA,IAAI,CAACU,MAAM,KAAK,CAAC,EAAE;MACrB,OAAO;QACLT,MAAM,EAAER,WAAW,CAACkB,IAAI;AACxBR,QAAAA,SAAS,EAAEH,IAAI,CAAC,CAAC,CAAmB;QACpCE,OAAO,EAAEF,IAAI,CAAC,CAAC;OAChB;AACH;IAEA,OAAO;MACLC,MAAM,EAAER,WAAW,CAACkB,IAAI;MACxBR,SAAS,EAAES,QAAQ,CAACC,IAAI;MACxBX,OAAO,EAAEF,IAAI,CAAC,CAAC;KAChB;AACH;AAEAS,EAAAA,QAAQA,CAACD,KAAmB,EAAEP,MAAmB,EAAEE,SAAyB,EAAA;AAC1E,IAAA,OAAOF,MAAM,MAAMO,KAAK,CAACP,MAAM,IAAI,CAAC,CAAC,IAAIa,YAAY,CAACN,KAAK,EAAEL,SAAS,CAAC;AACzE;AACD;;;;"}
{"version":3,"file":"_pointer-event-manager-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/event-manager/pointer-event-manager.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 EventHandler,\n EventHandlerOptions,\n EventManager,\n hasModifiers,\n ModifierInputs,\n Modifier,\n} from './event-manager';\n\n/**\n * The different mouse buttons that may appear on a pointer event.\n */\nexport enum MouseButton {\n Main = 0,\n Auxiliary = 1,\n Secondary = 2,\n}\n\n/** An event manager that is specialized for handling pointer events. */\nexport class PointerEventManager<T extends PointerEvent> extends EventManager<T> {\n options: EventHandlerOptions = {\n preventDefault: false,\n stopPropagation: false,\n };\n\n /**\n * Configures this event manager to handle events with a specific modifer and mouse button\n * combination.\n */\n on(button: MouseButton, modifiers: ModifierInputs, handler: EventHandler<T>): this;\n\n /**\n * Configures this event manager to handle events with a specific mouse button and no modifiers.\n */\n on(modifiers: ModifierInputs, handler: EventHandler<T>): this;\n\n /**\n * Configures this event manager to handle events with the main mouse button and no modifiers.\n *\n * @param handler The handler function\n * @param options Options for whether to stop propagation or prevent default.\n */\n on(handler: EventHandler<T>): this;\n\n on(...args: any[]) {\n const {button, handler, modifiers} = this._normalizeInputs(...args);\n\n this.configs.push({\n handler,\n matcher: event => this._isMatch(event, button, modifiers),\n ...this.options,\n });\n return this;\n }\n\n private _normalizeInputs(...args: any[]) {\n if (args.length === 3) {\n return {\n button: args[0] as MouseButton,\n modifiers: args[1] as ModifierInputs,\n handler: args[2] as EventHandler<T>,\n };\n }\n\n if (args.length === 2) {\n return {\n button: MouseButton.Main,\n modifiers: args[0] as ModifierInputs,\n handler: args[1] as EventHandler<T>,\n };\n }\n\n return {\n button: MouseButton.Main,\n modifiers: Modifier.None,\n handler: args[0] as EventHandler<T>,\n };\n }\n\n _isMatch(event: PointerEvent, button: MouseButton, modifiers: ModifierInputs) {\n return button === (event.button ?? 0) && hasModifiers(event, modifiers);\n }\n}\n"],"names":["MouseButton","PointerEventManager","EventManager","options","preventDefault","stopPropagation","on","args","button","handler","modifiers","_normalizeInputs","configs","push","matcher","event","_isMatch","length","Main","Modifier","None","hasModifiers"],"mappings":";;AAoBA,IAAYA,WAIX;AAJD,CAAA,UAAYA,WAAW,EAAA;EACrBA,WAAA,CAAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;EACRA,WAAA,CAAAA,WAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;EACbA,WAAA,CAAAA,WAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AACf,CAAC,EAJWA,WAAW,KAAXA,WAAW,GAItB,EAAA,CAAA,CAAA;AAGK,MAAOC,mBAA4C,SAAQC,YAAe,CAAA;AAC9EC,EAAAA,OAAO,GAAwB;AAC7BC,IAAAA,cAAc,EAAE,KAAK;AACrBC,IAAAA,eAAe,EAAE;GAClB;EAqBDC,EAAEA,CAAC,GAAGC,IAAW,EAAA;IACf,MAAM;MAACC,MAAM;MAAEC,OAAO;AAAEC,MAAAA;AAAS,KAAC,GAAG,IAAI,CAACC,gBAAgB,CAAC,GAAGJ,IAAI,CAAC;AAEnE,IAAA,IAAI,CAACK,OAAO,CAACC,IAAI,CAAC;MAChBJ,OAAO;AACPK,MAAAA,OAAO,EAAEC,KAAK,IAAI,IAAI,CAACC,QAAQ,CAACD,KAAK,EAAEP,MAAM,EAAEE,SAAS,CAAC;AACzD,MAAA,GAAG,IAAI,CAACP;AACT,KAAA,CAAC;AACF,IAAA,OAAO,IAAI;AACb;EAEQQ,gBAAgBA,CAAC,GAAGJ,IAAW,EAAA;AACrC,IAAA,IAAIA,IAAI,CAACU,MAAM,KAAK,CAAC,EAAE;MACrB,OAAO;AACLT,QAAAA,MAAM,EAAED,IAAI,CAAC,CAAC,CAAgB;AAC9BG,QAAAA,SAAS,EAAEH,IAAI,CAAC,CAAC,CAAmB;QACpCE,OAAO,EAAEF,IAAI,CAAC,CAAC;OAChB;AACH;AAEA,IAAA,IAAIA,IAAI,CAACU,MAAM,KAAK,CAAC,EAAE;MACrB,OAAO;QACLT,MAAM,EAAER,WAAW,CAACkB,IAAI;AACxBR,QAAAA,SAAS,EAAEH,IAAI,CAAC,CAAC,CAAmB;QACpCE,OAAO,EAAEF,IAAI,CAAC,CAAC;OAChB;AACH;IAEA,OAAO;MACLC,MAAM,EAAER,WAAW,CAACkB,IAAI;MACxBR,SAAS,EAAES,QAAQ,CAACC,IAAI;MACxBX,OAAO,EAAEF,IAAI,CAAC,CAAC;KAChB;AACH;AAEAS,EAAAA,QAAQA,CAACD,KAAmB,EAAEP,MAAmB,EAAEE,SAAyB,EAAA;AAC1E,IAAA,OAAOF,MAAM,MAAMO,KAAK,CAACP,MAAM,IAAI,CAAC,CAAC,IAAIa,YAAY,CAACN,KAAK,EAAEL,SAAS,CAAC;AACzE;AACD;;;;"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_signal-like-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/event-manager/event-manager.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/event-manager/keyboard-event-manager.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/signal-like/signal-like.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\n/**\n * An event that supports modifier keys.\n *\n * Matches the native KeyboardEvent, MouseEvent, and TouchEvent.\n */\nexport interface EventWithModifiers extends Event {\n ctrlKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n metaKey: boolean;\n}\n\n/**\n * Options that are applicable to all event handlers.\n *\n * This library has not yet had a need for stopPropagationImmediate.\n */\nexport interface EventHandlerOptions {\n ignoreRepeat?: boolean;\n stopPropagation: boolean;\n preventDefault: boolean;\n}\n\n/** A basic event handler. */\nexport type EventHandler<T extends Event> = (event: T) => void;\n\n/** A function that determines whether an event is to be handled. */\nexport type EventMatcher<T extends Event> = (event: T) => boolean;\n\n/** A config that specifies how to handle a particular event. */\nexport interface EventHandlerConfig<T extends Event> extends EventHandlerOptions {\n matcher: EventMatcher<T>;\n handler: EventHandler<T>;\n}\n\n/** Bit flag representation of the possible modifier keys that can be present on an event. */\nexport enum Modifier {\n None = 0,\n Ctrl = 0b1,\n Shift = 0b10,\n Alt = 0b100,\n Meta = 0b1000,\n Any = 'Any',\n}\n\nexport type ModifierInputs = Modifier | Modifier[];\n\n/**\n * Abstract base class for all event managers.\n *\n * Event managers are designed to normalize how event handlers are authored and create a safety net\n * for common event handling gotchas like remembering to call preventDefault or stopPropagation.\n */\nexport abstract class EventManager<T extends Event> {\n protected configs: EventHandlerConfig<T>[] = [];\n abstract options: EventHandlerOptions;\n\n /** Runs the handlers that match with the given event. */\n handle(event: T): void {\n for (const config of this.configs) {\n if (config.matcher(event)) {\n config.handler(event);\n\n if (config.preventDefault) {\n event.preventDefault();\n }\n\n if (config.stopPropagation) {\n event.stopPropagation();\n }\n }\n }\n }\n\n /** Configures the event manager to handle specific events. (See subclasses for more). */\n abstract on(...args: [...unknown[]]): this;\n}\n\n/** Gets bit flag representation of the modifier keys present on the given event. */\nexport function getModifiers(event: EventWithModifiers): number {\n return (\n (+event.ctrlKey && Modifier.Ctrl) |\n (+event.shiftKey && Modifier.Shift) |\n (+event.altKey && Modifier.Alt) |\n (+event.metaKey && Modifier.Meta)\n );\n}\n\n/**\n * Checks if the given event has modifiers that are an exact match for any of the given modifier\n * flag combinations.\n */\nexport function hasModifiers(event: EventWithModifiers, modifiers: ModifierInputs): boolean {\n const eventModifiers = getModifiers(event);\n const modifiersList = Array.isArray(modifiers) ? modifiers : [modifiers];\n\n if (modifiersList.includes(Modifier.Any)) {\n return true;\n }\n\n return modifiersList.some(modifiers => eventModifiers === modifiers);\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 {SignalLike} from '../signal-like/signal-like';\nimport {\n EventHandler,\n EventHandlerOptions,\n EventManager,\n hasModifiers,\n ModifierInputs,\n Modifier,\n} from './event-manager';\n\n/**\n * Used to represent a keycode.\n *\n * This is used to match whether an events keycode should be handled. The ability to match using a\n * string, SignalLike, or Regexp gives us more flexibility when authoring event handlers.\n */\ntype KeyCode = string | SignalLike<string> | RegExp;\n\n/**\n * An event manager that is specialized for handling keyboard events. By default this manager stops\n * propagation and prevents default on all events it handles.\n */\nexport class KeyboardEventManager<T extends KeyboardEvent> extends EventManager<T> {\n options: EventHandlerOptions = {\n ignoreRepeat: true,\n preventDefault: true,\n stopPropagation: true,\n };\n\n /** Configures this event manager to handle events with a specific key and no modifiers. */\n on(key: KeyCode, handler: EventHandler<T>, options?: Partial<EventHandlerOptions>): this;\n\n /** Configures this event manager to handle events with a specific modifer and key combination. */\n on(\n modifiers: ModifierInputs,\n key: KeyCode,\n handler: EventHandler<T>,\n options?: Partial<EventHandlerOptions>,\n ): this;\n\n on(...args: any[]) {\n const {modifiers, key, handler, options} = this._normalizeInputs(...args);\n\n this.configs.push({\n handler: handler,\n matcher: event => this._isMatch(event, key, modifiers, options),\n ...this.options,\n ...options,\n });\n\n return this;\n }\n\n private _normalizeInputs(...args: any[]) {\n const withModifiers = Array.isArray(args[0]) || args[0] in Modifier;\n const modifiers = withModifiers ? args[0] : Modifier.None;\n const key = withModifiers ? args[1] : args[0];\n const handler = withModifiers ? args[2] : args[1];\n const options = withModifiers ? args[3] : args[2];\n\n return {\n key: key as KeyCode,\n handler: handler as EventHandler<T>,\n modifiers: modifiers as ModifierInputs,\n options: (options ?? {}) as Partial<EventHandlerOptions>,\n };\n }\n\n private _isMatch(\n event: T,\n key: KeyCode,\n modifiers: ModifierInputs,\n options?: Partial<EventHandlerOptions>,\n ): boolean {\n if (!hasModifiers(event, modifiers)) {\n return false;\n }\n\n // Default is to ignore repeated key events unless explicitly set to false.\n if (event.repeat && options?.ignoreRepeat !== false) {\n return false;\n }\n\n if (key instanceof RegExp) {\n return key.test(event.key);\n }\n\n const keyStr = typeof key === 'string' ? key : key();\n return keyStr.toLowerCase() === event.key.toLowerCase();\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 createComputed,\n createLinkedSignal,\n createSignal,\n linkedSignalSetFn,\n linkedSignalUpdateFn,\n SIGNAL,\n untracked as primitiveUntracked,\n} from '@angular/core/primitives/signals';\n\nexport {primitiveUntracked as untracked};\n\nexport type SignalLike<T> = () => T;\n\nexport interface WritableSignalLike<T> extends SignalLike<T> {\n set(value: T): void;\n update(updateFn: (value: T) => T): void;\n asReadonly(): SignalLike<T>;\n}\n\n/** Converts a getter setter style signal to a WritableSignalLike. */\nexport function convertGetterSetterToWritableSignalLike<T>(\n getter: () => T,\n setter: (v: T) => void,\n): WritableSignalLike<T> {\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: setter,\n update: (updateCallback: (v: T) => T) => setter(updateCallback(getter())),\n asReadonly: () => getter,\n });\n}\n\nexport function computed<T>(computation: () => T): SignalLike<T> {\n const computed = createComputed(computation);\n // TODO: Remove the `toString` after https://github.com/angular/angular/pull/65948 is merged.\n computed.toString = () => `[Computed: ${computed()}]`;\n computed[SIGNAL].debugName = '';\n return computed;\n}\n\nexport function signal<T>(initialValue: T): WritableSignalLike<T> {\n const [get, set, update] = createSignal(initialValue);\n get[SIGNAL].debugName = '';\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(get, {set, update, asReadonly: () => get});\n}\n\nexport function linkedSignal<T>(sourceFn: () => T): WritableSignalLike<T> {\n const getter = createLinkedSignal(sourceFn, s => s);\n getter[SIGNAL].debugName = '';\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: (v: T) => linkedSignalSetFn(getter[SIGNAL], v),\n update: (updater: (v: T) => T) => linkedSignalUpdateFn(getter[SIGNAL], updater),\n asReadonly: () => getter,\n });\n}\n"],"names":["Modifier","EventManager","configs","handle","event","config","matcher","handler","preventDefault","stopPropagation","getModifiers","ctrlKey","Ctrl","shiftKey","Shift","altKey","Alt","metaKey","Meta","hasModifiers","modifiers","eventModifiers","modifiersList","Array","isArray","includes","Any","some","KeyboardEventManager","options","ignoreRepeat","on","args","key","_normalizeInputs","push","_isMatch","withModifiers","None","repeat","RegExp","test","keyStr","toLowerCase","convertGetterSetterToWritableSignalLike","getter","setter","Object","assign","set","update","updateCallback","asReadonly","computed","computation","createComputed","toString","SIGNAL","debugName","signal","initialValue","get","createSignal","linkedSignal","sourceFn","createLinkedSignal","s","v","linkedSignalSetFn","updater","linkedSignalUpdateFn"],"mappings":"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"}
{"version":3,"file":"_signal-like-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/event-manager/event-manager.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/event-manager/keyboard-event-manager.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/signal-like/signal-like.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\n/**\n * An event that supports modifier keys.\n *\n * Matches the native KeyboardEvent, MouseEvent, and TouchEvent.\n */\nexport interface EventWithModifiers extends Event {\n ctrlKey: boolean;\n shiftKey: boolean;\n altKey: boolean;\n metaKey: boolean;\n}\n\n/**\n * Options that are applicable to all event handlers.\n *\n * This library has not yet had a need for stopPropagationImmediate.\n */\nexport interface EventHandlerOptions {\n ignoreRepeat?: boolean;\n stopPropagation: boolean;\n preventDefault: boolean;\n}\n\n/** A basic event handler. */\nexport type EventHandler<T extends Event> = (event: T) => void;\n\n/** A function that determines whether an event is to be handled. */\nexport type EventMatcher<T extends Event> = (event: T) => boolean;\n\n/** A config that specifies how to handle a particular event. */\nexport interface EventHandlerConfig<T extends Event> extends EventHandlerOptions {\n matcher: EventMatcher<T>;\n handler: EventHandler<T>;\n}\n\n/** Bit flag representation of the possible modifier keys that can be present on an event. */\nexport enum Modifier {\n None = 0,\n Ctrl = 0b1,\n Shift = 0b10,\n Alt = 0b100,\n Meta = 0b1000,\n Any = 'Any',\n}\n\nexport type ModifierInputs = Modifier | Modifier[];\n\n/**\n * Abstract base class for all event managers.\n *\n * Event managers are designed to normalize how event handlers are authored and create a safety net\n * for common event handling gotchas like remembering to call preventDefault or stopPropagation.\n */\nexport abstract class EventManager<T extends Event> {\n protected configs: EventHandlerConfig<T>[] = [];\n abstract options: EventHandlerOptions;\n\n /** Runs the handlers that match with the given event. */\n handle(event: T): void {\n for (const config of this.configs) {\n if (config.matcher(event)) {\n config.handler(event);\n\n if (config.preventDefault) {\n event.preventDefault();\n }\n\n if (config.stopPropagation) {\n event.stopPropagation();\n }\n }\n }\n }\n\n /** Configures the event manager to handle specific events. (See subclasses for more). */\n abstract on(...args: [...unknown[]]): this;\n}\n\n/** Gets bit flag representation of the modifier keys present on the given event. */\nexport function getModifiers(event: EventWithModifiers): number {\n return (\n (+event.ctrlKey && Modifier.Ctrl) |\n (+event.shiftKey && Modifier.Shift) |\n (+event.altKey && Modifier.Alt) |\n (+event.metaKey && Modifier.Meta)\n );\n}\n\n/**\n * Checks if the given event has modifiers that are an exact match for any of the given modifier\n * flag combinations.\n */\nexport function hasModifiers(event: EventWithModifiers, modifiers: ModifierInputs): boolean {\n const eventModifiers = getModifiers(event);\n const modifiersList = Array.isArray(modifiers) ? modifiers : [modifiers];\n\n if (modifiersList.includes(Modifier.Any)) {\n return true;\n }\n\n return modifiersList.some(modifiers => eventModifiers === modifiers);\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 {SignalLike} from '../signal-like/signal-like';\nimport {\n EventHandler,\n EventHandlerOptions,\n EventManager,\n hasModifiers,\n ModifierInputs,\n Modifier,\n} from './event-manager';\n\n/**\n * Used to represent a keycode.\n *\n * This is used to match whether an events keycode should be handled. The ability to match using a\n * string, SignalLike, or Regexp gives us more flexibility when authoring event handlers.\n */\ntype KeyCode = string | SignalLike<string> | RegExp;\n\n/**\n * An event manager that is specialized for handling keyboard events. By default this manager stops\n * propagation and prevents default on all events it handles.\n */\nexport class KeyboardEventManager<T extends KeyboardEvent> extends EventManager<T> {\n options: EventHandlerOptions = {\n ignoreRepeat: true,\n preventDefault: true,\n stopPropagation: true,\n };\n\n /** Configures this event manager to handle events with a specific key and no modifiers. */\n on(key: KeyCode, handler: EventHandler<T>, options?: Partial<EventHandlerOptions>): this;\n\n /** Configures this event manager to handle events with a specific modifer and key combination. */\n on(\n modifiers: ModifierInputs,\n key: KeyCode,\n handler: EventHandler<T>,\n options?: Partial<EventHandlerOptions>,\n ): this;\n\n on(...args: any[]) {\n const {modifiers, key, handler, options} = this._normalizeInputs(...args);\n\n this.configs.push({\n handler: handler,\n matcher: event => this._isMatch(event, key, modifiers, options),\n ...this.options,\n ...options,\n });\n\n return this;\n }\n\n private _normalizeInputs(...args: any[]) {\n const withModifiers = Array.isArray(args[0]) || args[0] in Modifier;\n const modifiers = withModifiers ? args[0] : Modifier.None;\n const key = withModifiers ? args[1] : args[0];\n const handler = withModifiers ? args[2] : args[1];\n const options = withModifiers ? args[3] : args[2];\n\n return {\n key: key as KeyCode,\n handler: handler as EventHandler<T>,\n modifiers: modifiers as ModifierInputs,\n options: (options ?? {}) as Partial<EventHandlerOptions>,\n };\n }\n\n private _isMatch(\n event: T,\n key: KeyCode,\n modifiers: ModifierInputs,\n options?: Partial<EventHandlerOptions>,\n ): boolean {\n if (!hasModifiers(event, modifiers)) {\n return false;\n }\n\n // Default is to ignore repeated key events unless explicitly set to false.\n if (event.repeat && options?.ignoreRepeat !== false) {\n return false;\n }\n\n if (key instanceof RegExp) {\n return key.test(event.key);\n }\n\n const keyStr = typeof key === 'string' ? key : key();\n return keyStr.toLowerCase() === event.key.toLowerCase();\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 createComputed,\n createLinkedSignal,\n createSignal,\n linkedSignalSetFn,\n linkedSignalUpdateFn,\n SIGNAL,\n untracked as primitiveUntracked,\n} from '@angular/core/primitives/signals';\n\nexport {primitiveUntracked as untracked};\n\nexport type SignalLike<T> = () => T;\n\nexport interface WritableSignalLike<T> extends SignalLike<T> {\n set(value: T): void;\n update(updateFn: (value: T) => T): void;\n asReadonly(): SignalLike<T>;\n}\n\n/** Converts a getter setter style signal to a WritableSignalLike. */\nexport function convertGetterSetterToWritableSignalLike<T>(\n getter: () => T,\n setter: (v: T) => void,\n): WritableSignalLike<T> {\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: setter,\n update: (updateCallback: (v: T) => T) => setter(updateCallback(getter())),\n asReadonly: () => getter,\n });\n}\n\nexport function computed<T>(computation: () => T): SignalLike<T> {\n const computed = createComputed(computation);\n // TODO: Remove the `toString` after https://github.com/angular/angular/pull/65948 is merged.\n computed.toString = () => `[Computed: ${computed()}]`;\n computed[SIGNAL].debugName = '';\n return computed;\n}\n\nexport function signal<T>(initialValue: T): WritableSignalLike<T> {\n const [get, set, update] = createSignal(initialValue);\n get[SIGNAL].debugName = '';\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(get, {set, update, asReadonly: () => get});\n}\n\nexport function linkedSignal<T>(sourceFn: () => T): WritableSignalLike<T> {\n const getter = createLinkedSignal(sourceFn, s => s);\n getter[SIGNAL].debugName = '';\n // tslint:disable-next-line:ban Have to use `Object.assign` to preserve the getter function.\n return Object.assign(getter, {\n set: (v: T) => linkedSignalSetFn(getter[SIGNAL], v),\n update: (updater: (v: T) => T) => linkedSignalUpdateFn(getter[SIGNAL], updater),\n asReadonly: () => getter,\n });\n}\n"],"names":["Modifier","EventManager","configs","handle","event","config","matcher","handler","preventDefault","stopPropagation","getModifiers","ctrlKey","Ctrl","shiftKey","Shift","altKey","Alt","metaKey","Meta","hasModifiers","modifiers","eventModifiers","modifiersList","Array","isArray","includes","Any","some","KeyboardEventManager","options","ignoreRepeat","on","args","key","_normalizeInputs","push","_isMatch","withModifiers","None","repeat","RegExp","test","keyStr","toLowerCase","convertGetterSetterToWritableSignalLike","getter","setter","Object","assign","set","update","updateCallback","asReadonly","computed","computation","createComputed","toString","SIGNAL","debugName","signal","initialValue","get","createSignal","linkedSignal","sourceFn","createLinkedSignal","s","v","linkedSignalSetFn","updater","linkedSignalUpdateFn"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_tabs-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/label/label.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/tabs/tabs.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 */\nimport {computed, SignalLike} from '../signal-like/signal-like';\n\n/** Represents the required inputs for the label control. */\nexport interface LabelControlInputs {\n /** The default `aria-labelledby` ids. */\n defaultLabelledBy: SignalLike<string[]>;\n}\n\n/** Represents the optional inputs for the label control. */\nexport interface LabelControlOptionalInputs {\n /** The `aria-label`. */\n label?: SignalLike<string | undefined>;\n\n /** The user-provided `aria-labelledby` ids. */\n labelledBy?: SignalLike<string[]>;\n}\n\n/** Controls label and description of an element. */\nexport class LabelControl {\n /** The `aria-label`. */\n readonly label = computed(() => this.inputs.label?.());\n\n /** The `aria-labelledby` ids. */\n readonly labelledBy = computed(() => {\n const label = this.label();\n const labelledBy = this.inputs.labelledBy?.();\n const defaultLabelledBy = this.inputs.defaultLabelledBy();\n\n if (labelledBy && labelledBy.length > 0) {\n return labelledBy;\n }\n\n // If an aria-label is provided by developers, do not set aria-labelledby with the\n // defaultLabelledBy value because if both attributes are set, aria-labelledby will be used.\n if (label) {\n return [];\n }\n\n return defaultLabelledBy;\n });\n\n constructor(readonly inputs: LabelControlInputs & LabelControlOptionalInputs) {}\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 {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager';\nimport {ExpansionItem, ListExpansionInputs, ListExpansion} from '../behaviors/expansion/expansion';\nimport {\n SignalLike,\n computed,\n signal,\n WritableSignalLike,\n} from '../behaviors/signal-like/signal-like';\nimport {LabelControl, LabelControlOptionalInputs} from '../behaviors/label/label';\nimport {ListFocus} from '../behaviors/list-focus/list-focus';\nimport {\n ListNavigationItem,\n ListNavigation,\n ListNavigationInputs,\n} from '../behaviors/list-navigation/list-navigation';\n\n/** The required inputs to tabs. */\nexport interface TabInputs\n extends Omit<ListNavigationItem, 'index'>, Omit<ExpansionItem, 'expandable'> {\n /** The parent tablist that controls the tab. */\n tablist: SignalLike<TabListPattern>;\n\n /** The remote tabpanel controlled by the tab. */\n tabpanel: SignalLike<TabPanelPattern | undefined>;\n\n /** The remote tabpanel unique identifier. */\n value: SignalLike<string>;\n}\n\n/** A tab in a tablist. */\nexport class TabPattern {\n /** A global unique identifier for the tab. */\n readonly id: SignalLike<string> = () => this.inputs.id();\n\n /** The index of the tab. */\n readonly index = computed(() => this.inputs.tablist().inputs.items().indexOf(this));\n\n /** The remote tabpanel unique identifier. */\n readonly value: SignalLike<string> = () => this.inputs.value();\n\n /** Whether the tab is disabled. */\n readonly disabled: SignalLike<boolean> = () => this.inputs.disabled();\n\n /** The html element that should receive focus. */\n readonly element: SignalLike<HTMLElement> = () => this.inputs.element()!;\n\n /** Whether this tab has expandable panel. */\n readonly expandable: SignalLike<boolean> = () => true;\n\n /** Whether the tab panel is expanded. */\n readonly expanded: WritableSignalLike<boolean>;\n\n /** Whether the tab is active. */\n readonly active = computed(() => this.inputs.tablist().inputs.activeItem() === this);\n\n /** Whether the tab is selected. */\n readonly selected = computed(() => this.inputs.tablist().selectedTab() === this);\n\n /** The tab index of the tab. */\n readonly tabIndex = computed(() => this.inputs.tablist().focusBehavior.getItemTabIndex(this));\n\n /** The id of the tabpanel associated with the tab. */\n readonly controls = computed(() => this.inputs.tabpanel()?.id());\n\n constructor(readonly inputs: TabInputs) {\n this.expanded = inputs.expanded;\n }\n\n /** Opens the tab. */\n open(): boolean {\n return this.inputs.tablist().open(this);\n }\n}\n\n/** The required inputs for the tabpanel. */\nexport interface TabPanelInputs extends LabelControlOptionalInputs {\n /** A global unique identifier for the tabpanel. */\n id: SignalLike<string>;\n\n /** The tab that controls this tabpanel. */\n tab: SignalLike<TabPattern | undefined>;\n\n /** A local unique identifier for the tabpanel. */\n value: SignalLike<string>;\n}\n\n/** A tabpanel associated with a tab. */\nexport class TabPanelPattern {\n /** A global unique identifier for the tabpanel. */\n readonly id: SignalLike<string> = () => this.inputs.id();\n\n /** A local unique identifier for the tabpanel. */\n readonly value: SignalLike<string> = () => this.inputs.value();\n\n /** Controls label for this tabpanel. */\n readonly labelManager: LabelControl;\n\n /** Whether the tabpanel is hidden. */\n readonly hidden = computed(() => this.inputs.tab()?.expanded() === false);\n\n /** The tab index of this tabpanel. */\n readonly tabIndex = computed(() => (this.hidden() ? -1 : 0));\n\n /** The aria-labelledby value for this tabpanel. */\n readonly labelledBy = computed(() =>\n this.labelManager.labelledBy().length > 0\n ? this.labelManager.labelledBy().join(' ')\n : undefined,\n );\n\n constructor(readonly inputs: TabPanelInputs) {\n this.labelManager = new LabelControl({\n ...inputs,\n defaultLabelledBy: computed(() => (this.inputs.tab() ? [this.inputs.tab()!.id()] : [])),\n });\n }\n}\n\n/** The required inputs for the tablist. */\nexport interface TabListInputs\n extends\n Omit<ListNavigationInputs<TabPattern>, 'multi'>,\n Omit<ListExpansionInputs, 'multiExpandable' | 'items'> {\n /** The selection strategy used by the tablist. */\n selectionMode: SignalLike<'follow' | 'explicit'>;\n}\n\n/** Controls the state of a tablist. */\nexport class TabListPattern {\n /** The list focus behavior for the tablist. */\n readonly focusBehavior: ListFocus<TabPattern>;\n\n /** The list navigation behavior for the tablist. */\n readonly navigationBehavior: ListNavigation<TabPattern>;\n\n /** Controls expansion for the tablist. */\n readonly expansionBehavior: ListExpansion;\n\n /** The currently active tab. */\n readonly activeTab: SignalLike<TabPattern | undefined> = () => this.inputs.activeItem();\n\n /** The currently selected tab. */\n readonly selectedTab: WritableSignalLike<TabPattern | undefined> = signal(undefined);\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation: SignalLike<'vertical' | 'horizontal'> = () => this.inputs.orientation();\n\n /** Whether the tablist is disabled. */\n readonly disabled: SignalLike<boolean> = () => this.inputs.disabled();\n\n /** The tab index of the tablist. */\n readonly tabIndex = computed(() => this.focusBehavior.getListTabIndex());\n\n /** The id of the current active tab. */\n readonly activeDescendant = computed(() => this.focusBehavior.getActiveDescendant());\n\n /** Whether selection should follow focus. */\n readonly followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** The key used to navigate to the previous tab in the tablist. */\n readonly prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next item in the list. */\n readonly nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The keydown event manager for the tablist. */\n readonly keydown = computed(() => {\n return new KeyboardEventManager()\n .on(\n this.prevKey,\n () => this._navigate(() => this.navigationBehavior.prev(), this.followFocus()),\n {ignoreRepeat: false},\n )\n .on(\n this.nextKey,\n () => this._navigate(() => this.navigationBehavior.next(), this.followFocus()),\n {ignoreRepeat: false},\n )\n .on('Home', () => this._navigate(() => this.navigationBehavior.first(), this.followFocus()))\n .on('End', () => this._navigate(() => this.navigationBehavior.last(), this.followFocus()))\n .on(' ', () => this.open())\n .on('Enter', () => this.open());\n });\n\n /** The pointerdown event manager for the tablist. */\n readonly pointerdown = computed(() => {\n return new PointerEventManager().on(e =>\n this._navigate(() => this.navigationBehavior.goto(this._getItem(e)!), true),\n );\n });\n\n constructor(readonly inputs: TabListInputs) {\n this.focusBehavior = new ListFocus(inputs);\n\n this.navigationBehavior = new ListNavigation({\n ...inputs,\n focusManager: this.focusBehavior,\n });\n\n this.expansionBehavior = new ListExpansion({\n ...inputs,\n multiExpandable: () => false,\n });\n }\n\n /**\n * Sets the tablist to its default initial state.\n *\n * Sets the active index of the tablist to the first focusable selected\n * tab if one exists. Otherwise, sets focus to the first focusable tab.\n *\n * This method should be called once the tablist and its tabs are properly initialized.\n */\n setDefaultState() {\n let firstItem: TabPattern | undefined;\n\n for (const item of this.inputs.items()) {\n if (!this.focusBehavior.isFocusable(item)) continue;\n\n if (firstItem === undefined) {\n firstItem = item;\n }\n\n if (item.selected()) {\n this.inputs.activeItem.set(item);\n return;\n }\n }\n if (firstItem !== undefined) {\n this.inputs.activeItem.set(firstItem);\n }\n }\n\n /** Handles keydown events for the tablist. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** The pointerdown event manager for the tablist. */\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /** Opens the tab by given value. */\n open(value: string): boolean;\n\n /** Opens the given tab or the current active tab. */\n open(tab?: TabPattern): boolean;\n\n open(tab: TabPattern | string | undefined): boolean {\n tab ??= this.activeTab();\n\n if (typeof tab === 'string') {\n tab = this.inputs.items().find(t => t.value() === tab);\n }\n\n if (tab === undefined) return false;\n\n const success = this.expansionBehavior.open(tab);\n if (success) {\n this.selectedTab.set(tab);\n }\n\n return success;\n }\n\n /** Executes a navigation operation and expand the active tab if needed. */\n private _navigate(op: () => boolean, shouldExpand: boolean = false): void {\n const success = op();\n if (success && shouldExpand) {\n this.open();\n }\n }\n\n /** Returns the tab item associated with the given pointer event. */\n private _getItem(e: PointerEvent) {\n if (!(e.target instanceof HTMLElement)) {\n return;\n }\n\n const element = e.target.closest('[role=\"tab\"]');\n return this.inputs.items().find(i => i.element() === element);\n }\n}\n"],"names":["LabelControl","inputs","label","computed","labelledBy","defaultLabelledBy","length","constructor","TabPattern","id","index","tablist","items","indexOf","value","disabled","element","expandable","expanded","active","activeItem","selected","selectedTab","tabIndex","focusBehavior","getItemTabIndex","controls","tabpanel","open","TabPanelPattern","labelManager","hidden","tab","join","undefined","TabListPattern","navigationBehavior","expansionBehavior","activeTab","signal","orientation","getListTabIndex","activeDescendant","getActiveDescendant","followFocus","selectionMode","prevKey","textDirection","nextKey","keydown","KeyboardEventManager","on","_navigate","prev","ignoreRepeat","next","first","last","pointerdown","PointerEventManager","e","goto","_getItem","ListFocus","ListNavigation","focusManager","ListExpansion","multiExpandable","setDefaultState","firstItem","item","isFocusable","set","onKeydown","event","handle","onPointerdown","find","t","success","op","shouldExpand","target","HTMLElement","closest","i"],"mappings":"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"}
{"version":3,"file":"_tabs-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/behaviors/label/label.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/tabs/tabs.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 */\nimport {computed, SignalLike} from '../signal-like/signal-like';\n\n/** Represents the required inputs for the label control. */\nexport interface LabelControlInputs {\n /** The default `aria-labelledby` ids. */\n defaultLabelledBy: SignalLike<string[]>;\n}\n\n/** Represents the optional inputs for the label control. */\nexport interface LabelControlOptionalInputs {\n /** The `aria-label`. */\n label?: SignalLike<string | undefined>;\n\n /** The user-provided `aria-labelledby` ids. */\n labelledBy?: SignalLike<string[]>;\n}\n\n/** Controls label and description of an element. */\nexport class LabelControl {\n /** The `aria-label`. */\n readonly label = computed(() => this.inputs.label?.());\n\n /** The `aria-labelledby` ids. */\n readonly labelledBy = computed(() => {\n const label = this.label();\n const labelledBy = this.inputs.labelledBy?.();\n const defaultLabelledBy = this.inputs.defaultLabelledBy();\n\n if (labelledBy && labelledBy.length > 0) {\n return labelledBy;\n }\n\n // If an aria-label is provided by developers, do not set aria-labelledby with the\n // defaultLabelledBy value because if both attributes are set, aria-labelledby will be used.\n if (label) {\n return [];\n }\n\n return defaultLabelledBy;\n });\n\n constructor(readonly inputs: LabelControlInputs & LabelControlOptionalInputs) {}\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 {KeyboardEventManager, PointerEventManager} from '../behaviors/event-manager';\nimport {ExpansionItem, ListExpansionInputs, ListExpansion} from '../behaviors/expansion/expansion';\nimport {\n SignalLike,\n computed,\n signal,\n WritableSignalLike,\n} from '../behaviors/signal-like/signal-like';\nimport {LabelControl, LabelControlOptionalInputs} from '../behaviors/label/label';\nimport {ListFocus} from '../behaviors/list-focus/list-focus';\nimport {\n ListNavigationItem,\n ListNavigation,\n ListNavigationInputs,\n} from '../behaviors/list-navigation/list-navigation';\n\n/** The required inputs to tabs. */\nexport interface TabInputs\n extends Omit<ListNavigationItem, 'index'>, Omit<ExpansionItem, 'expandable'> {\n /** The parent tablist that controls the tab. */\n tablist: SignalLike<TabListPattern>;\n\n /** The remote tabpanel controlled by the tab. */\n tabpanel: SignalLike<TabPanelPattern | undefined>;\n\n /** The remote tabpanel unique identifier. */\n value: SignalLike<string>;\n}\n\n/** A tab in a tablist. */\nexport class TabPattern {\n /** A global unique identifier for the tab. */\n readonly id: SignalLike<string> = () => this.inputs.id();\n\n /** The index of the tab. */\n readonly index = computed(() => this.inputs.tablist().inputs.items().indexOf(this));\n\n /** The remote tabpanel unique identifier. */\n readonly value: SignalLike<string> = () => this.inputs.value();\n\n /** Whether the tab is disabled. */\n readonly disabled: SignalLike<boolean> = () => this.inputs.disabled();\n\n /** The html element that should receive focus. */\n readonly element: SignalLike<HTMLElement> = () => this.inputs.element()!;\n\n /** Whether this tab has expandable panel. */\n readonly expandable: SignalLike<boolean> = () => true;\n\n /** Whether the tab panel is expanded. */\n readonly expanded: WritableSignalLike<boolean>;\n\n /** Whether the tab is active. */\n readonly active = computed(() => this.inputs.tablist().inputs.activeItem() === this);\n\n /** Whether the tab is selected. */\n readonly selected = computed(() => this.inputs.tablist().selectedTab() === this);\n\n /** The tab index of the tab. */\n readonly tabIndex = computed(() => this.inputs.tablist().focusBehavior.getItemTabIndex(this));\n\n /** The id of the tabpanel associated with the tab. */\n readonly controls = computed(() => this.inputs.tabpanel()?.id());\n\n constructor(readonly inputs: TabInputs) {\n this.expanded = inputs.expanded;\n }\n\n /** Opens the tab. */\n open(): boolean {\n return this.inputs.tablist().open(this);\n }\n}\n\n/** The required inputs for the tabpanel. */\nexport interface TabPanelInputs extends LabelControlOptionalInputs {\n /** A global unique identifier for the tabpanel. */\n id: SignalLike<string>;\n\n /** The tab that controls this tabpanel. */\n tab: SignalLike<TabPattern | undefined>;\n\n /** A local unique identifier for the tabpanel. */\n value: SignalLike<string>;\n}\n\n/** A tabpanel associated with a tab. */\nexport class TabPanelPattern {\n /** A global unique identifier for the tabpanel. */\n readonly id: SignalLike<string> = () => this.inputs.id();\n\n /** A local unique identifier for the tabpanel. */\n readonly value: SignalLike<string> = () => this.inputs.value();\n\n /** Controls label for this tabpanel. */\n readonly labelManager: LabelControl;\n\n /** Whether the tabpanel is hidden. */\n readonly hidden = computed(() => this.inputs.tab()?.expanded() === false);\n\n /** The tab index of this tabpanel. */\n readonly tabIndex = computed(() => (this.hidden() ? -1 : 0));\n\n /** The aria-labelledby value for this tabpanel. */\n readonly labelledBy = computed(() =>\n this.labelManager.labelledBy().length > 0\n ? this.labelManager.labelledBy().join(' ')\n : undefined,\n );\n\n constructor(readonly inputs: TabPanelInputs) {\n this.labelManager = new LabelControl({\n ...inputs,\n defaultLabelledBy: computed(() => (this.inputs.tab() ? [this.inputs.tab()!.id()] : [])),\n });\n }\n}\n\n/** The required inputs for the tablist. */\nexport interface TabListInputs\n extends\n Omit<ListNavigationInputs<TabPattern>, 'multi'>,\n Omit<ListExpansionInputs, 'multiExpandable' | 'items'> {\n /** The selection strategy used by the tablist. */\n selectionMode: SignalLike<'follow' | 'explicit'>;\n}\n\n/** Controls the state of a tablist. */\nexport class TabListPattern {\n /** The list focus behavior for the tablist. */\n readonly focusBehavior: ListFocus<TabPattern>;\n\n /** The list navigation behavior for the tablist. */\n readonly navigationBehavior: ListNavigation<TabPattern>;\n\n /** Controls expansion for the tablist. */\n readonly expansionBehavior: ListExpansion;\n\n /** The currently active tab. */\n readonly activeTab: SignalLike<TabPattern | undefined> = () => this.inputs.activeItem();\n\n /** The currently selected tab. */\n readonly selectedTab: WritableSignalLike<TabPattern | undefined> = signal(undefined);\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation: SignalLike<'vertical' | 'horizontal'> = () => this.inputs.orientation();\n\n /** Whether the tablist is disabled. */\n readonly disabled: SignalLike<boolean> = () => this.inputs.disabled();\n\n /** The tab index of the tablist. */\n readonly tabIndex = computed(() => this.focusBehavior.getListTabIndex());\n\n /** The id of the current active tab. */\n readonly activeDescendant = computed(() => this.focusBehavior.getActiveDescendant());\n\n /** Whether selection should follow focus. */\n readonly followFocus = computed(() => this.inputs.selectionMode() === 'follow');\n\n /** The key used to navigate to the previous tab in the tablist. */\n readonly prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next item in the list. */\n readonly nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The keydown event manager for the tablist. */\n readonly keydown = computed(() => {\n return new KeyboardEventManager()\n .on(\n this.prevKey,\n () => this._navigate(() => this.navigationBehavior.prev(), this.followFocus()),\n {ignoreRepeat: false},\n )\n .on(\n this.nextKey,\n () => this._navigate(() => this.navigationBehavior.next(), this.followFocus()),\n {ignoreRepeat: false},\n )\n .on('Home', () => this._navigate(() => this.navigationBehavior.first(), this.followFocus()))\n .on('End', () => this._navigate(() => this.navigationBehavior.last(), this.followFocus()))\n .on(' ', () => this.open())\n .on('Enter', () => this.open());\n });\n\n /** The pointerdown event manager for the tablist. */\n readonly pointerdown = computed(() => {\n return new PointerEventManager().on(e =>\n this._navigate(() => this.navigationBehavior.goto(this._getItem(e)!), true),\n );\n });\n\n constructor(readonly inputs: TabListInputs) {\n this.focusBehavior = new ListFocus(inputs);\n\n this.navigationBehavior = new ListNavigation({\n ...inputs,\n focusManager: this.focusBehavior,\n });\n\n this.expansionBehavior = new ListExpansion({\n ...inputs,\n multiExpandable: () => false,\n });\n }\n\n /**\n * Sets the tablist to its default initial state.\n *\n * Sets the active index of the tablist to the first focusable selected\n * tab if one exists. Otherwise, sets focus to the first focusable tab.\n *\n * This method should be called once the tablist and its tabs are properly initialized.\n */\n setDefaultState() {\n let firstItem: TabPattern | undefined;\n\n for (const item of this.inputs.items()) {\n if (!this.focusBehavior.isFocusable(item)) continue;\n\n if (firstItem === undefined) {\n firstItem = item;\n }\n\n if (item.selected()) {\n this.inputs.activeItem.set(item);\n return;\n }\n }\n if (firstItem !== undefined) {\n this.inputs.activeItem.set(firstItem);\n }\n }\n\n /** Handles keydown events for the tablist. */\n onKeydown(event: KeyboardEvent) {\n if (!this.disabled()) {\n this.keydown().handle(event);\n }\n }\n\n /** The pointerdown event manager for the tablist. */\n onPointerdown(event: PointerEvent) {\n if (!this.disabled()) {\n this.pointerdown().handle(event);\n }\n }\n\n /** Opens the tab by given value. */\n open(value: string): boolean;\n\n /** Opens the given tab or the current active tab. */\n open(tab?: TabPattern): boolean;\n\n open(tab: TabPattern | string | undefined): boolean {\n tab ??= this.activeTab();\n\n if (typeof tab === 'string') {\n tab = this.inputs.items().find(t => t.value() === tab);\n }\n\n if (tab === undefined) return false;\n\n const success = this.expansionBehavior.open(tab);\n if (success) {\n this.selectedTab.set(tab);\n }\n\n return success;\n }\n\n /** Executes a navigation operation and expand the active tab if needed. */\n private _navigate(op: () => boolean, shouldExpand: boolean = false): void {\n const success = op();\n if (success && shouldExpand) {\n this.open();\n }\n }\n\n /** Returns the tab item associated with the given pointer event. */\n private _getItem(e: PointerEvent) {\n if (!(e.target instanceof HTMLElement)) {\n return;\n }\n\n const element = e.target.closest('[role=\"tab\"]');\n return this.inputs.items().find(i => i.element() === element);\n }\n}\n"],"names":["LabelControl","inputs","label","computed","labelledBy","defaultLabelledBy","length","constructor","TabPattern","id","index","tablist","items","indexOf","value","disabled","element","expandable","expanded","active","activeItem","selected","selectedTab","tabIndex","focusBehavior","getItemTabIndex","controls","tabpanel","open","TabPanelPattern","labelManager","hidden","tab","join","undefined","TabListPattern","navigationBehavior","expansionBehavior","activeTab","signal","orientation","getListTabIndex","activeDescendant","getActiveDescendant","followFocus","selectionMode","prevKey","textDirection","nextKey","keydown","KeyboardEventManager","on","_navigate","prev","ignoreRepeat","next","first","last","pointerdown","PointerEventManager","e","goto","_getItem","ListFocus","ListNavigation","focusManager","ListExpansion","multiExpandable","setDefaultState","firstItem","item","isFocusable","set","onKeydown","event","handle","onPointerdown","find","t","success","op","shouldExpand","target","HTMLElement","closest","i"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"_toolbar-widget-group-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/toolbar/toolbar.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/toolbar/toolbar-widget.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/toolbar/toolbar-widget-group.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 {computed, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {KeyboardEventManager} from '../behaviors/event-manager';\nimport {List, ListInputs} from '../behaviors/list/list';\nimport {ToolbarWidgetPattern} from './toolbar-widget';\n\n/** Represents the required inputs for a toolbar. */\nexport type ToolbarInputs<V> = Omit<\n ListInputs<ToolbarWidgetPattern<V>, V>,\n 'multi' | 'typeaheadDelay' | 'selectionMode' | 'focusMode'\n> & {\n /** A function that returns the toolbar item associated with a given element. */\n getItem: (e: Element) => ToolbarWidgetPattern<V> | undefined;\n};\n\n/** Controls the state of a toolbar. */\nexport class ToolbarPattern<V> {\n /** The list behavior for the toolbar. */\n readonly listBehavior: List<ToolbarWidgetPattern<V>, V>;\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** Whether disabled items in the group should be focusable. */\n readonly softDisabled: SignalLike<boolean>;\n\n /** Whether the toolbar is disabled. */\n readonly disabled = computed(() => this.listBehavior.disabled());\n\n /** The tab index of the toolbar (if using activedescendant). */\n readonly tabIndex = computed(() => this.listBehavior.tabIndex());\n\n /** The id of the current active widget (if using activedescendant). */\n readonly activeDescendant = computed(() => this.listBehavior.activeDescendant());\n\n /** The currently active item in the toolbar. */\n readonly activeItem = () => this.listBehavior.inputs.activeItem();\n\n /** The key used to navigate to the previous widget. */\n private readonly _prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next widget. */\n private readonly _nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The alternate key used to navigate to the previous widget. */\n private readonly _altPrevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n }\n return 'ArrowUp';\n });\n\n /** The alternate key used to navigate to the next widget. */\n private readonly _altNextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n }\n return 'ArrowDown';\n });\n\n /** The keydown event manager for the toolbar. */\n private readonly _keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n return manager\n .on(this._nextKey, () => this.listBehavior.next(), {ignoreRepeat: false})\n .on(this._prevKey, () => this.listBehavior.prev(), {ignoreRepeat: false})\n .on(this._altNextKey, () => this._groupNext(), {ignoreRepeat: false})\n .on(this._altPrevKey, () => this._groupPrev(), {ignoreRepeat: false})\n .on(' ', () => this.select())\n .on('Enter', () => this.select())\n .on('Home', () => this.listBehavior.first())\n .on('End', () => this.listBehavior.last());\n });\n\n /** Navigates to the next widget in a widget group. */\n private _groupNext() {\n const currGroup = this.inputs.activeItem()?.group();\n const nextGroup = this.listBehavior.navigationBehavior.peekNext()?.group();\n\n if (!currGroup) {\n return;\n }\n\n if (currGroup !== nextGroup) {\n this.listBehavior.goto(\n this.listBehavior.navigationBehavior.peekFirst({\n items: currGroup.inputs.items(),\n })!,\n );\n\n return;\n }\n\n this.listBehavior.next();\n }\n\n /** Navigates to the previous widget in a widget group. */\n private _groupPrev() {\n const currGroup = this.inputs.activeItem()?.group();\n const nextGroup = this.listBehavior.navigationBehavior.peekPrev()?.group();\n\n if (!currGroup) {\n return;\n }\n\n if (currGroup !== nextGroup) {\n this.listBehavior.goto(\n this.listBehavior.navigationBehavior.peekLast({\n items: currGroup.inputs.items(),\n })!,\n );\n\n return;\n }\n\n this.listBehavior.prev();\n }\n\n /** Navigates to the widget targeted by a pointer event. */\n private _goto(e: MouseEvent) {\n const item = this.inputs.getItem(e.target as Element);\n\n if (item) {\n this.listBehavior.goto(item);\n this.select();\n }\n }\n\n select() {\n const group = this.inputs.activeItem()?.group();\n\n if (!group?.multi()) {\n group?.inputs.items().forEach(i => this.listBehavior.deselect(i));\n }\n\n this.listBehavior.toggle();\n }\n\n constructor(readonly inputs: ToolbarInputs<V>) {\n this.orientation = inputs.orientation;\n this.softDisabled = inputs.softDisabled;\n\n this.listBehavior = new List({\n ...inputs,\n multi: () => true,\n focusMode: () => 'roving',\n selectionMode: () => 'explicit',\n typeaheadDelay: () => 0, // Toolbar widgets do not support typeahead.\n });\n }\n\n /** Handles keydown events for the toolbar. */\n onKeydown(event: KeyboardEvent) {\n if (this.disabled()) return;\n this._keydown().handle(event);\n }\n\n onPointerdown(event: PointerEvent) {\n event.preventDefault();\n }\n\n /** Handles click events for the toolbar. */\n onClick(event: MouseEvent) {\n if (this.disabled() || (event as PointerEvent).pointerType === '') return;\n this._goto(event);\n }\n\n /**\n * Sets the toolbar to its default initial state.\n *\n * Sets the active index to the selected widget if one exists and is focusable.\n * Otherwise, sets the active index to the first focusable widget.\n */\n setDefaultState() {\n const firstItem = this.listBehavior.navigationBehavior.peekFirst({\n items: this.inputs.items(),\n });\n\n if (firstItem) {\n this.inputs.activeItem.set(firstItem);\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 {SignalLike, computed} from '../behaviors/signal-like/signal-like';\nimport {ListItem} from '../behaviors/list/list';\nimport type {ToolbarPattern} from './toolbar';\nimport {ToolbarWidgetGroupPattern} from './toolbar-widget-group';\n\n/** Represents the required inputs for a toolbar widget in a toolbar. */\nexport interface ToolbarWidgetInputs<V> extends Omit<\n ListItem<V>,\n 'searchTerm' | 'index' | 'selectable'\n> {\n /** A reference to the parent toolbar. */\n toolbar: SignalLike<ToolbarPattern<V>>;\n\n /** A reference to the parent widget group. */\n group: SignalLike<ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined>;\n}\n\nexport class ToolbarWidgetPattern<V> implements ListItem<V> {\n /** A unique identifier for the widget. */\n readonly id = () => this.inputs.id();\n\n /** The html element that should receive focus. */\n readonly element = () => this.inputs.element();\n\n /** Whether the widget is disabled. */\n readonly disabled = () => this.inputs.disabled() || this.group()?.disabled() || false;\n\n /** A reference to the parent toolbar. */\n readonly group = () => this.inputs.group();\n\n /** A reference to the toolbar containing the widget. */\n readonly toolbar = () => this.inputs.toolbar();\n\n /** The tabindex of the widget. */\n readonly tabIndex = computed(() => this.toolbar().listBehavior.getItemTabindex(this));\n\n /** The text used by the typeahead search. */\n readonly searchTerm = () => ''; // Unused because toolbar does not support typeahead.\n\n /** The value associated with the widget. */\n readonly value = () => this.inputs.value();\n\n /** Whether the widget is selectable. */\n readonly selectable = () => true; // Unused because toolbar does not support selection.\n\n /** The position of the widget within the toolbar. */\n readonly index = computed(() => this.toolbar().inputs.items().indexOf(this) ?? -1);\n\n /** Whether the widget is selected (only relevant in a selection group). */\n readonly selected = computed(() =>\n this.toolbar().listBehavior.inputs.values().includes(this.value()),\n );\n\n /** Whether the widget is currently the active one (focused). */\n readonly active: SignalLike<boolean> = computed(() => this.toolbar().activeItem() === this);\n\n constructor(readonly inputs: ToolbarWidgetInputs<V>) {}\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 {ListItem} from '../behaviors/list/list';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport type {ToolbarPattern} from './toolbar';\n\n/** Represents the required inputs for a toolbar widget group. */\nexport interface ToolbarWidgetGroupInputs<T extends ListItem<V>, V> {\n /** A reference to the parent toolbar. */\n toolbar: SignalLike<ToolbarPattern<V> | undefined>;\n\n /** Whether the widget group is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The list of items within the widget group. */\n items: SignalLike<T[]>;\n\n /** Whether the group allows multiple widgets to be selected. */\n multi: SignalLike<boolean>;\n}\n\n/** A group of widgets within a toolbar that provides nested navigation. */\nexport class ToolbarWidgetGroupPattern<T extends ListItem<V>, V> {\n /** Whether the widget is disabled. */\n readonly disabled = () => this.inputs.disabled();\n\n /** A reference to the parent toolbar. */\n readonly toolbar = () => this.inputs.toolbar();\n\n /** Whether the group allows multiple widgets to be selected. */\n readonly multi = () => this.inputs.multi();\n\n readonly searchTerm = () => ''; // Unused because toolbar does not support typeahead.\n readonly value = () => '' as V; // Unused because toolbar does not support selection.\n readonly selectable = () => true; // Unused because toolbar does not support selection.\n readonly element = () => undefined; // Unused because toolbar does not focus the group element.\n\n constructor(readonly inputs: ToolbarWidgetGroupInputs<T, V>) {}\n}\n"],"names":["ToolbarPattern","inputs","listBehavior","orientation","softDisabled","disabled","computed","tabIndex","activeDescendant","activeItem","_prevKey","textDirection","_nextKey","_altPrevKey","_altNextKey","_keydown","manager","KeyboardEventManager","on","next","ignoreRepeat","prev","_groupNext","_groupPrev","select","first","last","currGroup","group","nextGroup","navigationBehavior","peekNext","goto","peekFirst","items","peekPrev","peekLast","_goto","e","item","getItem","target","multi","forEach","i","deselect","toggle","constructor","List","focusMode","selectionMode","typeaheadDelay","onKeydown","event","handle","onPointerdown","preventDefault","onClick","pointerType","setDefaultState","firstItem","set","ToolbarWidgetPattern","id","element","toolbar","getItemTabindex","searchTerm","value","selectable","index","indexOf","selected","values","includes","active","ToolbarWidgetGroupPattern","undefined"],"mappings":";;;MAuBaA,cAAc,CAAA;EAqIJC,MAAA;EAnIZC,YAAY;EAGZC,WAAW;EAGXC,YAAY;EAGZC,QAAQ,GAAGC,QAAQ,CAAC,MAAM,IAAI,CAACJ,YAAY,CAACG,QAAQ,EAAE,CAAC;EAGvDE,QAAQ,GAAGD,QAAQ,CAAC,MAAM,IAAI,CAACJ,YAAY,CAACK,QAAQ,EAAE,CAAC;EAGvDC,gBAAgB,GAAGF,QAAQ,CAAC,MAAM,IAAI,CAACJ,YAAY,CAACM,gBAAgB,EAAE,CAAC;EAGvEC,UAAU,GAAGA,MAAM,IAAI,CAACP,YAAY,CAACD,MAAM,CAACQ,UAAU,EAAE;EAGhDC,QAAQ,GAAGJ,QAAQ,CAAC,MAAK;IACxC,IAAI,IAAI,CAACL,MAAM,CAACE,WAAW,EAAE,KAAK,UAAU,EAAE;AAC5C,MAAA,OAAO,SAAS;AAClB;AACA,IAAA,OAAO,IAAI,CAACF,MAAM,CAACU,aAAa,EAAE,KAAK,KAAK,GAAG,YAAY,GAAG,WAAW;AAC3E,GAAC,CAAC;EAGeC,QAAQ,GAAGN,QAAQ,CAAC,MAAK;IACxC,IAAI,IAAI,CAACL,MAAM,CAACE,WAAW,EAAE,KAAK,UAAU,EAAE;AAC5C,MAAA,OAAO,WAAW;AACpB;AACA,IAAA,OAAO,IAAI,CAACF,MAAM,CAACU,aAAa,EAAE,KAAK,KAAK,GAAG,WAAW,GAAG,YAAY;AAC3E,GAAC,CAAC;EAGeE,WAAW,GAAGP,QAAQ,CAAC,MAAK;IAC3C,IAAI,IAAI,CAACL,MAAM,CAACE,WAAW,EAAE,KAAK,UAAU,EAAE;AAC5C,MAAA,OAAO,IAAI,CAACF,MAAM,CAACU,aAAa,EAAE,KAAK,KAAK,GAAG,YAAY,GAAG,WAAW;AAC3E;AACA,IAAA,OAAO,SAAS;AAClB,GAAC,CAAC;EAGeG,WAAW,GAAGR,QAAQ,CAAC,MAAK;IAC3C,IAAI,IAAI,CAACL,MAAM,CAACE,WAAW,EAAE,KAAK,UAAU,EAAE;AAC5C,MAAA,OAAO,IAAI,CAACF,MAAM,CAACU,aAAa,EAAE,KAAK,KAAK,GAAG,WAAW,GAAG,YAAY;AAC3E;AACA,IAAA,OAAO,WAAW;AACpB,GAAC,CAAC;EAGeI,QAAQ,GAAGT,QAAQ,CAAC,MAAK;AACxC,IAAA,MAAMU,OAAO,GAAG,IAAIC,oBAAoB,EAAE;AAE1C,IAAA,OAAOD,OAAO,CACXE,EAAE,CAAC,IAAI,CAACN,QAAQ,EAAE,MAAM,IAAI,CAACV,YAAY,CAACiB,IAAI,EAAE,EAAE;AAACC,MAAAA,YAAY,EAAE;KAAM,CAAA,CACvEF,EAAE,CAAC,IAAI,CAACR,QAAQ,EAAE,MAAM,IAAI,CAACR,YAAY,CAACmB,IAAI,EAAE,EAAE;AAACD,MAAAA,YAAY,EAAE;KAAM,CAAA,CACvEF,EAAE,CAAC,IAAI,CAACJ,WAAW,EAAE,MAAM,IAAI,CAACQ,UAAU,EAAE,EAAE;AAACF,MAAAA,YAAY,EAAE;KAAM,CAAA,CACnEF,EAAE,CAAC,IAAI,CAACL,WAAW,EAAE,MAAM,IAAI,CAACU,UAAU,EAAE,EAAE;AAACH,MAAAA,YAAY,EAAE;KAAM,CAAA,CACnEF,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,CAACM,MAAM,EAAE,CAAA,CAC3BN,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAACM,MAAM,EAAE,CAAA,CAC/BN,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAAChB,YAAY,CAACuB,KAAK,EAAE,CAAA,CAC1CP,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,CAAChB,YAAY,CAACwB,IAAI,EAAE,CAAC;AAC9C,GAAC,CAAC;AAGMJ,EAAAA,UAAUA,GAAA;AAChB,IAAA,MAAMK,SAAS,GAAG,IAAI,CAAC1B,MAAM,CAACQ,UAAU,EAAE,EAAEmB,KAAK,EAAE;AACnD,IAAA,MAAMC,SAAS,GAAG,IAAI,CAAC3B,YAAY,CAAC4B,kBAAkB,CAACC,QAAQ,EAAE,EAAEH,KAAK,EAAE;IAE1E,IAAI,CAACD,SAAS,EAAE;AACd,MAAA;AACF;IAEA,IAAIA,SAAS,KAAKE,SAAS,EAAE;AAC3B,MAAA,IAAI,CAAC3B,YAAY,CAAC8B,IAAI,CACpB,IAAI,CAAC9B,YAAY,CAAC4B,kBAAkB,CAACG,SAAS,CAAC;AAC7CC,QAAAA,KAAK,EAAEP,SAAS,CAAC1B,MAAM,CAACiC,KAAK;AAC9B,OAAA,CAAE,CACJ;AAED,MAAA;AACF;AAEA,IAAA,IAAI,CAAChC,YAAY,CAACiB,IAAI,EAAE;AAC1B;AAGQI,EAAAA,UAAUA,GAAA;AAChB,IAAA,MAAMI,SAAS,GAAG,IAAI,CAAC1B,MAAM,CAACQ,UAAU,EAAE,EAAEmB,KAAK,EAAE;AACnD,IAAA,MAAMC,SAAS,GAAG,IAAI,CAAC3B,YAAY,CAAC4B,kBAAkB,CAACK,QAAQ,EAAE,EAAEP,KAAK,EAAE;IAE1E,IAAI,CAACD,SAAS,EAAE;AACd,MAAA;AACF;IAEA,IAAIA,SAAS,KAAKE,SAAS,EAAE;AAC3B,MAAA,IAAI,CAAC3B,YAAY,CAAC8B,IAAI,CACpB,IAAI,CAAC9B,YAAY,CAAC4B,kBAAkB,CAACM,QAAQ,CAAC;AAC5CF,QAAAA,KAAK,EAAEP,SAAS,CAAC1B,MAAM,CAACiC,KAAK;AAC9B,OAAA,CAAE,CACJ;AAED,MAAA;AACF;AAEA,IAAA,IAAI,CAAChC,YAAY,CAACmB,IAAI,EAAE;AAC1B;EAGQgB,KAAKA,CAACC,CAAa,EAAA;IACzB,MAAMC,IAAI,GAAG,IAAI,CAACtC,MAAM,CAACuC,OAAO,CAACF,CAAC,CAACG,MAAiB,CAAC;AAErD,IAAA,IAAIF,IAAI,EAAE;AACR,MAAA,IAAI,CAACrC,YAAY,CAAC8B,IAAI,CAACO,IAAI,CAAC;MAC5B,IAAI,CAACf,MAAM,EAAE;AACf;AACF;AAEAA,EAAAA,MAAMA,GAAA;AACJ,IAAA,MAAMI,KAAK,GAAG,IAAI,CAAC3B,MAAM,CAACQ,UAAU,EAAE,EAAEmB,KAAK,EAAE;AAE/C,IAAA,IAAI,CAACA,KAAK,EAAEc,KAAK,EAAE,EAAE;AACnBd,MAAAA,KAAK,EAAE3B,MAAM,CAACiC,KAAK,EAAE,CAACS,OAAO,CAACC,CAAC,IAAI,IAAI,CAAC1C,YAAY,CAAC2C,QAAQ,CAACD,CAAC,CAAC,CAAC;AACnE;AAEA,IAAA,IAAI,CAAC1C,YAAY,CAAC4C,MAAM,EAAE;AAC5B;EAEAC,WAAAA,CAAqB9C,MAAwB,EAAA;IAAxB,IAAM,CAAAA,MAAA,GAANA,MAAM;AACzB,IAAA,IAAI,CAACE,WAAW,GAAGF,MAAM,CAACE,WAAW;AACrC,IAAA,IAAI,CAACC,YAAY,GAAGH,MAAM,CAACG,YAAY;AAEvC,IAAA,IAAI,CAACF,YAAY,GAAG,IAAI8C,IAAI,CAAC;AAC3B,MAAA,GAAG/C,MAAM;MACTyC,KAAK,EAAEA,MAAM,IAAI;MACjBO,SAAS,EAAEA,MAAM,QAAQ;MACzBC,aAAa,EAAEA,MAAM,UAAU;MAC/BC,cAAc,EAAEA,MAAM;AACvB,KAAA,CAAC;AACJ;EAGAC,SAASA,CAACC,KAAoB,EAAA;AAC5B,IAAA,IAAI,IAAI,CAAChD,QAAQ,EAAE,EAAE;IACrB,IAAI,CAACU,QAAQ,EAAE,CAACuC,MAAM,CAACD,KAAK,CAAC;AAC/B;EAEAE,aAAaA,CAACF,KAAmB,EAAA;IAC/BA,KAAK,CAACG,cAAc,EAAE;AACxB;EAGAC,OAAOA,CAACJ,KAAiB,EAAA;IACvB,IAAI,IAAI,CAAChD,QAAQ,EAAE,IAAKgD,KAAsB,CAACK,WAAW,KAAK,EAAE,EAAE;AACnE,IAAA,IAAI,CAACrB,KAAK,CAACgB,KAAK,CAAC;AACnB;AAQAM,EAAAA,eAAeA,GAAA;IACb,MAAMC,SAAS,GAAG,IAAI,CAAC1D,YAAY,CAAC4B,kBAAkB,CAACG,SAAS,CAAC;AAC/DC,MAAAA,KAAK,EAAE,IAAI,CAACjC,MAAM,CAACiC,KAAK;AACzB,KAAA,CAAC;AAEF,IAAA,IAAI0B,SAAS,EAAE;MACb,IAAI,CAAC3D,MAAM,CAACQ,UAAU,CAACoD,GAAG,CAACD,SAAS,CAAC;AACvC;AACF;AACD;;MC/KYE,oBAAoB,CAAA;EAuCV7D,MAAA;EArCZ8D,EAAE,GAAGA,MAAM,IAAI,CAAC9D,MAAM,CAAC8D,EAAE,EAAE;EAG3BC,OAAO,GAAGA,MAAM,IAAI,CAAC/D,MAAM,CAAC+D,OAAO,EAAE;EAGrC3D,QAAQ,GAAGA,MAAM,IAAI,CAACJ,MAAM,CAACI,QAAQ,EAAE,IAAI,IAAI,CAACuB,KAAK,EAAE,EAAEvB,QAAQ,EAAE,IAAI,KAAK;EAG5EuB,KAAK,GAAGA,MAAM,IAAI,CAAC3B,MAAM,CAAC2B,KAAK,EAAE;EAGjCqC,OAAO,GAAGA,MAAM,IAAI,CAAChE,MAAM,CAACgE,OAAO,EAAE;AAGrC1D,EAAAA,QAAQ,GAAGD,QAAQ,CAAC,MAAM,IAAI,CAAC2D,OAAO,EAAE,CAAC/D,YAAY,CAACgE,eAAe,CAAC,IAAI,CAAC,CAAC;EAG5EC,UAAU,GAAGA,MAAM,EAAE;EAGrBC,KAAK,GAAGA,MAAM,IAAI,CAACnE,MAAM,CAACmE,KAAK,EAAE;EAGjCC,UAAU,GAAGA,MAAM,IAAI;EAGvBC,KAAK,GAAGhE,QAAQ,CAAC,MAAM,IAAI,CAAC2D,OAAO,EAAE,CAAChE,MAAM,CAACiC,KAAK,EAAE,CAACqC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAGzEC,QAAQ,GAAGlE,QAAQ,CAAC,MAC3B,IAAI,CAAC2D,OAAO,EAAE,CAAC/D,YAAY,CAACD,MAAM,CAACwE,MAAM,EAAE,CAACC,QAAQ,CAAC,IAAI,CAACN,KAAK,EAAE,CAAC,CACnE;AAGQO,EAAAA,MAAM,GAAwBrE,QAAQ,CAAC,MAAM,IAAI,CAAC2D,OAAO,EAAE,CAACxD,UAAU,EAAE,KAAK,IAAI,CAAC;EAE3FsC,WAAAA,CAAqB9C,MAA8B,EAAA;IAA9B,IAAM,CAAAA,MAAA,GAANA,MAAM;AAA2B;AACvD;;MCrCY2E,yBAAyB,CAAA;EAef3E,MAAA;EAbZI,QAAQ,GAAGA,MAAM,IAAI,CAACJ,MAAM,CAACI,QAAQ,EAAE;EAGvC4D,OAAO,GAAGA,MAAM,IAAI,CAAChE,MAAM,CAACgE,OAAO,EAAE;EAGrCvB,KAAK,GAAGA,MAAM,IAAI,CAACzC,MAAM,CAACyC,KAAK,EAAE;EAEjCyB,UAAU,GAAGA,MAAM,EAAE;EACrBC,KAAK,GAAGA,MAAM,EAAO;EACrBC,UAAU,GAAGA,MAAM,IAAI;EACvBL,OAAO,GAAGA,MAAMa,SAAS;EAElC9B,WAAAA,CAAqB9C,MAAsC,EAAA;IAAtC,IAAM,CAAAA,MAAA,GAANA,MAAM;AAAmC;AAC/D;;;;"}
{"version":3,"file":"_toolbar-widget-group-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/toolbar/toolbar.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/toolbar/toolbar-widget.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/private/toolbar/toolbar-widget-group.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 {computed, SignalLike} from '../behaviors/signal-like/signal-like';\nimport {KeyboardEventManager} from '../behaviors/event-manager';\nimport {List, ListInputs} from '../behaviors/list/list';\nimport {ToolbarWidgetPattern} from './toolbar-widget';\n\n/** Represents the required inputs for a toolbar. */\nexport type ToolbarInputs<V> = Omit<\n ListInputs<ToolbarWidgetPattern<V>, V>,\n 'multi' | 'typeaheadDelay' | 'selectionMode' | 'focusMode'\n> & {\n /** A function that returns the toolbar item associated with a given element. */\n getItem: (e: Element) => ToolbarWidgetPattern<V> | undefined;\n};\n\n/** Controls the state of a toolbar. */\nexport class ToolbarPattern<V> {\n /** The list behavior for the toolbar. */\n readonly listBehavior: List<ToolbarWidgetPattern<V>, V>;\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation: SignalLike<'vertical' | 'horizontal'>;\n\n /** Whether disabled items in the group should be focusable. */\n readonly softDisabled: SignalLike<boolean>;\n\n /** Whether the toolbar is disabled. */\n readonly disabled = computed(() => this.listBehavior.disabled());\n\n /** The tab index of the toolbar (if using activedescendant). */\n readonly tabIndex = computed(() => this.listBehavior.tabIndex());\n\n /** The id of the current active widget (if using activedescendant). */\n readonly activeDescendant = computed(() => this.listBehavior.activeDescendant());\n\n /** The currently active item in the toolbar. */\n readonly activeItem = () => this.listBehavior.inputs.activeItem();\n\n /** The key used to navigate to the previous widget. */\n private readonly _prevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowUp';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n });\n\n /** The key used to navigate to the next widget. */\n private readonly _nextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return 'ArrowDown';\n }\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n });\n\n /** The alternate key used to navigate to the previous widget. */\n private readonly _altPrevKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n }\n return 'ArrowUp';\n });\n\n /** The alternate key used to navigate to the next widget. */\n private readonly _altNextKey = computed(() => {\n if (this.inputs.orientation() === 'vertical') {\n return this.inputs.textDirection() === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n }\n return 'ArrowDown';\n });\n\n /** The keydown event manager for the toolbar. */\n private readonly _keydown = computed(() => {\n const manager = new KeyboardEventManager();\n\n return manager\n .on(this._nextKey, () => this.listBehavior.next(), {ignoreRepeat: false})\n .on(this._prevKey, () => this.listBehavior.prev(), {ignoreRepeat: false})\n .on(this._altNextKey, () => this._groupNext(), {ignoreRepeat: false})\n .on(this._altPrevKey, () => this._groupPrev(), {ignoreRepeat: false})\n .on(' ', () => this.select())\n .on('Enter', () => this.select())\n .on('Home', () => this.listBehavior.first())\n .on('End', () => this.listBehavior.last());\n });\n\n /** Navigates to the next widget in a widget group. */\n private _groupNext() {\n const currGroup = this.inputs.activeItem()?.group();\n const nextGroup = this.listBehavior.navigationBehavior.peekNext()?.group();\n\n if (!currGroup) {\n return;\n }\n\n if (currGroup !== nextGroup) {\n this.listBehavior.goto(\n this.listBehavior.navigationBehavior.peekFirst({\n items: currGroup.inputs.items(),\n })!,\n );\n\n return;\n }\n\n this.listBehavior.next();\n }\n\n /** Navigates to the previous widget in a widget group. */\n private _groupPrev() {\n const currGroup = this.inputs.activeItem()?.group();\n const nextGroup = this.listBehavior.navigationBehavior.peekPrev()?.group();\n\n if (!currGroup) {\n return;\n }\n\n if (currGroup !== nextGroup) {\n this.listBehavior.goto(\n this.listBehavior.navigationBehavior.peekLast({\n items: currGroup.inputs.items(),\n })!,\n );\n\n return;\n }\n\n this.listBehavior.prev();\n }\n\n /** Navigates to the widget targeted by a pointer event. */\n private _goto(e: MouseEvent) {\n const item = this.inputs.getItem(e.target as Element);\n\n if (item) {\n this.listBehavior.goto(item);\n this.select();\n }\n }\n\n select() {\n const group = this.inputs.activeItem()?.group();\n\n if (!group?.multi()) {\n group?.inputs.items().forEach(i => this.listBehavior.deselect(i));\n }\n\n this.listBehavior.toggle();\n }\n\n constructor(readonly inputs: ToolbarInputs<V>) {\n this.orientation = inputs.orientation;\n this.softDisabled = inputs.softDisabled;\n\n this.listBehavior = new List({\n ...inputs,\n multi: () => true,\n focusMode: () => 'roving',\n selectionMode: () => 'explicit',\n typeaheadDelay: () => 0, // Toolbar widgets do not support typeahead.\n });\n }\n\n /** Handles keydown events for the toolbar. */\n onKeydown(event: KeyboardEvent) {\n if (this.disabled()) return;\n this._keydown().handle(event);\n }\n\n onPointerdown(event: PointerEvent) {\n event.preventDefault();\n }\n\n /** Handles click events for the toolbar. */\n onClick(event: MouseEvent) {\n if (this.disabled() || (event as PointerEvent).pointerType === '') return;\n this._goto(event);\n }\n\n /**\n * Sets the toolbar to its default initial state.\n *\n * Sets the active index to the selected widget if one exists and is focusable.\n * Otherwise, sets the active index to the first focusable widget.\n */\n setDefaultState() {\n const firstItem = this.listBehavior.navigationBehavior.peekFirst({\n items: this.inputs.items(),\n });\n\n if (firstItem) {\n this.inputs.activeItem.set(firstItem);\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 {SignalLike, computed} from '../behaviors/signal-like/signal-like';\nimport {ListItem} from '../behaviors/list/list';\nimport type {ToolbarPattern} from './toolbar';\nimport {ToolbarWidgetGroupPattern} from './toolbar-widget-group';\n\n/** Represents the required inputs for a toolbar widget in a toolbar. */\nexport interface ToolbarWidgetInputs<V> extends Omit<\n ListItem<V>,\n 'searchTerm' | 'index' | 'selectable'\n> {\n /** A reference to the parent toolbar. */\n toolbar: SignalLike<ToolbarPattern<V>>;\n\n /** A reference to the parent widget group. */\n group: SignalLike<ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined>;\n}\n\nexport class ToolbarWidgetPattern<V> implements ListItem<V> {\n /** A unique identifier for the widget. */\n readonly id = () => this.inputs.id();\n\n /** The html element that should receive focus. */\n readonly element = () => this.inputs.element();\n\n /** Whether the widget is disabled. */\n readonly disabled = () => this.inputs.disabled() || this.group()?.disabled() || false;\n\n /** A reference to the parent toolbar. */\n readonly group = () => this.inputs.group();\n\n /** A reference to the toolbar containing the widget. */\n readonly toolbar = () => this.inputs.toolbar();\n\n /** The tabindex of the widget. */\n readonly tabIndex = computed(() => this.toolbar().listBehavior.getItemTabindex(this));\n\n /** The text used by the typeahead search. */\n readonly searchTerm = () => ''; // Unused because toolbar does not support typeahead.\n\n /** The value associated with the widget. */\n readonly value = () => this.inputs.value();\n\n /** Whether the widget is selectable. */\n readonly selectable = () => true; // Unused because toolbar does not support selection.\n\n /** The position of the widget within the toolbar. */\n readonly index = computed(() => this.toolbar().inputs.items().indexOf(this) ?? -1);\n\n /** Whether the widget is selected (only relevant in a selection group). */\n readonly selected = computed(() =>\n this.toolbar().listBehavior.inputs.values().includes(this.value()),\n );\n\n /** Whether the widget is currently the active one (focused). */\n readonly active: SignalLike<boolean> = computed(() => this.toolbar().activeItem() === this);\n\n constructor(readonly inputs: ToolbarWidgetInputs<V>) {}\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 {ListItem} from '../behaviors/list/list';\nimport {SignalLike} from '../behaviors/signal-like/signal-like';\nimport type {ToolbarPattern} from './toolbar';\n\n/** Represents the required inputs for a toolbar widget group. */\nexport interface ToolbarWidgetGroupInputs<T extends ListItem<V>, V> {\n /** A reference to the parent toolbar. */\n toolbar: SignalLike<ToolbarPattern<V> | undefined>;\n\n /** Whether the widget group is disabled. */\n disabled: SignalLike<boolean>;\n\n /** The list of items within the widget group. */\n items: SignalLike<T[]>;\n\n /** Whether the group allows multiple widgets to be selected. */\n multi: SignalLike<boolean>;\n}\n\n/** A group of widgets within a toolbar that provides nested navigation. */\nexport class ToolbarWidgetGroupPattern<T extends ListItem<V>, V> {\n /** Whether the widget is disabled. */\n readonly disabled = () => this.inputs.disabled();\n\n /** A reference to the parent toolbar. */\n readonly toolbar = () => this.inputs.toolbar();\n\n /** Whether the group allows multiple widgets to be selected. */\n readonly multi = () => this.inputs.multi();\n\n readonly searchTerm = () => ''; // Unused because toolbar does not support typeahead.\n readonly value = () => '' as V; // Unused because toolbar does not support selection.\n readonly selectable = () => true; // Unused because toolbar does not support selection.\n readonly element = () => undefined; // Unused because toolbar does not focus the group element.\n\n constructor(readonly inputs: ToolbarWidgetGroupInputs<T, V>) {}\n}\n"],"names":["ToolbarPattern","inputs","listBehavior","orientation","softDisabled","disabled","computed","tabIndex","activeDescendant","activeItem","_prevKey","textDirection","_nextKey","_altPrevKey","_altNextKey","_keydown","manager","KeyboardEventManager","on","next","ignoreRepeat","prev","_groupNext","_groupPrev","select","first","last","currGroup","group","nextGroup","navigationBehavior","peekNext","goto","peekFirst","items","peekPrev","peekLast","_goto","e","item","getItem","target","multi","forEach","i","deselect","toggle","constructor","List","focusMode","selectionMode","typeaheadDelay","onKeydown","event","handle","onPointerdown","preventDefault","onClick","pointerType","setDefaultState","firstItem","set","ToolbarWidgetPattern","id","element","toolbar","getItemTabindex","searchTerm","value","selectable","index","indexOf","selected","values","includes","active","ToolbarWidgetGroupPattern","undefined"],"mappings":"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"}

@@ -1,1 +0,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-trigger.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-group.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, 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","ngDevMode","debugName","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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"}
{"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","ngDevMode","debugName","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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"}
import { Version } from '@angular/core';
const VERSION = new Version('21.2.3');
const VERSION = new Version('21.2.4');
export { VERSION };
//# sourceMappingURL=aria.mjs.map

@@ -1,1 +0,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('21.2.3');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}
{"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('21.2.4');\n"],"names":["VERSION","Version"],"mappings":";;MAWaA,OAAO,GAAG,IAAIC,OAAO,CAAC,mBAAmB;;;;"}

@@ -1,1 +0,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 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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"}
{"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,1 +0,1 @@

{"version":3,"file":"grid.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid-tokens.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid-cell-widget.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid-cell.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid-row.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 {GridCell} from './grid-cell';\nimport type {GridRow} from './grid-row';\n\n/** Token used to expose a `GridCell`. */\nexport const GRID_CELL = new InjectionToken<GridCell>('GRID_CELL');\n\n/** Token used to expose a `GridRow`. */\nexport const GRID_ROW = new InjectionToken<GridRow>('GRID_ROW');\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 contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n Signal,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {GridPattern, GridCellPattern} from '../private';\nimport {GRID_ROW} from './grid-tokens';\n\n/**\n * The container for a grid. It provides keyboard navigation and focus management for the grid's\n * rows and cells. It manages the overall behavior of the grid, including focus\n * wrapping, selection, and disabled states.\n *\n * ```html\n * <table ngGrid [multi]=\"true\" [enableSelection]=\"true\">\n * @for (row of gridData; track row) {\n * <tr ngGridRow>\n * @for (cell of row; track cell) {\n * <td ngGridCell [disabled]=\"cell.disabled\">\n * {{cell.value}}\n * </td>\n * }\n * </tr>\n * }\n * </table>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */\n@Directive({\n selector: '[ngGrid]',\n exportAs: 'ngGrid',\n host: {\n 'role': 'grid',\n '[tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-multiselectable]': '_pattern.multiSelectable()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(pointerup)': '_pattern.onPointerup($event)',\n '(focusin)': '_pattern.onFocusIn($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n})\nexport class Grid {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The rows that make up the grid. */\n private readonly _rows = contentChildren(GRID_ROW, {descendants: true});\n\n /** The UI patterns for the rows in the grid. */\n private readonly _rowPatterns: Signal<any[]> = computed(() => this._rows().map(r => r._pattern));\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether selection is enabled for the grid. */\n readonly enableSelection = input(false, {transform: booleanAttribute});\n\n /** Whether the grid is disabled. */\n readonly disabled = input(false, {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 /**\n * The focus strategy used by the grid.\n * - `roving`: Focus is moved to the active cell using `tabindex`.\n * - `activedescendant`: Focus remains on the grid container, and `aria-activedescendant` is used to indicate the active cell.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The wrapping behavior for keyboard navigation along the row axis.\n * - `continuous`: Navigation wraps from the last row to the first, and vice-versa.\n * - `loop`: Navigation wraps within the current row.\n * - `nowrap`: Navigation stops at the first/last item in the row.\n */\n readonly rowWrap = input<'continuous' | 'loop' | 'nowrap'>('loop');\n\n /**\n * The wrapping behavior for keyboard navigation along the column axis.\n * - `continuous`: Navigation wraps from the last column to the first, and vice-versa.\n * - `loop`: Navigation wraps within the current column.\n * - `nowrap`: Navigation stops at the first/last item in the column.\n */\n readonly colWrap = input<'continuous' | 'loop' | 'nowrap'>('loop');\n\n /** Whether multiple cells in the grid can be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /**\n * The selection strategy used by the grid.\n * - `follow`: The focused cell is automatically selected.\n * - `explicit`: Cells are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** Whether enable range selections (with modifier keys or dragging). */\n readonly enableRangeSelection = input(false, {transform: booleanAttribute});\n\n /** The UI pattern for the grid. */\n readonly _pattern = new GridPattern({\n ...this,\n rows: this._rowPatterns,\n getCell: e => this._getCell(e),\n element: () => this.element,\n });\n\n constructor() {\n const ngZone = inject(NgZone);\n\n // Since `pointermove` fires on each pixel, we need to\n // be careful not to hit the zone unless it's necessary.\n ngZone.runOutsideAngular(() => {\n this.element.addEventListener(\n 'pointermove',\n event => {\n if (this._pattern.acceptsPointerMove()) {\n ngZone.run(() => this._pattern.onPointermove(event));\n }\n },\n {passive: true},\n );\n });\n\n afterRenderEffect(() => this._pattern.setDefaultStateEffect());\n afterRenderEffect(() => this._pattern.resetStateEffect());\n afterRenderEffect(() => this._pattern.resetFocusEffect());\n afterRenderEffect(() => this._pattern.restoreFocusEffect());\n afterRenderEffect(() => this._pattern.focusEffect());\n }\n\n /** Gets the cell pattern for a given element. */\n private _getCell(element: Element | null | undefined): GridCellPattern | undefined {\n let target = element;\n\n while (target) {\n for (const row of this._rowPatterns()) {\n for (const cell of row.inputs.cells()) {\n if (cell.element() === target) {\n return cell;\n }\n }\n }\n\n target = target.parentElement?.closest('[ngGridCell]');\n }\n\n return undefined;\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n Signal,\n} from '@angular/core';\nimport {GridCellWidgetPattern} from '../private';\nimport {GRID_CELL} from './grid-tokens';\n\n/**\n * Represents an interactive element inside a `GridCell`. It allows for pausing grid navigation to\n * interact with the widget.\n *\n * When the user interacts with the widget (e.g., by typing in an input or opening a menu), grid\n * navigation is temporarily suspended to allow the widget to handle keyboard\n * events.\n *\n * ```html\n * <td ngGridCell>\n * <button ngGridCellWidget>Click Me</button>\n * </td>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */\n@Directive({\n selector: '[ngGridCellWidget]',\n exportAs: 'ngGridCellWidget',\n host: {\n '[attr.data-active]': 'active()',\n '[attr.data-active-control]': 'isActivated() ? \"widget\" : \"cell\"',\n '[tabindex]': '_tabIndex()',\n '[attr.id]': 'id()',\n },\n})\nexport class GridCellWidget {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The parent cell. */\n private readonly _cell = inject(GRID_CELL);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-grid-cell-widget-', true));\n\n /** The type of widget, which determines how it is activated. */\n readonly widgetType = input<'simple' | 'complex' | 'editable'>('simple');\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The target that will receive focus instead of the widget. */\n readonly focusTarget = input<ElementRef | HTMLElement | undefined>();\n\n /** Emits when the widget is activated. */\n readonly activated = output<KeyboardEvent | FocusEvent | undefined>();\n\n /** Emits when the widget is deactivated. */\n readonly deactivated = output<KeyboardEvent | FocusEvent | undefined>();\n\n /** The tabindex override. */\n readonly tabindex = input<number | undefined>();\n\n /**\n * The tabindex value set to the element.\n * If a focus target exists then return -1. Unless an override.\n */\n protected readonly _tabIndex: Signal<number> = computed(\n () => this.tabindex() ?? (this.focusTarget() ? -1 : this._pattern.tabIndex()),\n );\n\n /** The UI pattern for the grid cell widget. */\n readonly _pattern = new GridCellWidgetPattern({\n ...this,\n element: () => this.element,\n cell: () => this._cell._pattern,\n focusTarget: computed(() => {\n const target = this.focusTarget();\n return target instanceof ElementRef ? target.nativeElement : target;\n }),\n });\n\n /** Whether the widget is activated. */\n get isActivated(): Signal<boolean> {\n return computed(() => this._pattern.isActivated());\n }\n\n constructor() {\n afterRenderEffect(() => {\n const activateEvent = this._pattern.lastActivateEvent();\n if (activateEvent) {\n this.activated.emit(activateEvent);\n }\n });\n\n afterRenderEffect(() => {\n const deactivateEvent = this._pattern.lastDeactivateEvent();\n if (deactivateEvent) {\n this.deactivated.emit(deactivateEvent);\n }\n });\n }\n\n /** Activates the widget. */\n activate(): void {\n this._pattern.activate();\n }\n\n /** Deactivates the widget. */\n deactivate(): void {\n this._pattern.deactivate();\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n Signal,\n Renderer2,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {GridCellPattern} from '../private';\nimport {GridCellWidget} from './grid-cell-widget';\nimport {GRID_CELL, GRID_ROW} from './grid-tokens';\n\n/**\n * Represents a cell within a grid row. It is the primary focusable element\n * within the grid. It can be disabled and can have its selection state managed\n * through the `selected` input.\n *\n * ```html\n * <td ngGridCell [disabled]=\"isDisabled\" [(selected)]=\"isSelected\">\n * Cell Content\n * </td>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */\n@Directive({\n selector: '[ngGridCell]',\n exportAs: 'ngGridCell',\n providers: [{provide: GRID_CELL, useExisting: GridCell}],\n})\nexport class GridCell {\n private readonly _elementRef = inject(ElementRef);\n private readonly _renderer = inject(Renderer2);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the cell is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The widgets contained within this cell, if any. */\n private readonly _widgets = contentChildren(GridCellWidget, {descendants: true});\n\n /** The UI pattern for the widget in this cell. */\n private readonly _widgetPatterns: Signal<any[]> = computed(() =>\n this._widgets().map(w => w._pattern),\n );\n\n /** The parent row. */\n private readonly _row = inject(GRID_ROW);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** A unique identifier for the cell. */\n readonly id = input(inject(_IdGenerator).getId('ng-grid-cell-', true));\n\n /** The ARIA role for the cell. */\n readonly role = input<'gridcell' | 'columnheader' | 'rowheader'>('gridcell');\n\n /** The number of rows the cell should span. */\n readonly rowSpan = input<number>(1);\n\n /** The number of columns the cell should span. */\n readonly colSpan = input<number>(1);\n\n /** The index of this cell's row within the grid. */\n readonly rowIndex = input<number>();\n\n /** The index of this cell's column within the grid. */\n readonly colIndex = input<number>();\n\n /** Whether the cell is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the cell is selected. */\n readonly selected = model<boolean>(false);\n\n /** Whether the cell is selectable. */\n readonly selectable = input<boolean>(true);\n\n /** Orientation of the widgets in the cell. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether widgets navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The tabindex override. */\n readonly tabindex = input<number | undefined>();\n\n /**\n * The tabindex value set to the element.\n * If a focus target exists then return -1. Unless an override.\n */\n protected readonly _tabIndex: Signal<number> = computed(\n () => this.tabindex() ?? this._pattern.tabIndex(),\n );\n\n /** The UI pattern for the grid cell. */\n readonly _pattern = new GridCellPattern({\n ...this,\n grid: this._row._gridPattern,\n row: () => this._row._pattern,\n widgets: this._widgetPatterns,\n getWidget: e => this._getWidget(e),\n element: () => this.element,\n });\n\n constructor() {\n // Note: we don't go through host bindings for these, because the\n // effect allows us to batch the reads together which drastically\n // improves rendering performance in large grids (see #32759).\n afterRenderEffect({\n write: () => {\n const {_pattern: pattern, _toggleAttribute: toggle} = this;\n const rowSpan = pattern.rowSpan();\n const colSpan = pattern.colSpan();\n toggle('role', this.role());\n toggle('id', pattern.id());\n toggle('rowspan', rowSpan);\n toggle('colspan', colSpan);\n toggle('aria-rowspan', rowSpan);\n toggle('aria-colspan', colSpan);\n toggle('data-active', this.active());\n toggle('data-anchor', pattern.anchor());\n toggle('aria-disabled', pattern.disabled());\n toggle('aria-rowindex', pattern.ariaRowIndex());\n toggle('aria-colindex', pattern.ariaColIndex());\n toggle('aria-selected', pattern.ariaSelected());\n toggle('tabindex', this._tabIndex());\n },\n });\n }\n\n private _toggleAttribute = (name: string, value: unknown) => {\n if (value == null) {\n this._renderer.removeAttribute(this.element, name);\n } else {\n this._renderer.setAttribute(this.element, name, value as string);\n }\n };\n\n /** Gets the cell widget pattern for a given element. */\n private _getWidget(element: Element | null | undefined): any | undefined {\n let target = element;\n\n while (target) {\n const pattern = this._widgetPatterns().find(w => w.element() === target);\n if (pattern) {\n return pattern;\n }\n\n target = target.parentElement?.closest('[ngGridCellWidget]');\n }\n\n return undefined;\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 computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n Signal,\n} from '@angular/core';\nimport {GridPattern, GridRowPattern} from '../private';\nimport {Grid} from './grid';\nimport {GRID_CELL, GRID_ROW} from './grid-tokens';\n\n/**\n * Represents a row within a grid. It is a container for `ngGridCell` directives.\n *\n * ```html\n * <tr ngGridRow>\n * <!-- ... cells ... -->\n * </tr>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */\n@Directive({\n selector: '[ngGridRow]',\n exportAs: 'ngGridRow',\n host: {\n 'role': 'row',\n '[attr.aria-rowindex]': '_pattern.rowIndex()',\n },\n providers: [{provide: GRID_ROW, useExisting: GridRow}],\n})\nexport class GridRow {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The cells that make up this row. */\n private readonly _cells = contentChildren(GRID_CELL, {descendants: true});\n\n /** The UI patterns for the cells in this row. */\n private readonly _cellPatterns: Signal<any[]> = computed(() =>\n this._cells().map(c => c._pattern),\n );\n\n /** The parent grid. */\n private readonly _grid = inject(Grid);\n\n /** The parent grid UI pattern. */\n readonly _gridPattern = computed<GridPattern>(() => this._grid._pattern);\n\n /** The index of this row within the grid. */\n readonly rowIndex = input<number>();\n\n /** The UI pattern for the grid row. */\n readonly _pattern = new GridRowPattern({\n ...this,\n cells: this._cellPatterns,\n grid: this._gridPattern,\n });\n}\n"],"names":["GRID_CELL","InjectionToken","GRID_ROW","Grid","_elementRef","inject","ElementRef","element","nativeElement","_rows","contentChildren","descendants","_rowPatterns","computed","map","r","_pattern","ngDevMode","debugName","textDirection","Directionality","valueSignal","enableSelection","input","transform","booleanAttribute","disabled","softDisabled","focusMode","rowWrap","colWrap","multi","selectionMode","enableRangeSelection","GridPattern","rows","getCell","e","_getCell","constructor","ngZone","NgZone","runOutsideAngular","addEventListener","event","acceptsPointerMove","run","onPointermove","passive","afterRenderEffect","setDefaultStateEffect","resetStateEffect","resetFocusEffect","restoreFocusEffect","focusEffect","target","row","cell","inputs","cells","parentElement","closest","undefined","deps","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isSignal","exportAs","ngImport","decorators","args","selector","host","ctorParameters","propDecorators","ContentChildren","forwardRef","Input","alias","required","GridCellWidget","active","_cell","id","_IdGenerator","getId","widgetType","focusTarget","activated","output","deactivated","tabindex","_tabIndex","tabIndex","GridCellWidgetPattern","isActivated","activateEvent","lastActivateEvent","emit","deactivateEvent","lastDeactivateEvent","activate","deactivate","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","properties","GridCell","_renderer","Renderer2","_widgets","_widgetPatterns","w","_row","role","rowSpan","colSpan","rowIndex","colIndex","selected","model","selectable","orientation","wrap","GridCellPattern","grid","_gridPattern","widgets","getWidget","_getWidget","write","pattern","_toggleAttribute","toggle","anchor","ariaRowIndex","ariaColIndex","ariaSelected","name","value","removeAttribute","setAttribute","find","providers","provide","useExisting","Output","GridRow","_cells","_cellPatterns","c","_grid","GridRowPattern","attributes"],"mappings":"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"}
{"version":3,"file":"grid.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid-cell-widget.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid-cell.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/grid/grid-row.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 {GridCell} from './grid-cell';\nimport type {GridRow} from './grid-row';\n\n/** Token used to expose a `GridCell`. */\nexport const GRID_CELL = new InjectionToken<GridCell>('GRID_CELL');\n\n/** Token used to expose a `GridRow`. */\nexport const GRID_ROW = new InjectionToken<GridRow>('GRID_ROW');\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 contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n Signal,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {GridPattern, GridCellPattern} from '../private';\nimport {GRID_ROW} from './grid-tokens';\n\n/**\n * The container for a grid. It provides keyboard navigation and focus management for the grid's\n * rows and cells. It manages the overall behavior of the grid, including focus\n * wrapping, selection, and disabled states.\n *\n * ```html\n * <table ngGrid [multi]=\"true\" [enableSelection]=\"true\">\n * @for (row of gridData; track row) {\n * <tr ngGridRow>\n * @for (cell of row; track cell) {\n * <td ngGridCell [disabled]=\"cell.disabled\">\n * {{cell.value}}\n * </td>\n * }\n * </tr>\n * }\n * </table>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */\n@Directive({\n selector: '[ngGrid]',\n exportAs: 'ngGrid',\n host: {\n 'role': 'grid',\n '[tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-multiselectable]': '_pattern.multiSelectable()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(pointerup)': '_pattern.onPointerup($event)',\n '(focusin)': '_pattern.onFocusIn($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n})\nexport class Grid {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The rows that make up the grid. */\n private readonly _rows = contentChildren(GRID_ROW, {descendants: true});\n\n /** The UI patterns for the rows in the grid. */\n private readonly _rowPatterns: Signal<any[]> = computed(() => this._rows().map(r => r._pattern));\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether selection is enabled for the grid. */\n readonly enableSelection = input(false, {transform: booleanAttribute});\n\n /** Whether the grid is disabled. */\n readonly disabled = input(false, {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 /**\n * The focus strategy used by the grid.\n * - `roving`: Focus is moved to the active cell using `tabindex`.\n * - `activedescendant`: Focus remains on the grid container, and `aria-activedescendant` is used to indicate the active cell.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The wrapping behavior for keyboard navigation along the row axis.\n * - `continuous`: Navigation wraps from the last row to the first, and vice-versa.\n * - `loop`: Navigation wraps within the current row.\n * - `nowrap`: Navigation stops at the first/last item in the row.\n */\n readonly rowWrap = input<'continuous' | 'loop' | 'nowrap'>('loop');\n\n /**\n * The wrapping behavior for keyboard navigation along the column axis.\n * - `continuous`: Navigation wraps from the last column to the first, and vice-versa.\n * - `loop`: Navigation wraps within the current column.\n * - `nowrap`: Navigation stops at the first/last item in the column.\n */\n readonly colWrap = input<'continuous' | 'loop' | 'nowrap'>('loop');\n\n /** Whether multiple cells in the grid can be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /**\n * The selection strategy used by the grid.\n * - `follow`: The focused cell is automatically selected.\n * - `explicit`: Cells are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** Whether enable range selections (with modifier keys or dragging). */\n readonly enableRangeSelection = input(false, {transform: booleanAttribute});\n\n /** The UI pattern for the grid. */\n readonly _pattern = new GridPattern({\n ...this,\n rows: this._rowPatterns,\n getCell: e => this._getCell(e),\n element: () => this.element,\n });\n\n constructor() {\n const ngZone = inject(NgZone);\n\n // Since `pointermove` fires on each pixel, we need to\n // be careful not to hit the zone unless it's necessary.\n ngZone.runOutsideAngular(() => {\n this.element.addEventListener(\n 'pointermove',\n event => {\n if (this._pattern.acceptsPointerMove()) {\n ngZone.run(() => this._pattern.onPointermove(event));\n }\n },\n {passive: true},\n );\n });\n\n afterRenderEffect(() => this._pattern.setDefaultStateEffect());\n afterRenderEffect(() => this._pattern.resetStateEffect());\n afterRenderEffect(() => this._pattern.resetFocusEffect());\n afterRenderEffect(() => this._pattern.restoreFocusEffect());\n afterRenderEffect(() => this._pattern.focusEffect());\n }\n\n /** Gets the cell pattern for a given element. */\n private _getCell(element: Element | null | undefined): GridCellPattern | undefined {\n let target = element;\n\n while (target) {\n for (const row of this._rowPatterns()) {\n for (const cell of row.inputs.cells()) {\n if (cell.element() === target) {\n return cell;\n }\n }\n }\n\n target = target.parentElement?.closest('[ngGridCell]');\n }\n\n return undefined;\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n Signal,\n} from '@angular/core';\nimport {GridCellWidgetPattern} from '../private';\nimport {GRID_CELL} from './grid-tokens';\n\n/**\n * Represents an interactive element inside a `GridCell`. It allows for pausing grid navigation to\n * interact with the widget.\n *\n * When the user interacts with the widget (e.g., by typing in an input or opening a menu), grid\n * navigation is temporarily suspended to allow the widget to handle keyboard\n * events.\n *\n * ```html\n * <td ngGridCell>\n * <button ngGridCellWidget>Click Me</button>\n * </td>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */\n@Directive({\n selector: '[ngGridCellWidget]',\n exportAs: 'ngGridCellWidget',\n host: {\n '[attr.data-active]': 'active()',\n '[attr.data-active-control]': 'isActivated() ? \"widget\" : \"cell\"',\n '[tabindex]': '_tabIndex()',\n '[attr.id]': 'id()',\n },\n})\nexport class GridCellWidget {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The parent cell. */\n private readonly _cell = inject(GRID_CELL);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-grid-cell-widget-', true));\n\n /** The type of widget, which determines how it is activated. */\n readonly widgetType = input<'simple' | 'complex' | 'editable'>('simple');\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The target that will receive focus instead of the widget. */\n readonly focusTarget = input<ElementRef | HTMLElement | undefined>();\n\n /** Emits when the widget is activated. */\n readonly activated = output<KeyboardEvent | FocusEvent | undefined>();\n\n /** Emits when the widget is deactivated. */\n readonly deactivated = output<KeyboardEvent | FocusEvent | undefined>();\n\n /** The tabindex override. */\n readonly tabindex = input<number | undefined>();\n\n /**\n * The tabindex value set to the element.\n * If a focus target exists then return -1. Unless an override.\n */\n protected readonly _tabIndex: Signal<number> = computed(\n () => this.tabindex() ?? (this.focusTarget() ? -1 : this._pattern.tabIndex()),\n );\n\n /** The UI pattern for the grid cell widget. */\n readonly _pattern = new GridCellWidgetPattern({\n ...this,\n element: () => this.element,\n cell: () => this._cell._pattern,\n focusTarget: computed(() => {\n const target = this.focusTarget();\n return target instanceof ElementRef ? target.nativeElement : target;\n }),\n });\n\n /** Whether the widget is activated. */\n get isActivated(): Signal<boolean> {\n return computed(() => this._pattern.isActivated());\n }\n\n constructor() {\n afterRenderEffect(() => {\n const activateEvent = this._pattern.lastActivateEvent();\n if (activateEvent) {\n this.activated.emit(activateEvent);\n }\n });\n\n afterRenderEffect(() => {\n const deactivateEvent = this._pattern.lastDeactivateEvent();\n if (deactivateEvent) {\n this.deactivated.emit(deactivateEvent);\n }\n });\n }\n\n /** Activates the widget. */\n activate(): void {\n this._pattern.activate();\n }\n\n /** Deactivates the widget. */\n deactivate(): void {\n this._pattern.deactivate();\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n Signal,\n Renderer2,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {GridCellPattern} from '../private';\nimport {GridCellWidget} from './grid-cell-widget';\nimport {GRID_CELL, GRID_ROW} from './grid-tokens';\n\n/**\n * Represents a cell within a grid row. It is the primary focusable element\n * within the grid. It can be disabled and can have its selection state managed\n * through the `selected` input.\n *\n * ```html\n * <td ngGridCell [disabled]=\"isDisabled\" [(selected)]=\"isSelected\">\n * Cell Content\n * </td>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */\n@Directive({\n selector: '[ngGridCell]',\n exportAs: 'ngGridCell',\n providers: [{provide: GRID_CELL, useExisting: GridCell}],\n})\nexport class GridCell {\n private readonly _elementRef = inject(ElementRef);\n private readonly _renderer = inject(Renderer2);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the cell is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** The widgets contained within this cell, if any. */\n private readonly _widgets = contentChildren(GridCellWidget, {descendants: true});\n\n /** The UI pattern for the widget in this cell. */\n private readonly _widgetPatterns: Signal<any[]> = computed(() =>\n this._widgets().map(w => w._pattern),\n );\n\n /** The parent row. */\n private readonly _row = inject(GRID_ROW);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** A unique identifier for the cell. */\n readonly id = input(inject(_IdGenerator).getId('ng-grid-cell-', true));\n\n /** The ARIA role for the cell. */\n readonly role = input<'gridcell' | 'columnheader' | 'rowheader'>('gridcell');\n\n /** The number of rows the cell should span. */\n readonly rowSpan = input<number>(1);\n\n /** The number of columns the cell should span. */\n readonly colSpan = input<number>(1);\n\n /** The index of this cell's row within the grid. */\n readonly rowIndex = input<number>();\n\n /** The index of this cell's column within the grid. */\n readonly colIndex = input<number>();\n\n /** Whether the cell is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the cell is selected. */\n readonly selected = model<boolean>(false);\n\n /** Whether the cell is selectable. */\n readonly selectable = input<boolean>(true);\n\n /** Orientation of the widgets in the cell. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether widgets navigation wraps. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The tabindex override. */\n readonly tabindex = input<number | undefined>();\n\n /**\n * The tabindex value set to the element.\n * If a focus target exists then return -1. Unless an override.\n */\n protected readonly _tabIndex: Signal<number> = computed(\n () => this.tabindex() ?? this._pattern.tabIndex(),\n );\n\n /** The UI pattern for the grid cell. */\n readonly _pattern = new GridCellPattern({\n ...this,\n grid: this._row._gridPattern,\n row: () => this._row._pattern,\n widgets: this._widgetPatterns,\n getWidget: e => this._getWidget(e),\n element: () => this.element,\n });\n\n constructor() {\n // Note: we don't go through host bindings for these, because the\n // effect allows us to batch the reads together which drastically\n // improves rendering performance in large grids (see #32759).\n afterRenderEffect({\n write: () => {\n const {_pattern: pattern, _toggleAttribute: toggle} = this;\n const rowSpan = pattern.rowSpan();\n const colSpan = pattern.colSpan();\n toggle('role', this.role());\n toggle('id', pattern.id());\n toggle('rowspan', rowSpan);\n toggle('colspan', colSpan);\n toggle('aria-rowspan', rowSpan);\n toggle('aria-colspan', colSpan);\n toggle('data-active', this.active());\n toggle('data-anchor', pattern.anchor());\n toggle('aria-disabled', pattern.disabled());\n toggle('aria-rowindex', pattern.ariaRowIndex());\n toggle('aria-colindex', pattern.ariaColIndex());\n toggle('aria-selected', pattern.ariaSelected());\n toggle('tabindex', this._tabIndex());\n },\n });\n }\n\n private _toggleAttribute = (name: string, value: unknown) => {\n if (value == null) {\n this._renderer.removeAttribute(this.element, name);\n } else {\n this._renderer.setAttribute(this.element, name, value as string);\n }\n };\n\n /** Gets the cell widget pattern for a given element. */\n private _getWidget(element: Element | null | undefined): any | undefined {\n let target = element;\n\n while (target) {\n const pattern = this._widgetPatterns().find(w => w.element() === target);\n if (pattern) {\n return pattern;\n }\n\n target = target.parentElement?.closest('[ngGridCellWidget]');\n }\n\n return undefined;\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 computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n Signal,\n} from '@angular/core';\nimport {GridPattern, GridRowPattern} from '../private';\nimport {Grid} from './grid';\nimport {GRID_CELL, GRID_ROW} from './grid-tokens';\n\n/**\n * Represents a row within a grid. It is a container for `ngGridCell` directives.\n *\n * ```html\n * <tr ngGridRow>\n * <!-- ... cells ... -->\n * </tr>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */\n@Directive({\n selector: '[ngGridRow]',\n exportAs: 'ngGridRow',\n host: {\n 'role': 'row',\n '[attr.aria-rowindex]': '_pattern.rowIndex()',\n },\n providers: [{provide: GRID_ROW, useExisting: GridRow}],\n})\nexport class GridRow {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The cells that make up this row. */\n private readonly _cells = contentChildren(GRID_CELL, {descendants: true});\n\n /** The UI patterns for the cells in this row. */\n private readonly _cellPatterns: Signal<any[]> = computed(() =>\n this._cells().map(c => c._pattern),\n );\n\n /** The parent grid. */\n private readonly _grid = inject(Grid);\n\n /** The parent grid UI pattern. */\n readonly _gridPattern = computed<GridPattern>(() => this._grid._pattern);\n\n /** The index of this row within the grid. */\n readonly rowIndex = input<number>();\n\n /** The UI pattern for the grid row. */\n readonly _pattern = new GridRowPattern({\n ...this,\n cells: this._cellPatterns,\n grid: this._gridPattern,\n });\n}\n"],"names":["GRID_CELL","InjectionToken","GRID_ROW","Grid","_elementRef","inject","ElementRef","element","nativeElement","_rows","contentChildren","descendants","_rowPatterns","computed","map","r","_pattern","ngDevMode","debugName","textDirection","Directionality","valueSignal","enableSelection","input","transform","booleanAttribute","disabled","softDisabled","focusMode","rowWrap","colWrap","multi","selectionMode","enableRangeSelection","GridPattern","rows","getCell","e","_getCell","constructor","ngZone","NgZone","runOutsideAngular","addEventListener","event","acceptsPointerMove","run","onPointermove","passive","afterRenderEffect","setDefaultStateEffect","resetStateEffect","resetFocusEffect","restoreFocusEffect","focusEffect","target","row","cell","inputs","cells","parentElement","closest","undefined","deps","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isSignal","exportAs","ngImport","decorators","args","selector","host","ctorParameters","propDecorators","ContentChildren","forwardRef","Input","alias","required","GridCellWidget","active","_cell","id","_IdGenerator","getId","widgetType","focusTarget","activated","output","deactivated","tabindex","_tabIndex","tabIndex","GridCellWidgetPattern","isActivated","activateEvent","lastActivateEvent","emit","deactivateEvent","lastDeactivateEvent","activate","deactivate","isStandalone","classPropertyName","publicName","isRequired","transformFunction","outputs","properties","GridCell","_renderer","Renderer2","_widgets","_widgetPatterns","w","_row","role","rowSpan","colSpan","rowIndex","colIndex","selected","model","selectable","orientation","wrap","GridCellPattern","grid","_gridPattern","widgets","getWidget","_getWidget","write","pattern","_toggleAttribute","toggle","anchor","ariaRowIndex","ariaColIndex","ariaSelected","name","value","removeAttribute","setAttribute","find","providers","provide","useExisting","Output","GridRow","_cells","_cellPatterns","c","_grid","GridRowPattern","attributes"],"mappings":";;;;;;;;;;AAaO,MAAMA,SAAS,GAAG,IAAIC,cAAc,CAAW,WAAW,CAAC;AAG3D,MAAMC,QAAQ,GAAG,IAAID,cAAc,CAAU,UAAU,CAAC;;MC+ClDE,IAAI,CAAA;AAEEC,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCC,EAAAA,OAAO,GAAG,IAAI,CAACH,WAAW,CAACI,aAA4B;AAG/CC,EAAAA,KAAK,GAAGC,eAAe,CAACR,QAAQ;;;;AAAGS,IAAAA,WAAW,EAAE;AAAI,GAAA,CAAE;EAGtDC,YAAY,GAAkBC,QAAQ,CAAC,MAAM,IAAI,CAACJ,KAAK,EAAE,CAACK,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,EAAA,IAAAC,SAAA,GAAA,CAAA;AAAAC,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAGvFC,EAAAA,aAAa,GAAGd,MAAM,CAACe,cAAc,CAAC,CAACC,WAAW;AAGlDC,EAAAA,eAAe,GAAGC,KAAK,CAAC,KAAK;;;;AAAGC,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;AAG7DC,EAAAA,QAAQ,GAAGH,KAAK,CAAC,KAAK;;;;AAAGC,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;AAMtDE,EAAAA,YAAY,GAAGJ,KAAK,CAAC,IAAI;;;;AAAGC,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAOzDG,SAAS,GAAGL,KAAK,CAAgC,QAAQ;;WAAC;EAQ1DM,OAAO,GAAGN,KAAK,CAAmC,MAAM;;WAAC;EAQzDO,OAAO,GAAGP,KAAK,CAAmC,MAAM;;WAAC;AAGzDQ,EAAAA,KAAK,GAAGR,KAAK,CAAC,KAAK;;;;AAAGC,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAOnDO,aAAa,GAAGT,KAAK,CAAwB,QAAQ;;WAAC;AAGtDU,EAAAA,oBAAoB,GAAGV,KAAK,CAAC,KAAK;;;;AAAGC,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAGlET,QAAQ,GAAG,IAAIkB,WAAW,CAAC;AAClC,IAAA,GAAG,IAAI;IACPC,IAAI,EAAE,IAAI,CAACvB,YAAY;IACvBwB,OAAO,EAAEC,CAAC,IAAI,IAAI,CAACC,QAAQ,CAACD,CAAC,CAAC;AAC9B9B,IAAAA,OAAO,EAAEA,MAAM,IAAI,CAACA;AACrB,GAAA,CAAC;AAEFgC,EAAAA,WAAAA,GAAA;AACE,IAAA,MAAMC,MAAM,GAAGnC,MAAM,CAACoC,MAAM,CAAC;IAI7BD,MAAM,CAACE,iBAAiB,CAAC,MAAK;MAC5B,IAAI,CAACnC,OAAO,CAACoC,gBAAgB,CAC3B,aAAa,EACbC,KAAK,IAAG;AACN,QAAA,IAAI,IAAI,CAAC5B,QAAQ,CAAC6B,kBAAkB,EAAE,EAAE;AACtCL,UAAAA,MAAM,CAACM,GAAG,CAAC,MAAM,IAAI,CAAC9B,QAAQ,CAAC+B,aAAa,CAACH,KAAK,CAAC,CAAC;AACtD;AACF,OAAC,EACD;AAACI,QAAAA,OAAO,EAAE;AAAI,OAAC,CAChB;AACH,KAAC,CAAC;IAEFC,iBAAiB,CAAC,MAAM,IAAI,CAACjC,QAAQ,CAACkC,qBAAqB,EAAE,CAAC;IAC9DD,iBAAiB,CAAC,MAAM,IAAI,CAACjC,QAAQ,CAACmC,gBAAgB,EAAE,CAAC;IACzDF,iBAAiB,CAAC,MAAM,IAAI,CAACjC,QAAQ,CAACoC,gBAAgB,EAAE,CAAC;IACzDH,iBAAiB,CAAC,MAAM,IAAI,CAACjC,QAAQ,CAACqC,kBAAkB,EAAE,CAAC;IAC3DJ,iBAAiB,CAAC,MAAM,IAAI,CAACjC,QAAQ,CAACsC,WAAW,EAAE,CAAC;AACtD;EAGQhB,QAAQA,CAAC/B,OAAmC,EAAA;IAClD,IAAIgD,MAAM,GAAGhD,OAAO;AAEpB,IAAA,OAAOgD,MAAM,EAAE;MACb,KAAK,MAAMC,GAAG,IAAI,IAAI,CAAC5C,YAAY,EAAE,EAAE;QACrC,KAAK,MAAM6C,IAAI,IAAID,GAAG,CAACE,MAAM,CAACC,KAAK,EAAE,EAAE;AACrC,UAAA,IAAIF,IAAI,CAAClD,OAAO,EAAE,KAAKgD,MAAM,EAAE;AAC7B,YAAA,OAAOE,IAAI;AACb;AACF;AACF;MAEAF,MAAM,GAAGA,MAAM,CAACK,aAAa,EAAEC,OAAO,CAAC,cAAc,CAAC;AACxD;AAEA,IAAA,OAAOC,SAAS;AAClB;;;;;UAjHW3D,IAAI;AAAA4D,IAAAA,IAAA,EAAA,EAAA;AAAAR,IAAAA,MAAA,EAAAS,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAJ,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,eAAA;AAAAC,IAAAA,IAAA,EAAApE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ0BD,QAAQ;AAAAS,MAAAA,WAAA,EAAA,IAAA;AAAA6D,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA;IAAAC,QAAA,EAAA,CAAA,QAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAV;AAAA,GAAA,CAAA;;;;;;QARtC7D,IAAI;AAAAwE,EAAAA,UAAA,EAAA,CAAA;UAhBhBT,SAAS;AAACU,IAAAA,IAAA,EAAA,CAAA;AACTC,MAAAA,QAAQ,EAAE,UAAU;AACpBJ,MAAAA,QAAQ,EAAE,QAAQ;AAClBK,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,YAAY,EAAE,qBAAqB;AACnC,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,6BAA6B,EAAE,4BAA4B;AAC3D,QAAA,8BAA8B,EAAE,6BAA6B;AAC7D,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,eAAe,EAAE,gCAAgC;AACjD,QAAA,aAAa,EAAE,8BAA8B;AAC7C,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,YAAY,EAAE;AACf;KACF;AAS0C,GAAA,CAAA;EAAAC,cAAA,EAAAA,MAAA,EAAA;AAAAC,EAAAA,cAAA,EAAA;AAAAvE,IAAAA,KAAA,EAAA,CAAA;MAAA8D,IAAA,EAAAP,EAAA,CAAAiB,eAAA;MAAAL,IAAA,EAAA,CAAAZ,EAAA,CAAAkB,UAAA,CAAA,MAAAhF,QAAQ,CAAE,EAAA;QAAA,GAAA;AAACS,UAAAA,WAAW,EAAE;SAAK;AAAA6D,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAlD,IAAAA,eAAA,EAAA,CAAA;MAAAiD,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,iBAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA3D,IAAAA,QAAA,EAAA,CAAA;MAAA6C,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA1D,IAAAA,YAAA,EAAA,CAAA;MAAA4C,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,cAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAzD,IAAAA,SAAA,EAAA,CAAA;MAAA2C,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,WAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAxD,IAAAA,OAAA,EAAA,CAAA;MAAA0C,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,SAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAvD,IAAAA,OAAA,EAAA,CAAA;MAAAyC,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,SAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAtD,IAAAA,KAAA,EAAA,CAAA;MAAAwC,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,OAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAArD,IAAAA,aAAA,EAAA,CAAA;MAAAuC,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,eAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAApD,IAAAA,oBAAA,EAAA,CAAA;MAAAsC,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,sBAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;KAAA;AAAA;AAAA,CAAA,CAAA;;MCpB3DC,cAAc,CAAA;AAERlF,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCC,EAAAA,OAAO,GAAG,IAAI,CAACH,WAAW,CAACI,aAA4B;AAGvD+E,EAAAA,MAAM,GAAG1E,QAAQ,CAAC,MAAM,IAAI,CAACG,QAAQ,CAACuE,MAAM,EAAE;;WAAC;AAGvCC,EAAAA,KAAK,GAAGnF,MAAM,CAACL,SAAS,CAAC;AAGjCyF,EAAAA,EAAE,GAAGlE,KAAK,CAAClB,MAAM,CAACqF,YAAY,CAAC,CAACC,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC;;WAAC;EAGpEC,UAAU,GAAGrE,KAAK,CAAoC,QAAQ;;WAAC;AAG/DG,EAAAA,QAAQ,GAAGH,KAAK,CAAC,KAAK;;;;AAAGC,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAGtDoE,WAAW,GAAGtE,KAAK,CAAA,IAAAN,SAAA,GAAA,CAAA6C,SAAA,EAAA;AAAA5C,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAwC;EAG3D4E,SAAS,GAAGC,MAAM,EAA0C;EAG5DC,WAAW,GAAGD,MAAM,EAA0C;EAG9DE,QAAQ,GAAG1E,KAAK,CAAA,IAAAN,SAAA,GAAA,CAAA6C,SAAA,EAAA;AAAA5C,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAM5BgF,EAAAA,SAAS,GAAmBrF,QAAQ,CACrD,MAAM,IAAI,CAACoF,QAAQ,EAAE,KAAK,IAAI,CAACJ,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC7E,QAAQ,CAACmF,QAAQ,EAAE,CAAC;;WAC9E;EAGQnF,QAAQ,GAAG,IAAIoF,qBAAqB,CAAC;AAC5C,IAAA,GAAG,IAAI;AACP7F,IAAAA,OAAO,EAAEA,MAAM,IAAI,CAACA,OAAO;AAC3BkD,IAAAA,IAAI,EAAEA,MAAM,IAAI,CAAC+B,KAAK,CAACxE,QAAQ;IAC/B6E,WAAW,EAAEhF,QAAQ,CAAC,MAAK;AACzB,MAAA,MAAM0C,MAAM,GAAG,IAAI,CAACsC,WAAW,EAAE;MACjC,OAAOtC,MAAM,YAAYjD,UAAU,GAAGiD,MAAM,CAAC/C,aAAa,GAAG+C,MAAM;KACpE;AACF,GAAA,CAAC;EAGF,IAAI8C,WAAWA,GAAA;IACb,OAAOxF,QAAQ,CAAC,MAAM,IAAI,CAACG,QAAQ,CAACqF,WAAW,EAAE,CAAC;AACpD;AAEA9D,EAAAA,WAAAA,GAAA;AACEU,IAAAA,iBAAiB,CAAC,MAAK;MACrB,MAAMqD,aAAa,GAAG,IAAI,CAACtF,QAAQ,CAACuF,iBAAiB,EAAE;AACvD,MAAA,IAAID,aAAa,EAAE;AACjB,QAAA,IAAI,CAACR,SAAS,CAACU,IAAI,CAACF,aAAa,CAAC;AACpC;AACF,KAAC,CAAC;AAEFrD,IAAAA,iBAAiB,CAAC,MAAK;MACrB,MAAMwD,eAAe,GAAG,IAAI,CAACzF,QAAQ,CAAC0F,mBAAmB,EAAE;AAC3D,MAAA,IAAID,eAAe,EAAE;AACnB,QAAA,IAAI,CAACT,WAAW,CAACQ,IAAI,CAACC,eAAe,CAAC;AACxC;AACF,KAAC,CAAC;AACJ;AAGAE,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,CAAC3F,QAAQ,CAAC2F,QAAQ,EAAE;AAC1B;AAGAC,EAAAA,UAAUA,GAAA;AACR,IAAA,IAAI,CAAC5F,QAAQ,CAAC4F,UAAU,EAAE;AAC5B;;;;;UAlFWtB,cAAc;AAAAvB,IAAAA,IAAA,EAAA,EAAA;AAAAR,IAAAA,MAAA,EAAAS,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAdoB,cAAc;AAAAuB,IAAAA,YAAA,EAAA,IAAA;AAAAhC,IAAAA,QAAA,EAAA,oBAAA;AAAAnB,IAAAA,MAAA,EAAA;AAAA+B,MAAAA,EAAA,EAAA;AAAAqB,QAAAA,iBAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAArB,MAAAA,UAAA,EAAA;AAAAkB,QAAAA,iBAAA,EAAA,YAAA;AAAAC,QAAAA,UAAA,EAAA,YAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAvF,MAAAA,QAAA,EAAA;AAAAoF,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAApB,MAAAA,WAAA,EAAA;AAAAiB,QAAAA,iBAAA,EAAA,aAAA;AAAAC,QAAAA,UAAA,EAAA,aAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAhB,MAAAA,QAAA,EAAA;AAAAa,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,OAAA,EAAA;AAAApB,MAAAA,SAAA,EAAA,WAAA;AAAAE,MAAAA,WAAA,EAAA;KAAA;AAAAlB,IAAAA,IAAA,EAAA;AAAAqC,MAAAA,UAAA,EAAA;AAAA,QAAA,kBAAA,EAAA,UAAA;AAAA,QAAA,0BAAA,EAAA,uCAAA;AAAA,QAAA,UAAA,EAAA,aAAA;AAAA,QAAA,SAAA,EAAA;AAAA;KAAA;IAAA1C,QAAA,EAAA,CAAA,kBAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAV;AAAA,GAAA,CAAA;;;;;;QAAdsB,cAAc;AAAAX,EAAAA,UAAA,EAAA,CAAA;UAV1BT,SAAS;AAACU,IAAAA,IAAA,EAAA,CAAA;AACTC,MAAAA,QAAQ,EAAE,oBAAoB;AAC9BJ,MAAAA,QAAQ,EAAE,kBAAkB;AAC5BK,MAAAA,IAAI,EAAE;AACJ,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,4BAA4B,EAAE,mCAAmC;AACjE,QAAA,YAAY,EAAE,aAAa;AAC3B,QAAA,WAAW,EAAE;AACd;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCHYsC,QAAQ,CAAA;AACFhH,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAChC+G,EAAAA,SAAS,GAAGhH,MAAM,CAACiH,SAAS,CAAC;AAGrC/G,EAAAA,OAAO,GAAG,IAAI,CAACH,WAAW,CAACI,aAA4B;AAGvD+E,EAAAA,MAAM,GAAG1E,QAAQ,CAAC,MAAM,IAAI,CAACG,QAAQ,CAACuE,MAAM,EAAE;;WAAC;AAGvCgC,EAAAA,QAAQ,GAAG7G,eAAe,CAAC4E,cAAc;;;;AAAG3E,IAAAA,WAAW,EAAE;AAAI,GAAA,CAAE;EAG/D6G,eAAe,GAAkB3G,QAAQ,CAAC,MACzD,IAAI,CAAC0G,QAAQ,EAAE,CAACzG,GAAG,CAAC2G,CAAC,IAAIA,CAAC,CAACzG,QAAQ,CAAC,EAAA,IAAAC,SAAA,GAAA,CAAA;AAAAC,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CACrC;AAGgBwG,EAAAA,IAAI,GAAGrH,MAAM,CAACH,QAAQ,CAAC;AAG/BiB,EAAAA,aAAa,GAAGd,MAAM,CAACe,cAAc,CAAC,CAACC,WAAW;AAGlDoE,EAAAA,EAAE,GAAGlE,KAAK,CAAClB,MAAM,CAACqF,YAAY,CAAC,CAACC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC;;WAAC;EAG7DgC,IAAI,GAAGpG,KAAK,CAA4C,UAAU;;WAAC;EAGnEqG,OAAO,GAAGrG,KAAK,CAAS,CAAC;;WAAC;EAG1BsG,OAAO,GAAGtG,KAAK,CAAS,CAAC;;WAAC;EAG1BuG,QAAQ,GAAGvG,KAAK,CAAA,IAAAN,SAAA,GAAA,CAAA6C,SAAA,EAAA;AAAA5C,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAU;EAG1B6G,QAAQ,GAAGxG,KAAK,CAAA,IAAAN,SAAA,GAAA,CAAA6C,SAAA,EAAA;AAAA5C,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAG1BQ,EAAAA,QAAQ,GAAGH,KAAK,CAAC,KAAK;;;;AAAGC,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAGtDuG,QAAQ,GAAGC,KAAK,CAAU,KAAK;;WAAC;EAGhCC,UAAU,GAAG3G,KAAK,CAAU,IAAI;;WAAC;EAGjC4G,WAAW,GAAG5G,KAAK,CAA4B,YAAY;;WAAC;AAG5D6G,EAAAA,IAAI,GAAG7G,KAAK,CAAC,IAAI;;;;AAAGC,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAGjDwE,QAAQ,GAAG1E,KAAK,CAAA,IAAAN,SAAA,GAAA,CAAA6C,SAAA,EAAA;AAAA5C,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;EAM5BgF,SAAS,GAAmBrF,QAAQ,CACrD,MAAM,IAAI,CAACoF,QAAQ,EAAE,IAAI,IAAI,CAACjF,QAAQ,CAACmF,QAAQ,EAAE;;WAClD;EAGQnF,QAAQ,GAAG,IAAIqH,eAAe,CAAC;AACtC,IAAA,GAAG,IAAI;AACPC,IAAAA,IAAI,EAAE,IAAI,CAACZ,IAAI,CAACa,YAAY;AAC5B/E,IAAAA,GAAG,EAAEA,MAAM,IAAI,CAACkE,IAAI,CAAC1G,QAAQ;IAC7BwH,OAAO,EAAE,IAAI,CAAChB,eAAe;IAC7BiB,SAAS,EAAEpG,CAAC,IAAI,IAAI,CAACqG,UAAU,CAACrG,CAAC,CAAC;AAClC9B,IAAAA,OAAO,EAAEA,MAAM,IAAI,CAACA;AACrB,GAAA,CAAC;AAEFgC,EAAAA,WAAAA,GAAA;AAIEU,IAAAA,iBAAiB,CAAC;MAChB0F,KAAK,EAAEA,MAAK;QACV,MAAM;AAAC3H,UAAAA,QAAQ,EAAE4H,OAAO;AAAEC,UAAAA,gBAAgB,EAAEC;AAAM,SAAC,GAAG,IAAI;AAC1D,QAAA,MAAMlB,OAAO,GAAGgB,OAAO,CAAChB,OAAO,EAAE;AACjC,QAAA,MAAMC,OAAO,GAAGe,OAAO,CAACf,OAAO,EAAE;QACjCiB,MAAM,CAAC,MAAM,EAAE,IAAI,CAACnB,IAAI,EAAE,CAAC;QAC3BmB,MAAM,CAAC,IAAI,EAAEF,OAAO,CAACnD,EAAE,EAAE,CAAC;AAC1BqD,QAAAA,MAAM,CAAC,SAAS,EAAElB,OAAO,CAAC;AAC1BkB,QAAAA,MAAM,CAAC,SAAS,EAAEjB,OAAO,CAAC;AAC1BiB,QAAAA,MAAM,CAAC,cAAc,EAAElB,OAAO,CAAC;AAC/BkB,QAAAA,MAAM,CAAC,cAAc,EAAEjB,OAAO,CAAC;QAC/BiB,MAAM,CAAC,aAAa,EAAE,IAAI,CAACvD,MAAM,EAAE,CAAC;QACpCuD,MAAM,CAAC,aAAa,EAAEF,OAAO,CAACG,MAAM,EAAE,CAAC;QACvCD,MAAM,CAAC,eAAe,EAAEF,OAAO,CAAClH,QAAQ,EAAE,CAAC;QAC3CoH,MAAM,CAAC,eAAe,EAAEF,OAAO,CAACI,YAAY,EAAE,CAAC;QAC/CF,MAAM,CAAC,eAAe,EAAEF,OAAO,CAACK,YAAY,EAAE,CAAC;QAC/CH,MAAM,CAAC,eAAe,EAAEF,OAAO,CAACM,YAAY,EAAE,CAAC;QAC/CJ,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC5C,SAAS,EAAE,CAAC;AACtC;AACD,KAAA,CAAC;AACJ;AAEQ2C,EAAAA,gBAAgB,GAAGA,CAACM,IAAY,EAAEC,KAAc,KAAI;IAC1D,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,IAAI,CAAC/B,SAAS,CAACgC,eAAe,CAAC,IAAI,CAAC9I,OAAO,EAAE4I,IAAI,CAAC;AACpD,KAAA,MAAO;AACL,MAAA,IAAI,CAAC9B,SAAS,CAACiC,YAAY,CAAC,IAAI,CAAC/I,OAAO,EAAE4I,IAAI,EAAEC,KAAe,CAAC;AAClE;GACD;EAGOV,UAAUA,CAACnI,OAAmC,EAAA;IACpD,IAAIgD,MAAM,GAAGhD,OAAO;AAEpB,IAAA,OAAOgD,MAAM,EAAE;AACb,MAAA,MAAMqF,OAAO,GAAG,IAAI,CAACpB,eAAe,EAAE,CAAC+B,IAAI,CAAC9B,CAAC,IAAIA,CAAC,CAAClH,OAAO,EAAE,KAAKgD,MAAM,CAAC;AACxE,MAAA,IAAIqF,OAAO,EAAE;AACX,QAAA,OAAOA,OAAO;AAChB;MAEArF,MAAM,GAAGA,MAAM,CAACK,aAAa,EAAEC,OAAO,CAAC,oBAAoB,CAAC;AAC9D;AAEA,IAAA,OAAOC,SAAS;AAClB;;;;;UA9HWsD,QAAQ;AAAArD,IAAAA,IAAA,EAAA,EAAA;AAAAR,IAAAA,MAAA,EAAAS,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAR,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,eAAA;AAAAC,IAAAA,IAAA,EAAA6C,QAAQ;AAFRP,IAAAA,YAAA,EAAA,IAAA;AAAAhC,IAAAA,QAAA,EAAA,cAAA;AAAAnB,IAAAA,MAAA,EAAA;AAAA+B,MAAAA,EAAA,EAAA;AAAAqB,QAAAA,iBAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAU,MAAAA,IAAA,EAAA;AAAAb,QAAAA,iBAAA,EAAA,MAAA;AAAAC,QAAAA,UAAA,EAAA,MAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAW,MAAAA,OAAA,EAAA;AAAAd,QAAAA,iBAAA,EAAA,SAAA;AAAAC,QAAAA,UAAA,EAAA,SAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAY,MAAAA,OAAA,EAAA;AAAAf,QAAAA,iBAAA,EAAA,SAAA;AAAAC,QAAAA,UAAA,EAAA,SAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAa,MAAAA,QAAA,EAAA;AAAAhB,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAc,MAAAA,QAAA,EAAA;AAAAjB,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAvF,MAAAA,QAAA,EAAA;AAAAoF,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAe,MAAAA,QAAA,EAAA;AAAAlB,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAiB,MAAAA,UAAA,EAAA;AAAApB,QAAAA,iBAAA,EAAA,YAAA;AAAAC,QAAAA,UAAA,EAAA,YAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAkB,MAAAA,WAAA,EAAA;AAAArB,QAAAA,iBAAA,EAAA,aAAA;AAAAC,QAAAA,UAAA,EAAA,aAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAmB,MAAAA,IAAA,EAAA;AAAAtB,QAAAA,iBAAA,EAAA,MAAA;AAAAC,QAAAA,UAAA,EAAA,MAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAhB,MAAAA,QAAA,EAAA;AAAAa,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,OAAA,EAAA;AAAAc,MAAAA,QAAA,EAAA;KAAA;AAAAwB,IAAAA,SAAA,EAAA,CAAC;AAACC,MAAAA,OAAO,EAAEzJ,SAAS;AAAE0J,MAAAA,WAAW,EAAEtC;AAAS,KAAA,CAAC;;;iBAaZ9B,cAAc;AAAA3E,MAAAA,WAAA,EAAA,IAAA;AAAA6D,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA;IAAAC,QAAA,EAAA,CAAA,YAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAV;AAAA,GAAA,CAAA;;;;;;QAX/CoD,QAAQ;AAAAzC,EAAAA,UAAA,EAAA,CAAA;UALpBT,SAAS;AAACU,IAAAA,IAAA,EAAA,CAAA;AACTC,MAAAA,QAAQ,EAAE,cAAc;AACxBJ,MAAAA,QAAQ,EAAE,YAAY;AACtB+E,MAAAA,SAAS,EAAE,CAAC;AAACC,QAAAA,OAAO,EAAEzJ,SAAS;AAAE0J,QAAAA,WAAW,EAAUtC;OAAC;KACxD;AAY6C,GAAA,CAAA;EAAArC,cAAA,EAAAA,MAAA,EAAA;AAAAC,EAAAA,cAAA,EAAA;AAAAuC,IAAAA,QAAA,EAAA,CAAA;MAAAhD,IAAA,EAAAP,EAAA,CAAAiB,eAAA;MAAAL,IAAA,EAAA,CAAAZ,EAAA,CAAAkB,UAAA,CAAA,MAAAI,cAAc,CAAE,EAAA;QAAA,GAAA;AAAC3E,UAAAA,WAAW,EAAE;SAAK;AAAA6D,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAiB,IAAAA,EAAA,EAAA,CAAA;MAAAlB,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,IAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAsC,IAAAA,IAAA,EAAA,CAAA;MAAApD,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,MAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAuC,IAAAA,OAAA,EAAA,CAAA;MAAArD,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,SAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAwC,IAAAA,OAAA,EAAA,CAAA;MAAAtD,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,SAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAyC,IAAAA,QAAA,EAAA,CAAA;MAAAvD,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA0C,IAAAA,QAAA,EAAA,CAAA;MAAAxD,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA3D,IAAAA,QAAA,EAAA,CAAA;MAAA6C,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA2C,IAAAA,QAAA,EAAA,CAAA;MAAAzD,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,EAAA;MAAAd,IAAA,EAAAP,EAAA,CAAA2F,MAAA;MAAA/E,IAAA,EAAA,CAAA,gBAAA;AAAA,KAAA,CAAA;AAAAsD,IAAAA,UAAA,EAAA,CAAA;MAAA3D,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,YAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA8C,IAAAA,WAAA,EAAA,CAAA;MAAA5D,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,aAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA+C,IAAAA,IAAA,EAAA,CAAA;MAAA7D,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,MAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAY,IAAAA,QAAA,EAAA,CAAA;MAAA1B,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;KAAA;AAAA;AAAA,CAAA,CAAA;;MCfpEuE,OAAO,CAAA;AAEDxJ,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCC,EAAAA,OAAO,GAAG,IAAI,CAACH,WAAW,CAACI,aAA4B;AAG/CqJ,EAAAA,MAAM,GAAGnJ,eAAe,CAACV,SAAS;;;;AAAGW,IAAAA,WAAW,EAAE;AAAI,GAAA,CAAE;EAGxDmJ,aAAa,GAAkBjJ,QAAQ,CAAC,MACvD,IAAI,CAACgJ,MAAM,EAAE,CAAC/I,GAAG,CAACiJ,CAAC,IAAIA,CAAC,CAAC/I,QAAQ,CAAC,EAAA,IAAAC,SAAA,GAAA,CAAA;AAAAC,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CACnC;AAGgB8I,EAAAA,KAAK,GAAG3J,MAAM,CAACF,IAAI,CAAC;AAG5BoI,EAAAA,YAAY,GAAG1H,QAAQ,CAAc,MAAM,IAAI,CAACmJ,KAAK,CAAChJ,QAAQ,EAAA,IAAAC,SAAA,GAAA,CAAA;AAAAC,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAC;EAG/D4G,QAAQ,GAAGvG,KAAK,CAAA,IAAAN,SAAA,GAAA,CAAA6C,SAAA,EAAA;AAAA5C,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAU;EAG1BF,QAAQ,GAAG,IAAIiJ,cAAc,CAAC;AACrC,IAAA,GAAG,IAAI;IACPtG,KAAK,EAAE,IAAI,CAACmG,aAAa;IACzBxB,IAAI,EAAE,IAAI,CAACC;AACZ,GAAA,CAAC;;;;;UA7BSqB,OAAO;AAAA7F,IAAAA,IAAA,EAAA,EAAA;AAAAR,IAAAA,MAAA,EAAAS,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAP,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,eAAA;AAAAC,IAAAA,IAAA,EAAAqF,OAAO;AAFP/C,IAAAA,YAAA,EAAA,IAAA;AAAAhC,IAAAA,QAAA,EAAA,aAAA;AAAAnB,IAAAA,MAAA,EAAA;AAAAoE,MAAAA,QAAA,EAAA;AAAAhB,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAvC,QAAAA,QAAA,EAAA,IAAA;AAAAwC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAnC,IAAAA,IAAA,EAAA;AAAAoF,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAA/C,MAAAA,UAAA,EAAA;AAAA,QAAA,oBAAA,EAAA;AAAA;KAAA;AAAAqC,IAAAA,SAAA,EAAA,CAAC;AAACC,MAAAA,OAAO,EAAEvJ,QAAQ;AAAEwJ,MAAAA,WAAW,EAAEE;AAAQ,KAAA,CAAC;;;iBAUZ5J,SAAS;AAAAW,MAAAA,WAAA,EAAA,IAAA;AAAA6D,MAAAA,QAAA,EAAA;AAAA,KAAA,CAAA;IAAAC,QAAA,EAAA,CAAA,WAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAV;AAAA,GAAA,CAAA;;;;;;QARxC4F,OAAO;AAAAjF,EAAAA,UAAA,EAAA,CAAA;UATnBT,SAAS;AAACU,IAAAA,IAAA,EAAA,CAAA;AACTC,MAAAA,QAAQ,EAAE,aAAa;AACvBJ,MAAAA,QAAQ,EAAE,WAAW;AACrBK,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,sBAAsB,EAAE;OACzB;AACD0E,MAAAA,SAAS,EAAE,CAAC;AAACC,QAAAA,OAAO,EAAEvJ,QAAQ;AAAEwJ,QAAAA,WAAW,EAASE;OAAC;KACtD;AAS2C,GAAA,CAAA;AAAA5E,EAAAA,cAAA,EAAA;AAAA6E,IAAAA,MAAA,EAAA,CAAA;MAAAtF,IAAA,EAAAP,EAAA,CAAAiB,eAAA;MAAAL,IAAA,EAAA,CAAAZ,EAAA,CAAAkB,UAAA,CAAA,MAAAlF,SAAS,CAAE,EAAA;QAAA,GAAA;AAACW,UAAAA,WAAW,EAAE;SAAK;AAAA6D,QAAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAAsD,IAAAA,QAAA,EAAA,CAAA;MAAAvD,IAAA,EAAAP,EAAA,CAAAmB,KAAA;AAAAP,MAAAA,IAAA,EAAA,CAAA;AAAAJ,QAAAA,QAAA,EAAA,IAAA;AAAAY,QAAAA,KAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA;OAAA;KAAA;AAAA;AAAA,CAAA,CAAA;;;;"}

@@ -1,1 +0,1 @@

{"version":3,"file":"listbox.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/tokens.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/option.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/listbox.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 {Listbox} from './listbox';\n\nexport const LISTBOX = new InjectionToken<Listbox<any>>('LISTBOX');\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 {booleanAttribute, computed, Directive, ElementRef, inject, input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {OptionPattern} from '../private';\nimport {LISTBOX} from './tokens';\n\n/**\n * A selectable option in an `ngListbox`.\n *\n * This directive should be applied to an element (e.g., `<li>`, `<div>`) within an\n * `ngListbox`. The `value` input is used to identify the option, and the `label` input provides\n * the accessible name for the option.\n *\n * ```html\n * <li ngOption value=\"item-id\" label=\"Item Name\">\n * Item Name\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngOption]',\n exportAs: 'ngOption',\n host: {\n 'role': 'option',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': '_pattern.selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n },\n})\nexport class Option<V> {\n /** A reference to the host element. */\n readonly element = inject(ElementRef).nativeElement as HTMLElement;\n\n /** Whether the option is currently active (focused). */\n active = computed(() => this._pattern.active());\n\n /** The parent Listbox. */\n private readonly _listbox = inject(LISTBOX);\n\n /** A unique identifier for the option. */\n readonly id = input(inject(_IdGenerator).getId('ng-option-', true));\n\n // TODO(wagnermaciel): See if we want to change how we handle this since textContent is not\n // reactive. See https://github.com/angular/components/pull/30495#discussion_r1961260216.\n /** The text used by the typeahead search. */\n protected searchTerm = computed(() => this.label() ?? this.element.textContent);\n\n /** The parent Listbox UIPattern. */\n private readonly _listboxPattern = computed(() => this._listbox._pattern);\n\n /** The value of the option. */\n value = input.required<V>();\n\n /** Whether an item is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** The text used by the typeahead search. */\n label = input<string>();\n\n /** Whether the option is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Option UIPattern. */\n readonly _pattern = new OptionPattern<V>({\n ...this,\n id: this.id,\n value: this.value,\n listbox: this._listboxPattern,\n element: () => this.element,\n searchTerm: () => this.searchTerm() ?? '',\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 booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ComboboxListboxPattern, ListboxPattern, OptionPattern} from '../private';\nimport {ComboboxPopup} from '../combobox';\nimport {Option} from './option';\nimport {LISTBOX} from './tokens';\n\n/**\n * Represents a container used to display a list of items for a user to select from.\n *\n * The `ngListbox` is meant to be used in conjunction with `ngOption` directives to create a\n * selectable list. It supports single and multiple selection modes, as well as various focus and\n * orientation strategies.\n *\n * ```html\n * <ul ngListbox [(value)]=\"selectedItems\" [multi]=\"true\" orientation=\"vertical\">\n * @for (item of items; track item.id) {\n * <li ngOption [value]=\"item.id\" [label]=\"item.name\" [disabled]=\"item.disabled\">\n * {{item.name}}\n * </li>\n * }\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngListbox]',\n exportAs: 'ngListbox',\n host: {\n 'role': 'listbox',\n '[attr.id]': 'id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-readonly]': '_pattern.readonly()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n hostDirectives: [ComboboxPopup],\n providers: [{provide: LISTBOX, useExisting: Listbox}],\n})\nexport class Listbox<V> {\n /** A unique identifier for the listbox. */\n readonly id = input(inject(_IdGenerator).getId('ng-listbox-', true));\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The Options nested inside of the Listbox. */\n private readonly _options = contentChildren(Option, {descendants: true});\n\n /** A signal wrapper for directionality. */\n protected textDirection = inject(Directionality).valueSignal.asReadonly();\n\n /** The Option UIPatterns of the child Options. */\n protected items = computed<OptionPattern<V>[]>(() =>\n this._options().map(option => option._pattern),\n );\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multiple items in the list can be selected at once. */\n multi = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n wrap = 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 softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the list.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the listbox container, and `aria-activedescendant` is used to indicate the active item.\n */\n focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the list.\n * - `follow`: The focused item is automatically selected.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n */\n selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The amount of time before the typeahead search is reset. */\n typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the listbox is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the listbox is readonly. */\n readonly = input(false, {transform: booleanAttribute});\n\n /** The values of the currently selected items. */\n values = model<V[]>([]);\n\n /** The Listbox UIPattern. */\n readonly _pattern: ListboxPattern<V>;\n\n /** Whether the listbox has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: this.items,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n combobox: () => this._popup?.combobox?._pattern,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxListboxPattern<V>(inputs)\n : new ListboxPattern<V>(inputs);\n\n if (this._popup) {\n this._popup._controls.set(this._pattern as ComboboxListboxPattern<V>);\n }\n\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n // Ensure that if the active item is removed from\n // the list, the listbox updates it's focus state.\n afterRenderEffect(() => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.listBehavior.unfocus();\n }\n });\n\n // Ensure that the values are always in sync with the available options.\n afterRenderEffect(() => {\n const items = inputs.items();\n const values = untracked(() => this.values());\n\n if (items && values.some(v => !items.some(i => i.value() === v))) {\n this.values.set(values.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n\n /** Navigates to the first item in the listbox. */\n gotoFirst() {\n this._pattern.listBehavior.first();\n }\n}\n"],"names":["LISTBOX","InjectionToken","Option","element","inject","ElementRef","nativeElement","active","computed","_pattern","_listbox","id","input","_IdGenerator","getId","searchTerm","label","textContent","_listboxPattern","ngDevMode","debugName","value","required","disabled","transform","booleanAttribute","undefined","selected","OptionPattern","listbox","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","ngImport","decorators","args","Listbox","_popup","ComboboxPopup","optional","_elementRef","_options","contentChildren","descendants","textDirection","Directionality","valueSignal","asReadonly","items","map","option","orientation","multi","wrap","softDisabled","focusMode","selectionMode","typeaheadDelay","readonly","values","model","_hasFocused","signal","constructor","activeItem","combobox","ComboboxListboxPattern","ListboxPattern","_controls","set","afterRenderEffect","violations","validate","violation","console","error","setDefaultState","untracked","some","i","listBehavior","unfocus","v","filter","_onFocus","scrollActiveItemIntoView","options","block","scrollIntoView","gotoFirst","first","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","outputs","listeners","providers","provide","useExisting","hostDirectives","directive","i1","ctorParameters","propDecorators","Input","alias","ContentChildren","forwardRef","Output"],"mappings":"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"}
{"version":3,"file":"listbox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/option.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/listbox/listbox.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 {Listbox} from './listbox';\n\nexport const LISTBOX = new InjectionToken<Listbox<any>>('LISTBOX');\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 {booleanAttribute, computed, Directive, ElementRef, inject, input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {OptionPattern} from '../private';\nimport {LISTBOX} from './tokens';\n\n/**\n * A selectable option in an `ngListbox`.\n *\n * This directive should be applied to an element (e.g., `<li>`, `<div>`) within an\n * `ngListbox`. The `value` input is used to identify the option, and the `label` input provides\n * the accessible name for the option.\n *\n * ```html\n * <li ngOption value=\"item-id\" label=\"Item Name\">\n * Item Name\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngOption]',\n exportAs: 'ngOption',\n host: {\n 'role': 'option',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': '_pattern.selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n },\n})\nexport class Option<V> {\n /** A reference to the host element. */\n readonly element = inject(ElementRef).nativeElement as HTMLElement;\n\n /** Whether the option is currently active (focused). */\n active = computed(() => this._pattern.active());\n\n /** The parent Listbox. */\n private readonly _listbox = inject(LISTBOX);\n\n /** A unique identifier for the option. */\n readonly id = input(inject(_IdGenerator).getId('ng-option-', true));\n\n // TODO(wagnermaciel): See if we want to change how we handle this since textContent is not\n // reactive. See https://github.com/angular/components/pull/30495#discussion_r1961260216.\n /** The text used by the typeahead search. */\n protected searchTerm = computed(() => this.label() ?? this.element.textContent);\n\n /** The parent Listbox UIPattern. */\n private readonly _listboxPattern = computed(() => this._listbox._pattern);\n\n /** The value of the option. */\n value = input.required<V>();\n\n /** Whether an item is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** The text used by the typeahead search. */\n label = input<string>();\n\n /** Whether the option is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Option UIPattern. */\n readonly _pattern = new OptionPattern<V>({\n ...this,\n id: this.id,\n value: this.value,\n listbox: this._listboxPattern,\n element: () => this.element,\n searchTerm: () => this.searchTerm() ?? '',\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 booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ComboboxListboxPattern, ListboxPattern, OptionPattern} from '../private';\nimport {ComboboxPopup} from '../combobox';\nimport {Option} from './option';\nimport {LISTBOX} from './tokens';\n\n/**\n * Represents a container used to display a list of items for a user to select from.\n *\n * The `ngListbox` is meant to be used in conjunction with `ngOption` directives to create a\n * selectable list. It supports single and multiple selection modes, as well as various focus and\n * orientation strategies.\n *\n * ```html\n * <ul ngListbox [(value)]=\"selectedItems\" [multi]=\"true\" orientation=\"vertical\">\n * @for (item of items; track item.id) {\n * <li ngOption [value]=\"item.id\" [label]=\"item.name\" [disabled]=\"item.disabled\">\n * {{item.name}}\n * </li>\n * }\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Listbox](guide/aria/listbox)\n * @see [Autocomplete](guide/aria/autocomplete)\n * @see [Select](guide/aria/select)\n * @see [Multiselect](guide/aria/multiselect)\n */\n@Directive({\n selector: '[ngListbox]',\n exportAs: 'ngListbox',\n host: {\n 'role': 'listbox',\n '[attr.id]': 'id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-readonly]': '_pattern.readonly()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n hostDirectives: [ComboboxPopup],\n providers: [{provide: LISTBOX, useExisting: Listbox}],\n})\nexport class Listbox<V> {\n /** A unique identifier for the listbox. */\n readonly id = input(inject(_IdGenerator).getId('ng-listbox-', true));\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The Options nested inside of the Listbox. */\n private readonly _options = contentChildren(Option, {descendants: true});\n\n /** A signal wrapper for directionality. */\n protected textDirection = inject(Directionality).valueSignal.asReadonly();\n\n /** The Option UIPatterns of the child Options. */\n protected items = computed<OptionPattern<V>[]>(() =>\n this._options().map(option => option._pattern),\n );\n\n /** Whether the list is vertically or horizontally oriented. */\n orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multiple items in the list can be selected at once. */\n multi = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n wrap = 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 softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the list.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the listbox container, and `aria-activedescendant` is used to indicate the active item.\n */\n focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the list.\n * - `follow`: The focused item is automatically selected.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n */\n selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The amount of time before the typeahead search is reset. */\n typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the listbox is disabled. */\n disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the listbox is readonly. */\n readonly = input(false, {transform: booleanAttribute});\n\n /** The values of the currently selected items. */\n values = model<V[]>([]);\n\n /** The Listbox UIPattern. */\n readonly _pattern: ListboxPattern<V>;\n\n /** Whether the listbox has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: this.items,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n combobox: () => this._popup?.combobox?._pattern,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxListboxPattern<V>(inputs)\n : new ListboxPattern<V>(inputs);\n\n if (this._popup) {\n this._popup._controls.set(this._pattern as ComboboxListboxPattern<V>);\n }\n\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n // Ensure that if the active item is removed from\n // the list, the listbox updates it's focus state.\n afterRenderEffect(() => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.listBehavior.unfocus();\n }\n });\n\n // Ensure that the values are always in sync with the available options.\n afterRenderEffect(() => {\n const items = inputs.items();\n const values = untracked(() => this.values());\n\n if (items && values.some(v => !items.some(i => i.value() === v))) {\n this.values.set(values.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\n }\n\n /** Navigates to the first item in the listbox. */\n gotoFirst() {\n this._pattern.listBehavior.first();\n }\n}\n"],"names":["LISTBOX","InjectionToken","Option","element","inject","ElementRef","nativeElement","active","computed","_pattern","_listbox","id","input","_IdGenerator","getId","searchTerm","label","textContent","_listboxPattern","ngDevMode","debugName","value","required","disabled","transform","booleanAttribute","undefined","selected","OptionPattern","listbox","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","properties","exportAs","ngImport","decorators","args","Listbox","_popup","ComboboxPopup","optional","_elementRef","_options","contentChildren","descendants","textDirection","Directionality","valueSignal","asReadonly","items","map","option","orientation","multi","wrap","softDisabled","focusMode","selectionMode","typeaheadDelay","readonly","values","model","_hasFocused","signal","constructor","activeItem","combobox","ComboboxListboxPattern","ListboxPattern","_controls","set","afterRenderEffect","violations","validate","violation","console","error","setDefaultState","untracked","some","i","listBehavior","unfocus","v","filter","_onFocus","scrollActiveItemIntoView","options","block","scrollIntoView","gotoFirst","first","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","outputs","listeners","providers","provide","useExisting","hostDirectives","directive","i1","ctorParameters","propDecorators","Input","alias","ContentChildren","forwardRef","Output"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"menu.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-trigger.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-tokens.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-item.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-bar.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-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 {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n} from '@angular/core';\nimport {MenuTriggerPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport type {Menu} from './menu';\n\n/**\n * A trigger for a menu.\n *\n * The `ngMenuTrigger` directive is used to open and close menus. It can be applied to\n * any interactive element (e.g., a button) to associate it with a `ngMenu` instance.\n * It also supports linking to sub-menus when applied to a `ngMenuItem`.\n *\n * ```html\n * <button ngMenuTrigger [menu]=\"myMenu\">Open Menu</button>\n *\n * <div ngMenu #myMenu=\"ngMenu\">\n * <div ngMenuItem>Item 1</div>\n * <div ngMenuItem>Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuTrigger]',\n exportAs: 'ngMenuTrigger',\n host: {\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.disabled]': '!softDisabled() && _pattern.disabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-haspopup]': 'hasPopup()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.menu()?.id()',\n '(click)': '_pattern.onClick()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n})\nexport class MenuTrigger<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The menu associated with the trigger. */\n menu = input<Menu<V> | undefined>(undefined);\n\n /** Whether the menu is expanded. */\n readonly expanded = computed(() => this._pattern.expanded());\n\n /** Whether the menu trigger has a popup. */\n readonly hasPopup = computed(() => this._pattern.hasPopup());\n\n /** Whether the menu trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the menu trigger is soft disabled. */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The menu trigger ui pattern instance. */\n _pattern: MenuTriggerPattern<V> = new MenuTriggerPattern({\n textDirection: this.textDirection,\n element: computed(() => this._elementRef.nativeElement),\n menu: computed(() => this.menu()?._pattern),\n disabled: () => this.disabled(),\n });\n\n constructor() {\n effect(() => this.menu()?.parent.set(this));\n }\n\n /** Opens the menu focusing on the first menu item. */\n open() {\n this._pattern.open({first: true});\n }\n\n /** Closes the menu. */\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 {InjectionToken} from '@angular/core';\nimport type {Menu} from './menu';\nimport type {MenuBar} from './menu-bar';\n\n/** Token used to expose menus to their child components. */\nexport const MENU_COMPONENT = new InjectionToken<Menu<any> | MenuBar<any>>('MENU_COMPONENT');\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 {computed, Directive, effect, ElementRef, inject, input, model} from '@angular/core';\nimport {MenuItemPattern} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {MENU_COMPONENT} from './menu-tokens';\nimport type {Menu} from './menu';\nimport type {MenuBar} from './menu-bar';\n\n/**\n * An item in a Menu.\n *\n * `ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice\n * or action a user can take. They can also act as triggers for sub-menus.\n *\n * ```html\n * <div ngMenu (itemSelected)=\"doAction()\">\n * <div ngMenuItem >Action Item</div>\n * <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuItem]',\n exportAs: 'ngMenuItem',\n host: {\n 'role': 'menuitem',\n '(focusin)': '_pattern.onFocusIn()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.data-active]': 'active()',\n '[attr.aria-label]': 'value()',\n '[attr.aria-haspopup]': 'hasPopup()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.submenu()?.id()',\n },\n})\nexport class MenuItem<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The unique ID of the menu item. */\n readonly id = input(inject(_IdGenerator).getId('ng-menu-item-', true));\n\n /** The value of the menu item, used as the default aria-label */\n readonly value = input.required<V>();\n\n /** Whether the menu item is disabled. */\n readonly disabled = input<boolean>(false);\n\n // TODO(wagnermaciel): Discuss whether all inputs should be models.\n\n /** The search term associated with the menu item. */\n readonly searchTerm = model<string>('');\n\n /** A reference to the parent menu or menubar. */\n readonly parent = inject<Menu<V> | MenuBar<V>>(MENU_COMPONENT, {optional: true});\n\n /** The submenu associated with the menu item. */\n readonly submenu = input<Menu<V> | undefined>(undefined);\n\n /** Whether the menu item is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the menu is expanded. */\n readonly expanded = computed(() => this._pattern.expanded());\n\n /** Whether the menu item has a popup. */\n readonly hasPopup = computed(() => this._pattern.hasPopup());\n\n /** The menu item ui pattern instance. */\n readonly _pattern: MenuItemPattern<V> = new MenuItemPattern<V>({\n id: this.id,\n value: this.value,\n element: computed(() => this._elementRef.nativeElement),\n disabled: this.disabled,\n searchTerm: this.searchTerm,\n parent: computed(() => this.parent?._pattern),\n submenu: computed(() => this.submenu()?._pattern),\n });\n\n constructor() {\n effect(() => this.submenu()?.parent.set(this));\n }\n\n /** Opens the submenu focusing on the first menu item. */\n open() {\n this._pattern.open({first: true});\n }\n\n /** Closes the submenu. */\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 {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport {SignalLike, MenuBarPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {MenuItem} from './menu-item';\nimport {MENU_COMPONENT} from './menu-tokens';\n\n/**\n * A menu bar of menu items.\n *\n * Like the `ngMenu`, a `ngMenuBar` is used to offer a list of menu item choices to users.\n * However, a menubar is used to display a persistent, top-level, always-visible set of\n * menu item choices, typically found at the top of an application window.\n *\n * ```html\n * <div ngMenuBar>\n * <button ngMenuTrigger [menu]=\"fileMenu\">File</button>\n * <button ngMenuTrigger [menu]=\"editMenu\">Edit</button>\n * </div>\n *\n * <div ngMenu #fileMenu=\"ngMenu\">\n * <div ngMenuItem>New</div>\n * <div ngMenuItem>Open</div>\n * </div>\n *\n * <div ngMenu #editMenu=\"ngMenu\">\n * <div ngMenuItem>Cut</div>\n * <div ngMenuItem>Copy</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuBar]',\n exportAs: 'ngMenuBar',\n host: {\n 'role': 'menubar',\n '[attr.disabled]': '!softDisabled() && _pattern.disabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(mouseover)': '_pattern.onMouseOver($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n providers: [{provide: MENU_COMPONENT, useExisting: MenuBar}],\n})\nexport class MenuBar<V> {\n /** The menu items contained in the menubar. */\n readonly _allItems = contentChildren<MenuItem<V>>(MenuItem, {descendants: true});\n\n readonly _items: SignalLike<MenuItem<V>[]> = () =>\n this._allItems().filter(i => i.parent === this);\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the menubar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the menubar is soft disabled. */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The values of the currently selected menu items. */\n readonly values = model<V[]>([]);\n\n /** Whether the menu should wrap its items. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The delay in milliseconds before the typeahead buffer is cleared. */\n readonly typeaheadDelay = input<number>(500);\n\n /** The menu ui pattern instance. */\n readonly _pattern: MenuBarPattern<V>;\n\n /** The menu items as a writable signal. */\n private readonly _itemPatterns = signal<any[]>([]);\n\n /** A callback function triggered when a menu item is selected. */\n readonly itemSelected = output<V>();\n\n constructor() {\n this._pattern = new MenuBarPattern({\n ...this,\n items: this._itemPatterns,\n multi: () => false,\n softDisabled: () => true,\n focusMode: () => 'roving',\n orientation: () => 'horizontal',\n selectionMode: () => 'explicit',\n itemSelected: (value: V) => this.itemSelected.emit(value),\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n });\n\n afterRenderEffect(() => {\n this._itemPatterns.set(this._items().map(i => i._pattern));\n });\n\n afterRenderEffect(() => {\n if (!this._pattern.hasBeenFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n /** Closes the menubar. */\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 {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n Signal,\n signal,\n untracked,\n} from '@angular/core';\nimport {MenuPattern, DeferredContentAware} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {MenuTrigger} from './menu-trigger';\nimport {MenuItem} from './menu-item';\nimport {MenuBar} from './menu-bar';\nimport {MENU_COMPONENT} from './menu-tokens';\n\n/**\n * A list of menu items.\n *\n * A `ngMenu` is used to offer a list of menu item choices to users. Menus can be nested\n * within other menus to create sub-menus. It works in conjunction with `ngMenuTrigger`\n * and `ngMenuItem` directives.\n *\n * ```html\n * <button ngMenuTrigger [menu]=\"myMenu\">Options</button>\n *\n * <div ngMenu #myMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Star\">Star</div>\n * <div ngMenuItem value=\"Edit\">Edit</div>\n * <div ngMenuItem value=\"More\" [submenu]=\"subMenu\">More</div>\n * </div>\n *\n * <div ngMenu #subMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Sub Item 1\">Sub Item 1</div>\n * <div ngMenuItem value=\"Sub Item 2\">Sub Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenu]',\n exportAs: 'ngMenu',\n host: {\n 'role': 'menu',\n '[attr.id]': '_pattern.id()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.tabindex]': 'tabIndex()',\n '[attr.data-visible]': 'visible()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(mouseover)': '_pattern.onMouseOver($event)',\n '(mouseout)': '_pattern.onMouseOut($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n providers: [{provide: MENU_COMPONENT, useExisting: Menu}],\n})\nexport class Menu<V> {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The menu items contained in the menu. */\n readonly _allItems = contentChildren<MenuItem<V>>(MenuItem, {descendants: true});\n\n /** The menu items that are direct children of this menu. */\n readonly _items: Signal<MenuItem<V>[]> = computed(() =>\n this._allItems().filter(i => i.parent === this),\n );\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The unique ID of the menu. */\n readonly id = input(inject(_IdGenerator).getId('ng-menu-', true));\n\n /** Whether the menu should wrap its items. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The delay in milliseconds before the typeahead buffer is cleared. */\n readonly typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the menu is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** A reference to the parent menu item or menu trigger. */\n readonly parent = signal<MenuTrigger<V> | MenuItem<V> | undefined>(undefined);\n\n /** The menu ui pattern instance. */\n readonly _pattern: MenuPattern<V>;\n\n /**\n * The menu items as a writable signal.\n *\n * TODO(wagnermaciel): This would normally be a computed, but using a computed causes a bug where\n * sometimes the items array is empty. The bug can be reproduced by switching this to use a\n * computed and then quickly opening and closing menus in the dev app.\n */\n private readonly _itemPatterns = () => this._items().map(i => i._pattern);\n\n /** Whether the menu is visible. */\n readonly visible = computed(() => this._pattern.visible());\n\n /** The tab index of the menu. */\n readonly tabIndex = computed(() => this._pattern.tabIndex());\n\n /** A callback function triggered when a menu item is selected. */\n readonly itemSelected = output<V>();\n\n /** The delay in milliseconds before expanding sub-menus on hover. */\n readonly expansionDelay = input<number>(100); // Arbitrarily chosen.\n\n constructor() {\n this._pattern = new MenuPattern({\n ...this,\n parent: computed(() => this.parent()?._pattern),\n items: this._itemPatterns,\n multi: () => false,\n softDisabled: () => true,\n focusMode: () => 'roving',\n orientation: () => 'vertical',\n selectionMode: () => 'explicit',\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n itemSelected: (value: V) => this.itemSelected.emit(value),\n });\n\n afterRenderEffect(() => {\n const parent = this.parent();\n if (parent instanceof MenuItem && parent.parent instanceof MenuBar) {\n this._deferredContentAware?.contentVisible.set(true);\n } else {\n this._deferredContentAware?.contentVisible.set(\n this._pattern.visible() || !!this.parent()?._pattern.hasBeenFocused(),\n );\n }\n });\n\n // TODO(wagnermaciel): This is a redundancy needed for if the user uses display: none to hide\n // submenus. In those cases, the ui pattern is calling focus() before the ui has a chance to\n // update the display property. The result is focus() being called on an element that is not\n // focusable. This simply retries focusing the element after render.\n afterRenderEffect(() => {\n if (this._pattern.visible()) {\n const activeItem = untracked(() => this._pattern.inputs.activeItem());\n this._pattern.listBehavior.goto(activeItem!);\n }\n });\n\n afterRenderEffect(() => {\n if (\n !this._pattern.hasBeenFocused() &&\n !this._pattern.hasBeenHovered() &&\n this._items().length\n ) {\n untracked(() => this._pattern.setDefaultState());\n }\n });\n }\n\n /** Closes the menu. */\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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * Defers the rendering of the menu content.\n *\n * This structural directive should be applied to an `ng-template` within a `ngMenu`\n * or `ngMenuBar` to lazily render its content only when the menu is opened.\n *\n * ```html\n * <div ngMenu #myMenu=\"ngMenu\">\n * <ng-template ngMenuContent>\n * <div ngMenuItem>Lazy Item 1</div>\n * <div ngMenuItem>Lazy Item 2</div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: 'ng-template[ngMenuContent]',\n exportAs: 'ngMenuContent',\n hostDirectives: [DeferredContent],\n})\nexport class MenuContent {}\n"],"names":["MenuTrigger","_elementRef","inject","ElementRef","element","nativeElement","textDirection","Directionality","valueSignal","menu","input","undefined","expanded","computed","_pattern","hasPopup","disabled","transform","booleanAttribute","softDisabled","MenuTriggerPattern","constructor","effect","parent","set","open","first","close","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","listeners","properties","exportAs","ngImport","decorators","args","MENU_COMPONENT","InjectionToken","MenuItem","id","_IdGenerator","getId","value","required","searchTerm","model","optional","submenu","active","MenuItemPattern","outputs","attributes","MenuBar","_allItems","contentChildren","descendants","_items","filter","i","values","wrap","typeaheadDelay","_itemPatterns","signal","itemSelected","output","MenuBarPattern","items","multi","focusMode","orientation","selectionMode","emit","activeItem","afterRenderEffect","map","hasBeenFocused","setDefaultState","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","providers","provide","useExisting","ctorParameters","propDecorators","ContentChildren","forwardRef","Input","alias","Output","Menu","_deferredContentAware","DeferredContentAware","ngDevMode","debugName","visible","tabIndex","expansionDelay","MenuPattern","contentVisible","untracked","listBehavior","goto","hasBeenHovered","length","hostDirectives","directive","i1","MenuContent","DeferredContent"],"mappings":"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"}
{"version":3,"file":"menu.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-trigger.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-item.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-bar.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/menu/menu-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 {\n booleanAttribute,\n computed,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n} from '@angular/core';\nimport {MenuTriggerPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport type {Menu} from './menu';\n\n/**\n * A trigger for a menu.\n *\n * The `ngMenuTrigger` directive is used to open and close menus. It can be applied to\n * any interactive element (e.g., a button) to associate it with a `ngMenu` instance.\n * It also supports linking to sub-menus when applied to a `ngMenuItem`.\n *\n * ```html\n * <button ngMenuTrigger [menu]=\"myMenu\">Open Menu</button>\n *\n * <div ngMenu #myMenu=\"ngMenu\">\n * <div ngMenuItem>Item 1</div>\n * <div ngMenuItem>Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuTrigger]',\n exportAs: 'ngMenuTrigger',\n host: {\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.disabled]': '!softDisabled() && _pattern.disabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-haspopup]': 'hasPopup()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.menu()?.id()',\n '(click)': '_pattern.onClick()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n})\nexport class MenuTrigger<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The menu associated with the trigger. */\n menu = input<Menu<V> | undefined>(undefined);\n\n /** Whether the menu is expanded. */\n readonly expanded = computed(() => this._pattern.expanded());\n\n /** Whether the menu trigger has a popup. */\n readonly hasPopup = computed(() => this._pattern.hasPopup());\n\n /** Whether the menu trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the menu trigger is soft disabled. */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The menu trigger ui pattern instance. */\n _pattern: MenuTriggerPattern<V> = new MenuTriggerPattern({\n textDirection: this.textDirection,\n element: computed(() => this._elementRef.nativeElement),\n menu: computed(() => this.menu()?._pattern),\n disabled: () => this.disabled(),\n });\n\n constructor() {\n effect(() => this.menu()?.parent.set(this));\n }\n\n /** Opens the menu focusing on the first menu item. */\n open() {\n this._pattern.open({first: true});\n }\n\n /** Closes the menu. */\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 {InjectionToken} from '@angular/core';\nimport type {Menu} from './menu';\nimport type {MenuBar} from './menu-bar';\n\n/** Token used to expose menus to their child components. */\nexport const MENU_COMPONENT = new InjectionToken<Menu<any> | MenuBar<any>>('MENU_COMPONENT');\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 {computed, Directive, effect, ElementRef, inject, input, model} from '@angular/core';\nimport {MenuItemPattern} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {MENU_COMPONENT} from './menu-tokens';\nimport type {Menu} from './menu';\nimport type {MenuBar} from './menu-bar';\n\n/**\n * An item in a Menu.\n *\n * `ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice\n * or action a user can take. They can also act as triggers for sub-menus.\n *\n * ```html\n * <div ngMenu (itemSelected)=\"doAction()\">\n * <div ngMenuItem >Action Item</div>\n * <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuItem]',\n exportAs: 'ngMenuItem',\n host: {\n 'role': 'menuitem',\n '(focusin)': '_pattern.onFocusIn()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.data-active]': 'active()',\n '[attr.aria-label]': 'value()',\n '[attr.aria-haspopup]': 'hasPopup()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.submenu()?.id()',\n },\n})\nexport class MenuItem<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The unique ID of the menu item. */\n readonly id = input(inject(_IdGenerator).getId('ng-menu-item-', true));\n\n /** The value of the menu item, used as the default aria-label */\n readonly value = input.required<V>();\n\n /** Whether the menu item is disabled. */\n readonly disabled = input<boolean>(false);\n\n // TODO(wagnermaciel): Discuss whether all inputs should be models.\n\n /** The search term associated with the menu item. */\n readonly searchTerm = model<string>('');\n\n /** A reference to the parent menu or menubar. */\n readonly parent = inject<Menu<V> | MenuBar<V>>(MENU_COMPONENT, {optional: true});\n\n /** The submenu associated with the menu item. */\n readonly submenu = input<Menu<V> | undefined>(undefined);\n\n /** Whether the menu item is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the menu is expanded. */\n readonly expanded = computed(() => this._pattern.expanded());\n\n /** Whether the menu item has a popup. */\n readonly hasPopup = computed(() => this._pattern.hasPopup());\n\n /** The menu item ui pattern instance. */\n readonly _pattern: MenuItemPattern<V> = new MenuItemPattern<V>({\n id: this.id,\n value: this.value,\n element: computed(() => this._elementRef.nativeElement),\n disabled: this.disabled,\n searchTerm: this.searchTerm,\n parent: computed(() => this.parent?._pattern),\n submenu: computed(() => this.submenu()?._pattern),\n });\n\n constructor() {\n effect(() => this.submenu()?.parent.set(this));\n }\n\n /** Opens the submenu focusing on the first menu item. */\n open() {\n this._pattern.open({first: true});\n }\n\n /** Closes the submenu. */\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 {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport {SignalLike, MenuBarPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {MenuItem} from './menu-item';\nimport {MENU_COMPONENT} from './menu-tokens';\n\n/**\n * A menu bar of menu items.\n *\n * Like the `ngMenu`, a `ngMenuBar` is used to offer a list of menu item choices to users.\n * However, a menubar is used to display a persistent, top-level, always-visible set of\n * menu item choices, typically found at the top of an application window.\n *\n * ```html\n * <div ngMenuBar>\n * <button ngMenuTrigger [menu]=\"fileMenu\">File</button>\n * <button ngMenuTrigger [menu]=\"editMenu\">Edit</button>\n * </div>\n *\n * <div ngMenu #fileMenu=\"ngMenu\">\n * <div ngMenuItem>New</div>\n * <div ngMenuItem>Open</div>\n * </div>\n *\n * <div ngMenu #editMenu=\"ngMenu\">\n * <div ngMenuItem>Cut</div>\n * <div ngMenuItem>Copy</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenuBar]',\n exportAs: 'ngMenuBar',\n host: {\n 'role': 'menubar',\n '[attr.disabled]': '!softDisabled() && _pattern.disabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(mouseover)': '_pattern.onMouseOver($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(focusout)': '_pattern.onFocusOut($event)',\n },\n providers: [{provide: MENU_COMPONENT, useExisting: MenuBar}],\n})\nexport class MenuBar<V> {\n /** The menu items contained in the menubar. */\n readonly _allItems = contentChildren<MenuItem<V>>(MenuItem, {descendants: true});\n\n readonly _items: SignalLike<MenuItem<V>[]> = () =>\n this._allItems().filter(i => i.parent === this);\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** Whether the menubar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the menubar is soft disabled. */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The values of the currently selected menu items. */\n readonly values = model<V[]>([]);\n\n /** Whether the menu should wrap its items. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The delay in milliseconds before the typeahead buffer is cleared. */\n readonly typeaheadDelay = input<number>(500);\n\n /** The menu ui pattern instance. */\n readonly _pattern: MenuBarPattern<V>;\n\n /** The menu items as a writable signal. */\n private readonly _itemPatterns = signal<any[]>([]);\n\n /** A callback function triggered when a menu item is selected. */\n readonly itemSelected = output<V>();\n\n constructor() {\n this._pattern = new MenuBarPattern({\n ...this,\n items: this._itemPatterns,\n multi: () => false,\n softDisabled: () => true,\n focusMode: () => 'roving',\n orientation: () => 'horizontal',\n selectionMode: () => 'explicit',\n itemSelected: (value: V) => this.itemSelected.emit(value),\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n });\n\n afterRenderEffect(() => {\n this._itemPatterns.set(this._items().map(i => i._pattern));\n });\n\n afterRenderEffect(() => {\n if (!this._pattern.hasBeenFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n /** Closes the menubar. */\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 {\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n Signal,\n signal,\n untracked,\n} from '@angular/core';\nimport {MenuPattern, DeferredContentAware} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {MenuTrigger} from './menu-trigger';\nimport {MenuItem} from './menu-item';\nimport {MenuBar} from './menu-bar';\nimport {MENU_COMPONENT} from './menu-tokens';\n\n/**\n * A list of menu items.\n *\n * A `ngMenu` is used to offer a list of menu item choices to users. Menus can be nested\n * within other menus to create sub-menus. It works in conjunction with `ngMenuTrigger`\n * and `ngMenuItem` directives.\n *\n * ```html\n * <button ngMenuTrigger [menu]=\"myMenu\">Options</button>\n *\n * <div ngMenu #myMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Star\">Star</div>\n * <div ngMenuItem value=\"Edit\">Edit</div>\n * <div ngMenuItem value=\"More\" [submenu]=\"subMenu\">More</div>\n * </div>\n *\n * <div ngMenu #subMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Sub Item 1\">Sub Item 1</div>\n * <div ngMenuItem value=\"Sub Item 2\">Sub Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: '[ngMenu]',\n exportAs: 'ngMenu',\n host: {\n 'role': 'menu',\n '[attr.id]': '_pattern.id()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.tabindex]': 'tabIndex()',\n '[attr.data-visible]': 'visible()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(mouseover)': '_pattern.onMouseOver($event)',\n '(mouseout)': '_pattern.onMouseOut($event)',\n '(focusout)': '_pattern.onFocusOut($event)',\n '(focusin)': '_pattern.onFocusIn()',\n '(click)': '_pattern.onClick($event)',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n providers: [{provide: MENU_COMPONENT, useExisting: Menu}],\n})\nexport class Menu<V> {\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware, {optional: true});\n\n /** The menu items contained in the menu. */\n readonly _allItems = contentChildren<MenuItem<V>>(MenuItem, {descendants: true});\n\n /** The menu items that are direct children of this menu. */\n readonly _items: Signal<MenuItem<V>[]> = computed(() =>\n this._allItems().filter(i => i.parent === this),\n );\n\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The directionality (LTR / RTL) context for the application (or a subtree of it). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The unique ID of the menu. */\n readonly id = input(inject(_IdGenerator).getId('ng-menu-', true));\n\n /** Whether the menu should wrap its items. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The delay in milliseconds before the typeahead buffer is cleared. */\n readonly typeaheadDelay = input<number>(500); // Picked arbitrarily.\n\n /** Whether the menu is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** A reference to the parent menu item or menu trigger. */\n readonly parent = signal<MenuTrigger<V> | MenuItem<V> | undefined>(undefined);\n\n /** The menu ui pattern instance. */\n readonly _pattern: MenuPattern<V>;\n\n /**\n * The menu items as a writable signal.\n *\n * TODO(wagnermaciel): This would normally be a computed, but using a computed causes a bug where\n * sometimes the items array is empty. The bug can be reproduced by switching this to use a\n * computed and then quickly opening and closing menus in the dev app.\n */\n private readonly _itemPatterns = () => this._items().map(i => i._pattern);\n\n /** Whether the menu is visible. */\n readonly visible = computed(() => this._pattern.visible());\n\n /** The tab index of the menu. */\n readonly tabIndex = computed(() => this._pattern.tabIndex());\n\n /** A callback function triggered when a menu item is selected. */\n readonly itemSelected = output<V>();\n\n /** The delay in milliseconds before expanding sub-menus on hover. */\n readonly expansionDelay = input<number>(100); // Arbitrarily chosen.\n\n constructor() {\n this._pattern = new MenuPattern({\n ...this,\n parent: computed(() => this.parent()?._pattern),\n items: this._itemPatterns,\n multi: () => false,\n softDisabled: () => true,\n focusMode: () => 'roving',\n orientation: () => 'vertical',\n selectionMode: () => 'explicit',\n activeItem: signal(undefined),\n element: computed(() => this._elementRef.nativeElement),\n itemSelected: (value: V) => this.itemSelected.emit(value),\n });\n\n afterRenderEffect(() => {\n const parent = this.parent();\n if (parent instanceof MenuItem && parent.parent instanceof MenuBar) {\n this._deferredContentAware?.contentVisible.set(true);\n } else {\n this._deferredContentAware?.contentVisible.set(\n this._pattern.visible() || !!this.parent()?._pattern.hasBeenFocused(),\n );\n }\n });\n\n // TODO(wagnermaciel): This is a redundancy needed for if the user uses display: none to hide\n // submenus. In those cases, the ui pattern is calling focus() before the ui has a chance to\n // update the display property. The result is focus() being called on an element that is not\n // focusable. This simply retries focusing the element after render.\n afterRenderEffect(() => {\n if (this._pattern.visible()) {\n const activeItem = untracked(() => this._pattern.inputs.activeItem());\n this._pattern.listBehavior.goto(activeItem!);\n }\n });\n\n afterRenderEffect(() => {\n if (\n !this._pattern.hasBeenFocused() &&\n !this._pattern.hasBeenHovered() &&\n this._items().length\n ) {\n untracked(() => this._pattern.setDefaultState());\n }\n });\n }\n\n /** Closes the menu. */\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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * Defers the rendering of the menu content.\n *\n * This structural directive should be applied to an `ng-template` within a `ngMenu`\n * or `ngMenuBar` to lazily render its content only when the menu is opened.\n *\n * ```html\n * <div ngMenu #myMenu=\"ngMenu\">\n * <ng-template ngMenuContent>\n * <div ngMenuItem>Lazy Item 1</div>\n * <div ngMenuItem>Lazy Item 2</div>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */\n@Directive({\n selector: 'ng-template[ngMenuContent]',\n exportAs: 'ngMenuContent',\n hostDirectives: [DeferredContent],\n})\nexport class MenuContent {}\n"],"names":["MenuTrigger","_elementRef","inject","ElementRef","element","nativeElement","textDirection","Directionality","valueSignal","menu","input","undefined","expanded","computed","_pattern","hasPopup","disabled","transform","booleanAttribute","softDisabled","MenuTriggerPattern","constructor","effect","parent","set","open","first","close","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","listeners","properties","exportAs","ngImport","decorators","args","MENU_COMPONENT","InjectionToken","MenuItem","id","_IdGenerator","getId","value","required","searchTerm","model","optional","submenu","active","MenuItemPattern","outputs","attributes","MenuBar","_allItems","contentChildren","descendants","_items","filter","i","values","wrap","typeaheadDelay","_itemPatterns","signal","itemSelected","output","MenuBarPattern","items","multi","focusMode","orientation","selectionMode","emit","activeItem","afterRenderEffect","map","hasBeenFocused","setDefaultState","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","providers","provide","useExisting","ctorParameters","propDecorators","ContentChildren","forwardRef","Input","alias","Output","Menu","_deferredContentAware","DeferredContentAware","ngDevMode","debugName","visible","tabIndex","expansionDelay","MenuPattern","contentVisible","untracked","listBehavior","goto","hasBeenHovered","length","hostDirectives","directive","i1","MenuContent","DeferredContent"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"tabs.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/utils.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-list.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-panel.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tabs.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-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 {InjectionToken} from '@angular/core';\nimport type {Tabs} from './tabs';\n\n/** Token used to expose the `Tabs` directive to child directives. */\nexport const TABS = new InjectionToken<Tabs>('TABS');\n\nexport interface HasElement {\n element: HTMLElement;\n}\n\n/**\n * Sort directives by their document order.\n */\nexport function sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\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 {Directionality} from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabListPattern, TabPattern} from '../private';\nimport {sortDirectives, TABS} from './utils';\nimport type {Tab} from './tab';\n\n/**\n * A TabList container.\n *\n * The `ngTabList` directive controls a list of `ngTab` elements. It manages keyboard\n * navigation, selection, and the overall orientation of the tabs. It should be placed\n * within an `ngTabs` container.\n *\n * ```html\n * <ul ngTabList [(selectedTab)]=\"mySelectedTab\" orientation=\"horizontal\" selectionMode=\"explicit\">\n * <li ngTab value=\"first\">First Tab</li>\n * <li ngTab value=\"second\">Second Tab</li>\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabList]',\n exportAs: 'ngTabList',\n host: {\n 'role': 'tablist',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n})\nexport class TabList implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** The Tabs nested inside of the TabList. */\n private readonly _unorderedTabs = signal(new Set<Tab>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The Tab UIPatterns of the child Tabs. */\n readonly _tabPatterns = computed<TabPattern[]>(() =>\n [...this._unorderedTabs()].sort(sortDirectives).map(tab => tab._pattern),\n );\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = 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 /**\n * The focus strategy used by the tablist.\n * - `roving`: Focus is moved to the active tab using `tabindex`.\n * - `activedescendant`: Focus remains on the tablist container, and `aria-activedescendant` is used to indicate the active tab.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the tablist.\n * - `follow`: The focused tab is automatically selected.\n * - `explicit`: Tabs are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The current selected tab. */\n readonly selectedTab = model<string | undefined>();\n\n /** Whether the tablist is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The TabList UIPattern. */\n readonly _pattern: TabListPattern = new TabListPattern({\n ...this,\n items: this._tabPatterns,\n activeItem: signal(undefined),\n element: () => this._elementRef.nativeElement,\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n afterRenderEffect(() => {\n const tab = this._pattern.selectedTab();\n if (tab) {\n this.selectedTab.set(tab.value());\n }\n });\n\n afterRenderEffect(() => {\n const value = this.selectedTab();\n if (value) {\n this._tabPatterns().forEach(tab => tab.expanded.set(false));\n const tab = this._tabPatterns().find(t => t.value() === value);\n this._pattern.selectedTab.set(tab);\n tab?.expanded.set(true);\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n ngOnInit() {\n this._tabs._register(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregister(this);\n }\n\n _register(child: Tab) {\n this._unorderedTabs().add(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n _unregister(child: Tab) {\n this._unorderedTabs().delete(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n /** Opens the tab panel with the specified value. */\n open(value: string): boolean {\n return this._pattern.open(value);\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabPanelPattern, DeferredContentAware} from '../private';\nimport {TABS} from './utils';\n\n/**\n * A TabPanel container for the resources of layered content associated with a tab.\n *\n * The `ngTabPanel` directive holds the content for a specific tab. It is linked to an\n * `ngTab` by a matching `value`. If a tab panel is hidden, the `inert` attribute will be\n * applied to remove it from the accessibility tree. Proper styling is required for visual hiding.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <!-- Content for the tab panel -->\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabPanel]',\n exportAs: 'ngTabPanel',\n host: {\n 'role': 'tabpanel',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': '!visible() ? true : null',\n '[attr.aria-labelledby]': '_pattern.labelledBy()',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n})\nexport class TabPanel implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** A global unique identifier for the tab. */\n readonly id = input(inject(_IdGenerator).getId('ng-tabpanel-', true));\n\n /** The Tab UIPattern associated with the tabpanel */\n private readonly _tabPattern = computed(() =>\n this._tabs._tabPatterns()?.find(tab => tab.value() === this.value()),\n );\n\n /** A local unique identifier for the tabpanel. */\n readonly value = input.required<string>();\n\n /** Whether the tab panel is visible. */\n readonly visible = computed(() => !this._pattern.hidden());\n\n /** The TabPanel UIPattern. */\n readonly _pattern: TabPanelPattern = new TabPanelPattern({\n ...this,\n tab: this._tabPattern,\n });\n\n constructor() {\n afterRenderEffect(() => this._deferredContentAware.contentVisible.set(this.visible()));\n }\n\n ngOnInit() {\n this._tabs._register(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregister(this);\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 {computed, Directive, ElementRef, inject, signal} from '@angular/core';\nimport {TabList} from './tab-list';\nimport {TabPanel} from './tab-panel';\nimport {TABS} from './utils';\nimport {TabPanelPattern, TabPattern} from '../private';\n\n/**\n * A Tabs container.\n *\n * The `ngTabs` directive represents a set of layered sections of content. It acts as the\n * overarching container for a tabbed interface, coordinating the behavior of `ngTabList`,\n * `ngTab`, and `ngTabPanel` directives.\n *\n * ```html\n * <div ngTabs>\n * <ul ngTabList [(selectedTab)]=\"selectedTabValue\">\n * <li ngTab value=\"tab1\">Tab 1</li>\n * <li ngTab value=\"tab2\">Tab 2</li>\n * <li ngTab value=\"tab3\">Tab 3</li>\n * </ul>\n *\n * <div ngTabPanel value=\"tab1\">\n * <ng-template ngTabContent>Content for Tab 1</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab2\">\n * <ng-template ngTabContent>Content for Tab 2</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab3\">\n * <ng-template ngTabContent>Content for Tab 3</ng-template>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabs]',\n exportAs: 'ngTabs',\n providers: [{provide: TABS, useExisting: Tabs}],\n})\nexport class Tabs {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _tablist = signal<TabList | undefined>(undefined);\n\n /** The TabPanels nested inside of the container. */\n private readonly _unorderedPanels = signal(new Set<TabPanel>());\n\n /** The Tab UIPattern of the child Tabs. */\n readonly _tabPatterns = computed<TabPattern[] | undefined>(() => this._tablist()?._tabPatterns());\n\n /** The TabPanel UIPattern of the child TabPanels. */\n readonly _unorderedTabpanelPatterns = computed<TabPanelPattern[]>(() =>\n [...this._unorderedPanels()].map(tabpanel => tabpanel._pattern),\n );\n\n _register(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(child);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().add(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\n }\n\n _unregister(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(undefined);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().delete(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabPattern} from '../private';\nimport {TabList} from './tab-list';\nimport {HasElement, TABS} from './utils';\n\n/**\n * A selectable tab in a TabList.\n *\n * The `ngTab` directive represents an individual tab control within an `ngTabList`. It\n * requires a `value` that uniquely identifies it and links it to a corresponding `ngTabPanel`.\n *\n * ```html\n * <li ngTab value=\"myTabId\" [disabled]=\"isTabDisabled\">\n * My Tab Label\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTab]',\n exportAs: 'ngTab',\n host: {\n 'role': 'tab',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.controls()',\n },\n})\nexport class Tab implements HasElement, OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** The parent TabList. */\n private readonly _tabList = inject(TabList);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-tab-', true));\n\n /** The parent TabList UIPattern. */\n private readonly _tablistPattern = computed(() => this._tabList._pattern);\n\n /** The TabPanel UIPattern associated with the tab */\n private readonly _tabpanelPattern = computed(() =>\n this._tabs._unorderedTabpanelPatterns().find(tabpanel => tabpanel.value() === this.value()),\n );\n\n /** Whether a tab is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The remote tabpanel unique identifier. */\n readonly value = input.required<string>();\n\n /** Whether the tab is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the tab is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Tab UIPattern. */\n readonly _pattern: TabPattern = new TabPattern({\n ...this,\n tablist: this._tablistPattern,\n tabpanel: this._tabpanelPattern,\n expanded: signal(false),\n element: () => this.element,\n });\n\n /** Opens this tab panel. */\n open() {\n this._pattern.open();\n }\n\n ngOnInit() {\n this._tabList._register(this);\n }\n\n ngOnDestroy() {\n this._tabList._unregister(this);\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 TabContent container for the lazy-loaded content.\n *\n * This structural directive should be applied to an `ng-template` within an `ngTabPanel`.\n * It enables lazy loading of the tab's content, meaning the content is only rendered\n * when the tab is activated for the first time.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <p>This content will be loaded when 'myTabId' is selected.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: 'ng-template[ngTabContent]',\n exportAs: 'ngTabContent',\n hostDirectives: [DeferredContent],\n})\nexport class TabContent {}\n"],"names":["TABS","InjectionToken","sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","TabList","_elementRef","inject","ElementRef","nativeElement","_tabs","_unorderedTabs","signal","Set","textDirection","Directionality","valueSignal","_tabPatterns","computed","sort","map","tab","_pattern","orientation","input","wrap","transform","booleanAttribute","softDisabled","focusMode","selectionMode","selectedTab","model","ngDevMode","undefined","debugName","disabled","TabListPattern","items","activeItem","_hasFocused","constructor","afterRenderEffect","setDefaultState","set","value","forEach","expanded","find","t","_onFocus","ngOnInit","_register","ngOnDestroy","_unregister","child","add","delete","open","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","TabPanel","_deferredContentAware","DeferredContentAware","id","_IdGenerator","getId","_tabPattern","required","visible","hidden","TabPanelPattern","contentVisible","hostDirectives","directive","i1","Tabs","_tablist","_unorderedPanels","_unorderedTabpanelPatterns","tabpanel","providers","provide","useExisting","Tab","_tabList","_tablistPattern","_tabpanelPattern","active","selected","TabPattern","tablist","TabContent","DeferredContent"],"mappings":";;;;;;;;;;;;AAYO,MAAMA,IAAI,GAAG,IAAIC,cAAc,CAAO,MAAM,CAAC;AASpC,SAAAC,cAAcA,CAACC,CAAa,EAAEC,CAAa,EAAA;EACzD,OAAO,CAACD,CAAC,CAACE,OAAO,CAACC,uBAAuB,CAACF,CAAC,CAACC,OAAO,CAAC,GAAGE,IAAI,CAACC,2BAA2B,IAAI,CAAA,GACvF,CAAA,GACA,CAAC,CAAC;AACR;;MCiCaC,OAAO,CAAA;AAEDC,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCP,EAAAA,OAAO,GAAG,IAAI,CAACK,WAAW,CAACG,aAA4B;AAG/CC,EAAAA,KAAK,GAAGH,MAAM,CAACX,IAAI,CAAC;EAGpBe,cAAc,GAAGC,MAAM,CAAC,IAAIC,GAAG,EAAO;;WAAC;AAG/CC,EAAAA,aAAa,GAAGP,MAAM,CAACQ,cAAc,CAAC,CAACC,WAAW;AAGlDC,EAAAA,YAAY,GAAGC,QAAQ,CAAe,MAC7C,CAAC,GAAG,IAAI,CAACP,cAAc,EAAE,CAAC,CAACQ,IAAI,CAACrB,cAAc,CAAC,CAACsB,GAAG,CAACC,GAAG,IAAIA,GAAG,CAACC,QAAQ,CAAC;;WACzE;EAGQC,WAAW,GAAGC,KAAK,CAA4B,YAAY;;WAAC;AAG5DC,EAAAA,IAAI,GAAGD,KAAK,CAAC,IAAI;;;;AAAGE,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;AAMjDC,EAAAA,YAAY,GAAGJ,KAAK,CAAC,IAAI;;;;AAAGE,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAOzDE,SAAS,GAAGL,KAAK,CAAgC,QAAQ;;WAAC;EAO1DM,aAAa,GAAGN,KAAK,CAAwB,QAAQ;;WAAC;EAGtDO,WAAW,GAAGC,KAAK,CAAA,IAAAC,SAAA,GAAA,CAAAC,SAAA,EAAA;AAAAC,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;AAGzCC,EAAAA,QAAQ,GAAGZ,KAAK,CAAC,KAAK;;;;AAAGE,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAGtDL,QAAQ,GAAmB,IAAIe,cAAc,CAAC;AACrD,IAAA,GAAG,IAAI;IACPC,KAAK,EAAE,IAAI,CAACrB,YAAY;AACxBsB,IAAAA,UAAU,EAAE3B,MAAM,CAACsB,SAAS,CAAC;AAC7BjC,IAAAA,OAAO,EAAEA,MAAM,IAAI,CAACK,WAAW,CAACG;AACjC,GAAA,CAAC;EAGM+B,WAAW,GAAG5B,MAAM,CAAC,KAAK;;WAAC;AAEnC6B,EAAAA,WAAAA,GAAA;AACEC,IAAAA,iBAAiB,CAAC,MAAK;AACrB,MAAA,IAAI,CAAC,IAAI,CAACF,WAAW,EAAE,EAAE;AACvB,QAAA,IAAI,CAAClB,QAAQ,CAACqB,eAAe,EAAE;AACjC;AACF,KAAC,CAAC;AAEFD,IAAAA,iBAAiB,CAAC,MAAK;MACrB,MAAMrB,GAAG,GAAG,IAAI,CAACC,QAAQ,CAACS,WAAW,EAAE;AACvC,MAAA,IAAIV,GAAG,EAAE;QACP,IAAI,CAACU,WAAW,CAACa,GAAG,CAACvB,GAAG,CAACwB,KAAK,EAAE,CAAC;AACnC;AACF,KAAC,CAAC;AAEFH,IAAAA,iBAAiB,CAAC,MAAK;AACrB,MAAA,MAAMG,KAAK,GAAG,IAAI,CAACd,WAAW,EAAE;AAChC,MAAA,IAAIc,KAAK,EAAE;AACT,QAAA,IAAI,CAAC5B,YAAY,EAAE,CAAC6B,OAAO,CAACzB,GAAG,IAAIA,GAAG,CAAC0B,QAAQ,CAACH,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3D,QAAA,MAAMvB,GAAG,GAAG,IAAI,CAACJ,YAAY,EAAE,CAAC+B,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACJ,KAAK,EAAE,KAAKA,KAAK,CAAC;QAC9D,IAAI,CAACvB,QAAQ,CAACS,WAAW,CAACa,GAAG,CAACvB,GAAG,CAAC;AAClCA,QAAAA,GAAG,EAAE0B,QAAQ,CAACH,GAAG,CAAC,IAAI,CAAC;AACzB;AACF,KAAC,CAAC;AACJ;AAEAM,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,CAACV,WAAW,CAACI,GAAG,CAAC,IAAI,CAAC;AAC5B;AAEAO,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,CAACzC,KAAK,CAAC0C,SAAS,CAAC,IAAI,CAAC;AAC5B;AAEAC,EAAAA,WAAWA,GAAA;AACT,IAAA,IAAI,CAAC3C,KAAK,CAAC4C,WAAW,CAAC,IAAI,CAAC;AAC9B;EAEAF,SAASA,CAACG,KAAU,EAAA;IAClB,IAAI,CAAC5C,cAAc,EAAE,CAAC6C,GAAG,CAACD,KAAK,CAAC;AAChC,IAAA,IAAI,CAAC5C,cAAc,CAACiC,GAAG,CAAC,IAAI/B,GAAG,CAAC,IAAI,CAACF,cAAc,EAAE,CAAC,CAAC;AACzD;EAEA2C,WAAWA,CAACC,KAAU,EAAA;IACpB,IAAI,CAAC5C,cAAc,EAAE,CAAC8C,MAAM,CAACF,KAAK,CAAC;AACnC,IAAA,IAAI,CAAC5C,cAAc,CAACiC,GAAG,CAAC,IAAI/B,GAAG,CAAC,IAAI,CAACF,cAAc,EAAE,CAAC,CAAC;AACzD;EAGA+C,IAAIA,CAACb,KAAa,EAAA;AAChB,IAAA,OAAO,IAAI,CAACvB,QAAQ,CAACoC,IAAI,CAACb,KAAK,CAAC;AAClC;;;;;UAlHWxC,OAAO;AAAAsD,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAP1D,OAAO;AAAA2D,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,aAAA;AAAAC,IAAAA,MAAA,EAAA;AAAA3C,MAAAA,WAAA,EAAA;AAAA4C,QAAAA,iBAAA,EAAA,aAAA;AAAAC,QAAAA,UAAA,EAAA,aAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA9C,MAAAA,IAAA,EAAA;AAAA0C,QAAAA,iBAAA,EAAA,MAAA;AAAAC,QAAAA,UAAA,EAAA,MAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA3C,MAAAA,YAAA,EAAA;AAAAuC,QAAAA,iBAAA,EAAA,cAAA;AAAAC,QAAAA,UAAA,EAAA,cAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA1C,MAAAA,SAAA,EAAA;AAAAsC,QAAAA,iBAAA,EAAA,WAAA;AAAAC,QAAAA,UAAA,EAAA,WAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAzC,MAAAA,aAAA,EAAA;AAAAqC,QAAAA,iBAAA,EAAA,eAAA;AAAAC,QAAAA,UAAA,EAAA,eAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAxC,MAAAA,WAAA,EAAA;AAAAoC,QAAAA,iBAAA,EAAA,aAAA;AAAAC,QAAAA,UAAA,EAAA,aAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAnC,MAAAA,QAAA,EAAA;AAAA+B,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAC,IAAAA,OAAA,EAAA;AAAAzC,MAAAA,WAAA,EAAA;KAAA;AAAA0C,IAAAA,IAAA,EAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAAC,MAAAA,SAAA,EAAA;AAAA,QAAA,SAAA,EAAA,4BAAA;AAAA,QAAA,aAAA,EAAA,gCAAA;AAAA,QAAA,SAAA,EAAA;OAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,eAAA,EAAA,qBAAA;AAAA,QAAA,oBAAA,EAAA,qBAAA;AAAA,QAAA,uBAAA,EAAA,wBAAA;AAAA,QAAA,4BAAA,EAAA;AAAA;KAAA;IAAAC,QAAA,EAAA,CAAA,WAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAjB;AAAA,GAAA,CAAA;;;;;;QAAPxD,OAAO;AAAA0E,EAAAA,UAAA,EAAA,CAAA;UAdnBhB,SAAS;AAACiB,IAAAA,IAAA,EAAA,CAAA;AACTf,MAAAA,QAAQ,EAAE,aAAa;AACvBY,MAAAA,QAAQ,EAAE,WAAW;AACrBJ,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,yBAAyB,EAAE,wBAAwB;AACnD,QAAA,8BAA8B,EAAE,6BAA6B;AAC7D,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,eAAe,EAAE,gCAAgC;AACjD,QAAA,WAAW,EAAE;AACd;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCCYQ,QAAQ,CAAA;AAEF3E,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCP,EAAAA,OAAO,GAAG,IAAI,CAACK,WAAW,CAACG,aAA4B;AAG/CyE,EAAAA,qBAAqB,GAAG3E,MAAM,CAAC4E,oBAAoB,CAAC;AAGpDzE,EAAAA,KAAK,GAAGH,MAAM,CAACX,IAAI,CAAC;AAG5BwF,EAAAA,EAAE,GAAG5D,KAAK,CAACjB,MAAM,CAAC8E,YAAY,CAAC,CAACC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC;;WAAC;AAGpDC,EAAAA,WAAW,GAAGrE,QAAQ,CAAC,MACtC,IAAI,CAACR,KAAK,CAACO,YAAY,EAAE,EAAE+B,IAAI,CAAC3B,GAAG,IAAIA,GAAG,CAACwB,KAAK,EAAE,KAAK,IAAI,CAACA,KAAK,EAAE,CAAC;;WACrE;EAGQA,KAAK,GAAGrB,KAAK,CAACgE,QAAQ;;WAAU;AAGhCC,EAAAA,OAAO,GAAGvE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAACI,QAAQ,CAACoE,MAAM,EAAE;;WAAC;EAGjDpE,QAAQ,GAAoB,IAAIqE,eAAe,CAAC;AACvD,IAAA,GAAG,IAAI;IACPtE,GAAG,EAAE,IAAI,CAACkE;AACX,GAAA,CAAC;AAEF9C,EAAAA,WAAAA,GAAA;AACEC,IAAAA,iBAAiB,CAAC,MAAM,IAAI,CAACwC,qBAAqB,CAACU,cAAc,CAAChD,GAAG,CAAC,IAAI,CAAC6C,OAAO,EAAE,CAAC,CAAC;AACxF;AAEAtC,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,CAACzC,KAAK,CAAC0C,SAAS,CAAC,IAAI,CAAC;AAC5B;AAEAC,EAAAA,WAAWA,GAAA;AACT,IAAA,IAAI,CAAC3C,KAAK,CAAC4C,WAAW,CAAC,IAAI,CAAC;AAC9B;;;;;UA3CW2B,QAAQ;AAAAtB,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAARkB,QAAQ;AAAAjB,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,cAAA;AAAAC,IAAAA,MAAA,EAAA;AAAAkB,MAAAA,EAAA,EAAA;AAAAjB,QAAAA,iBAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA1B,MAAAA,KAAA,EAAA;AAAAsB,QAAAA,iBAAA,EAAA,OAAA;AAAAC,QAAAA,UAAA,EAAA,OAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAE,IAAAA,IAAA,EAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAAE,MAAAA,UAAA,EAAA;AAAA,QAAA,SAAA,EAAA,eAAA;AAAA,QAAA,eAAA,EAAA,qBAAA;AAAA,QAAA,YAAA,EAAA,0BAAA;AAAA,QAAA,sBAAA,EAAA;AAAA;KAAA;IAAAC,QAAA,EAAA,CAAA,YAAA,CAAA;AAAAgB,IAAAA,cAAA,EAAA,CAAA;MAAAC,SAAA,EAAAC,oBAAA;AAAA7B,MAAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA;AAAA,KAAA,CAAA;AAAAY,IAAAA,QAAA,EAAAjB;AAAA,GAAA,CAAA;;;;;;QAARoB,QAAQ;AAAAF,EAAAA,UAAA,EAAA,CAAA;UAjBpBhB,SAAS;AAACiB,IAAAA,IAAA,EAAA,CAAA;AACTf,MAAAA,QAAQ,EAAE,cAAc;AACxBY,MAAAA,QAAQ,EAAE,YAAY;AACtBJ,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,WAAW,EAAE,eAAe;AAC5B,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,cAAc,EAAE,0BAA0B;AAC1C,QAAA,wBAAwB,EAAE;OAC3B;AACDoB,MAAAA,cAAc,EAAE,CACd;AACEC,QAAAA,SAAS,EAAEX,oBAAoB;QAC/BjB,MAAM,EAAE,CAAC,iBAAiB;OAC3B;KAEJ;;;;;;;;;;;;;;;;;;;;;;;MCPY8B,IAAI,CAAA;AAEE1F,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCP,EAAAA,OAAO,GAAG,IAAI,CAACK,WAAW,CAACG,aAA4B;EAG/CwF,QAAQ,GAAGrF,MAAM,CAAsBsB,SAAS;;WAAC;EAGjDgE,gBAAgB,GAAGtF,MAAM,CAAC,IAAIC,GAAG,EAAY;;WAAC;AAGtDI,EAAAA,YAAY,GAAGC,QAAQ,CAA2B,MAAM,IAAI,CAAC+E,QAAQ,EAAE,EAAEhF,YAAY,EAAE;;WAAC;EAGxFkF,0BAA0B,GAAGjF,QAAQ,CAAoB,MAChE,CAAC,GAAG,IAAI,CAACgF,gBAAgB,EAAE,CAAC,CAAC9E,GAAG,CAACgF,QAAQ,IAAIA,QAAQ,CAAC9E,QAAQ,CAAC,EAAA,IAAAW,SAAA,GAAA,CAAA;AAAAE,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAChE;EAEDiB,SAASA,CAACG,KAAyB,EAAA;IACjC,IAAIA,KAAK,YAAYlD,OAAO,EAAE;AAC5B,MAAA,IAAI,CAAC4F,QAAQ,CAACrD,GAAG,CAACW,KAAK,CAAC;AAC1B;IAEA,IAAIA,KAAK,YAAY0B,QAAQ,EAAE;MAC7B,IAAI,CAACiB,gBAAgB,EAAE,CAAC1C,GAAG,CAACD,KAAK,CAAC;AAClC,MAAA,IAAI,CAAC2C,gBAAgB,CAACtD,GAAG,CAAC,IAAI/B,GAAG,CAAC,IAAI,CAACqF,gBAAgB,EAAE,CAAC,CAAC;AAC7D;AACF;EAEA5C,WAAWA,CAACC,KAAyB,EAAA;IACnC,IAAIA,KAAK,YAAYlD,OAAO,EAAE;AAC5B,MAAA,IAAI,CAAC4F,QAAQ,CAACrD,GAAG,CAACV,SAAS,CAAC;AAC9B;IAEA,IAAIqB,KAAK,YAAY0B,QAAQ,EAAE;MAC7B,IAAI,CAACiB,gBAAgB,EAAE,CAACzC,MAAM,CAACF,KAAK,CAAC;AACrC,MAAA,IAAI,CAAC2C,gBAAgB,CAACtD,GAAG,CAAC,IAAI/B,GAAG,CAAC,IAAI,CAACqF,gBAAgB,EAAE,CAAC,CAAC;AAC7D;AACF;;;;;UAzCWF,IAAI;AAAArC,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAJiC,IAAI;AAAAhC,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,UAAA;AAAAoC,IAAAA,SAAA,EAFJ,CAAC;AAACC,MAAAA,OAAO,EAAE1G,IAAI;AAAE2G,MAAAA,WAAW,EAAEP;AAAI,KAAC,CAAC;IAAAnB,QAAA,EAAA,CAAA,QAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAjB;AAAA,GAAA,CAAA;;;;;;QAEpCmC,IAAI;AAAAjB,EAAAA,UAAA,EAAA,CAAA;UALhBhB,SAAS;AAACiB,IAAAA,IAAA,EAAA,CAAA;AACTf,MAAAA,QAAQ,EAAE,UAAU;AACpBY,MAAAA,QAAQ,EAAE,QAAQ;AAClBwB,MAAAA,SAAS,EAAE,CAAC;AAACC,QAAAA,OAAO,EAAE1G,IAAI;AAAE2G,QAAAA,WAAW,EAAMP;OAAC;KAC/C;;;;MCIYQ,GAAG,CAAA;AAEGlG,EAAAA,WAAW,GAAGC,MAAM,CAACC,UAAU,CAAC;AAGxCP,EAAAA,OAAO,GAAG,IAAI,CAACK,WAAW,CAACG,aAA4B;AAG/CC,EAAAA,KAAK,GAAGH,MAAM,CAACX,IAAI,CAAC;AAGpB6G,EAAAA,QAAQ,GAAGlG,MAAM,CAACF,OAAO,CAAC;AAGlC+E,EAAAA,EAAE,GAAG5D,KAAK,CAACjB,MAAM,CAAC8E,YAAY,CAAC,CAACC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;;WAAC;AAG/CoB,EAAAA,eAAe,GAAGxF,QAAQ,CAAC,MAAM,IAAI,CAACuF,QAAQ,CAACnF,QAAQ,EAAA,IAAAW,SAAA,GAAA,CAAA;AAAAE,IAAAA,SAAA,EAAA;AAAA,GAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAGxDwE,EAAAA,gBAAgB,GAAGzF,QAAQ,CAAC,MAC3C,IAAI,CAACR,KAAK,CAACyF,0BAA0B,EAAE,CAACnD,IAAI,CAACoD,QAAQ,IAAIA,QAAQ,CAACvD,KAAK,EAAE,KAAK,IAAI,CAACA,KAAK,EAAE,CAAC;;WAC5F;AAGQT,EAAAA,QAAQ,GAAGZ,KAAK,CAAC,KAAK;;;;AAAGE,IAAAA,SAAS,EAAEC;AAAgB,GAAA,CAAE;EAGtDkB,KAAK,GAAGrB,KAAK,CAACgE,QAAQ;;WAAU;AAGhCoB,EAAAA,MAAM,GAAG1F,QAAQ,CAAC,MAAM,IAAI,CAACI,QAAQ,CAACsF,MAAM,EAAE;;WAAC;AAG/CC,EAAAA,QAAQ,GAAG3F,QAAQ,CAAC,MAAM,IAAI,CAACI,QAAQ,CAACuF,QAAQ,EAAE;;WAAC;EAGnDvF,QAAQ,GAAe,IAAIwF,UAAU,CAAC;AAC7C,IAAA,GAAG,IAAI;IACPC,OAAO,EAAE,IAAI,CAACL,eAAe;IAC7BN,QAAQ,EAAE,IAAI,CAACO,gBAAgB;AAC/B5D,IAAAA,QAAQ,EAAEnC,MAAM,CAAC,KAAK,CAAC;AACvBX,IAAAA,OAAO,EAAEA,MAAM,IAAI,CAACA;AACrB,GAAA,CAAC;AAGFyD,EAAAA,IAAIA,GAAA;AACF,IAAA,IAAI,CAACpC,QAAQ,CAACoC,IAAI,EAAE;AACtB;AAEAP,EAAAA,QAAQA,GAAA;AACN,IAAA,IAAI,CAACsD,QAAQ,CAACrD,SAAS,CAAC,IAAI,CAAC;AAC/B;AAEAC,EAAAA,WAAWA,GAAA;AACT,IAAA,IAAI,CAACoD,QAAQ,CAACnD,WAAW,CAAC,IAAI,CAAC;AACjC;;;;;UAxDWkD,GAAG;AAAA7C,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAHyC,GAAG;AAAAxC,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,SAAA;AAAAC,IAAAA,MAAA,EAAA;AAAAkB,MAAAA,EAAA,EAAA;AAAAjB,QAAAA,iBAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAAnC,MAAAA,QAAA,EAAA;AAAA+B,QAAAA,iBAAA,EAAA,UAAA;AAAAC,QAAAA,UAAA,EAAA,UAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,KAAA;AAAAC,QAAAA,iBAAA,EAAA;OAAA;AAAA1B,MAAAA,KAAA,EAAA;AAAAsB,QAAAA,iBAAA,EAAA,OAAA;AAAAC,QAAAA,UAAA,EAAA,OAAA;AAAAC,QAAAA,QAAA,EAAA,IAAA;AAAAC,QAAAA,UAAA,EAAA,IAAA;AAAAC,QAAAA,iBAAA,EAAA;AAAA;KAAA;AAAAE,IAAAA,IAAA,EAAA;AAAAC,MAAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAAE,MAAAA,UAAA,EAAA;AAAA,QAAA,kBAAA,EAAA,UAAA;AAAA,QAAA,SAAA,EAAA,eAAA;AAAA,QAAA,eAAA,EAAA,qBAAA;AAAA,QAAA,oBAAA,EAAA,YAAA;AAAA,QAAA,oBAAA,EAAA,qBAAA;AAAA,QAAA,oBAAA,EAAA;AAAA;KAAA;IAAAC,QAAA,EAAA,CAAA,OAAA,CAAA;AAAAC,IAAAA,QAAA,EAAAjB;AAAA,GAAA,CAAA;;;;;;QAAH2C,GAAG;AAAAzB,EAAAA,UAAA,EAAA,CAAA;UAbfhB,SAAS;AAACiB,IAAAA,IAAA,EAAA,CAAA;AACTf,MAAAA,QAAQ,EAAE,SAAS;AACnBY,MAAAA,QAAQ,EAAE,OAAO;AACjBJ,MAAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,WAAW,EAAE,eAAe;AAC5B,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,sBAAsB,EAAE;AACzB;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCjBYuC,UAAU,CAAA;;;;;UAAVA,UAAU;AAAArD,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;UAAViD,UAAU;AAAAhD,IAAAA,YAAA,EAAA,IAAA;AAAAC,IAAAA,QAAA,EAAA,2BAAA;IAAAY,QAAA,EAAA,CAAA,cAAA,CAAA;AAAAgB,IAAAA,cAAA,EAAA,CAAA;MAAAC,SAAA,EAAAC;AAAA,KAAA,CAAA;AAAAjB,IAAAA,QAAA,EAAAjB;AAAA,GAAA,CAAA;;;;;;QAAVmD,UAAU;AAAAjC,EAAAA,UAAA,EAAA,CAAA;UALtBhB,SAAS;AAACiB,IAAAA,IAAA,EAAA,CAAA;AACTf,MAAAA,QAAQ,EAAE,2BAA2B;AACrCY,MAAAA,QAAQ,EAAE,cAAc;MACxBgB,cAAc,EAAE,CAACoB,eAAe;KACjC;;;;;;"}
{"version":3,"file":"tabs.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/utils.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-list.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tabs.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-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 {InjectionToken} from '@angular/core';\nimport type {Tabs} from './tabs';\n\n/** Token used to expose the `Tabs` directive to child directives. */\nexport const TABS = new InjectionToken<Tabs>('TABS');\n\nexport interface HasElement {\n element: HTMLElement;\n}\n\n/**\n * Sort directives by their document order.\n */\nexport function sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\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 {Directionality} from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabListPattern, TabPattern} from '../private';\nimport {sortDirectives, TABS} from './utils';\nimport type {Tab} from './tab';\n\n/**\n * A TabList container.\n *\n * The `ngTabList` directive controls a list of `ngTab` elements. It manages keyboard\n * navigation, selection, and the overall orientation of the tabs. It should be placed\n * within an `ngTabs` container.\n *\n * ```html\n * <ul ngTabList [(selectedTab)]=\"mySelectedTab\" orientation=\"horizontal\" selectionMode=\"explicit\">\n * <li ngTab value=\"first\">First Tab</li>\n * <li ngTab value=\"second\">Second Tab</li>\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabList]',\n exportAs: 'ngTabList',\n host: {\n 'role': 'tablist',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n})\nexport class TabList implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** The Tabs nested inside of the TabList. */\n private readonly _unorderedTabs = signal(new Set<Tab>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The Tab UIPatterns of the child Tabs. */\n readonly _tabPatterns = computed<TabPattern[]>(() =>\n [...this._unorderedTabs()].sort(sortDirectives).map(tab => tab._pattern),\n );\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = 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 /**\n * The focus strategy used by the tablist.\n * - `roving`: Focus is moved to the active tab using `tabindex`.\n * - `activedescendant`: Focus remains on the tablist container, and `aria-activedescendant` is used to indicate the active tab.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the tablist.\n * - `follow`: The focused tab is automatically selected.\n * - `explicit`: Tabs are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The current selected tab. */\n readonly selectedTab = model<string | undefined>();\n\n /** Whether the tablist is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The TabList UIPattern. */\n readonly _pattern: TabListPattern = new TabListPattern({\n ...this,\n items: this._tabPatterns,\n activeItem: signal(undefined),\n element: () => this._elementRef.nativeElement,\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n afterRenderEffect(() => {\n const tab = this._pattern.selectedTab();\n if (tab) {\n this.selectedTab.set(tab.value());\n }\n });\n\n afterRenderEffect(() => {\n const value = this.selectedTab();\n if (value) {\n this._tabPatterns().forEach(tab => tab.expanded.set(false));\n const tab = this._tabPatterns().find(t => t.value() === value);\n this._pattern.selectedTab.set(tab);\n tab?.expanded.set(true);\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n ngOnInit() {\n this._tabs._register(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregister(this);\n }\n\n _register(child: Tab) {\n this._unorderedTabs().add(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n _unregister(child: Tab) {\n this._unorderedTabs().delete(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n /** Opens the tab panel with the specified value. */\n open(value: string): boolean {\n return this._pattern.open(value);\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabPanelPattern, DeferredContentAware} from '../private';\nimport {TABS} from './utils';\n\n/**\n * A TabPanel container for the resources of layered content associated with a tab.\n *\n * The `ngTabPanel` directive holds the content for a specific tab. It is linked to an\n * `ngTab` by a matching `value`. If a tab panel is hidden, the `inert` attribute will be\n * applied to remove it from the accessibility tree. Proper styling is required for visual hiding.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <!-- Content for the tab panel -->\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabPanel]',\n exportAs: 'ngTabPanel',\n host: {\n 'role': 'tabpanel',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': '!visible() ? true : null',\n '[attr.aria-labelledby]': '_pattern.labelledBy()',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n})\nexport class TabPanel implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** A global unique identifier for the tab. */\n readonly id = input(inject(_IdGenerator).getId('ng-tabpanel-', true));\n\n /** The Tab UIPattern associated with the tabpanel */\n private readonly _tabPattern = computed(() =>\n this._tabs._tabPatterns()?.find(tab => tab.value() === this.value()),\n );\n\n /** A local unique identifier for the tabpanel. */\n readonly value = input.required<string>();\n\n /** Whether the tab panel is visible. */\n readonly visible = computed(() => !this._pattern.hidden());\n\n /** The TabPanel UIPattern. */\n readonly _pattern: TabPanelPattern = new TabPanelPattern({\n ...this,\n tab: this._tabPattern,\n });\n\n constructor() {\n afterRenderEffect(() => this._deferredContentAware.contentVisible.set(this.visible()));\n }\n\n ngOnInit() {\n this._tabs._register(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregister(this);\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 {computed, Directive, ElementRef, inject, signal} from '@angular/core';\nimport {TabList} from './tab-list';\nimport {TabPanel} from './tab-panel';\nimport {TABS} from './utils';\nimport {TabPanelPattern, TabPattern} from '../private';\n\n/**\n * A Tabs container.\n *\n * The `ngTabs` directive represents a set of layered sections of content. It acts as the\n * overarching container for a tabbed interface, coordinating the behavior of `ngTabList`,\n * `ngTab`, and `ngTabPanel` directives.\n *\n * ```html\n * <div ngTabs>\n * <ul ngTabList [(selectedTab)]=\"selectedTabValue\">\n * <li ngTab value=\"tab1\">Tab 1</li>\n * <li ngTab value=\"tab2\">Tab 2</li>\n * <li ngTab value=\"tab3\">Tab 3</li>\n * </ul>\n *\n * <div ngTabPanel value=\"tab1\">\n * <ng-template ngTabContent>Content for Tab 1</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab2\">\n * <ng-template ngTabContent>Content for Tab 2</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab3\">\n * <ng-template ngTabContent>Content for Tab 3</ng-template>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabs]',\n exportAs: 'ngTabs',\n providers: [{provide: TABS, useExisting: Tabs}],\n})\nexport class Tabs {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _tablist = signal<TabList | undefined>(undefined);\n\n /** The TabPanels nested inside of the container. */\n private readonly _unorderedPanels = signal(new Set<TabPanel>());\n\n /** The Tab UIPattern of the child Tabs. */\n readonly _tabPatterns = computed<TabPattern[] | undefined>(() => this._tablist()?._tabPatterns());\n\n /** The TabPanel UIPattern of the child TabPanels. */\n readonly _unorderedTabpanelPatterns = computed<TabPanelPattern[]>(() =>\n [...this._unorderedPanels()].map(tabpanel => tabpanel._pattern),\n );\n\n _register(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(child);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().add(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\n }\n\n _unregister(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(undefined);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().delete(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabPattern} from '../private';\nimport {TabList} from './tab-list';\nimport {HasElement, TABS} from './utils';\n\n/**\n * A selectable tab in a TabList.\n *\n * The `ngTab` directive represents an individual tab control within an `ngTabList`. It\n * requires a `value` that uniquely identifies it and links it to a corresponding `ngTabPanel`.\n *\n * ```html\n * <li ngTab value=\"myTabId\" [disabled]=\"isTabDisabled\">\n * My Tab Label\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTab]',\n exportAs: 'ngTab',\n host: {\n 'role': 'tab',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.controls()',\n },\n})\nexport class Tab implements HasElement, OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** The parent TabList. */\n private readonly _tabList = inject(TabList);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-tab-', true));\n\n /** The parent TabList UIPattern. */\n private readonly _tablistPattern = computed(() => this._tabList._pattern);\n\n /** The TabPanel UIPattern associated with the tab */\n private readonly _tabpanelPattern = computed(() =>\n this._tabs._unorderedTabpanelPatterns().find(tabpanel => tabpanel.value() === this.value()),\n );\n\n /** Whether a tab is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The remote tabpanel unique identifier. */\n readonly value = input.required<string>();\n\n /** Whether the tab is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the tab is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Tab UIPattern. */\n readonly _pattern: TabPattern = new TabPattern({\n ...this,\n tablist: this._tablistPattern,\n tabpanel: this._tabpanelPattern,\n expanded: signal(false),\n element: () => this.element,\n });\n\n /** Opens this tab panel. */\n open() {\n this._pattern.open();\n }\n\n ngOnInit() {\n this._tabList._register(this);\n }\n\n ngOnDestroy() {\n this._tabList._unregister(this);\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 TabContent container for the lazy-loaded content.\n *\n * This structural directive should be applied to an `ng-template` within an `ngTabPanel`.\n * It enables lazy loading of the tab's content, meaning the content is only rendered\n * when the tab is activated for the first time.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <p>This content will be loaded when 'myTabId' is selected.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: 'ng-template[ngTabContent]',\n exportAs: 'ngTabContent',\n hostDirectives: [DeferredContent],\n})\nexport class TabContent {}\n"],"names":["TABS","InjectionToken","sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","TabList","_elementRef","inject","ElementRef","nativeElement","_tabs","_unorderedTabs","signal","Set","textDirection","Directionality","valueSignal","_tabPatterns","computed","sort","map","tab","_pattern","orientation","input","wrap","transform","booleanAttribute","softDisabled","focusMode","selectionMode","selectedTab","model","ngDevMode","undefined","debugName","disabled","TabListPattern","items","activeItem","_hasFocused","constructor","afterRenderEffect","setDefaultState","set","value","forEach","expanded","find","t","_onFocus","ngOnInit","_register","ngOnDestroy","_unregister","child","add","delete","open","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","TabPanel","_deferredContentAware","DeferredContentAware","id","_IdGenerator","getId","_tabPattern","required","visible","hidden","TabPanelPattern","contentVisible","hostDirectives","directive","i1","Tabs","_tablist","_unorderedPanels","_unorderedTabpanelPatterns","tabpanel","providers","provide","useExisting","Tab","_tabList","_tablistPattern","_tabpanelPattern","active","selected","TabPattern","tablist","TabContent","DeferredContent"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"toolbar.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/utils.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-widget.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-widget-group.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 {ToolbarWidgetGroup} from './toolbar-widget-group';\n\n/** Token used to provide the `ToolbarWidgetGroup` directive. */\nexport const TOOLBAR_WIDGET_GROUP = new InjectionToken<ToolbarWidgetGroup<unknown>>(\n 'TOOLBAR_WIDGET_GROUP',\n);\n\ninterface HasElement {\n element: HTMLElement;\n}\n\nexport function sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\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 computed,\n input,\n booleanAttribute,\n signal,\n model,\n} from '@angular/core';\nimport {ToolbarPattern, ToolbarWidgetPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport type {ToolbarWidget} from './toolbar-widget';\nimport {sortDirectives} from './utils';\n\n/**\n * A toolbar widget container for a group of interactive widgets, such as\n * buttons or radio groups. It provides a single point of reference for keyboard navigation\n * and focus management. It supports various orientations and disabled states.\n *\n * ```html\n * <div ngToolbar orientation=\"horizontal\" [wrap]=\"true\">\n * <button ngToolbarWidget value=\"save\">Save</button>\n * <button ngToolbarWidget value=\"print\">Print</button>\n *\n * <div ngToolbarWidgetGroup [(value)]=\"selectedAlignment\">\n * <button ngToolbarWidget value=\"left\">Left</button>\n * <button ngToolbarWidget value=\"center\">Center</button>\n * <button ngToolbarWidget value=\"right\">Right</button>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbar]',\n exportAs: 'ngToolbar',\n host: {\n 'role': 'toolbar',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n})\nexport class Toolbar<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _widgets = signal(new Set<ToolbarWidget<V>>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Sorted UIPatterns of the child widgets */\n readonly _itemPatterns = computed<ToolbarWidgetPattern<V>[]>(() =>\n [...this._widgets()].sort(sortDirectives).map(widget => widget._pattern),\n );\n\n /** Whether the toolbar is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\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 softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the toolbar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The values of the selected widgets within the toolbar. */\n readonly values = model<V[]>([]);\n\n /** The toolbar UIPattern. */\n readonly _pattern: ToolbarPattern<V> = new ToolbarPattern<V>({\n ...this,\n items: this._itemPatterns,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n getItem: e => this._getItem(e),\n values: this.values,\n });\n\n /** Whether the toolbar has received focus yet. */\n private _hasBeenFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (!this._hasBeenFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n _onFocus() {\n this._hasBeenFocused.set(true);\n }\n\n _register(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (!widgets.has(widget)) {\n widgets.add(widget);\n this._widgets.set(new Set(widgets));\n }\n }\n\n _unregister(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (widgets.delete(widget)) {\n this._widgets.set(new Set(widgets));\n }\n }\n\n /** Finds the toolbar item associated with a given element. */\n private _getItem(element: Element) {\n return this._itemPatterns().find(item => item.element()?.contains(element));\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 inject,\n computed,\n input,\n booleanAttribute,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {\n ToolbarWidgetPattern,\n ToolbarWidgetGroupPattern,\n SignalLike,\n ToolbarPattern,\n} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Toolbar} from './toolbar';\nimport {TOOLBAR_WIDGET_GROUP} from './utils';\nimport type {ToolbarWidgetGroup} from './toolbar-widget-group';\n\n/**\n * A widget within a toolbar.\n *\n * The `ngToolbarWidget` directive should be applied to any native HTML element that acts\n * as an interactive widget within an `ngToolbar` or `ngToolbarWidgetGroup`. It enables\n * keyboard navigation and selection within the toolbar.\n *\n * ```html\n * <button ngToolbarWidget value=\"action-id\" [disabled]=\"isDisabled\">\n * Perform Action\n * </button>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbarWidget]',\n exportAs: 'ngToolbarWidget',\n host: {\n '[attr.data-active]': 'active()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': 'hardDisabled() ? true : null',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[id]': '_pattern.id()',\n },\n})\nexport class ToolbarWidget<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject<Toolbar<V>>(Toolbar);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-toolbar-widget-', true));\n\n /** The parent Toolbar UIPattern. */\n readonly _toolbarPattern = computed<ToolbarPattern<V>>(() => this._toolbar._pattern);\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the widget is 'hard' disabled, which is different from `aria-disabled`. A hard disabled widget cannot receive focus. */\n readonly hardDisabled = computed(() => this._pattern.disabled() && !this._toolbar.softDisabled());\n\n /** The optional ToolbarWidgetGroup this widget belongs to. */\n readonly _group = inject<ToolbarWidgetGroup<V>>(TOOLBAR_WIDGET_GROUP, {optional: true});\n\n /** The value associated with the widget. */\n readonly value = input.required<V>();\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the widget is selected (only relevant in a selection group). */\n readonly selected = () => this._pattern.selected();\n\n private readonly _groupPattern: SignalLike<\n ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined\n > = () => this._group?._pattern;\n\n /** The ToolbarWidget UIPattern. */\n readonly _pattern = new ToolbarWidgetPattern<V>({\n ...this,\n group: this._groupPattern,\n toolbar: this._toolbarPattern,\n id: this.id,\n value: this.value,\n element: () => this.element,\n });\n\n ngOnInit() {\n this._toolbar._register(this);\n }\n\n ngOnDestroy() {\n this._toolbar._unregister(this);\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 inject,\n computed,\n input,\n booleanAttribute,\n contentChildren,\n} from '@angular/core';\nimport {ToolbarWidgetPattern, ToolbarWidgetGroupPattern} from '../private';\nimport {Toolbar} from './toolbar';\nimport {ToolbarWidget} from './toolbar-widget';\nimport {TOOLBAR_WIDGET_GROUP} from './utils';\n\n/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups\n * that have their own internal navigation.\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbarWidgetGroup]',\n exportAs: 'ngToolbarWidgetGroup',\n providers: [{provide: TOOLBAR_WIDGET_GROUP, useExisting: ToolbarWidgetGroup}],\n})\nexport class ToolbarWidgetGroup<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject<Toolbar<V>>(Toolbar, {optional: true});\n\n /** The list of child widgets within the group. */\n private readonly _widgets = contentChildren(ToolbarWidget, {descendants: true});\n\n /** The parent Toolbar UIPattern. */\n private readonly _toolbarPattern = computed(() => this._toolbar?._pattern);\n\n /** Whether the widget group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The list of toolbar items within the group. */\n private readonly _itemPatterns = () => this._widgets().map(w => w._pattern);\n\n /** Whether the group allows multiple widgets to be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** The ToolbarWidgetGroup UIPattern. */\n readonly _pattern = new ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V>({\n ...this,\n items: this._itemPatterns,\n toolbar: this._toolbarPattern,\n });\n}\n"],"names":["TOOLBAR_WIDGET_GROUP","InjectionToken","sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Toolbar","_elementRef","inject","ElementRef","nativeElement","_widgets","signal","Set","textDirection","Directionality","valueSignal","_itemPatterns","computed","sort","map","widget","_pattern","orientation","input","softDisabled","transform","booleanAttribute","disabled","wrap","values","model","ToolbarPattern","items","activeItem","undefined","getItem","e","_getItem","_hasBeenFocused","constructor","afterRenderEffect","setDefaultState","_onFocus","set","_register","widgets","has","add","_unregister","delete","find","item","contains","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","ToolbarWidget","_toolbar","id","_IdGenerator","getId","_toolbarPattern","ngDevMode","debugName","hardDisabled","_group","optional","value","required","active","selected","_groupPattern","ToolbarWidgetPattern","group","toolbar","ngOnInit","ngOnDestroy","ToolbarWidgetGroup","contentChildren","descendants","w","multi","ToolbarWidgetGroupPattern","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","providers","provide","useExisting","propDecorators","ContentChildren","forwardRef","Input","alias"],"mappings":"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"}
{"version":3,"file":"toolbar.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/utils.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-widget.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-widget-group.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 {ToolbarWidgetGroup} from './toolbar-widget-group';\n\n/** Token used to provide the `ToolbarWidgetGroup` directive. */\nexport const TOOLBAR_WIDGET_GROUP = new InjectionToken<ToolbarWidgetGroup<unknown>>(\n 'TOOLBAR_WIDGET_GROUP',\n);\n\ninterface HasElement {\n element: HTMLElement;\n}\n\nexport function sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\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 computed,\n input,\n booleanAttribute,\n signal,\n model,\n} from '@angular/core';\nimport {ToolbarPattern, ToolbarWidgetPattern} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport type {ToolbarWidget} from './toolbar-widget';\nimport {sortDirectives} from './utils';\n\n/**\n * A toolbar widget container for a group of interactive widgets, such as\n * buttons or radio groups. It provides a single point of reference for keyboard navigation\n * and focus management. It supports various orientations and disabled states.\n *\n * ```html\n * <div ngToolbar orientation=\"horizontal\" [wrap]=\"true\">\n * <button ngToolbarWidget value=\"save\">Save</button>\n * <button ngToolbarWidget value=\"print\">Print</button>\n *\n * <div ngToolbarWidgetGroup [(value)]=\"selectedAlignment\">\n * <button ngToolbarWidget value=\"left\">Left</button>\n * <button ngToolbarWidget value=\"center\">Center</button>\n * <button ngToolbarWidget value=\"right\">Right</button>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbar]',\n exportAs: 'ngToolbar',\n host: {\n 'role': 'toolbar',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n})\nexport class Toolbar<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _widgets = signal(new Set<ToolbarWidget<V>>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Sorted UIPatterns of the child widgets */\n readonly _itemPatterns = computed<ToolbarWidgetPattern<V>[]>(() =>\n [...this._widgets()].sort(sortDirectives).map(widget => widget._pattern),\n );\n\n /** Whether the toolbar is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\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 softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the toolbar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The values of the selected widgets within the toolbar. */\n readonly values = model<V[]>([]);\n\n /** The toolbar UIPattern. */\n readonly _pattern: ToolbarPattern<V> = new ToolbarPattern<V>({\n ...this,\n items: this._itemPatterns,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n getItem: e => this._getItem(e),\n values: this.values,\n });\n\n /** Whether the toolbar has received focus yet. */\n private _hasBeenFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (!this._hasBeenFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n _onFocus() {\n this._hasBeenFocused.set(true);\n }\n\n _register(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (!widgets.has(widget)) {\n widgets.add(widget);\n this._widgets.set(new Set(widgets));\n }\n }\n\n _unregister(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (widgets.delete(widget)) {\n this._widgets.set(new Set(widgets));\n }\n }\n\n /** Finds the toolbar item associated with a given element. */\n private _getItem(element: Element) {\n return this._itemPatterns().find(item => item.element()?.contains(element));\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 inject,\n computed,\n input,\n booleanAttribute,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {\n ToolbarWidgetPattern,\n ToolbarWidgetGroupPattern,\n SignalLike,\n ToolbarPattern,\n} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Toolbar} from './toolbar';\nimport {TOOLBAR_WIDGET_GROUP} from './utils';\nimport type {ToolbarWidgetGroup} from './toolbar-widget-group';\n\n/**\n * A widget within a toolbar.\n *\n * The `ngToolbarWidget` directive should be applied to any native HTML element that acts\n * as an interactive widget within an `ngToolbar` or `ngToolbarWidgetGroup`. It enables\n * keyboard navigation and selection within the toolbar.\n *\n * ```html\n * <button ngToolbarWidget value=\"action-id\" [disabled]=\"isDisabled\">\n * Perform Action\n * </button>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbarWidget]',\n exportAs: 'ngToolbarWidget',\n host: {\n '[attr.data-active]': 'active()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': 'hardDisabled() ? true : null',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[id]': '_pattern.id()',\n },\n})\nexport class ToolbarWidget<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject<Toolbar<V>>(Toolbar);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-toolbar-widget-', true));\n\n /** The parent Toolbar UIPattern. */\n readonly _toolbarPattern = computed<ToolbarPattern<V>>(() => this._toolbar._pattern);\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the widget is 'hard' disabled, which is different from `aria-disabled`. A hard disabled widget cannot receive focus. */\n readonly hardDisabled = computed(() => this._pattern.disabled() && !this._toolbar.softDisabled());\n\n /** The optional ToolbarWidgetGroup this widget belongs to. */\n readonly _group = inject<ToolbarWidgetGroup<V>>(TOOLBAR_WIDGET_GROUP, {optional: true});\n\n /** The value associated with the widget. */\n readonly value = input.required<V>();\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the widget is selected (only relevant in a selection group). */\n readonly selected = () => this._pattern.selected();\n\n private readonly _groupPattern: SignalLike<\n ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined\n > = () => this._group?._pattern;\n\n /** The ToolbarWidget UIPattern. */\n readonly _pattern = new ToolbarWidgetPattern<V>({\n ...this,\n group: this._groupPattern,\n toolbar: this._toolbarPattern,\n id: this.id,\n value: this.value,\n element: () => this.element,\n });\n\n ngOnInit() {\n this._toolbar._register(this);\n }\n\n ngOnDestroy() {\n this._toolbar._unregister(this);\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 inject,\n computed,\n input,\n booleanAttribute,\n contentChildren,\n} from '@angular/core';\nimport {ToolbarWidgetPattern, ToolbarWidgetGroupPattern} from '../private';\nimport {Toolbar} from './toolbar';\nimport {ToolbarWidget} from './toolbar-widget';\nimport {TOOLBAR_WIDGET_GROUP} from './utils';\n\n/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups\n * that have their own internal navigation.\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbarWidgetGroup]',\n exportAs: 'ngToolbarWidgetGroup',\n providers: [{provide: TOOLBAR_WIDGET_GROUP, useExisting: ToolbarWidgetGroup}],\n})\nexport class ToolbarWidgetGroup<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject<Toolbar<V>>(Toolbar, {optional: true});\n\n /** The list of child widgets within the group. */\n private readonly _widgets = contentChildren(ToolbarWidget, {descendants: true});\n\n /** The parent Toolbar UIPattern. */\n private readonly _toolbarPattern = computed(() => this._toolbar?._pattern);\n\n /** Whether the widget group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The list of toolbar items within the group. */\n private readonly _itemPatterns = () => this._widgets().map(w => w._pattern);\n\n /** Whether the group allows multiple widgets to be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** The ToolbarWidgetGroup UIPattern. */\n readonly _pattern = new ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V>({\n ...this,\n items: this._itemPatterns,\n toolbar: this._toolbarPattern,\n });\n}\n"],"names":["TOOLBAR_WIDGET_GROUP","InjectionToken","sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Toolbar","_elementRef","inject","ElementRef","nativeElement","_widgets","signal","Set","textDirection","Directionality","valueSignal","_itemPatterns","computed","sort","map","widget","_pattern","orientation","input","softDisabled","transform","booleanAttribute","disabled","wrap","values","model","ToolbarPattern","items","activeItem","undefined","getItem","e","_getItem","_hasBeenFocused","constructor","afterRenderEffect","setDefaultState","_onFocus","set","_register","widgets","has","add","_unregister","delete","find","item","contains","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","ToolbarWidget","_toolbar","id","_IdGenerator","getId","_toolbarPattern","ngDevMode","debugName","hardDisabled","_group","optional","value","required","active","selected","_groupPattern","ToolbarWidgetPattern","group","toolbar","ngOnInit","ngOnDestroy","ToolbarWidgetGroup","contentChildren","descendants","w","multi","ToolbarWidgetGroupPattern","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","providers","provide","useExisting","propDecorators","ContentChildren","forwardRef","Input","alias"],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"tree.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/utils.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree-item.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree-item-group.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\nexport interface HasElement {\n element: HTMLElement;\n}\n\n/**\n * Sort directives by their document order.\n */\nexport function sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\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 afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ComboboxTreePattern, TreeItemPattern, TreePattern} from '../private';\nimport {ComboboxPopup} from '../combobox';\nimport type {TreeItem} from './tree-item';\nimport {sortDirectives} from './utils';\n\n/**\n * A container that transforms nested lists into an accessible, ARIA-compliant tree structure.\n * It manages the overall state of the tree, including selection, expansion, and keyboard\n * navigation.\n *\n * ```html\n * <ul ngTree [(value)]=\"selectedItems\" [multi]=\"true\">\n * <ng-template\n * [ngTemplateOutlet]=\"treeNodes\"\n * [ngTemplateOutletContext]=\"{nodes: treeData, parent: tree}\"\n * />\n * </ul>\n *\n * <ng-template #treeNodes let-nodes=\"nodes\" let-parent=\"parent\">\n * @for (node of nodes; track node.name) {\n * <li ngTreeItem [parent]=\"parent\" [value]=\"node.name\" [label]=\"node.name\">\n * {{ node.name }}\n * @if (node.children) {\n * <ul role=\"group\">\n * <ng-template ngTreeItemGroup [ownedBy]=\"treeItem\" #group=\"ngTreeItemGroup\">\n * <ng-template\n * [ngTemplateOutlet]=\"treeNodes\"\n * [ngTemplateOutletContext]=\"{nodes: node.children, parent: group}\"\n * />\n * </ng-template>\n * </ul>\n * }\n * </li>\n * }\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tree](guide/aria/tree)\n */\n@Directive({\n selector: '[ngTree]',\n exportAs: 'ngTree',\n host: {\n 'role': 'tree',\n '[attr.id]': 'id()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '[tabindex]': '_pattern.tabIndex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class Tree<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** All TreeItem instances within this tree. */\n private readonly _unorderedItems = signal(new Set<TreeItem<V>>());\n\n /** A unique identifier for the tree. */\n readonly id = input(inject(_IdGenerator).getId('ng-tree-', true));\n\n /** Orientation of the tree. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multi-selection is allowed. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether the tree is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /**\n * The selection strategy used by the tree.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n * - `follow`: The focused item is automatically selected.\n */\n readonly selectionMode = input<'explicit' | 'follow'>('explicit');\n\n /**\n * The focus strategy used by the tree.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the tree container, and `aria-activedescendant` is used to indicate the active item.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** Whether navigation wraps. */\n readonly wrap = 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 /** The delay in seconds before the typeahead search is reset. */\n readonly typeaheadDelay = input(500);\n\n /** The values of the currently selected items. */\n readonly values = model<V[]>([]);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the tree is in navigation mode. */\n readonly nav = input(false, {transform: booleanAttribute});\n\n /**\n * The `aria-current` type. It can be used in navigation trees to indicate the currently active item.\n * See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-current for more details.\n */\n readonly currentType = input<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>(\n 'page',\n );\n\n /** The UI pattern for the tree. */\n readonly _pattern: TreePattern<V>;\n\n /** Whether the tree has received focus since it was rendered. */\n private _hasFocused = signal(false);\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: computed(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(item => item._pattern),\n ),\n activeItem: signal<TreeItemPattern<V> | undefined>(undefined),\n combobox: () => this._popup?.combobox?._pattern,\n element: () => this.element,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxTreePattern<V>(inputs)\n : new TreePattern<V>(inputs);\n\n if (this._popup?.combobox) {\n this._popup?._controls?.set(this._pattern as ComboboxTreePattern<V>);\n }\n\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n afterRenderEffect(() => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.treeBehavior.unfocus();\n }\n });\n\n afterRenderEffect(() => {\n if (!(this._pattern instanceof ComboboxTreePattern)) return;\n\n const items = inputs.items();\n const values = untracked(() => this.values());\n\n if (items && values.some(v => !items.some(i => i.value() === v))) {\n this.values.set(values.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n _register(child: TreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n _unregister(child: TreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\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 afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n signal,\n Signal,\n OnInit,\n OnDestroy,\n afterNextRender,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ComboboxTreePattern, TreeItemPattern, DeferredContentAware} from '../private';\nimport {Tree} from './tree';\nimport {TreeItemGroup} from './tree-item-group';\nimport {HasElement} from './utils';\n\n/**\n * A selectable and expandable item in an `ngTree`.\n *\n * The `ngTreeItem` directive represents an individual node within an `ngTree`. It can be\n * selected, expanded (if it has children), and disabled. The `parent` input establishes\n * the hierarchical relationship within the tree.\n *\n * ```html\n * <li ngTreeItem [parent]=\"parentTreeOrGroup\" value=\"item-id\" label=\"Item Label\">\n * Item Label\n * </li>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTreeItem]',\n exportAs: 'ngTreeItem',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'treeitem',\n '[id]': '_pattern.id()',\n '[attr.aria-expanded]': '_expanded()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-current]': '_pattern.current()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-level]': 'level()',\n '[attr.aria-setsize]': '_pattern.setsize()',\n '[attr.aria-posinset]': '_pattern.posinset()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class TreeItem<V> extends DeferredContentAware implements OnInit, OnDestroy, HasElement {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The owned tree item group. */\n private readonly _group = signal<TreeItemGroup<V> | undefined>(undefined);\n\n /** A unique identifier for the tree item. */\n readonly id = input(inject(_IdGenerator).getId('ng-tree-item-', true));\n\n /** The value of the tree item. */\n readonly value = input.required<V>();\n\n /** The parent tree root or tree item group. */\n readonly parent = input.required<Tree<V> | TreeItemGroup<V>>();\n\n /** Whether the tree item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the tree item is selectable. */\n readonly selectable = input<boolean>(true);\n\n /** Whether the tree item is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Optional label for typeahead. Defaults to the element's textContent. */\n readonly label = input<string>();\n\n /** Search term for typeahead. */\n readonly searchTerm = computed(() => this.label() ?? this.element.textContent);\n\n /** The tree root. */\n readonly tree: Signal<Tree<V>> = computed(() => {\n if (this.parent() instanceof Tree) {\n return this.parent() as Tree<V>;\n }\n return (this.parent() as TreeItemGroup<V>).ownedBy().tree();\n });\n\n /** Whether the item is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The level of the current item in a tree. */\n readonly level = computed(() => this._pattern.level());\n\n /** Whether the item is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** Whether this item is visible due to all of its parents being expanded. */\n readonly visible = computed(() => this._pattern.visible());\n\n /** Whether the tree is expanded. Use this value for aria-expanded. */\n protected readonly _expanded: Signal<boolean | undefined> = computed(() =>\n this._pattern.expandable() ? this._pattern.expanded() : undefined,\n );\n\n /** The UI pattern for this item. */\n _pattern!: TreeItemPattern<V>;\n\n constructor() {\n super();\n afterNextRender(() => {\n if (this.tree()._pattern instanceof ComboboxTreePattern) {\n this.preserveContent.set(true);\n }\n });\n // Connect the group's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this.tree()._pattern instanceof ComboboxTreePattern\n ? this.contentVisible.set(true)\n : this.contentVisible.set(this._pattern.expanded());\n });\n }\n\n ngOnInit() {\n this.parent()._register(this);\n this.tree()._register(this);\n\n const treePattern = computed(() => this.tree()._pattern);\n const parentPattern = computed(() => {\n if (this.parent() instanceof Tree) {\n return treePattern();\n }\n return (this.parent() as TreeItemGroup<V>).ownedBy()._pattern;\n });\n this._pattern = new TreeItemPattern<V>({\n ...this,\n tree: treePattern,\n parent: parentPattern,\n children: computed(() => this._group()?._childPatterns()),\n hasChildren: computed(() => !!this._group()),\n element: () => this.element,\n searchTerm: () => this.searchTerm() ?? '',\n });\n }\n\n ngOnDestroy() {\n this.parent()._unregister(this);\n this.tree()._unregister(this);\n }\n\n _register(group: TreeItemGroup<V>) {\n this._group.set(group);\n }\n\n _unregister() {\n this._group.set(undefined);\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 computed,\n inject,\n input,\n signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TreeItemPattern, DeferredContent} from '../private';\nimport type {TreeItem} from './tree-item';\nimport {sortDirectives} from './utils';\n\n/**\n * Group that contains children tree items.\n *\n * The `ngTreeItemGroup` structural directive should be applied to an `ng-template` that\n * wraps the child `ngTreeItem` elements. It is used to define a group of children for an\n * expandable `ngTreeItem`. The `ownedBy` input links the group to its parent `ngTreeItem`.\n *\n * ```html\n * <li ngTreeItem [value]=\"'parent-id'\">\n * Parent Item\n * <ul role=\"group\">\n * <ng-template ngTreeItemGroup [ownedBy]=\"parentTreeItemRef\">\n * <li ngTreeItem [value]=\"'child-id'\">Child Item</li>\n * </ng-template>\n * </ul>\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tree](guide/aria/tree)\n */\n@Directive({\n selector: 'ng-template[ngTreeItemGroup]',\n exportAs: 'ngTreeItemGroup',\n hostDirectives: [DeferredContent],\n})\nexport class TreeItemGroup<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContent host directive. */\n private readonly _deferredContent = inject(DeferredContent);\n\n /** All groupable items that are descendants of the group. */\n private readonly _unorderedItems = signal(new Set<TreeItem<V>>());\n\n /** Child items within this group. */\n readonly _childPatterns = computed<TreeItemPattern<V>[]>(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(c => c._pattern),\n );\n\n /** Tree item that owns the group. */\n readonly ownedBy = input.required<TreeItem<V>>();\n\n ngOnInit() {\n this._deferredContent.deferredContentAware.set(this.ownedBy());\n this.ownedBy()._register(this);\n }\n\n ngOnDestroy() {\n this.ownedBy()._unregister();\n }\n\n _register(child: TreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n _unregister(child: TreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n"],"names":["sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Tree","_elementRef","inject","ElementRef","nativeElement","_popup","ComboboxPopup","optional","_unorderedItems","signal","Set","id","input","_IdGenerator","getId","orientation","multi","transform","booleanAttribute","disabled","selectionMode","focusMode","wrap","softDisabled","typeaheadDelay","values","model","textDirection","Directionality","valueSignal","nav","currentType","_pattern","_hasFocused","constructor","inputs","items","computed","sort","map","item","activeItem","undefined","combobox","ComboboxTreePattern","TreePattern","_controls","set","afterRenderEffect","ngDevMode","violations","validate","violation","console","error","setDefaultState","untracked","some","i","treeBehavior","unfocus","v","value","filter","_onFocus","_register","child","add","_unregister","delete","scrollActiveItemIntoView","options","block","scrollIntoView","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","TreeItem","DeferredContentAware","_group","required","parent","selectable","expanded","label","debugName","searchTerm","textContent","tree","ownedBy","active","level","selected","visible","_expanded","expandable","afterNextRender","preserveContent","contentVisible","ngOnInit","treePattern","parentPattern","TreeItemPattern","children","_childPatterns","hasChildren","ngOnDestroy","group","usesInheritance","TreeItemGroup","_deferredContent","DeferredContent","c","deferredContentAware"],"mappings":"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"}
{"version":3,"file":"tree.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/utils.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree-item.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tree/tree-item-group.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\nexport interface HasElement {\n element: HTMLElement;\n}\n\n/**\n * Sort directives by their document order.\n */\nexport function sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\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 afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ComboboxTreePattern, TreeItemPattern, TreePattern} from '../private';\nimport {ComboboxPopup} from '../combobox';\nimport type {TreeItem} from './tree-item';\nimport {sortDirectives} from './utils';\n\n/**\n * A container that transforms nested lists into an accessible, ARIA-compliant tree structure.\n * It manages the overall state of the tree, including selection, expansion, and keyboard\n * navigation.\n *\n * ```html\n * <ul ngTree [(value)]=\"selectedItems\" [multi]=\"true\">\n * <ng-template\n * [ngTemplateOutlet]=\"treeNodes\"\n * [ngTemplateOutletContext]=\"{nodes: treeData, parent: tree}\"\n * />\n * </ul>\n *\n * <ng-template #treeNodes let-nodes=\"nodes\" let-parent=\"parent\">\n * @for (node of nodes; track node.name) {\n * <li ngTreeItem [parent]=\"parent\" [value]=\"node.name\" [label]=\"node.name\">\n * {{ node.name }}\n * @if (node.children) {\n * <ul role=\"group\">\n * <ng-template ngTreeItemGroup [ownedBy]=\"treeItem\" #group=\"ngTreeItemGroup\">\n * <ng-template\n * [ngTemplateOutlet]=\"treeNodes\"\n * [ngTemplateOutletContext]=\"{nodes: node.children, parent: group}\"\n * />\n * </ng-template>\n * </ul>\n * }\n * </li>\n * }\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tree](guide/aria/tree)\n */\n@Directive({\n selector: '[ngTree]',\n exportAs: 'ngTree',\n host: {\n 'role': 'tree',\n '[attr.id]': 'id()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-multiselectable]': '_pattern.multi()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '[tabindex]': '_pattern.tabIndex()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n hostDirectives: [ComboboxPopup],\n})\nexport class Tree<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** A reference to the parent combobox popup, if one exists. */\n private readonly _popup = inject<ComboboxPopup<V>>(ComboboxPopup, {\n optional: true,\n });\n\n /** All TreeItem instances within this tree. */\n private readonly _unorderedItems = signal(new Set<TreeItem<V>>());\n\n /** A unique identifier for the tree. */\n readonly id = input(inject(_IdGenerator).getId('ng-tree-', true));\n\n /** Orientation of the tree. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n\n /** Whether multi-selection is allowed. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** Whether the tree is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /**\n * The selection strategy used by the tree.\n * - `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n * - `follow`: The focused item is automatically selected.\n */\n readonly selectionMode = input<'explicit' | 'follow'>('explicit');\n\n /**\n * The focus strategy used by the tree.\n * - `roving`: Focus is moved to the active item using `tabindex`.\n * - `activedescendant`: Focus remains on the tree container, and `aria-activedescendant` is used to indicate the active item.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** Whether navigation wraps. */\n readonly wrap = 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 /** The delay in seconds before the typeahead search is reset. */\n readonly typeaheadDelay = input(500);\n\n /** The values of the currently selected items. */\n readonly values = model<V[]>([]);\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the tree is in navigation mode. */\n readonly nav = input(false, {transform: booleanAttribute});\n\n /**\n * The `aria-current` type. It can be used in navigation trees to indicate the currently active item.\n * See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-current for more details.\n */\n readonly currentType = input<'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'>(\n 'page',\n );\n\n /** The UI pattern for the tree. */\n readonly _pattern: TreePattern<V>;\n\n /** Whether the tree has received focus since it was rendered. */\n private _hasFocused = signal(false);\n\n constructor() {\n const inputs = {\n ...this,\n id: this.id,\n items: computed(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(item => item._pattern),\n ),\n activeItem: signal<TreeItemPattern<V> | undefined>(undefined),\n combobox: () => this._popup?.combobox?._pattern,\n element: () => this.element,\n };\n\n this._pattern = this._popup?.combobox\n ? new ComboboxTreePattern<V>(inputs)\n : new TreePattern<V>(inputs);\n\n if (this._popup?.combobox) {\n this._popup?._controls?.set(this._pattern as ComboboxTreePattern<V>);\n }\n\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n afterRenderEffect(() => {\n const items = inputs.items();\n const activeItem = untracked(() => inputs.activeItem());\n\n if (!items.some(i => i === activeItem) && activeItem) {\n this._pattern.treeBehavior.unfocus();\n }\n });\n\n afterRenderEffect(() => {\n if (!(this._pattern instanceof ComboboxTreePattern)) return;\n\n const items = inputs.items();\n const values = untracked(() => this.values());\n\n if (items && values.some(v => !items.some(i => i.value() === v))) {\n this.values.set(values.filter(v => items.some(i => i.value() === v)));\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n _register(child: TreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n _unregister(child: TreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n scrollActiveItemIntoView(options: ScrollIntoViewOptions = {block: 'nearest'}) {\n this._pattern.inputs.activeItem()?.element()?.scrollIntoView(options);\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 afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n signal,\n Signal,\n OnInit,\n OnDestroy,\n afterNextRender,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {ComboboxTreePattern, TreeItemPattern, DeferredContentAware} from '../private';\nimport {Tree} from './tree';\nimport {TreeItemGroup} from './tree-item-group';\nimport {HasElement} from './utils';\n\n/**\n * A selectable and expandable item in an `ngTree`.\n *\n * The `ngTreeItem` directive represents an individual node within an `ngTree`. It can be\n * selected, expanded (if it has children), and disabled. The `parent` input establishes\n * the hierarchical relationship within the tree.\n *\n * ```html\n * <li ngTreeItem [parent]=\"parentTreeOrGroup\" value=\"item-id\" label=\"Item Label\">\n * Item Label\n * </li>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTreeItem]',\n exportAs: 'ngTreeItem',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'treeitem',\n '[id]': '_pattern.id()',\n '[attr.aria-expanded]': '_expanded()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-current]': '_pattern.current()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-level]': 'level()',\n '[attr.aria-setsize]': '_pattern.setsize()',\n '[attr.aria-posinset]': '_pattern.posinset()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class TreeItem<V> extends DeferredContentAware implements OnInit, OnDestroy, HasElement {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The owned tree item group. */\n private readonly _group = signal<TreeItemGroup<V> | undefined>(undefined);\n\n /** A unique identifier for the tree item. */\n readonly id = input(inject(_IdGenerator).getId('ng-tree-item-', true));\n\n /** The value of the tree item. */\n readonly value = input.required<V>();\n\n /** The parent tree root or tree item group. */\n readonly parent = input.required<Tree<V> | TreeItemGroup<V>>();\n\n /** Whether the tree item is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the tree item is selectable. */\n readonly selectable = input<boolean>(true);\n\n /** Whether the tree item is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Optional label for typeahead. Defaults to the element's textContent. */\n readonly label = input<string>();\n\n /** Search term for typeahead. */\n readonly searchTerm = computed(() => this.label() ?? this.element.textContent);\n\n /** The tree root. */\n readonly tree: Signal<Tree<V>> = computed(() => {\n if (this.parent() instanceof Tree) {\n return this.parent() as Tree<V>;\n }\n return (this.parent() as TreeItemGroup<V>).ownedBy().tree();\n });\n\n /** Whether the item is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The level of the current item in a tree. */\n readonly level = computed(() => this._pattern.level());\n\n /** Whether the item is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** Whether this item is visible due to all of its parents being expanded. */\n readonly visible = computed(() => this._pattern.visible());\n\n /** Whether the tree is expanded. Use this value for aria-expanded. */\n protected readonly _expanded: Signal<boolean | undefined> = computed(() =>\n this._pattern.expandable() ? this._pattern.expanded() : undefined,\n );\n\n /** The UI pattern for this item. */\n _pattern!: TreeItemPattern<V>;\n\n constructor() {\n super();\n afterNextRender(() => {\n if (this.tree()._pattern instanceof ComboboxTreePattern) {\n this.preserveContent.set(true);\n }\n });\n // Connect the group's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect(() => {\n this.tree()._pattern instanceof ComboboxTreePattern\n ? this.contentVisible.set(true)\n : this.contentVisible.set(this._pattern.expanded());\n });\n }\n\n ngOnInit() {\n this.parent()._register(this);\n this.tree()._register(this);\n\n const treePattern = computed(() => this.tree()._pattern);\n const parentPattern = computed(() => {\n if (this.parent() instanceof Tree) {\n return treePattern();\n }\n return (this.parent() as TreeItemGroup<V>).ownedBy()._pattern;\n });\n this._pattern = new TreeItemPattern<V>({\n ...this,\n tree: treePattern,\n parent: parentPattern,\n children: computed(() => this._group()?._childPatterns()),\n hasChildren: computed(() => !!this._group()),\n element: () => this.element,\n searchTerm: () => this.searchTerm() ?? '',\n });\n }\n\n ngOnDestroy() {\n this.parent()._unregister(this);\n this.tree()._unregister(this);\n }\n\n _register(group: TreeItemGroup<V>) {\n this._group.set(group);\n }\n\n _unregister() {\n this._group.set(undefined);\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 computed,\n inject,\n input,\n signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TreeItemPattern, DeferredContent} from '../private';\nimport type {TreeItem} from './tree-item';\nimport {sortDirectives} from './utils';\n\n/**\n * Group that contains children tree items.\n *\n * The `ngTreeItemGroup` structural directive should be applied to an `ng-template` that\n * wraps the child `ngTreeItem` elements. It is used to define a group of children for an\n * expandable `ngTreeItem`. The `ownedBy` input links the group to its parent `ngTreeItem`.\n *\n * ```html\n * <li ngTreeItem [value]=\"'parent-id'\">\n * Parent Item\n * <ul role=\"group\">\n * <ng-template ngTreeItemGroup [ownedBy]=\"parentTreeItemRef\">\n * <li ngTreeItem [value]=\"'child-id'\">Child Item</li>\n * </ng-template>\n * </ul>\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tree](guide/aria/tree)\n */\n@Directive({\n selector: 'ng-template[ngTreeItemGroup]',\n exportAs: 'ngTreeItemGroup',\n hostDirectives: [DeferredContent],\n})\nexport class TreeItemGroup<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContent host directive. */\n private readonly _deferredContent = inject(DeferredContent);\n\n /** All groupable items that are descendants of the group. */\n private readonly _unorderedItems = signal(new Set<TreeItem<V>>());\n\n /** Child items within this group. */\n readonly _childPatterns = computed<TreeItemPattern<V>[]>(() =>\n [...this._unorderedItems()].sort(sortDirectives).map(c => c._pattern),\n );\n\n /** Tree item that owns the group. */\n readonly ownedBy = input.required<TreeItem<V>>();\n\n ngOnInit() {\n this._deferredContent.deferredContentAware.set(this.ownedBy());\n this.ownedBy()._register(this);\n }\n\n ngOnDestroy() {\n this.ownedBy()._unregister();\n }\n\n _register(child: TreeItem<V>) {\n this._unorderedItems().add(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n\n _unregister(child: TreeItem<V>) {\n this._unorderedItems().delete(child);\n this._unorderedItems.set(new Set(this._unorderedItems()));\n }\n}\n"],"names":["sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Tree","_elementRef","inject","ElementRef","nativeElement","_popup","ComboboxPopup","optional","_unorderedItems","signal","Set","id","input","_IdGenerator","getId","orientation","multi","transform","booleanAttribute","disabled","selectionMode","focusMode","wrap","softDisabled","typeaheadDelay","values","model","textDirection","Directionality","valueSignal","nav","currentType","_pattern","_hasFocused","constructor","inputs","items","computed","sort","map","item","activeItem","undefined","combobox","ComboboxTreePattern","TreePattern","_controls","set","afterRenderEffect","ngDevMode","violations","validate","violation","console","error","setDefaultState","untracked","some","i","treeBehavior","unfocus","v","value","filter","_onFocus","_register","child","add","_unregister","delete","scrollActiveItemIntoView","options","block","scrollIntoView","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","hostDirectives","directive","i1","ngImport","decorators","args","TreeItem","DeferredContentAware","_group","required","parent","selectable","expanded","label","debugName","searchTerm","textContent","tree","ownedBy","active","level","selected","visible","_expanded","expandable","afterNextRender","preserveContent","contentVisible","ngOnInit","treePattern","parentPattern","TreeItemPattern","children","_childPatterns","hasChildren","ngOnDestroy","group","usesInheritance","TreeItemGroup","_deferredContent","DeferredContent","c","deferredContentAware"],"mappings":"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"}
{
"name": "@angular/aria",
"version": "21.2.3",
"version": "21.2.4",
"description": "Angular Aria",

@@ -15,3 +15,3 @@ "repository": {

"peerDependencies": {
"@angular/cdk": "21.2.3",
"@angular/cdk": "21.2.4",
"@angular/core": "^21.0.0 || ^22.0.0"

@@ -18,0 +18,0 @@ },

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet