UNPKG

dnd-tree-view

Version:
38 lines (24 loc) 2.01 kB
# 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