@angular/cdk
Version:
Angular Material Component Development Kit
1 lines • 15.4 kB
Source Map (JSON)
{"version":3,"file":"accordion.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk/accordion/accordion.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk/accordion/accordion-item.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/cdk/accordion/accordion-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {_IdGenerator} from '../a11y';\nimport {Subject} from 'rxjs';\n\n/**\n * Injection token that can be used to reference instances of `CdkAccordion`. It serves\n * as alternative token to the actual `CdkAccordion` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const CDK_ACCORDION = new InjectionToken<CdkAccordion>('CdkAccordion');\n\n/**\n * Directive whose purpose is to manage the expanded state of CdkAccordionItem children.\n */\n@Directive({\n selector: 'cdk-accordion, [cdkAccordion]',\n exportAs: 'cdkAccordion',\n providers: [{provide: CDK_ACCORDION, useExisting: CdkAccordion}],\n})\nexport class CdkAccordion implements OnDestroy, OnChanges {\n /** Emits when the state of the accordion changes */\n readonly _stateChanges = new Subject<SimpleChanges>();\n\n /** Stream that emits true/false when openAll/closeAll is triggered. */\n readonly _openCloseAllActions: Subject<boolean> = new Subject<boolean>();\n\n /** A readonly id value to use for unique selection coordination. */\n readonly id: string = inject(_IdGenerator).getId('cdk-accordion-');\n\n /** Whether the accordion should allow multiple expanded accordion items simultaneously. */\n @Input({transform: booleanAttribute}) multi: boolean = false;\n\n /** Opens all enabled accordion items in an accordion where multi is enabled. */\n openAll(): void {\n if (this.multi) {\n this._openCloseAllActions.next(true);\n }\n }\n\n /** Closes all enabled accordion items. */\n closeAll(): void {\n this._openCloseAllActions.next(false);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this._stateChanges.next(changes);\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n this._openCloseAllActions.complete();\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 Output,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n ChangeDetectorRef,\n booleanAttribute,\n inject,\n OnInit,\n signal,\n} from '@angular/core';\nimport {_IdGenerator} from '../a11y';\nimport {UniqueSelectionDispatcher} from '../collections';\nimport {CDK_ACCORDION, CdkAccordion} from './accordion';\nimport {Subscription} from 'rxjs';\n\n/**\n * A basic directive expected to be extended and decorated as a component. Sets up all\n * events and attributes needed to be managed by a CdkAccordion parent.\n */\n@Directive({\n selector: 'cdk-accordion-item, [cdkAccordionItem]',\n exportAs: 'cdkAccordionItem',\n providers: [\n // Provide `CDK_ACCORDION` as undefined to prevent nested accordion items from\n // registering to the same accordion.\n {provide: CDK_ACCORDION, useValue: undefined},\n ],\n})\nexport class CdkAccordionItem implements OnInit, OnDestroy {\n accordion = inject<CdkAccordion>(CDK_ACCORDION, {optional: true, skipSelf: true})!;\n private _changeDetectorRef = inject(ChangeDetectorRef);\n protected _expansionDispatcher = inject(UniqueSelectionDispatcher);\n\n /** Subscription to openAll/closeAll events. */\n private _openCloseAllSubscription = Subscription.EMPTY;\n /** Event emitted every time the AccordionItem is closed. */\n @Output() readonly closed: EventEmitter<void> = new EventEmitter<void>();\n /** Event emitted every time the AccordionItem is opened. */\n @Output() readonly opened: EventEmitter<void> = new EventEmitter<void>();\n /** Event emitted when the AccordionItem is destroyed. */\n @Output() readonly destroyed: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n * @docs-private\n */\n @Output() readonly expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** The unique AccordionItem id. */\n readonly id: string = inject(_IdGenerator).getId('cdk-accordion-child-');\n\n /** Whether the AccordionItem is expanded. */\n @Input({transform: booleanAttribute})\n get expanded(): boolean {\n return this._expanded;\n }\n set expanded(expanded: boolean) {\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n this.expandedChange.emit(expanded);\n\n if (expanded) {\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,\n * the name value is the id of the accordion.\n */\n const accordionId = this.accordion ? this.accordion.id : this.id;\n this._expansionDispatcher.notify(this.id, accordionId);\n } else {\n this.closed.emit();\n }\n\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this._changeDetectorRef.markForCheck();\n }\n }\n private _expanded = false;\n\n /** Whether the AccordionItem is disabled. */\n @Input({transform: booleanAttribute})\n get disabled() {\n return this._disabled();\n }\n set disabled(value: boolean) {\n this._disabled.set(value);\n }\n private _disabled = signal(false);\n\n /** Unregister function for _expansionDispatcher. */\n private _removeUniqueSelectionListener: () => void = () => {};\n\n constructor(...args: unknown[]);\n constructor() {}\n\n ngOnInit() {\n this._removeUniqueSelectionListener = this._expansionDispatcher.listen(\n (id: string, accordionId: string) => {\n if (\n this.accordion &&\n !this.accordion.multi &&\n this.accordion.id === accordionId &&\n this.id !== id\n ) {\n this.expanded = false;\n }\n },\n );\n\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n if (this.accordion) {\n this._openCloseAllSubscription = this._subscribeToOpenCloseAllActions();\n }\n }\n\n /** Emits an event for the accordion item being destroyed. */\n ngOnDestroy() {\n this.opened.complete();\n this.closed.complete();\n this.destroyed.emit();\n this.destroyed.complete();\n this._removeUniqueSelectionListener();\n this._openCloseAllSubscription.unsubscribe();\n }\n\n /** Toggles the expanded state of the accordion item. */\n toggle(): void {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n }\n\n /** Sets the expanded state of the accordion item to false. */\n close(): void {\n if (!this.disabled) {\n this.expanded = false;\n }\n }\n\n /** Sets the expanded state of the accordion item to true. */\n open(): void {\n if (!this.disabled) {\n this.expanded = true;\n }\n }\n\n private _subscribeToOpenCloseAllActions(): Subscription {\n return this.accordion._openCloseAllActions.subscribe(expanded => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\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 {NgModule} from '@angular/core';\nimport {CdkAccordion} from './accordion';\nimport {CdkAccordionItem} from './accordion-item';\n\n@NgModule({\n imports: [CdkAccordion, CdkAccordionItem],\n exports: [CdkAccordion, CdkAccordionItem],\n})\nexport class CdkAccordionModule {}\n"],"names":["CDK_ACCORDION","InjectionToken","CdkAccordion","_stateChanges","Subject","_openCloseAllActions","id","inject","_IdGenerator","getId","multi","openAll","next","closeAll","ngOnChanges","changes","ngOnDestroy","complete","deps","target","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","isStandalone","selector","inputs","booleanAttribute","providers","provide","useExisting","exportAs","usesOnChanges","ngImport","decorators","args","Input","transform","CdkAccordionItem","accordion","optional","skipSelf","_changeDetectorRef","ChangeDetectorRef","_expansionDispatcher","UniqueSelectionDispatcher","_openCloseAllSubscription","Subscription","EMPTY","closed","EventEmitter","opened","destroyed","expandedChange","expanded","_expanded","emit","accordionId","notify","markForCheck","disabled","_disabled","value","set","signal","_removeUniqueSelectionListener","constructor","ngOnInit","listen","_subscribeToOpenCloseAllActions","unsubscribe","toggle","close","open","subscribe","outputs","useValue","undefined","Output","CdkAccordionModule","NgModule","ɵmod","ɵɵngDeclareNgModule","exports","imports"],"mappings":"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"}