{"version":3,"file":"accordion.js","sourceRoot":"","sources":["accordion.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,qBAC6C,eAAe,CAAC,CAAA;AAC7D,uBAA2B,iBAAiB,CAAC,CAAA;AAC7C,uBAAqB,kBAAkB,CAAC,CAAA;AAWxC;IAcI,mBAAmB,EAAc;QAAd,OAAE,GAAF,EAAE,CAAY;QAVvB,YAAO,GAAsB,IAAI,mBAAY,EAAE,CAAC;QAEhD,WAAM,GAAsB,IAAI,mBAAY,EAAE,CAAC;QAMlD,SAAI,GAAmB,EAAE,CAAC;IAEG,CAAC;IAErC,0BAAM,GAAN,UAAO,GAAiB;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,uCAAmB,GAAnB;QACI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IApBD;QAAC,YAAK,EAAE;;+CAAA;IAER;QAAC,aAAM,EAAE;;8CAAA;IAET;QAAC,aAAM,EAAE;;6CAAA;IAET;QAAC,YAAK,EAAE;;4CAAA;IAER;QAAC,YAAK,EAAE;;iDAAA;IAlBZ;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,gLAIT;SACJ,CAAC;;iBAAA;IAwBF,gBAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,iBAAS,YAuBrB,CAAA;AAiCD;IAgBI,sBAAmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAR7B,mBAAc,GAAsB,IAAI,mBAAY,EAAE,CAAC;QAS7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,6BAAM,GAAN,UAAO,KAAK;QAAZ,iBAgCC;QA/BG,EAAE,CAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEhC,EAAE,CAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,CAAC;YACF,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1B,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;oBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtD,CAAC;YACL,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExC,uDAAuD;QACvD,UAAU,CAAC;YACP,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAED,mCAAY,GAAZ;QACI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,GAAG,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,EAAE,CAAA,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAChC,KAAK,GAAG,CAAC,CAAC;gBACV,KAAK,CAAC;YACV,CAAC;QACL,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC;IA7DD;QAAC,YAAK,EAAE;;gDAAA;IAER;QAAC,YAAK,EAAE;;kDAAA;IAER;QAAC,YAAK,EAAE;;kDAAA;IAER;QAAC,aAAM,EAAE;;wDAAA;IAET;QAAC,mBAAY,CAAC,eAAM,CAAC;;qDAAA;IAzCzB;QAAC,gBAAS,CAAC;YACP,QAAQ,EAAE,gBAAgB;YAC1B,QAAQ,EAAE,spCAeT;YACD,UAAU,EAAE;gBACR,cAAO,CAAC,YAAY,EAAE;oBAClB,YAAK,CAAC,QAAQ,EAAE,YAAK,CAAC;wBAClB,MAAM,EAAE,KAAK;qBAChB,CAAC,CAAC;oBACH,YAAK,CAAC,SAAS,EAAE,YAAK,CAAC;wBACnB,MAAM,EAAE,GAAG;qBACd,CAAC,CAAC;oBACH,iBAAU,CAAC,mBAAmB,EAAE,cAAO,CAAC,sCAAsC,CAAC,CAAC;oBAChF,iBAAU,CAAC,mBAAmB,EAAE,cAAO,CAAC,sCAAsC,CAAC,CAAC;iBACnF,CAAC;aACL;SACJ,CAAC;;oBAAA;IAiEF,mBAAC;AAAD,CAAC,AAhED,IAgEC;AAhEY,oBAAY,eAgExB,CAAA;AAOD;IAAA;IAA+B,CAAC;IALhC;QAAC,eAAQ,CAAC;YACN,OAAO,EAAE,CAAC,qBAAY,CAAC;YACvB,OAAO,EAAE,CAAC,SAAS,EAAC,YAAY,CAAC;YACjC,YAAY,EAAE,CAAC,SAAS,EAAC,YAAY,CAAC;SACzC,CAAC;;uBAAA;IAC6B,sBAAC;AAAD,CAAC,AAAhC,IAAgC;AAAnB,uBAAe,kBAAI,CAAA","sourcesContent":["import {NgModule,Component,ElementRef,AfterContentInit,Input,Output,EventEmitter,ContentChild,\ntrigger,state,transition,style,animate} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {Header} from '../common/shared';\nimport {BlockableUI} from '../common/api';\n\n@Component({\n selector: 'p-accordion',\n template: `\n
\n \n
\n `,\n})\nexport class Accordion implements BlockableUI {\n \n @Input() multiple: boolean;\n \n @Output() onClose: EventEmitter = new EventEmitter();\n\n @Output() onOpen: EventEmitter = new EventEmitter();\n\n @Input() style: any;\n \n @Input() styleClass: string;\n \n public tabs: AccordionTab[] = [];\n\n constructor(public el: ElementRef) {}\n\n addTab(tab: AccordionTab) {\n this.tabs.push(tab);\n } \n \n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n } \n}\n\n@Component({\n selector: 'p-accordionTab',\n template: `\n
\n \n {{header}}\n \n \n \n
\n
\n
\n \n
\n
\n `,\n animations: [\n trigger('tabContent', [\n state('hidden', style({\n height: '0px'\n })),\n state('visible', style({\n height: '*'\n })),\n transition('visible => hidden', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)')),\n transition('hidden => visible', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\n ])\n ]\n})\nexport class AccordionTab {\n\n @Input() header: string;\n\n @Input() selected: boolean;\n\n @Input() disabled: boolean;\n \n @Output() selectedChange: EventEmitter = new EventEmitter();\n\n @ContentChild(Header) headerFacet;\n \n public animating: boolean;\n \n public hover: boolean;\n\n constructor(public accordion: Accordion) {\n this.accordion.addTab(this);\n }\n\n toggle(event) {\n if(this.disabled) {\n return false;\n }\n \n this.animating = true;\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 }\n }\n\n this.selected = true;\n this.accordion.onOpen.emit({originalEvent: event, index: index});\n }\n \n this.selectedChange.emit(this.selected);\n \n //TODO: Use onDone of animate callback instead with RC6\n setTimeout(() => {\n this.animating = false;\n }, 400);\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\n@NgModule({\n imports: [CommonModule],\n exports: [Accordion,AccordionTab],\n declarations: [Accordion,AccordionTab]\n})\nexport class AccordionModule { }\n"]}