UNPKG

15.5 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-accordion.js","sources":["../../src/app/components/accordion/accordion.ts","../../src/app/components/accordion/primeng-accordion.ts"],"sourcesContent":["import { NgModule, Component, ElementRef, AfterContentInit, OnDestroy, Input, Output, EventEmitter, \n ContentChildren, QueryList, ChangeDetectorRef, Inject, forwardRef, TemplateRef, ViewRef, ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule, Header, PrimeTemplate } from 'primeng/api';\nimport { BlockableUI } from 'primeng/api';\nimport { Subscription } from 'rxjs';\n\nlet idx: number = 0;\n\n@Component({\n selector: 'p-accordionTab',\n template: `\n <div class=\"p-accordion-tab\" [ngClass]=\"{'p-accordion-tab-active': selected}\">\n <div class=\"p-accordion-header\" [ngClass]=\"{'p-highlight': selected, 'p-disabled': disabled}\">\n <a role=\"tab\" class=\"p-accordion-header-link\" (click)=\"toggle($event)\" (keydown)=\"onKeydown($event)\" [attr.tabindex]=\"disabled ? null : 0\"\n [attr.id]=\"id\" [attr.aria-controls]=\"id + '-content'\" [attr.aria-expanded]=\"selected\">\n <span class=\"p-accordion-toggle-icon\" [ngClass]=\"selected ? accordion.collapseIcon : accordion.expandIcon\"></span>\n <span class=\"p-accordion-header-text\" *ngIf=\"!hasHeaderFacet\">\n {{header}}\n </span>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <ng-content select=\"p-header\" *ngIf=\"hasHeaderFacet\"></ng-content>\n </a>\n </div>\n <div [attr.id]=\"id + '-content'\" class=\"p-toggleable-content\" [@tabContent]=\"selected ? {value: 'visible', params: {transitionParams: transitionOptions}} : {value: 'hidden', params: {transitionParams: transitionOptions}}\"\n role=\"region\" [attr.aria-hidden]=\"!selected\" [attr.aria-labelledby]=\"id\">\n <div class=\"p-accordion-content\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"contentTemplate && (cache ? loaded : selected)\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n `,\n animations: [\n trigger('tabContent', [\n state('hidden', style({\n height: '0',\n overflow: 'hidden'\n })),\n state('visible', style({\n height: '*'\n })),\n transition('visible <=> hidden', [style({overflow: 'hidden'}), animate('{{transitionParams}}')]),\n transition('void => *', animate(0))\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./accordion.css']\n})\nexport class AccordionTab implements AfterContentInit,OnDestroy {\n\n @Input() header: string;\n\n @Input() disabled: boolean;\n\n @Input() cache: boolean = true;\n\n @Output() selectedChange: EventEmitter<any> = new EventEmitter();\n\n @Input() transitionOptions: string = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n @ContentChildren(Header) headerFacet: QueryList<Header>;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n private _selected: boolean;\n\n @Input() get selected(): any {\n return this._selected;\n }\n\n set selected(val: any) {\n this._selected = val;\n \n if (!this.loaded) {\n this.changeDetector.detectChanges();\n }\n }\n\n contentTemplate: TemplateRef<any>;\n\n headerTemplate: TemplateRef<any>;\n\n id: string = `p-accordiontab-${idx++}`;\n\n loaded: boolean;\n\n accordion: Accordion;\n\n constructor(@Inject(forwardRef(() => Accordion)) accordion, public changeDetector: ChangeDetectorRef) {\n this.accordion = accordion as Accordion;\n }\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch(item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n case 'header':\n this.headerTemplate = item.template;\n break;\n \n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n toggle(event) {\n if (this.disabled) {\n return false;\n }\n\n let index = this.findTabIndex();\n\n if (this.selected) {\n this.selected = false;\n this.accordion.onClose.emit({ originalEvent: event, index: index });\n }\n else {\n if (!this.accordion.multiple) {\n for (var i = 0; i < this.accordion.tabs.length; i++) {\n this.accordion.tabs[i].selected = false;\n this.accordion.tabs[i].selectedChange.emit(false);\n this.accordion.tabs[i].changeDetector.markForCheck();\n }\n }\n\n this.selected = true;\n this.loaded = true;\n this.accordion.onOpen.emit({ originalEvent: event, index: index });\n }\n\n this.selectedChange.emit(this.selected);\n this.accordion.updateActiveIndex();\n this.changeDetector.markForCheck();\n\n event.preventDefault();\n }\n\n findTabIndex() {\n let index = -1;\n for (var i = 0; i < this.accordion.tabs.length; i++) {\n if (this.accordion.tabs[i] == this) {\n index = i;\n break;\n }\n }\n return index;\n }\n\n get hasHeaderFacet(): boolean {\n return this.headerFacet && this.headerFacet.length > 0;\n }\n\n onKeydown(event: KeyboardEvent) {\n if (event.which === 32 || event.which === 13) {\n this.toggle(event);\n event.preventDefault();\n }\n }\n\n ngOnDestroy() {\n this.accordion.tabs.splice(this.findTabIndex(), 1);\n }\n}\n\n@Component({\n selector: 'p-accordion',\n template: `\n <div [ngClass]=\"'p-accordion p-component'\" [ngStyle]=\"style\" [class]=\"styleClass\" role=\"tablist\">\n <ng-content></ng-content>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Accordion implements BlockableUI, AfterContentInit, OnDestroy {\n \n @Input() multiple: boolean;\n \n @Output() onClose: EventEmitter<any> = new EventEmitter();\n\n @Output() onOpen: EventEmitter<any> = new EventEmitter();\n\n @Input() style: any;\n \n @Input() styleClass: string;\n\n @Input() expandIcon: string = 'pi pi-fw pi-chevron-right';\n\n @Input() collapseIcon: string = 'pi pi-fw pi-chevron-down';\n\n @Output() activeIndexChange: EventEmitter<any> = new EventEmitter();\n \n @ContentChildren(AccordionTab) tabList: QueryList<AccordionTab>;\n\n tabListSubscription: Subscription;\n \n private _activeIndex: any;\n\n preventActiveIndexPropagation: boolean;\n \n public tabs: AccordionTab[] = [];\n\n constructor(public el: ElementRef, public changeDetector: ChangeDetectorRef) {}\n\n ngAfterContentInit() {\n this.initTabs();\n\n this.tabListSubscription = this.tabList.changes.subscribe(_ => {\n this.initTabs();\n });\n }\n\n initTabs(): any {\n this.tabs = this.tabList.toArray();\n this.updateSelectionState();\n this.changeDetector.markForCheck();\n }\n \n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n } \n \n @Input() get activeIndex(): any {\n return this._activeIndex;\n }\n\n set activeIndex(val: any) {\n this._activeIndex = val;\n if (this.preventActiveIndexPropagation) {\n this.preventActiveIndexPropagation = false;\n return;\n }\n\n this.updateSelectionState();\n }\n\n updateSelectionState() {\n if (this.tabs && this.tabs.length && this._activeIndex != null) {\n for (let i = 0; i < this.tabs.length; i++) {\n let selected = this.multiple ? this._activeIndex.includes(i) : (i === this._activeIndex);\n let changed = selected !== this.tabs[i].selected;\n\n if (changed) {\n this.tabs[i].selected = selected;\n this.tabs[i].selectedChange.emit(selected);\n }\n }\n }\n }\n\n updateActiveIndex() {\n let index: any = this.multiple ? [] : null;\n this.tabs.forEach((tab, i) => {\n if (tab.selected) {\n if (this.multiple) {\n index.push(i);\n }\n else {\n index = i;\n return;\n }\n }\n });\n\n this.preventActiveIndexPropagation = true;\n this.activeIndexChange.emit(index);\n }\n\n ngOnDestroy() {\n if (this.tabListSubscription) {\n this.tabListSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Accordion,AccordionTab,SharedModule],\n declarations: [Accordion,AccordionTab]\n})\nexport class AccordionModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
\No newline at end of file