UNPKG

cm-angular-org-chart

Version:

Hierarchical Organizational Chart for Angular

1 lines 9.01 kB
{"version":3,"file":"cm-angular-org-chart.mjs","sources":["../../../projects/cm-angular-org-chart/src/lib/org-chart/employee/employee.component.ts","../../../projects/cm-angular-org-chart/src/lib/org-chart/employee/employee.component.html","../../../projects/cm-angular-org-chart/src/lib/org-chart/org-chart.component.ts","../../../projects/cm-angular-org-chart/src/lib/org-chart/org-chart.component.html","../../../projects/cm-angular-org-chart/src/lib/org-chart/employee/employee.ts","../../../projects/cm-angular-org-chart/src/public-api.ts","../../../projects/cm-angular-org-chart/src/cm-angular-org-chart.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IEmployee } from './employee';\r\n\r\n@Component({\r\n selector: 'employee',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './employee.component.html',\r\n styleUrls: ['./employee.component.scss']\r\n})\r\nexport class EmployeeComponent {\r\n\r\n @Input() employee: any | null = null;\r\n @Input() hasManager = false;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n\r\n @Output() itemClick = new EventEmitter<IEmployee>();\r\n\r\n}\r\n","<div ngClass=\"oc-connector-{{direction}}\" class=\"oc-border\" *ngIf=\"hasManager\"></div>\r\n<div [ngClass]=\"employee?.cssClass\" class=\"oc-box oc-border oc-background\"\r\n (click)=\"itemClick.emit(employee)\">\r\n <div *ngIf=\"employee?.imageUrl\" class=\"oc-image oc-border\"\r\n [ngStyle]=\"{ 'background-image': 'url(\\''+ employee?.imageUrl+'\\')'}\"></div>\r\n <div>\r\n <div class=\"oc-name\">{{employee?.name}}</div>\r\n <div class=\"oc-designation\">{{employee?.designation}}</div>\r\n </div>\r\n</div>\r\n<div ngClass=\"oc-connector-{{direction}}\" class=\"oc-border\" *ngIf=\"employee?.subordinates?.length\"></div>","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EmployeeComponent } from './employee/employee.component';\r\nimport { IEmployee } from './employee/employee';\r\n\r\n@Component({\r\n selector: 'org-chart',\r\n standalone: true,\r\n imports: [CommonModule, EmployeeComponent],\r\n templateUrl: './org-chart.component.html',\r\n styleUrls: ['./org-chart.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CmAngularOrgChartComponent {\r\n @Input() topEmployee: any | null = null;\r\n @Input() hasManager = false;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n\r\n @Output() itemClick = new EventEmitter<IEmployee>();\r\n\r\n @HostBinding('style.flex-direction')\r\n get hostClass() {\r\n return this.direction === 'vertical' ? 'column' : '';\r\n }\r\n\r\n}\r\n","<employee *ngIf=\"topEmployee\" ngClass=\"oc-{{direction}}\" [employee]=\"topEmployee\" [hasManager]=\"hasManager\"\r\n [direction]=\"direction\" (itemClick)=\"itemClick.emit($event)\">\r\n</employee>\r\n<div *ngIf=\"topEmployee?.subordinates?.length\" ngClass=\"oc-reports-{{direction}}\" class=\"oc-reports\">\r\n <ng-container *ngFor=\"let employee of topEmployee?.subordinates; first as isFirst; last as isLast\">\r\n <div ngClass=\"oc-org-container-{{direction}}\" class=\"oc-org-container\">\r\n <div ngClass=\"oc-connector-container-{{direction}}\" class=\"oc-connector-container\">\r\n <div class=\"oc-connector oc-border\" [style.border-color]=\"isFirst?'transparent':''\"></div>\r\n <div class=\"oc-border\"></div>\r\n <div class=\"oc-connector oc-border\" [style.border-color]=\"isLast?'transparent':''\"></div>\r\n </div>\r\n <org-chart [topEmployee]=\"employee\" [hasManager]=\"true\" [direction]=\"direction\"\r\n (itemClick)=\"itemClick.emit($event)\">\r\n </org-chart>\r\n </div>\r\n </ng-container>\r\n</div>","export interface IEmployee {\r\n name: string;\r\n cssClass: string;\r\n imageUrl: string;\r\n designation: string | null;\r\n subordinates: IEmployee[];\r\n}\r\n\r\nexport class Employee implements IEmployee {\r\n name: string;\r\n cssClass: string = \"\";\r\n imageUrl: string = \"\";\r\n designation: string | null;\r\n subordinates: Employee[];\r\n manager?: Employee;\r\n constructor(orgStructure: string[], manager?: Employee) {\r\n this.manager = manager;\r\n const [name, ...reports] = orgStructure;\r\n this.name = name.split('(')[0].trim();\r\n const desigMatch = name.match(/\\(([^)]+)\\)/);\r\n this.designation = desigMatch && desigMatch[1].trim();\r\n\r\n this.subordinates = reports.map(r => r.substring(1))\r\n .reduce((previous, current) => {\r\n if (!current.startsWith(' ')) {\r\n previous.push([]);\r\n }\r\n\r\n previous[previous.length - 1].push(current);\r\n\r\n return previous;\r\n }, [] as string[][])\r\n .map(r => new Employee(r, this));\r\n }\r\n}","/*\r\n * Public API Surface of cm-angular-org-chart\r\n */\r\n\r\nexport * from './lib/org-chart/org-chart.component';\r\nexport * from './lib/org-chart/employee/employee.component';\r\nexport * from './lib/org-chart/employee/employee';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}