{"version":3,"file":"axulus-uikit-fieldset.mjs","sources":["../../src/app/components/fieldset/fieldset.ts","../../src/app/components/fieldset/axulus-uikit-fieldset.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgModule,\n  Output,\n  QueryList,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { BlockableUI, PrimeTemplate, SharedModule } from '@axulus/uikit/api';\nimport { RippleModule } from '@axulus/uikit/ripple';\n\nlet idx: number = 0;\n\n@Component({\n  selector: 'p-fieldset',\n  template: `\n    <fieldset\n      [attr.id]=\"id\"\n      [ngClass]=\"{\n        'p-fieldset p-component': true,\n        'p-fieldset-toggleable': toggleable,\n        'p-fieldset-expanded': !collapsed && toggleable\n      }\"\n      [ngStyle]=\"style\"\n      [class]=\"styleClass\"\n    >\n      <legend class=\"p-fieldset-legend\">\n        <ng-container *ngIf=\"toggleable; else legendContent\">\n          <a\n            tabindex=\"0\"\n            (click)=\"toggle($event)\"\n            (keydown.enter)=\"toggle($event)\"\n            [attr.aria-controls]=\"id + '-content'\"\n            [attr.aria-expanded]=\"!collapsed\"\n            pRipple\n          >\n            <span class=\"p-fieldset-toggler pi\" *ngIf=\"toggleable\" [ngClass]=\"{ 'pi-minus': !collapsed, 'pi-plus': collapsed }\"></span>\n            <ng-container *ngTemplateOutlet=\"legendContent\"></ng-container>\n          </a>\n        </ng-container>\n        <ng-template #legendContent>\n          <span class=\"p-fieldset-legend-text\">{{ legend }}</span>\n          <ng-content select=\"p-header\"></ng-content>\n          <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n        </ng-template>\n      </legend>\n      <div\n        [attr.id]=\"id + '-content'\"\n        class=\"p-toggleable-content\"\n        [@fieldsetContent]=\"\n          collapsed\n            ? { value: 'hidden', params: { transitionParams: transitionOptions, height: '0' } }\n            : { value: 'visible', params: { transitionParams: animating ? transitionOptions : '0ms', height: '*' } }\n        \"\n        [attr.aria-labelledby]=\"id\"\n        [attr.aria-hidden]=\"collapsed\"\n        (@fieldsetContent.done)=\"onToggleDone()\"\n        role=\"region\"\n      >\n        <div class=\"p-fieldset-content\">\n          <ng-content></ng-content>\n          <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n        </div>\n      </div>\n    </fieldset>\n  `,\n  animations: [\n    trigger('fieldsetContent', [\n      state(\n        'hidden',\n        style({\n          height: '0'\n        })\n      ),\n      state(\n        'visible',\n        style({\n          height: '*'\n        })\n      ),\n      transition('visible <=> hidden', [animate('{{transitionParams}}')]),\n      transition('void => *', animate(0))\n    ])\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./fieldset.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class Fieldset implements AfterContentInit, BlockableUI {\n  @Input() legend: string;\n\n  @Input() toggleable: boolean;\n\n  @Input() collapsed: boolean = false;\n\n  @Output() collapsedChange: EventEmitter<any> = new EventEmitter();\n\n  @Output() onBeforeToggle: EventEmitter<any> = new EventEmitter();\n\n  @Output() onAfterToggle: EventEmitter<any> = new EventEmitter();\n\n  @Input() style: any;\n\n  @Input() styleClass: string;\n\n  @Input() transitionOptions: string = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n  @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n  public animating: boolean;\n\n  headerTemplate: TemplateRef<any>;\n\n  contentTemplate: TemplateRef<any>;\n\n  constructor(private el: ElementRef) {}\n\n  id: string = `p-fieldset-${idx++}`;\n\n  ngAfterContentInit() {\n    this.templates.forEach((item) => {\n      switch (item.getType()) {\n        case 'header':\n          this.headerTemplate = item.template;\n          break;\n\n        case 'content':\n          this.contentTemplate = item.template;\n          break;\n      }\n    });\n  }\n\n  toggle(event) {\n    if (this.animating) {\n      return false;\n    }\n\n    this.animating = true;\n    this.onBeforeToggle.emit({ originalEvent: event, collapsed: this.collapsed });\n\n    if (this.collapsed) this.expand(event);\n    else this.collapse(event);\n\n    this.onAfterToggle.emit({ originalEvent: event, collapsed: this.collapsed });\n    event.preventDefault();\n  }\n\n  expand(event) {\n    this.collapsed = false;\n    this.collapsedChange.emit(this.collapsed);\n  }\n\n  collapse(event) {\n    this.collapsed = true;\n    this.collapsedChange.emit(this.collapsed);\n  }\n\n  getBlockableElement(): HTMLElement {\n    return this.el.nativeElement.children[0];\n  }\n\n  onToggleDone() {\n    this.animating = false;\n  }\n}\n\n@NgModule({\n  imports: [CommonModule, RippleModule],\n  exports: [Fieldset, SharedModule],\n  declarations: [Fieldset]\n})\nexport class FieldsetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}