{"version":3,"file":"axulus-uikit-organizationchart.mjs","sources":["../../src/app/components/organizationchart/organizationchart.ts","../../src/app/components/organizationchart/axulus-uikit-organizationchart.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Input,\n  NgModule,\n  OnDestroy,\n  Output,\n  QueryList,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { PrimeTemplate, SharedModule, TreeNode } from '@axulus/uikit/api';\nimport { Subject, Subscription } from 'rxjs';\n\n@Component({\n  selector: '[pOrganizationChartNode]',\n  template: `\n    <tbody *ngIf=\"node\">\n      <tr>\n        <td [attr.colspan]=\"colspan\">\n          <div\n            [class]=\"node.styleClass\"\n            [ngClass]=\"{\n              'p-organizationchart-node-content': true,\n              'p-organizationchart-selectable-node': chart.selectionMode && node.selectable !== false,\n              'p-highlight': isSelected()\n            }\"\n            (click)=\"onNodeClick($event, node)\"\n          >\n            <div *ngIf=\"!chart.getTemplateForNode(node)\">{{ node.label }}</div>\n            <div *ngIf=\"chart.getTemplateForNode(node)\">\n              <ng-container *ngTemplateOutlet=\"chart.getTemplateForNode(node); context: { $implicit: node }\"></ng-container>\n            </div>\n            <a\n              *ngIf=\"!leaf\"\n              tabindex=\"0\"\n              class=\"p-node-toggler\"\n              (click)=\"toggleNode($event, node)\"\n              (keydown.enter)=\"toggleNode($event, node)\"\n            >\n              <i class=\"p-node-toggler-icon pi\" [ngClass]=\"{ 'pi-chevron-down': node.expanded, 'pi-chevron-up': !node.expanded }\"></i>\n            </a>\n          </div>\n        </td>\n      </tr>\n      <tr\n        [ngClass]=\"!leaf && node.expanded ? 'p-organizationchart-node-visible' : 'p-organizationchart-node-hidden'\"\n        class=\"p-organizationchart-lines\"\n        [@childState]=\"'in'\"\n      >\n        <td [attr.colspan]=\"colspan\">\n          <div class=\"p-organizationchart-line-down\"></div>\n        </td>\n      </tr>\n      <tr\n        [ngClass]=\"!leaf && node.expanded ? 'p-organizationchart-node-visible' : 'p-organizationchart-node-hidden'\"\n        class=\"p-organizationchart-lines\"\n        [@childState]=\"'in'\"\n      >\n        <ng-container *ngIf=\"node.children && node.children.length === 1\">\n          <td [attr.colspan]=\"colspan\">\n            <div class=\"p-organizationchart-line-down\"></div>\n          </td>\n        </ng-container>\n        <ng-container *ngIf=\"node.children && node.children.length > 1\">\n          <ng-template ngFor let-child [ngForOf]=\"node.children\" let-first=\"first\" let-last=\"last\">\n            <td class=\"p-organizationchart-line-left\" [ngClass]=\"{ 'p-organizationchart-line-top': !first }\">&nbsp;</td>\n            <td class=\"p-organizationchart-line-right\" [ngClass]=\"{ 'p-organizationchart-line-top': !last }\">&nbsp;</td>\n          </ng-template>\n        </ng-container>\n      </tr>\n      <tr\n        [ngClass]=\"!leaf && node.expanded ? 'p-organizationchart-node-visible' : 'p-organizationchart-node-hidden'\"\n        class=\"p-organizationchart-nodes\"\n        [@childState]=\"'in'\"\n      >\n        <td *ngFor=\"let child of node.children\" colspan=\"2\">\n          <table class=\"p-organizationchart-table\" pOrganizationChartNode [node]=\"child\"></table>\n        </td>\n      </tr>\n    </tbody>\n  `,\n  animations: [\n    trigger('childState', [\n      state('in', style({ opacity: 1 })),\n      transition('void => *', [style({ opacity: 0 }), animate(150)]),\n      transition('* => void', [animate(150, style({ opacity: 0 }))])\n    ])\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styleUrls: ['./organizationchart.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class OrganizationChartNode implements OnDestroy {\n  @Input() node: TreeNode;\n\n  @Input() root: boolean;\n\n  @Input() first: boolean;\n\n  @Input() last: boolean;\n\n  chart: OrganizationChart;\n\n  subscription: Subscription;\n\n  constructor(@Inject(forwardRef(() => OrganizationChart)) chart, public cd: ChangeDetectorRef) {\n    this.chart = chart as OrganizationChart;\n    this.subscription = this.chart.selectionSource$.subscribe(() => {\n      this.cd.markForCheck();\n    });\n  }\n\n  get leaf(): boolean {\n    return this.node.leaf == false ? false : !(this.node.children && this.node.children.length);\n  }\n\n  get colspan() {\n    return this.node.children && this.node.children.length ? this.node.children.length * 2 : null;\n  }\n\n  onNodeClick(event: Event, node: TreeNode) {\n    this.chart.onNodeClick(event, node);\n  }\n\n  toggleNode(event: Event, node: TreeNode) {\n    node.expanded = !node.expanded;\n    if (node.expanded) this.chart.onNodeExpand.emit({ originalEvent: event, node: this.node });\n    else this.chart.onNodeCollapse.emit({ originalEvent: event, node: this.node });\n\n    event.preventDefault();\n  }\n\n  isSelected() {\n    return this.chart.isSelected(this.node);\n  }\n\n  ngOnDestroy() {\n    this.subscription.unsubscribe();\n  }\n}\n\n@Component({\n  selector: 'p-organizationChart',\n  template: `\n    <div\n      [ngStyle]=\"style\"\n      [class]=\"styleClass\"\n      [ngClass]=\"{ 'p-organizationchart p-component': true, 'p-organizationchart-preservespace': preserveSpace }\"\n    >\n      <table class=\"p-organizationchart-table\" pOrganizationChartNode [node]=\"root\" *ngIf=\"root\"></table>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'p-element'\n  }\n})\nexport class OrganizationChart implements AfterContentInit {\n  @Input() value: TreeNode[];\n\n  @Input() style: any;\n\n  @Input() styleClass: string;\n\n  @Input() selectionMode: string;\n\n  @Input() preserveSpace: boolean = true;\n\n  @Input() get selection(): any {\n    return this._selection;\n  }\n\n  set selection(val: any) {\n    this._selection = val;\n\n    if (this.initialized) this.selectionSource.next(null);\n  }\n\n  @Output() selectionChange: EventEmitter<any> = new EventEmitter();\n\n  @Output() onNodeSelect: EventEmitter<any> = new EventEmitter();\n\n  @Output() onNodeUnselect: EventEmitter<any> = new EventEmitter();\n\n  @Output() onNodeExpand: EventEmitter<any> = new EventEmitter();\n\n  @Output() onNodeCollapse: EventEmitter<any> = new EventEmitter();\n\n  @ContentChildren(PrimeTemplate) templates: QueryList<any>;\n\n  public templateMap: any;\n\n  private selectionSource = new Subject<any>();\n\n  _selection: any;\n\n  initialized: boolean;\n\n  selectionSource$ = this.selectionSource.asObservable();\n\n  constructor(public el: ElementRef, public cd: ChangeDetectorRef) {}\n\n  get root(): TreeNode {\n    return this.value && this.value.length ? this.value[0] : null;\n  }\n\n  ngAfterContentInit() {\n    if (this.templates.length) {\n      this.templateMap = {};\n    }\n\n    this.templates.forEach((item) => {\n      this.templateMap[item.getType()] = item.template;\n    });\n\n    this.initialized = true;\n  }\n\n  getTemplateForNode(node: TreeNode): TemplateRef<any> {\n    if (this.templateMap) return node.type ? this.templateMap[node.type] : this.templateMap['default'];\n    else return null;\n  }\n\n  onNodeClick(event: Event, node: TreeNode) {\n    let eventTarget = <Element>event.target;\n\n    if (\n      eventTarget.className &&\n      (eventTarget.className.indexOf('p-node-toggler') !== -1 || eventTarget.className.indexOf('p-node-toggler-icon') !== -1)\n    ) {\n      return;\n    } else if (this.selectionMode) {\n      if (node.selectable === false) {\n        return;\n      }\n\n      let index = this.findIndexInSelection(node);\n      let selected = index >= 0;\n\n      if (this.selectionMode === 'single') {\n        if (selected) {\n          this.selection = null;\n          this.onNodeUnselect.emit({ originalEvent: event, node: node });\n        } else {\n          this.selection = node;\n          this.onNodeSelect.emit({ originalEvent: event, node: node });\n        }\n      } else if (this.selectionMode === 'multiple') {\n        if (selected) {\n          this.selection = this.selection.filter((val, i) => i != index);\n          this.onNodeUnselect.emit({ originalEvent: event, node: node });\n        } else {\n          this.selection = [...(this.selection || []), node];\n          this.onNodeSelect.emit({ originalEvent: event, node: node });\n        }\n      }\n\n      this.selectionChange.emit(this.selection);\n      this.selectionSource.next(null);\n    }\n  }\n\n  findIndexInSelection(node: TreeNode) {\n    let index: number = -1;\n\n    if (this.selectionMode && this.selection) {\n      if (this.selectionMode === 'single') {\n        index = this.selection == node ? 0 : -1;\n      } else if (this.selectionMode === 'multiple') {\n        for (let i = 0; i < this.selection.length; i++) {\n          if (this.selection[i] == node) {\n            index = i;\n            break;\n          }\n        }\n      }\n    }\n\n    return index;\n  }\n\n  isSelected(node: TreeNode) {\n    return this.findIndexInSelection(node) != -1;\n  }\n}\n\n@NgModule({\n  imports: [CommonModule],\n  exports: [OrganizationChart, SharedModule],\n  declarations: [OrganizationChart, OrganizationChartNode]\n})\nexport class OrganizationChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}