UNPKG

@ahmedaoui/ngx-org-chart

Version:
246 lines (228 loc) 6.79 kB
# @ahmedaoui/ngx-org-chart The `@ahmedaoui/ngx-org-chart` creates hierarchical organization chart. You can create hierarchical organization charts with it. The library is fully compatible with both NgModule-based applications and those using standalone components ! It applies multiple root node. That means you can create multiple organization charts at the same time. ![Org Chart](https://raw.githubusercontent.com/ahmedaouiche/ngx-org-ui/master/projects/ngx-org-chart/organization-chart-horizontal.png) ![Org Chart](https://raw.githubusercontent.com/ahmedaouiche/ngx-org-ui/master/projects/ngx-org-chart/organization-chart-vertical.png) ## Table of Contents * [Installation](#installation) * [Usage](#usage) * [Inputs](#inputs) ## Installation You can install the package using following command. ```sh $ npm install @ahmedaoui/ngx-org-chart ``` Import below file into styles.scss file. ```js import '@ahmedaoui/ngx-org-chart/theming' ``` ## Usage |Property|Type|Description |---|---|--- |name|`string`|Name of the node |cssClass|`string`|Custom css class for the node |image|`string`|Image of the node |title|`string`|The node's title |childs|`Node[]`|The array of child nodes ### `app.component.html` ```html <ngx-org-chart [nodes]="nodes" direction="vertical" (itemClick)="test($event)"></ngx-org-chart> ``` ### `app.component.ts` ```js import { Component } from '@angular/core'; import { NgxOrgChartComponent } from '@ahmedaoui/ngx-org-chart'; import { INode } from '@ahmedaoui/ngx-org-chart/lib/node'; @Component({ selector: 'app-root', standalone: true, imports: [RouterOutlet,NgxOrgChartComponent], templateUrl: './app.component.html', styleUrl: './app.component.scss' }) export class AppComponent { nodes: INode[] = [ { name: 'Sundar Pichai', cssClass: 'ngx-org-ceo', image: '', title: 'Chief Executive Officer', childs: [ { name: 'Thomas Kurian', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'CEO, Google Cloud', }, { name: 'Susan Wojcicki', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'CEO, YouTube', childs: [ { name: 'Beau Avril', cssClass: 'ngx-org-head', image: 'assets/node.svg', title: 'Global Head of Business Operations', childs: [] }, { name: 'Tara Walpert Levy', cssClass: 'ngx-org-vp', image: 'assets/node.svg', title: 'VP, Agency and Brand Solutions', childs: [] }, { name: 'Ariel Bardin', cssClass: 'ngx-org-vp', image: 'assets/node.svg', title: 'VP, Product Management', childs: [] } ] }, { name: 'Jeff Dean', cssClass: 'ngx-org-head', image: 'assets/node.svg', title: 'Head of Artificial Intelligence', childs: [ { name: 'David Feinberg', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'CEO, Google Health', childs: [] } ] } ] }, { name: 'Sundar Pichai', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'Chief Executive Officer', childs: [ { name: 'Thomas Kurian', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'CEO, Google Cloud', }, { name: 'Susan Wojcicki', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'CEO, YouTube', childs: [ { name: 'Beau Avril', cssClass: 'ngx-org-head', image: 'assets/node.svg', title: 'Global Head of Business Operations', childs: [] }, { name: 'Tara Walpert Levy', cssClass: 'ngx-org-vp', image: 'assets/node.svg', title: 'VP, Agency and Brand Solutions', childs: [] }, { name: 'Ariel Bardin', cssClass: 'ngx-org-vp', image: 'assets/node.svg', title: 'VP, Product Management', childs: [] } ] }, { name: 'Jeff Dean', cssClass: 'ngx-org-head', image: 'assets/node.svg', title: 'Head of Artificial Intelligence', childs: [ { name: 'David Feinberg', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'CEO, Google Health', childs: [] } ] } ] }, { name: 'Sundar Pichai', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'Chief Executive Officer', childs: [ { name: 'Thomas Kurian', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'CEO, Google Cloud', }, { name: 'Susan Wojcicki', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'CEO, YouTube', childs: [ { name: 'Beau Avril', cssClass: 'ngx-org-head', image: 'assets/node.svg', title: 'Global Head of Business Operations', childs: [] }, { name: 'Tara Walpert Levy', cssClass: 'ngx-org-vp', image: 'assets/node.svg', title: 'VP, Agency and Brand Solutions', childs: [] }, { name: 'Ariel Bardin', cssClass: 'ngx-org-vp', image: 'assets/node.svg', title: 'VP, Product Management', childs: [] } ] }, { name: 'Jeff Dean', cssClass: 'ngx-org-head', image: 'assets/node.svg', title: 'Head of Artificial Intelligence', childs: [ { name: 'David Feinberg', cssClass: 'ngx-org-ceo', image: 'assets/node.svg', title: 'CEO, Google Health', childs: [] } ] } ] } ]; } ``` ## Inputs |Name|Type|Description |---|---|---| |`nodes`|`Node` object|The `Node` object that contains node info mentioned above |`direction`|`vertical` or `horizontal`| Direction mode of the chart