2.0.16 • Published 2 years ago

@zakhefron/zak-ng-tree v2.0.16

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Angular Tree Component @zakhefron/zak-ng-tree

Angular component to create and display recursive tree

Demo

StackBlitz

Getting started

Install

npm install @zakhefron/zak-ng-tree

Usage

Module

import { ZakNgTreeModule } from '@zakhefron/zak-ng-tree';
....
...
imports: [
    ....,
    ZakNgTreeModule
]

Html

<zak-ng-tree [items]="items" [options]="options" (onChange)="onChange($event)"></zak-ng-tree>
Inputs

[items] array of objects

[
    {
      title: 'Parent 1',
      children: [
        {
          title: 'Child 1',
        },
        {
          title: 'Child 2',
          children: [
            {
              title: 'Grandchild 1',
            },
            {
              title: 'Grandchild 2',
            },
          ],
        },
        {
          title: 'Child 3',
        },
      ],
    },
    {
      title: 'Parent 2',
    }
]

[options]object

{
    enableAddDelete: true,
    enableMove: true,
    showNodeId: true,
    titleKey : 'title', 
    defaultNodeName: 'Node'
}
PropertyTypeDescription
enableAddDeleteBooleanTo enable add, edit, delete nodes
enableMoveBooleanTo enable nodes to move up / down
showNodeIdBooleanTo show node id
titleKeyStringNode title to display. Property of object inside Items Array. (Default: 'title')
defaultNodeNameStringDefault node name to display on creation
Output

onChange($event) output emits object with three property (event, items, item) | Property | Type | Description | | -------- | ---------------- | ---------------------------------------------------------- | | event | string | Name of the event (selected / saved / movedUp / movedDown) | | items | array of object | this is the output of inputted items | | item | object | current item (selected / saved / movedUp / movedDown item) |

Sample Code

app.module.ts

import { BrowserModule } from "@angular/platform-browser";
import { NgModule } from "@angular/core";
import { AppComponent } from "./app.component";
import { ZakNgTreeModule } from '@zakhefron/zak-ng-tree';

@NgModule({
  declarations: [AppComponent],
  imports: [
      BrowserModule, 
      ZakNgTreeModule
      ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}

app.component.html

<zak-ng-tree [items]="items" [options]="options" (onChange)="onChange($event)"></zak-ng-tree>

app.component.ts

import { Component } from "@angular/core";

@Component({
  selector: "app-root",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.css"]
})
export class AppComponent {  


  public options = {
    enableAddDelete: true,
    enableMove: true,
    showNodeId: true,
    titleKey: 'title',
    defaultNodeName: 'Test',
  };

  public items = [
    {
      title: 'Parent 1',
      children: [
        {
          title: 'Child 1',
        },
        {
          title: 'Child 2',
          children: [
            {
              title: 'Grandchild 1',
            },
            {
              title: 'Grandchild 2',
            },
          ],
        },
        {
          title: 'Child 3',
        },
      ],
    },
    {
      title: 'Parent 2',
    },
  ];

  onChange(event: {}) {
    console.log('Event', event);
  }
}
2.0.3

2 years ago

2.0.16

2 years ago

2.0.2

2 years ago

2.0.13

2 years ago

2.0.14

2 years ago

2.0.11

2 years ago

2.0.12

2 years ago

2.0.9

2 years ago

2.0.10

2 years ago

2.0.0

2 years ago

1.0.18

2 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.12

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago