UNPKG

16.1 kBSource Map (JSON)View Raw
1{"version":3,"file":"primeng-organizationchart.js","sources":["../../src/app/components/organizationchart/organizationchart.ts","../../src/app/components/organizationchart/primeng-organizationchart.ts"],"sourcesContent":["import {NgModule,Component,ElementRef,Input,Output,AfterContentInit,EventEmitter,TemplateRef,\n Inject,forwardRef,ContentChildren,QueryList,ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, OnDestroy} from '@angular/core';\nimport {trigger,state,style,transition,animate} from '@angular/animations';\nimport {CommonModule} from '@angular/common';\nimport {SharedModule} from 'primeng/api';\nimport {TreeNode} from 'primeng/api';\nimport {PrimeTemplate} from 'primeng/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 [class]=\"node.styleClass\" [ngClass]=\"{'p-organizationchart-node-content': true, 'p-organizationchart-selectable-node': chart.selectionMode && node.selectable !== false,'p-highlight':isSelected()}\"\n (click)=\"onNodeClick($event,node)\">\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 *ngIf=\"!leaf\" tabindex=\"0\" class=\"p-node-toggler\" (click)=\"toggleNode($event, node)\" (keydown.enter)=\"toggleNode($event, node)\">\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 [ngClass]=\"!leaf&&node.expanded ? 'p-organizationchart-node-visible' : 'p-organizationchart-node-hidden'\" class=\"p-organizationchart-lines\" [@childState]=\"'in'\">\n <td [attr.colspan]=\"colspan\">\n <div class=\"p-organizationchart-line-down\"></div>\n </td>\n </tr>\n <tr [ngClass]=\"!leaf&&node.expanded ? 'p-organizationchart-node-visible' : 'p-organizationchart-node-hidden'\" class=\"p-organizationchart-lines\" [@childState]=\"'in'\">\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 [ngClass]=\"!leaf&&node.expanded ? 'p-organizationchart-node-visible' : 'p-organizationchart-node-hidden'\" class=\"p-organizationchart-nodes\" [@childState]=\"'in'\">\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 => *', [\n style({opacity: 0}),\n animate(150)\n ]),\n transition('* => void', [\n animate(150, style({opacity:0}))\n ])\n ])\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./organizationchart.css']\n})\nexport class OrganizationChartNode implements OnDestroy{\n\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)\n this.chart.onNodeExpand.emit({originalEvent: event, node: this.node});\n else\n 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 [ngStyle]=\"style\" [class]=\"styleClass\" [ngClass]=\"{'p-organizationchart p-component': true, 'p-organizationchart-preservespace': preserveSpace}\">\n <table class=\"p-organizationchart-table\" pOrganizationChartNode [node]=\"root\" *ngIf=\"root\"></table>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OrganizationChart implements AfterContentInit {\n \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)\n this.selectionSource.next();\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)\n return node.type ? this.templateMap[node.type] : this.templateMap['default'];\n else\n return null;\n }\n \n onNodeClick(event: Event, node: TreeNode) {\n let eventTarget = (<Element> event.target);\n \n if (eventTarget.className && (eventTarget.className.indexOf('p-node-toggler') !== -1 || eventTarget.className.indexOf('p-node-toggler-icon') !== -1)) {\n return;\n }\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 }\n else {\n this.selection = node;\n this.onNodeSelect.emit({originalEvent: event, node: node});\n }\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 }\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();\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 }\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 * 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