{"version":3,"file":"mtxAccordion.mjs","sources":["../../directives/accordion-item.directive.ts","../../directives/accordion.directive.ts","../../accordion.animations.ts","../../accordion.config.ts","../../accordion.ts","../../accordion.html","../../accordion.module.ts","../../mtxAccordion.ts"],"sourcesContent":["import { CdkAccordion, CdkAccordionItem } from '@angular/cdk/accordion';\r\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\r\nimport { ChangeDetectorRef, Directive, HostBinding, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[mtxAccordionItem]',\r\n\texportAs: 'mtxAccordionItem',\r\n\tstandalone: true,\r\n\tproviders: [\r\n\t\t{ provide: CdkAccordionItem, useExisting: MtxAccordionItemDirective }\r\n\t]\r\n})\r\nexport class MtxAccordionItemDirective extends CdkAccordionItem {\r\n\t@Input() mtxAccordionItem!: any;\r\n\t@Input()\r\n\tset expanded(expanded: boolean) {\r\n\t\tthis.isExpanded = expanded;\r\n\t}\r\n\tget expanded(): boolean {\r\n\t\treturn this.isExpanded;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\tpublic viewContainer: ViewContainerRef,\r\n\t\tpublic accordion: CdkAccordion,\r\n\t\tpublic changeDetectorRef: ChangeDetectorRef,\r\n\t\tpublic expansionDispatcher: UniqueSelectionDispatcher,\r\n\t\tpublic templateRef: TemplateRef<any>\r\n\t) {\r\n\t\tsuper(accordion, changeDetectorRef, expansionDispatcher);\r\n\t}\r\n\t@HostBinding('class.expanded') isExpanded = false;\r\n}\r\n","import { CdkAccordion } from '@angular/cdk/accordion';\r\nimport { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: 'mtx-accordion, [mtxAccordion]',\r\n  exportAs: 'mtxAccordion',\r\n  standalone: true,\r\n  providers: [{ provide: CdkAccordion, useExisting: MtxAccordionDirective }]\r\n})\r\nexport class MtxAccordionDirective extends CdkAccordion {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t}\r\n}\r\n","import { trigger, state, style, transition, animate } from '@angular/animations';\r\n\r\nexport const accordionAnimations = [\r\n\ttrigger('expandCollapse', [\r\n\t\tstate('expanded', style({\r\n\t\t\theight: '*',\r\n\t\t\topacity: 1\r\n\t\t})),\r\n\t\tstate('collapsed', style({\r\n\t\t\theight: '0',\r\n\t\t\topacity: 0\r\n\t\t})),\r\n\t\ttransition('expanded <=> collapsed', animate('300ms ease-out'))\r\n\t])\r\n];\r\n","import { TemplateRef } from '@angular/core';\r\n\r\nexport interface MtxAccordionPanelIcons {\r\n\texpandIcon?: string;\r\n\tcollapseIcon?: string;\r\n}\r\nexport interface MtxAccordionTemplates {\r\n\theaderTemplate?: TemplateRef<any>;\r\n\tcontentTemplate?: TemplateRef<any>;\r\n\tfooterTemplate?: TemplateRef<any>;\r\n}\r\nexport interface MtxAccordionPanel extends MtxAccordionTemplates, MtxAccordionPanelIcons {\r\n\tid?: string;\r\n\theader?: string | TemplateRef<any>;\r\n\tcontent?: string | TemplateRef<any>;\r\n\tfooter?: string | TemplateRef<any>;\r\n\tdisabled?: boolean;\r\n\texpanded?: boolean;\r\n\tcollapsed?: boolean;\r\n\theaderClass?: string;\r\n\tcontentClass?: string;\r\n\tfooterClass?: string;\r\n\tlazyLoad?: boolean;\r\n\tlazyLoadData?: any;\r\n\tchildAccordionConfig?: MtxAccordionConfig;\r\n}\r\n\r\nexport interface MtxAccordionConfig extends MtxAccordionTemplates {\r\n\tpanels: MtxAccordionPanel[];\r\n\tmulti?: boolean;\r\n\tcustomClass?: string | string[];\r\n\tdefaultExpanded?: boolean;\r\n\tanimationsEnabled?: boolean;\r\n\thideToggle?: boolean;\r\n\texpandAllOnInit?: boolean;\r\n\tcloseOthersOnOpen?: boolean;\r\n\tdisableRipple?: boolean;\r\n\ticonPosition?: 'before' | 'after';\r\n}\r\n\r\nexport const DEFAULT_MTX_ACCORDION_CONFIG: MtxAccordionConfig = {\r\n\tpanels: [],\r\n\tmulti: false,\r\n\tdefaultExpanded: false,\r\n\tanimationsEnabled: true,\r\n\thideToggle: false,\r\n\texpandAllOnInit: false,\r\n\tcloseOthersOnOpen: false,\r\n\tdisableRipple: false,\r\n\ticonPosition: 'before'\r\n}\r\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\r\nimport { CommonModule, NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ComponentRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { accordionAnimations } from './accordion.animations';\r\nimport { DEFAULT_MTX_ACCORDION_CONFIG, MtxAccordionConfig, MtxAccordionPanel } from './accordion.config';\r\nimport { MtxAccordionDirective, MtxAccordionItemDirective } from './directives';\r\n\r\n@Component({\r\n\tselector: 'mtx-accordion',\r\n\ttemplateUrl: './accordion.html',\r\n\tstyleUrls: ['./accordion.scss'],\r\n\tstandalone: true,\r\n\tanimations: accordionAnimations,\r\n\thost: { 'class': 'mtx-accordion' },\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tMatCommonModule,\r\n\t\tMatIconModule,\r\n\t\tCdkAccordionModule,\r\n\t\tMatButtonModule,\r\n\t\tMtxAccordionDirective,\r\n\t\tMtxAccordionItemDirective,\r\n\t\tMtxAccordion,\r\n\t\tNgTemplateOutlet\r\n\t],\r\n\tencapsulation: ViewEncapsulation.None,\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MtxAccordion implements OnInit, OnChanges {\r\n\t@Input() accordionConfig: MtxAccordionConfig = DEFAULT_MTX_ACCORDION_CONFIG;\r\n\t@Output() panelOpened: EventEmitter<number> = new EventEmitter<number>();\r\n\t@Output() panelClosed: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n\tprivate componentRef!: ComponentRef<any>;\r\n\texpandedIndex: number | null = null;\r\n\texpandedIndices: number[] = [];\r\n\r\n\tngOnInit() {\r\n\t\tthis.accordionConfig = { ...DEFAULT_MTX_ACCORDION_CONFIG, ...this.accordionConfig };\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tif(changes.accordionConfig){\r\n\t\t\tthis.accordionConfig = { ...DEFAULT_MTX_ACCORDION_CONFIG, ...changes.accordionConfig.currentValue };\r\n\t\t}\r\n\t}\r\n\r\n\ttogglePanel(panel: MtxAccordionPanel) {\r\n\t\tif (panel.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst panelIndex = this.accordionConfig.panels.indexOf(panel);\r\n\r\n\t\tif (this.accordionConfig.multi) {\r\n\t\t\tpanel.expanded = !panel.expanded;\r\n\t\t} else {\r\n\t\t\tif (!panel.expanded || !this.accordionConfig.closeOthersOnOpen) {\r\n\t\t\t\tthis.accordionConfig.panels.forEach(p => {\r\n\t\t\t\t\tif (p !== panel) {\r\n\t\t\t\t\t\tp.expanded = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tpanel.expanded = !panel.expanded;\r\n\t\t}\r\n\r\n\t\tconst currentIndex = this.expandedIndices.indexOf(panelIndex);\r\n\t\tif (panel.expanded && currentIndex === -1) {\r\n\t\t\tthis.expandedIndices.push(panelIndex);\r\n\t\t\tthis.panelOpened.emit(panelIndex);\r\n\t\t} else if (!panel.expanded && currentIndex !== -1) {\r\n\t\t\tthis.expandedIndices.splice(currentIndex, 1);\r\n\t\t\tthis.panelClosed.emit(panelIndex);\r\n\t\t}\r\n\t}\r\n\r\n\texpandAll() {\r\n\t\tthis.accordionConfig.panels.forEach(panel => panel.expanded = true);\r\n\t}\r\n\r\n\tcollapseAll() {\r\n\t\tthis.accordionConfig.panels.forEach(panel => panel.expanded = false);\r\n\t}\r\n\r\n\tgetIcon(panel: MtxAccordionPanel): string {\r\n\t\treturn panel.expanded ? panel?.collapseIcon || 'arrow_drop_up' : panel?.expandIcon || 'arrow_drop_down';\r\n\t}\r\n\r\n\t@HostListener('keydown', ['$event'])\r\n\tonKeydown(event: KeyboardEvent) {\r\n\t\tswitch (event.key) {\r\n\t\t\tcase 'ArrowDown':\r\n\t\t\tcase 'ArrowRight':\r\n\t\t\t\tthis.focusNextPanel(event);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'ArrowUp':\r\n\t\t\tcase 'ArrowLeft':\r\n\t\t\t\tthis.focusPreviousPanel(event);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Enter':\r\n\t\t\tcase 'Space':\r\n\t\t\t\tthis.toggleCurrentPanel(event);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate focusNextPanel(event: KeyboardEvent) {\r\n\t\tconst focusedIndex = this.getFocusedPanelIndex();\r\n\t\tconst nextIndex = focusedIndex < this.accordionConfig.panels.length - 1 ? focusedIndex + 1 : 0;\r\n\t\tthis.focusPanelByIndex(nextIndex);\r\n\t}\r\n\r\n\tprivate focusPreviousPanel(event: KeyboardEvent) {\r\n\t\tconst focusedIndex = this.getFocusedPanelIndex();\r\n\t\tconst previousIndex = focusedIndex > 0 ? focusedIndex - 1 : this.accordionConfig.panels.length - 1;\r\n\t\tthis.focusPanelByIndex(previousIndex);\r\n\t}\r\n\r\n\tprivate toggleCurrentPanel(event: KeyboardEvent) {\r\n\t\tconst focusedIndex = this.getFocusedPanelIndex();\r\n\t\tif (focusedIndex !== -1) {\r\n\t\t\tconst panel = this.accordionConfig.panels[focusedIndex];\r\n\t\t\tthis.togglePanel(panel);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getFocusedPanelIndex(): number {\r\n\t\tconst focusedPanel = document.activeElement?.closest('.mtx-accordion-header');\r\n\t\tif (focusedPanel) {\r\n\t\t\tconst panelElements = focusedPanel.parentElement?.children;\r\n\t\t\tif (panelElements) {\r\n\t\t\t\treturn Array.from(panelElements).indexOf(focusedPanel);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn -1;\r\n\t}\r\n\r\n\tprivate focusPanelByIndex(index: number) {\r\n\t\tconst panelElements = document.querySelectorAll('.mtx-accordion-header');\r\n\t\tif (panelElements.length > index && index >= 0) {\r\n\t\t\t(panelElements[index] as HTMLElement).focus();\r\n\t\t}\r\n\t}\r\n}\r\n","<ng-template #mtxAccordionTmpl let-accordionConfig=\"accordionConfig\">\r\n\t<ng-container [ngClass]=\"accordionConfig?.customClass\">\r\n\t\t<div\r\n\t\t\tclass=\"mtx-accordion-item\"\r\n\t\t\t*ngFor=\"let panel of accordionConfig?.panels; let panelIndex = index;\"\r\n\t\t\t[class.panel-expanded]=\"panel.expanded\"\r\n\t\t\t[id]=\"'panel-' + panelIndex\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"mtx-accordion-header\"\r\n\t\t\t\t[ngClass]=\"panel.headerClass\"\r\n\t\t\t\t(click)=\"togglePanel(panel)\"\r\n\t\t\t\t[attr.aria-expanded]=\"panel.expanded\"\r\n\t\t\t\t[attr.aria-controls]=\"'panel-' + panel.id\"\r\n\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t'icon-at-start' : accordionConfig.iconPosition === 'before',\r\n\t\t\t\t\t'icon-at-end'   : accordionConfig.iconPosition === 'after',\r\n\t\t\t\t}\">\r\n\t\t\t\t<ng-container *ngIf=\"accordionConfig.iconPosition === 'before'\">\r\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"panelIconTmpl; context: { panel }\"></ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"panel?.headerTemplate || accordionConfig?.headerTemplate\">\r\n\t\t\t\t\t<ng-container *ngIf=\"panel?.headerTemplate\">\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"panel.headerTemplate; context: { $implicit: panel }\"></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-container *ngIf=\"!panel?.headerTemplate\">\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"accordionConfig.headerTemplate; context: { $implicit: panel }\"></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"!accordionConfig?.headerTemplate && !panel?.headerTemplate\">{{panel.header}}</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"accordionConfig.iconPosition === 'after'\">\r\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"panelIconTmpl; context: { panel }\"></ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"mtx-accordion-content\"\r\n\t\t\t\t[@expandCollapse]=\"panel.expanded ? 'expanded' : 'collapsed'\"\r\n\t\t\t\t[ngClass]=\"panel.contentClass\"\r\n\t\t\t\t[attr.id]=\"'panel-' + panel.id\"\r\n\t\t\t\t*ngIf=\"panel.expanded\">\r\n\t\t\t\t<ng-container *ngIf=\"panel.childAccordionConfig\">\r\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"mtxAccordionTmpl; context: { accordionConfig: panel.childAccordionConfig }\"></ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"!panel.childAccordionConfig\">\r\n\t\t\t\t\t<ng-container *ngIf=\"accordionConfig?.contentTemplate\">\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"accordionConfig.contentTemplate; context: { $implicit: panel }\"></ng-container>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-container *ngIf=\"!accordionConfig?.contentTemplate\">{{panel.content}}</ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"mtx-accordion-footer\" [ngClass]=\"panel.footerClass\" *ngIf=\"panel.expanded\">\r\n\t\t\t\t<ng-container *ngIf=\"accordionConfig?.footerTemplate\">\r\n\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t*ngTemplateOutlet=\"accordionConfig.footerTemplate; context: { $implicit: panel }\"></ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<ng-container *ngIf=\"!accordionConfig?.footerTemplate\">{{panel.footer}}</ng-container>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<button *ngIf=\"accordionConfig.expandAllOnInit\" (click)=\"expandAll()\">\r\n\t\t\tExpand All\r\n\t\t</button>\r\n\t\t<button *ngIf=\"accordionConfig.multi && accordionConfig.closeOthersOnOpen\" (click)=\"collapseAll()\">\r\n\t\t\tCollapse All\r\n\t\t</button>\r\n\t</ng-container>\r\n</ng-template>\r\n\r\n<ng-container *ngTemplateOutlet=\"mtxAccordionTmpl; context: { accordionConfig: accordionConfig }\"></ng-container>\r\n\r\n<ng-template #panelIconTmpl let-panel=\"panel\">\r\n\t<button\r\n\t\tmat-icon-button\r\n\t\t*ngIf=\"!accordionConfig.hideToggle\"\r\n\t\t[attr.aria-label]=\"panel.expanded ? 'Collapse panel' : 'Expand panel'\"\r\n\t\tclass=\"mtx-toggle-button\"\r\n\t\t(click)=\"togglePanel(panel); $event.stopPropagation()\">\r\n\t\t<ng-container *ngIf=\"panel?.expandIcon\"><mat-icon>{{ getIcon(panel) }}</mat-icon></ng-container>\r\n\t\t<ng-container *ngIf=\"!panel?.expandIcon\"><mat-icon>{{ getIcon(panel) }}</mat-icon></ng-container>\r\n\t</button>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CdkAccordionModule } from '@angular/cdk/accordion';\r\nimport { MtxAccordionDirective, MtxAccordionItemDirective } from './directives';\r\nimport { MtxAccordion } from './accordion';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\nconst accordionModules = [\r\n\tCommonModule,\r\n\tMatIconModule,\r\n\tCdkAccordionModule,\r\n\tMatIconModule,\r\n\tMatButtonModule,\r\n\tMtxAccordionDirective,\r\n\tMtxAccordionItemDirective,\r\n\tMtxAccordion\r\n];\r\n\r\n@NgModule({\r\n\timports: [ ...accordionModules ],\r\n\texports: [ ...accordionModules ]\r\n})\r\nexport class MtxAccordionModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}