From 8d2a5fe1723431387be1e7f046294bbc7e7ed87c Mon Sep 17 00:00:00 2001
From: Worth Lutz
Date: Fri, 21 Apr 2023 10:18:56 -0400
Subject: [PATCH 01/17] restructure using TreeModel and NodeModel
convert ClickableLabelsExample
add place holder for Show Root Example
update CustomIconsExample
update and fix DisabledExample
update NoCascadeExample
update PessimisticToggleExample
update HiddenCheckboxesExample
update LargeDataExample
update ExpandAllExample and fix errors
updated FilterExample and fixed TreeModel(onCheck and onExpand)
add ShowRootExample
simplify TreeModel
work on FilterExample
replace 'newTreeModel' with 'newTree'
move models into models dir
change onCollapse & onExpand to use nodeKey
add ExpandNodesToLevel and redo getChecked
add radio buttons
change to context for state
add radio button for nativeCheckboxes
---
examples/src/index.html | 14 +-
examples/src/index.jsx | 20 +-
examples/src/js/BasicExample.jsx | 42 +-
examples/src/js/ClickableLabelsExample.jsx | 46 +-
examples/src/js/CustomIconsExample.jsx | 39 +-
examples/src/js/DisabledExample.jsx | 43 +-
examples/src/js/ExpandAllExample.jsx | 36 +-
examples/src/js/FilterExample.jsx | 175 ++-
examples/src/js/HiddenCheckboxesExample.jsx | 47 +-
examples/src/js/LargeDataExample.jsx | 35 +-
examples/src/js/NativeCheckboxExample.jsx | 31 +
examples/src/js/NoCascadeExample.jsx | 46 +-
examples/src/js/PessimisticToggleExample.jsx | 43 +-
examples/src/js/RadioButtonExample.jsx | 30 +
.../src/js/{common.js => data/empires.js} | 90 +-
examples/src/js/data/fileSystem.js | 80 +
examples/src/js/data/fileSystemRadio.js | 83 ++
examples/src/js/data/index.js | 4 +
examples/src/js/data/mapLayerTree.js | 736 +++++++++
src/index.js | 4 +-
src/js/CheckboxTree.jsx | 494 +++----
src/js/CheckboxTreeContext.jsx | 35 +
src/js/NodeModel.js | 185 ---
src/js/components/BareLabel.jsx | 44 +
src/js/components/CheckboxIcon.js | 41 +
src/js/components/CheckboxLabel.jsx | 100 ++
src/js/components/LabelChildren.jsx | 35 +
src/js/components/NativeCheckbox.jsx | 12 +-
src/js/components/TreeNode.jsx | 261 +---
src/js/models/NodeModel.js | 80 +
src/js/models/NodeModelError.js | 9 +
src/js/models/TreeModel.js | 440 ++++++
src/js/models/TreeModelError.js | 9 +
src/js/shapes/iconsShape.js | 3 +
src/js/shapes/nodeShape.js | 2 +
src/js/shapes/treeShape.js | 10 +
src/js/utils.js | 30 -
src/scss/react-checkbox-tree.scss | 16 +
test/CheckboxTree.jsx | 1317 ++++++++++-------
test/TreeNode.jsx | 48 +-
40 files changed, 3206 insertions(+), 1609 deletions(-)
create mode 100644 examples/src/js/NativeCheckboxExample.jsx
create mode 100644 examples/src/js/RadioButtonExample.jsx
rename examples/src/js/{common.js => data/empires.js} (54%)
create mode 100644 examples/src/js/data/fileSystem.js
create mode 100644 examples/src/js/data/fileSystemRadio.js
create mode 100644 examples/src/js/data/index.js
create mode 100644 examples/src/js/data/mapLayerTree.js
create mode 100644 src/js/CheckboxTreeContext.jsx
delete mode 100644 src/js/NodeModel.js
create mode 100644 src/js/components/BareLabel.jsx
create mode 100644 src/js/components/CheckboxIcon.js
create mode 100644 src/js/components/CheckboxLabel.jsx
create mode 100644 src/js/components/LabelChildren.jsx
create mode 100644 src/js/models/NodeModel.js
create mode 100644 src/js/models/NodeModelError.js
create mode 100644 src/js/models/TreeModel.js
create mode 100644 src/js/models/TreeModelError.js
create mode 100644 src/js/shapes/treeShape.js
delete mode 100644 src/js/utils.js
diff --git a/examples/src/index.html b/examples/src/index.html
index 3a5b52bf..1decfdc8 100644
--- a/examples/src/index.html
+++ b/examples/src/index.html
@@ -52,6 +52,9 @@ Custom Icons Example
Disabled Example
+ Native Checkboxes Example
+
+
No Cascading Example
By default, the check state of children determine the check state of a parent. Similarly, checking or unchecking
@@ -73,8 +76,8 @@
Clickable Labels Example
property, the tree will instead call the provided function and will restrict toggling to the checkbox icon.
- When the onClick
function is defined, passing the expandOnClick
property will also
- expand the clicked node automatically.
+ When the onClick
function is defined, passing the expandOnClick
property will
+ cause the clicked node to expand/contract when clicked.
@@ -100,6 +103,13 @@ Filter Example
Filtering tree nodes is possible.
+ Radio Button Group Example
+
+ By adding isRadioGroup: true
to a node in the tree initial
+ configuration, that node's children will work as a Radio Group.
+
+
+