All Projects → gribouille → elm-treeview

gribouille / elm-treeview

Licence: MPL-2.0 license
ELM tree view component

Programming Languages

elm
856 projects
SCSS
7915 projects

Projects that are alternatives of or similar to elm-treeview

Graphview
Flutter GraphView is used to display data in graph structures. It can display Tree layout, Directed and Layered graph. Useful for Family Tree, Hierarchy View.
Stars: ✭ 152 (+660%)
Mutual labels:  treeview
react-treeview-component
A react tree-component where user can customize the the tree according to their need
Stars: ✭ 18 (-10%)
Mutual labels:  treeview
liblarch
A Python library to easily handle complex data structures, with a GTK binding
Stars: ✭ 28 (+40%)
Mutual labels:  treeview
Vuejs Tree
A highly customizable and blazing fast Vue tree component ⚡🌲
Stars: ✭ 211 (+955%)
Mutual labels:  treeview
vuejs-tree
A highly customizable and blazing fast Vue tree component ⚡🌲
Stars: ✭ 310 (+1450%)
Mutual labels:  treeview
android-thinkmap-treeview
Tree View; Mind map; Think map; tree map; custom view; 自定义;关系图;树状图;思维导图;组织机构图;层次图
Stars: ✭ 314 (+1470%)
Mutual labels:  treeview
Pbtreeview
An UITreeView implementation from UITableView that Apple missed in its UIKit framework. And it is in pure Swift.
Stars: ✭ 128 (+540%)
Mutual labels:  treeview
ExpandableRecyclerView
ExpandableRecyclerView with smoothly animation.
Stars: ✭ 412 (+1960%)
Mutual labels:  treeview
TreeView
"TreeView - sub-cells simplified" (c). Enable subcells in UITableView with a single drop-in extension. CocoaPod:
Stars: ✭ 54 (+170%)
Mutual labels:  treeview
react-tree
Hierarchical tree component for React in Typescript
Stars: ✭ 174 (+770%)
Mutual labels:  treeview
You Dont Need Javascript
CSS is powerful, you can do a lot of things without JS.
Stars: ✭ 16,514 (+82470%)
Mutual labels:  treeview
gitbook-treeview
🌲 A gitbook plugin for generating tree view for ech page
Stars: ✭ 38 (+90%)
Mutual labels:  treeview
Unity-IMGUI-TreeView
Simple Tree View implementation for IMGUI (Editor GUI) in Unity. Includes a special type for working with asset paths, but base data structure and view can be easily extended to support anything.
Stars: ✭ 73 (+265%)
Mutual labels:  treeview
Noodel Js
User interface for responsive, dynamic content trees
Stars: ✭ 173 (+765%)
Mutual labels:  treeview
M5Stack TreeView
M5Stack TreeView menu UI library.
Stars: ✭ 50 (+150%)
Mutual labels:  treeview
Expandablerecyclerview
ExpandableRecyclerView with smoothly animation.
Stars: ✭ 135 (+575%)
Mutual labels:  treeview
vue-virtualised
Blazing fast scrolling and updating for any amount of list and hierarchical data.
Stars: ✭ 18 (-10%)
Mutual labels:  treeview
QmlTreeWidget
A TreeView component, implemented by QML, providing convenient interfaces and customizable stylesheet, also available for iOS and Android.
Stars: ✭ 34 (+70%)
Mutual labels:  treeview
TreeEdit
Qml TreeEdit with Controls2 (Qml树结构编辑器,使用Controls2实现)
Stars: ✭ 50 (+150%)
Mutual labels:  treeview
comment tree
Render comment tree like facebook comment - reply
Stars: ✭ 37 (+85%)
Mutual labels:  treeview

elm-treeview

Build Status

A customizable ELM treeview component.

DEMOS

Example

Basic example with defaut options:

import Html
import Treeview

styles : Styles
styles =
  [ T.Style "folder" ("folder yellow", "folder-open yellow") ""
  , T.Style "archive" ("file-archive-o", "file-archive-o") ""
  , T.Style "word" ("file-word-o", "file-word-o") "blue"
  , T.Style "image" ("file-image-o", "file-image-o") ""
  , T.Style "pdf" ("file-pdf-o", "file-pdf-o") "red"
  , T.Style "powerpoint" ("file-powerpoint-o", "file-powerpoint-o") "orange"
  , T.Style "excel" ("file-excel-o", "file-excel-o") "green"
  ]

model : Model
model =
  [ T.node "pA" "Project A" "folder" False <| Just [
      T.node "pAg1" "Report 1" "folder" False <| Just [
        T.node "pAg1f1" "report_1_revA.pdf" "pdf" True Nothing,
        T.node "pAg1f2" "report_1_revB.pdf" "pdf" True Nothing,
        T.node "pAg1f3" "report_1_revC.pdf" "pdf" True Nothing
      ],
      T.node "pAg2" "Report 2" "folder" False <| Just [
        T.node "pAg2f1" "report_2_revA.pdf" "pdf" True Nothing,
        T.node "pAg2f2" "report_2_revB.pdf" "pdf" True Nothing
      ],
      T.node "pAf1" "lorem.doc" "word" True Nothing,
      T.node "pAf2" "ipsum.xls" "excel" True Nothing
    ],
    T.node "pB" "Keynote" "folder" False <| Just [
      T.node "pBf1" "workshop_part1.ppt" "powerpoint" True Nothing,
      T.node "pBf2" "workshop_part2.ppt" "powerpoint" True Nothing,
      T.node "pBf3" "image1.png" "image" True Nothing,
      T.node "pBf4" "image2.ppt" "image" True Nothing,
      T.node "pBf5" "image3.ppt" "image" True Nothing,
      T.node "pBf6" "image4.ppt" "image" True Nothing
    ]
  ]

config : T.Config
config = T.default styles


main : Program Never T.Model T.Msg
main =
  Html.beginnerProgram
    { model = model
    , view = T.view config
    , update = T.update
    }

With search input:

config : T.Config
config =
  let
    d = T.default styles
  in
    {d | search = { enable = True}}

With checkbox selection:

config : T.Config
config =
  let
    d = T.default styles
  in
    {d | checkbox = { enable = True, multiple = True, cascade = True}}

Theme

See the treeview.scss file in the styles folder to customize the theme.

Options

Name Type Default Description
checkbox.enable Bool False Activate the checkbox selection for each node.
checkbox.multiple Bool False Multiple nodes can be selected.
checkbox.cascade Bool False Enable the cascading selection (the children node will selected if the parent is selected).
search.enable Bool False Activate the search toolbar.
sort Sort None Sort the nodes: Asc = ascending, Desc = descending.
look.theme String "" Apply the theme.
look.styles [Styles] [] Define the styles (CSS class and icons) for nodes.

Documentation

See documentation here.

Usage

To run the examples:

$ cd examples
$ npm i
$ npm run dev

Open localhost:8080.

TODO

  • updated for ELM 0.19.x
  • search toolbar
  • checkbox
  • ajax
  • interface for JS
  • other themes
  • contextual menu
  • unit test

Contributing

Feedback and contributions are very welcome.

License

This project is licensed under Mozilla Public License Version 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].