Giter VIP home page Giter VIP logo

treejs's Introduction

@widgetjs/tree

A lightweight tree widget, compatible with originaljs / react / vue. 5kb after gzip. Zero dependence.

Online Demo

demo.gif

Install

npm i -S @widgetjs/tree

Usage

react/vue usage

import Tree from '@widgetjs/tree';

originaljs usage

<script src="${your-asset-src-path}/@widgetjs/tree/dist/tree.min.js"></script>

Example

// format
{"id":"unique_ID","text":"node-0","attributes":{},"children":[],"check":true/false}
let treeData = [{"id":"0","text":"node-0","children":[{"id":"0-0","text":"node-0-0","children":[{"id":"0-0-0","text":"node-0-0-0"},{"id":"0-0-1","text":"node-0-0-1"},{"id":"0-0-2","text":"node-0-0-2"}]},{"id":"0-1","text":"node-0-1"}]},{"id":"1","text":"node-1","children":[{"id":"1-0","text":"node-1-0"},{"id":"1-1","text":"node-1-1"}]}];

new Tree('#container', {
  data: treeData,
  // only expand level 1 node
  closeDepth: 1
});

new Tree('#container', {
  data: treeData,
  onChange: function() {
      console.log(this.values);
  }
});

new Tree('#container', {
  data: treeData,
  values: ['1', '2', '3']
});

new Tree('#container', {
  url: '/api/treeJson',
  values: ['1', '2', '3']
});

new Tree('#container', {
  url: '/api/rawData',
  beforeLoad: rawdata => {
    let formatedData = rawdata; // do some format
    return formatedData;
  },
  values: ['1', '2', '3'],
});

new Tree('#container', {
  url: '/api/treeJson',
  loaded: function() {
    // do something or set values after Tree loaded callback
    // this context bind current tree instance
    let treeJson = [];
    this.values = treeJson;
  },
});

new Tree('#container', {
    url: '/api/treeWithCheckedStatusJson',
});

let tree = new Tree({
  data: treeData
  values: ['1', '2', '3']
});
// get values of selected leaves
let values = tree.values;

// set selected nodes(parent node or leaf node)
tree.values = ["0-1"];

// get all selected nodes with attributes
let selectedNodes = tree.selectedNodes;

// get values of disabled leaves
let disables = tree.disables;

// set disabled nodes(parent node or leaf node), disabled nodes will be readonly and unchangeable.
tree.disables = ["0-1"];

// get all disabled nodes with attributes
let disabledNodes = tree.disabledNodes;

treejs's People

Contributors

daweilv avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.