primeng
Version:
PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB
1 lines • 31.4 kB
Source Map (JSON)
{"version":3,"file":"primeng-organizationchart.mjs","sources":["../../src/organizationchart/style/organizationchartstyle.ts","../../src/organizationchart/organizationchart.ts","../../src/organizationchart/primeng-organizationchart.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/organizationchart';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => ['p-organizationchart p-component', { 'p-organizationchart-preservespace': instance.preserveSpace }],\n table: 'p-organizationchart-table',\n node: ({ instance }) => [\n 'p-organizationchart-node',\n { 'p-organizationchart-node': true, 'p-organizationchart-node-selectable': instance.chart.selectionMode && instance.node.selectable !== false, 'p-organizationchart-node-selected': instance.isSelected() }\n ],\n nodeToggleButton: 'p-organizationchart-node-toggle-button',\n nodeToggleButtonIcon: 'p-organizationchart-node-toggle-button-icon',\n connectors: 'p-organizationchart-connectors',\n connectorDown: 'p-organizationchart-connector-down',\n connectorLeft: ({ first }) => ['p-organizationchart-connector-left', { 'p-organizationchart-connector-top': !first }],\n connectorRight: ({ last }) => ['p-organizationchart-connector-right', { 'p-organizationchart-connector-top': !last }],\n nodeChildren: 'p-organizationchart-node-children'\n};\n\n@Injectable()\nexport class OrganizationChartStyle extends BaseStyle {\n name = 'organizationchart';\n\n theme = style;\n\n classes = classes;\n}\n\n/**\n *\n * OrganizationChart visualizes hierarchical organization data.\n *\n * [Live Demo](https://www.primeng.org/organizationchart)\n *\n * @module organizationchartstyle\n *\n */\nexport enum OrganizationChartClasses {\n /**\n * Class name of the root element\n */\n root = 'p-organizationchart',\n /**\n * Class name of the table element\n */\n table = 'p-organizationchart-table',\n /**\n * Class name of the node element\n */\n node = 'p-organizationchart-node',\n /**\n * Class name of the node toggle button element\n */\n nodeToggleButton = 'p-organizationchart-node-toggle-button',\n /**\n * Class name of the node toggle button icon element\n */\n nodeToggleButtonIcon = 'p-organizationchart-node-toggle-button-icon',\n /**\n * Class name of the connectors element\n */\n connectors = 'p-organizationchart-connectors',\n /**\n * Class name of the connector down element\n */\n connectorDown = 'p-organizationchart-connector-down',\n /**\n * Class name of the connector left element\n */\n connectorLeft = 'p-organizationchart-connector-left',\n /**\n * Class name of the connector right element\n */\n connectorRight = 'p-organizationchart-connector-right',\n /**\n * Class name of the node children element\n */\n nodeChildren = 'p-organizationchart-node-children'\n}\n\nexport interface OrganizationChartStyle extends BaseStyle {}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n inject,\n Input,\n NgModule,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { hasClass } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule, TreeNode } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ChevronDownIcon, ChevronUpIcon } from 'primeng/icons';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { Subject, Subscription } from 'rxjs';\nimport { OrganizationChartNodeCollapseEvent, OrganizationChartNodeExpandEvent, OrganizationChartNodeSelectEvent, OrganizationChartNodeUnSelectEvent } from './organizationchart.interface';\nimport { OrganizationChartStyle } from './style/organizationchartstyle';\n\n@Component({\n selector: '[pOrganizationChartNode]',\n standalone: true,\n imports: [CommonModule, ChevronDownIcon, ChevronUpIcon, SharedModule],\n template: `\n <tbody *ngIf=\"node\" [attr.data-pc-section]=\"'body'\">\n <tr [attr.data-pc-section]=\"'row'\">\n <td [attr.colspan]=\"colspan\" [attr.data-pc-section]=\"'cell'\">\n <div [class]=\"cn(cx('node'), node.styleClass)\" (click)=\"onNodeClick($event, node)\" [attr.data-pc-section]=\"'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 <ng-container *ngIf=\"collapsible\">\n <a\n *ngIf=\"!leaf\"\n tabindex=\"0\"\n [class]=\"cx('nodeToggleButton')\"\n (click)=\"toggleNode($event, node)\"\n (keydown.enter)=\"toggleNode($event, node)\"\n (keydown.space)=\"toggleNode($event, node)\"\n [attr.data-pc-section]=\"'nodeToggler'\"\n >\n <ng-container *ngIf=\"!chart.togglerIconTemplate && !chart._togglerIconTemplate\">\n <svg data-p-icon=\"chevron-down\" *ngIf=\"node.expanded\" [class]=\"cx('nodeToggleButtonIcon')\" [attr.data-pc-section]=\"'nodeTogglerIcon'\" />\n <svg data-p-icon=\"chevron-up\" *ngIf=\"!node.expanded\" [class]=\"cx('nodeToggleButtonIcon')\" [attr.data-pc-section]=\"'nodeTogglerIcon'\" />\n </ng-container>\n <span [class]=\"cx('nodeToggleButtonIcon')\" *ngIf=\"chart.togglerIconTemplate || chart._togglerIconTemplate\" [attr.data-pc-section]=\"'nodeTogglerIcon'\">\n <ng-template *ngTemplateOutlet=\"chart.togglerIconTemplate || chart._togglerIconTemplate; context: { $implicit: node.expanded }\"></ng-template>\n </span>\n </a>\n </ng-container>\n </div>\n </td>\n </tr>\n <tr [ngStyle]=\"getChildStyle(node)\" [class]=\"cx('connectors')\" [@childState]=\"'in'\" [attr.data-pc-section]=\"'lines'\">\n <td [attr.data-pc-section]=\"'lineCell'\" [attr.colspan]=\"colspan\">\n <div [attr.data-pc-section]=\"'lineDown'\" [class]=\"cx('connectorDown')\"></div>\n </td>\n </tr>\n <tr [ngStyle]=\"getChildStyle(node)\" [class]=\"cx('connectors')\" [@childState]=\"'in'\" [attr.data-pc-section]=\"'lines'\">\n <ng-container *ngIf=\"node.children && node.children.length === 1\">\n <td [attr.data-pc-section]=\"'lineCell'\" [attr.colspan]=\"colspan\">\n <div [attr.data-pc-section]=\"'lineDown'\" [class]=\"cx('connectorDown')\"></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 [attr.data-pc-section]=\"'lineLeft'\" [class]=\"cx('connectorLeft', { first })\"> </td>\n <td [attr.data-pc-section]=\"'lineRight'\" [class]=\"cx('connectorRight', { last })\"> </td>\n </ng-template>\n </ng-container>\n </tr>\n <tr [ngStyle]=\"getChildStyle(node)\" [class]=\"cx('nodeChildren')\" [@childState]=\"'in'\" [attr.data-pc-section]=\"'nodes'\">\n <td *ngFor=\"let child of node.children\" colspan=\"2\" [attr.data-pc-section]=\"'nodeCell'\">\n <table [class]=\"cx('table')\" pOrganizationChartNode [node]=\"child\" [collapsible]=\"node.children && node.children.length > 0 && collapsible\"></table>\n </td>\n </tr>\n </tbody>\n `,\n animations: [trigger('childState', [state('in', style({ opacity: 1 })), transition('void => *', [style({ opacity: 0 }), animate(150)]), transition('* => void', [animate(150, style({ opacity: 0 }))])])],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [OrganizationChartStyle]\n})\nexport class OrganizationChartNode extends BaseComponent implements OnDestroy {\n @Input() node: TreeNode<any> | undefined;\n\n @Input({ transform: booleanAttribute }) root: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) first: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) last: boolean | undefined;\n\n @Input({ transform: booleanAttribute }) collapsible: boolean | undefined;\n\n chart: OrganizationChart;\n\n subscription: Subscription;\n\n _componentStyle = inject(OrganizationChartStyle);\n\n constructor(\n @Inject(forwardRef(() => OrganizationChart)) chart: OrganizationChart,\n public cd: ChangeDetectorRef\n ) {\n super();\n this.chart = chart as OrganizationChart;\n this.subscription = this.chart.selectionSource$.subscribe(() => {\n this.cd.markForCheck();\n });\n }\n\n get leaf(): boolean | undefined {\n if (this.node) {\n return this.node.leaf == false ? false : !(this.node.children && this.node.children.length);\n }\n }\n\n get colspan() {\n if (this.node) {\n return this.node.children && this.node.children.length ? this.node.children.length * 2 : null;\n }\n }\n\n getChildStyle(node: TreeNode<any>) {\n return {\n visibility: !this.leaf && node.expanded ? 'inherit' : 'hidden'\n };\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: <TreeNode>this.node });\n else this.chart.onNodeCollapse.emit({ originalEvent: event, node: <TreeNode>this.node });\n\n event.preventDefault();\n }\n\n isSelected() {\n return this.chart.isSelected(this.node as TreeNode);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.subscription.unsubscribe();\n }\n}\n/**\n * OrganizationChart visualizes hierarchical organization data.\n * @group Components\n */\n@Component({\n selector: 'p-organizationChart, p-organization-chart, p-organizationchart',\n standalone: true,\n imports: [CommonModule, OrganizationChartNode, SharedModule],\n template: ` <table [class]=\"cx('table')\" [collapsible]=\"collapsible\" pOrganizationChartNode [node]=\"root\" *ngIf=\"root\"></table> `,\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [OrganizationChartStyle],\n host: {\n '[attr.data-pc-section]': \"'root'\",\n '[class]': \"cn(cx('root'), styleClass)\"\n }\n})\nexport class OrganizationChart extends BaseComponent implements AfterContentInit {\n /**\n * An array of nested TreeNodes.\n * @group Props\n */\n @Input() value: TreeNode[] | undefined;\n /**\n * Style class of the component.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Defines the selection mode.\n * @group Props\n */\n @Input() selectionMode: 'single' | 'multiple' | null | undefined;\n /**\n * Whether the nodes can be expanded or toggled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) collapsible: boolean | undefined;\n /**\n * Whether the space allocated by a node is preserved when hidden.\n * @deprecated since v20.0.0.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) preserveSpace: boolean = true;\n /**\n * A single treenode instance or an array to refer to the selections.\n * @group Props\n */\n @Input() get selection(): any {\n return this._selection;\n }\n set selection(val: any) {\n this._selection = val;\n\n if (this.initialized) this.selectionSource.next(null);\n }\n /**\n * Callback to invoke on selection change.\n * @param {*} any - selected value.\n * @group Emits\n */\n @Output() selectionChange: EventEmitter<any> = new EventEmitter();\n /**\n * Callback to invoke when a node is selected.\n * @param {OrganizationChartNodeSelectEvent} event - custom node select event.\n * @group Emits\n */\n @Output() onNodeSelect: EventEmitter<OrganizationChartNodeSelectEvent> = new EventEmitter<OrganizationChartNodeSelectEvent>();\n /**\n * Callback to invoke when a node is unselected.\n * @param {OrganizationChartNodeUnSelectEvent} event - custom node unselect event.\n * @group Emits\n */\n @Output() onNodeUnselect: EventEmitter<OrganizationChartNodeUnSelectEvent> = new EventEmitter<OrganizationChartNodeUnSelectEvent>();\n /**\n * Callback to invoke when a node is expanded.\n * @param {OrganizationChartNodeExpandEvent} event - custom node expand event.\n * @group Emits\n */\n @Output() onNodeExpand: EventEmitter<OrganizationChartNodeExpandEvent> = new EventEmitter<OrganizationChartNodeExpandEvent>();\n /**\n * Callback to invoke when a node is collapsed.\n * @param {OrganizationChartNodeCollapseEvent} event - custom node collapse event.\n * @group Emits\n */\n @Output() onNodeCollapse: EventEmitter<OrganizationChartNodeCollapseEvent> = new EventEmitter<OrganizationChartNodeCollapseEvent>();\n\n @ContentChildren(PrimeTemplate) templates: Nullable<QueryList<PrimeTemplate>>;\n\n @ContentChild('togglericon', { descendants: false }) togglerIconTemplate: TemplateRef<any> | undefined;\n\n public templateMap: any;\n\n _togglerIconTemplate: Nullable<TemplateRef<any>>;\n\n private selectionSource = new Subject<any>();\n\n _selection: any;\n\n initialized: Nullable<boolean>;\n\n selectionSource$ = this.selectionSource.asObservable();\n\n _componentStyle = inject(OrganizationChartStyle);\n\n constructor(\n public el: ElementRef,\n public cd: ChangeDetectorRef\n ) {\n super();\n }\n\n get root(): TreeNode<any> | null {\n return this.value && this.value.length ? this.value[0] : null;\n }\n\n ngAfterContentInit() {\n if ((this.templates as QueryList<PrimeTemplate>).length) {\n this.templateMap = {};\n }\n\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n if (item.getType() === 'togglericon') {\n this._togglerIconTemplate = item.template;\n } else {\n this.templateMap[item.getType()] = item.template;\n }\n });\n\n this.initialized = true;\n }\n\n getTemplateForNode(node: TreeNode): TemplateRef<any> | null {\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 (eventTarget.className && (hasClass(eventTarget, 'p-organizationchart-node-toggle-button') || hasClass(eventTarget, 'p-organizationchart-node-toggle-button-icon'))) {\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: any, i: number) => 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: [OrganizationChart, OrganizationChartNode, SharedModule],\n exports: [OrganizationChart, OrganizationChartNode, SharedModule]\n})\nexport class OrganizationChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["style"],"mappings":"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"}