dnd-tree-view
Version:
HTML5 tree view widget
38 lines (24 loc) • 2.01 kB
Markdown
# dnd-tree-view
Robust, stylable tree view widget for HTML5 apps.
Features multiple item selection, keyboard navigation and cancellable drag'n'drop, suitable for networked apps.
## How to install
npm install dnd-tree-view
## Usage
Check out the [live demo](http://sparklinlabs.github.io/dnd-tree-view/) and its [source code](https://github.com/sparklinlabs/dnd-tree-view/blob/master/src/index.jade).
* Include `TreeView.js` in your page.
* Create a container element, call `treeView = new TreeView(container)`.
* Create a list item element (`<li>`), put whatever you want inside.
* Use `treeView.append(listItem, type, optionalParent)` or `treeView.insertBefore(listItem, type, referenceListItem)` with `type` one of `'item'` or `'group'`.
The `TreeView` constructor takes an optional second `options` parameter. It supports the following keys:
* `dragStartCallback` and `dropCallback` for handling drag'n'drop operations.
* `multipleSelection` is a boolean indicating whether to enable multiple item selection or not.
If `dragStartCallback` is not `null`, then dragging elements will be enabled.
It must return a boolean indicating whether to start the drag operation or cancel it.
You can use [`event.dataTransfer.setData(...)`](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_operations) to setup drag'n'drop metadata.
If `dropCallback` is not `null`, then dropping will be enabled.
It must return a boolean indicating whether to proceed with the reparenting/reordering or not.
See [index.d.ts](https://github.com/sparklinlabs/dnd-tree-view/blob/master/index.d.ts) for the full API and arguments.
## Building from source
* Make sure you have a recent version of [Node.js](http://nodejs.org/) installed.
* Clone the repository from `https://github.com/sparklinlabs/dnd-tree-view` and run `npm install` once
* Run `npm run build` to build once or `npm run watch` to start a watcher that will rebuild when changes are detected