@react-fabric/data 1.0.0-beta.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/{src/histogram/Histogram.module.css → css/_histogram.css} +16 -13
  2. package/css/styles.css +24 -0
  3. package/dist/cjs/checklist/CheckList.js +59 -33
  4. package/dist/cjs/histogram/Histogram.js +41 -26
  5. package/dist/cjs/hooks/useFilteredList.js +100 -17
  6. package/dist/cjs/hooks/usePagination.js +29 -8
  7. package/dist/cjs/hooks/useSelectableList.js +30 -5
  8. package/dist/cjs/i18n/{ar.json.js → ar/data.json.js} +8 -1
  9. package/dist/cjs/i18n/{en.json.js → en/data.json.js} +8 -1
  10. package/dist/cjs/i18n/index.js +4 -4
  11. package/dist/cjs/index.js +30 -0
  12. package/dist/cjs/json/JsonViewer.js +80 -43
  13. package/dist/cjs/pagination/Pagination.js +24 -15
  14. package/dist/cjs/table/AddColumn.js +5 -5
  15. package/dist/cjs/table/BodyCell.js +20 -13
  16. package/dist/cjs/table/BodyRow.js +41 -28
  17. package/dist/cjs/table/CheckboxCell.js +10 -9
  18. package/dist/cjs/table/ColumnFilters.js +100 -0
  19. package/dist/cjs/table/EmptyCell.js +4 -4
  20. package/dist/cjs/table/HeaderCell.js +79 -53
  21. package/dist/cjs/table/HtmlTable.js +84 -0
  22. package/dist/cjs/table/{Context.js → Provider.js} +8 -10
  23. package/dist/cjs/table/Table.js +99 -33
  24. package/dist/cjs/{tree/types.js → table/context.js} +9 -5
  25. package/dist/cjs/table/types.js +29 -0
  26. package/dist/cjs/table/useResizer.js +10 -10
  27. package/dist/cjs/table/useTableColumns.js +4 -4
  28. package/dist/cjs/table/useVirtualTable.js +129 -22
  29. package/dist/cjs/tree/TreeNode.js +66 -46
  30. package/dist/cjs/tree/TreePanel.js +60 -24
  31. package/dist/cjs/tree/useTree.js +212 -47
  32. package/dist/cjs/tree/utils.js +63 -34
  33. package/dist/cjs/utils/getColor.js +58 -0
  34. package/dist/cjs/virtual/Gallery.js +119 -61
  35. package/dist/cjs/virtual/List.js +116 -55
  36. package/dist/cjs/virtual/Scroller.js +16 -8
  37. package/dist/esm/checklist/CheckList.js +61 -35
  38. package/dist/esm/histogram/Histogram.js +43 -28
  39. package/dist/esm/hooks/useFilteredList.js +101 -18
  40. package/dist/esm/hooks/usePagination.js +29 -8
  41. package/dist/esm/hooks/useSelectableList.js +30 -5
  42. package/dist/esm/i18n/{ar.json.js → ar/data.json.js} +8 -2
  43. package/dist/esm/i18n/{en.json.js → en/data.json.js} +8 -2
  44. package/dist/esm/i18n/index.js +2 -2
  45. package/dist/esm/index.js +31 -0
  46. package/dist/esm/json/JsonViewer.js +82 -45
  47. package/dist/esm/pagination/Pagination.js +25 -16
  48. package/dist/esm/table/AddColumn.js +6 -6
  49. package/dist/esm/table/BodyCell.js +21 -14
  50. package/dist/esm/table/BodyRow.js +41 -28
  51. package/dist/esm/table/CheckboxCell.js +11 -10
  52. package/dist/esm/table/ColumnFilters.js +100 -0
  53. package/dist/esm/table/EmptyCell.js +4 -4
  54. package/dist/esm/table/HeaderCell.js +80 -54
  55. package/dist/esm/table/HtmlTable.js +84 -0
  56. package/dist/esm/table/{Context.js → Provider.js} +11 -12
  57. package/dist/esm/table/Table.js +100 -34
  58. package/dist/esm/{tree/types.js → table/context.js} +8 -4
  59. package/dist/esm/table/types.js +29 -0
  60. package/dist/esm/table/useResizer.js +10 -10
  61. package/dist/esm/table/useTableColumns.js +4 -4
  62. package/dist/esm/table/useVirtualTable.js +131 -24
  63. package/dist/esm/tree/TreeNode.js +69 -49
  64. package/dist/esm/tree/TreePanel.js +62 -26
  65. package/dist/esm/tree/useTree.js +215 -50
  66. package/dist/esm/tree/utils.js +64 -35
  67. package/dist/esm/utils/getColor.js +58 -0
  68. package/dist/esm/virtual/Gallery.js +121 -63
  69. package/dist/esm/virtual/List.js +118 -57
  70. package/dist/esm/virtual/Scroller.js +17 -9
  71. package/dist/types/checklist/CheckList.d.ts +25 -6
  72. package/dist/types/histogram/Histogram.d.ts +28 -6
  73. package/dist/types/hooks/useFilteredList.d.ts +62 -5
  74. package/dist/types/hooks/usePagination.d.ts +18 -2
  75. package/dist/types/hooks/useSelectableList.d.ts +24 -1
  76. package/dist/types/index.d.ts +27 -0
  77. package/dist/types/json/JsonViewer.d.ts +23 -3
  78. package/dist/types/pagination/Pagination.d.ts +8 -2
  79. package/dist/types/table/AddColumn.d.ts +2 -2
  80. package/dist/types/table/BodyCell.d.ts +2 -2
  81. package/dist/types/table/BodyRow.d.ts +9 -9
  82. package/dist/types/table/CheckboxCell.d.ts +3 -3
  83. package/dist/types/table/ColumnFilters.d.ts +12 -0
  84. package/dist/types/table/EmptyCell.d.ts +1 -1
  85. package/dist/types/table/HeaderCell.d.ts +1 -1
  86. package/dist/types/table/HtmlTable.d.ts +21 -0
  87. package/dist/types/table/Provider.d.ts +2 -0
  88. package/dist/types/table/Table.d.ts +10 -1
  89. package/dist/types/table/context.d.ts +7 -0
  90. package/dist/types/table/types.d.ts +52 -10
  91. package/dist/types/table/useResizer.d.ts +1 -1
  92. package/dist/types/table/useTableColumns.d.ts +1 -1
  93. package/dist/types/table/useVirtualTable.d.ts +31 -12
  94. package/dist/types/tree/TreeNode.d.ts +1 -1
  95. package/dist/types/tree/TreePanel.d.ts +36 -1
  96. package/dist/types/tree/types.d.ts +75 -28
  97. package/dist/types/tree/useTree.d.ts +8 -12
  98. package/dist/types/tree/utils.d.ts +15 -8
  99. package/dist/types/utils/getColor.d.ts +43 -0
  100. package/dist/types/virtual/Gallery.d.ts +37 -6
  101. package/dist/types/virtual/List.d.ts +38 -6
  102. package/dist/types/virtual/Scroller.d.ts +1 -1
  103. package/package.json +17 -19
  104. package/src/checklist/CheckList.tsx +68 -71
  105. package/src/histogram/Histogram.tsx +47 -48
  106. package/src/hooks/useFilteredList.tsx +111 -28
  107. package/src/hooks/usePagination.tsx +39 -39
  108. package/src/hooks/useSelectableList.ts +45 -33
  109. package/src/i18n/{ar.json → ar/data.json} +5 -0
  110. package/src/i18n/{en.json → en/data.json} +5 -0
  111. package/src/i18n/index.ts +2 -2
  112. package/src/index.ts +23 -17
  113. package/src/json/JsonViewer.tsx +89 -120
  114. package/src/pagination/Pagination.tsx +104 -105
  115. package/src/table/AddColumn.tsx +6 -15
  116. package/src/table/BodyCell.tsx +27 -36
  117. package/src/table/BodyRow.tsx +36 -59
  118. package/src/table/CheckboxCell.tsx +12 -15
  119. package/src/table/ColumnFilters.tsx +93 -0
  120. package/src/table/EmptyCell.tsx +5 -18
  121. package/src/table/HeaderCell.tsx +72 -53
  122. package/src/table/HtmlTable.tsx +106 -0
  123. package/src/table/{Context.tsx → Provider.tsx} +11 -28
  124. package/src/table/Table.tsx +98 -83
  125. package/src/table/context.ts +33 -0
  126. package/src/table/types.ts +53 -27
  127. package/src/table/useResizer.ts +5 -9
  128. package/src/table/useTableColumns.ts +4 -6
  129. package/src/table/useVirtualTable.ts +136 -37
  130. package/src/tree/TreeNode.tsx +91 -86
  131. package/src/tree/TreePanel.tsx +87 -51
  132. package/src/tree/types.ts +85 -46
  133. package/src/tree/useTree.ts +210 -65
  134. package/src/tree/utils.ts +81 -62
  135. package/src/utils/getColor.ts +55 -0
  136. package/src/virtual/Gallery.tsx +129 -120
  137. package/src/virtual/List.tsx +124 -91
  138. package/src/virtual/Scroller.tsx +25 -9
  139. package/dist/cjs/histogram/Histogram.module.css +0 -1
  140. package/dist/esm/histogram/Histogram.module.css +0 -1
  141. package/dist/types/table/Context.d.ts +0 -8
@@ -2,13 +2,14 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var core = require('@react-fabric/core');
5
- var classNames = require('classnames');
5
+ var utilities = require('@react-fabric/utilities');
6
6
  var react = require('react');
7
+ var reactI18next = require('react-i18next');
7
8
  var jsxRuntime = require('react/jsx-runtime');
8
9
 
9
10
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
- var TreeNode = function TreeNode(_ref) {
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function TreeNode(_ref) {
12
13
  var node = _ref.node,
13
14
  noLines = _ref.noLines,
14
15
  expanders = _ref.expanders,
@@ -17,35 +18,45 @@ var TreeNode = function TreeNode(_ref) {
17
18
  defaultLeafIcon = _ref.defaultLeafIcon,
18
19
  defaultNodeIcon = _ref.defaultNodeIcon,
19
20
  onToggle = _ref.onToggle,
21
+ onClick = _ref.onClick,
20
22
  onSelect = _ref.onSelect,
21
23
  onChecked = _ref.onChecked,
22
- children = _ref.children;
24
+ children = _ref.children,
25
+ leafClassName = _ref.leafClassName,
26
+ nodeClassName = _ref.nodeClassName;
27
+ var _useTranslation = reactI18next.useTranslation("data"),
28
+ t = _useTranslation.t;
23
29
  var badgeProps = react.useMemo(function () {
24
30
  return core.getBadgeProps(node.badge);
25
31
  }, [node.badge]);
26
32
  var filler = react.useMemo(function () {
27
- return node.lines.slice(noLines ? 1 : 0).map(function (line, idx) {
28
- return /*#__PURE__*/jsxRuntime.jsxs("svg", {
29
- viewBox: "0 0 24 24",
30
- className: "flex-initial w-6 fill-tint-200",
31
- children: [line === 0 && /*#__PURE__*/jsxRuntime.jsx("path", {
32
- d: ""
33
- }), !noLines && line === 1 && /*#__PURE__*/jsxRuntime.jsx("path", {
34
- d: "M7.45 26.1v-28.2h1.1v28.2h-1.1z"
35
- }), !noLines && line === 2 && /*#__PURE__*/jsxRuntime.jsx("path", {
36
- d: "M14.989 12.389l0.161-0.389-0.161-0.389-0.389-0.161h-6.050v-13.55h-1.1v14.1l0.161 0.389 0.389 0.161h6.6z"
37
- }), !noLines && line === 3 && /*#__PURE__*/jsxRuntime.jsx("path", {
38
- d: "M8.55 12.55h6.050l0.389-0.161 0.161-0.389-0.161-0.389-0.389-0.161h-6.050v-13.55h-1.1v28.2h1.1z"
39
- })]
33
+ return node.lines.slice(1).map(function (line, idx) {
34
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
35
+ className: utilities.cn("flex-initial self-stretch flex items-center w-6 relative", !noLines && line > 0 && "before:absolute before:top-0 before:inset-s-[calc(7px)] before:bg-tint-200 before:min-h-[50%] before:w-0.5 before:scale-x-[.625]", !noLines && line !== 2 && "before:h-full"),
36
+ children: /*#__PURE__*/jsxRuntime.jsxs("svg", {
37
+ viewBox: "0 0 24 24",
38
+ className: "fill-tint-200 rtl:-scale-x-100",
39
+ children: [line === 0 && /*#__PURE__*/jsxRuntime.jsx("path", {
40
+ d: ""
41
+ }), !noLines && line === 1 && /*#__PURE__*/jsxRuntime.jsx("path", {
42
+ d: "M7.45 26.1v-28.2h1.1v28.2h-1.1z"
43
+ }), !noLines && line === 2 && /*#__PURE__*/jsxRuntime.jsx("path", {
44
+ d: "M14.989 12.389l0.161-0.389-0.161-0.389-0.389-0.161h-6.050v-13.55h-1.1v14.1l0.161 0.389 0.389 0.161h6.6z"
45
+ }), !noLines && line === 3 && /*#__PURE__*/jsxRuntime.jsx("path", {
46
+ d: "M8.55 12.55h6.050l0.389-0.161 0.161-0.389-0.161-0.389-0.389-0.161h-6.050v-13.55h-1.1v28.2h1.1z"
47
+ })]
48
+ })
40
49
  }, idx);
41
50
  });
42
51
  }, [noLines, node.lines]);
43
52
  var nodeIcon = react.useMemo(function () {
44
53
  if (node.icon) return node.icon;
45
- return node.leaf ? defaultLeafIcon : defaultNodeIcon;
46
- }, [defaultLeafIcon, defaultNodeIcon, node.icon]);
54
+ return {
55
+ icon: node.leaf ? defaultLeafIcon : defaultNodeIcon
56
+ };
57
+ }, [defaultLeafIcon, defaultNodeIcon, node.icon, node.leaf]);
47
58
  var canCheck = react.useMemo(function () {
48
- return checkable === true || checkable === "leafOnly" && node.leaf;
59
+ return utilities.isTrue(checkable) || checkable === "leafOnly" && node.leaf;
49
60
  }, [node.leaf, checkable]);
50
61
  var canSelect = react.useMemo(function () {
51
62
  return !node.disabled && (selectable === true || selectable === "leafOnly" && node.leaf);
@@ -53,43 +64,49 @@ var TreeNode = function TreeNode(_ref) {
53
64
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
54
65
  role: "treeitem",
55
66
  "aria-selected": node.selected,
56
- className: "flex flex-nowrap",
67
+ className: utilities.cn("flex flex-nowrap items-center"),
57
68
  "data-testid": node["data-testid"],
58
69
  "data-test-value": node["data-test-value"],
59
- children: [filler, !node.leaf && !node.childFiltered && /*#__PURE__*/jsxRuntime.jsx("div", {
70
+ "data-id": node.id,
71
+ children: [filler, node.loading && /*#__PURE__*/jsxRuntime.jsx("div", {
60
72
  className: "flex-initial w-6",
73
+ children: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
74
+ icon: "icon-[svg-spinners--eclipse]",
75
+ className: "text-muted"
76
+ })
77
+ }), !node.leaf && !node.childFiltered && !node.loading && /*#__PURE__*/jsxRuntime.jsx("button", {
78
+ type: "button",
79
+ className: "flex-initial w-6",
80
+ onClick: function onClick() {
81
+ return !node.leaf && onToggle(node.id);
82
+ },
61
83
  children: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
62
84
  rtlFlip: true,
63
- onClick: function onClick() {
64
- return !node.leaf && onToggle(node.id);
65
- },
66
85
  icon: node.open ? expanders[1] : expanders[0],
67
86
  className: "text-tint-600 hover:text-primary-600"
68
87
  })
69
- }), canCheck && /*#__PURE__*/jsxRuntime.jsx("div", {
88
+ }), canCheck && /*#__PURE__*/jsxRuntime.jsx("button", {
89
+ type: "button",
70
90
  className: "flex-initial w-6",
91
+ onClick: function onClick() {
92
+ return !node.disabled && onChecked(node.id);
93
+ },
71
94
  children: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
72
- onClick: function onClick() {
73
- return !node.disabled && onChecked(node.id);
74
- },
75
- icon: node.checked === 2 ? core.CoreIcons.checkboxInt : node.checked === 1 ? core.CoreIcons.checkboxOn : core.CoreIcons.checkboxOff,
76
- className: classNames(node.disabled ? "text-muted" : "text-primary-500 hover:text-primary-600")
95
+ icon: node.checked === 2 ? "icon-[mdi--checkbox-intermediate]" : node.checked === 1 ? "icon-[mdi--checkbox-marked]" : "icon-[mdi--checkbox-blank-outline]",
96
+ className: utilities.cn(node.disabled ? "text-muted" : "text-primary-500 hover:text-primary-600")
77
97
  })
78
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
98
+ }), !node.empty && /*#__PURE__*/jsxRuntime.jsxs("div", {
79
99
  role: "none",
80
- className: classNames("group data-[selected]:bg-primary-100 flex flex-nowrap flex-1 items-center overflow-hidden select-none", node.childSelected && "font-medium", canSelect && "hover:bg-primary-50 cursor-pointer"),
100
+ className: utilities.cn("group/tool data-selected:bg-primary-100 flex flex-nowrap flex-1 overflow-hidden select-none", node.childSelected && "font-medium", node.disabled && "text-muted opacity-65", node.className, node.leaf ? leafClassName : nodeClassName, !node.disabled && (canSelect || onClick) && "hover:bg-primary-50 cursor-pointer"),
81
101
  "data-selected": node.selected,
82
- onClick: function onClick() {
83
- return canSelect ? onSelect(node.id) : canCheck ? onChecked(node.id) : onToggle(node.id);
102
+ onClick: node.disabled ? undefined : function (e) {
103
+ onClick === null || onClick === void 0 || onClick(node.id, node.data);
104
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
105
+ canSelect ? onSelect(node.id, e.shiftKey) : canCheck ? onChecked(node.id) : onToggle(node.id);
84
106
  },
85
- children: [nodeIcon && /*#__PURE__*/jsxRuntime.jsx("div", {
86
- className: "flex-content w-6",
87
- children: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
88
- icon: nodeIcon,
89
- bg: node.iconBg,
90
- color: node.iconColor,
91
- rtlFlip: node.rtlFlip
92
- })
107
+ children: [nodeIcon && /*#__PURE__*/jsxRuntime.jsxs("div", {
108
+ className: "flex-content max-w-6 me-1 self-center leading-none",
109
+ children: [/*#__PURE__*/react.isValidElement(nodeIcon) && nodeIcon, utilities.isString(nodeIcon) && /*#__PURE__*/jsxRuntime.jsx(core.Icon, _objectSpread({}, core.getIconProps(nodeIcon)))]
93
110
  }), node.childSelected && !node.open && /*#__PURE__*/jsxRuntime.jsx("span", {
94
111
  className: " flex-content text-primary-500",
95
112
  children: "\u2022"
@@ -97,11 +114,14 @@ var TreeNode = function TreeNode(_ref) {
97
114
  role: "none",
98
115
  className: "flex-1 truncate",
99
116
  children: children
100
- }), node.badge && /*#__PURE__*/jsxRuntime.jsx(core.Badge, _objectSpread(_objectSpread({}, badgeProps), {}, {
101
- className: classNames("me-1 self-center flex-content bg-opacity-50", badgeProps.className)
117
+ }), !utilities.isEmpty(node.badge) && /*#__PURE__*/jsxRuntime.jsx(core.Badge, _objectSpread(_objectSpread({}, badgeProps), {}, {
118
+ className: utilities.cn("me-1 self-center flex-content bg-opacity-50", badgeProps.className)
102
119
  }))]
120
+ }), node.empty && /*#__PURE__*/jsxRuntime.jsx("div", {
121
+ className: "text-muted text-sm select-none",
122
+ children: t("tree.noItems")
103
123
  })]
104
124
  });
105
- };
125
+ }
106
126
 
107
127
  exports.TreeNode = TreeNode;
@@ -7,14 +7,13 @@ var form = require('@react-fabric/form');
7
7
  var reactVirtual = require('@tanstack/react-virtual');
8
8
  var react = require('react');
9
9
  var TreeNode = require('./TreeNode.js');
10
- var types = require('./types.js');
11
10
  var useTree = require('./useTree.js');
12
11
  var jsxRuntime = require('react/jsx-runtime');
13
12
 
14
- var _excluded = ["ref", "items", "selected", "checked", "checkable", "noLines", "renderer", "searchable", "selectable", "matcher", "filterPlaceholder", "defaultLeafIcon", "defaultNodeIcon", "expander", "onChecked", "onLoad", "onSelect"];
13
+ var _excluded = ["ref", "items", "selected", "checked", "checkable", "noLines", "searchable", "selectable", "multiple", "matcher", "filterPlaceholder", "defaultLeafIcon", "defaultNodeIcon", "expander", "onChecked", "onLoad", "onQuery", "onSelect", "onClick", "sorter", "makeLabel", "makeIcon", "defaultExpanded", "onExpandToggle", "leafClassName", "nodeClassName"];
15
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
- var TreePanel = function TreePanel(_ref) {
15
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
+ function TreePanel(_ref) {
18
17
  var _virtualItems$;
19
18
  var ref = _ref.ref,
20
19
  items = _ref.items,
@@ -22,33 +21,51 @@ var TreePanel = function TreePanel(_ref) {
22
21
  checked = _ref.checked,
23
22
  checkable = _ref.checkable,
24
23
  noLines = _ref.noLines,
25
- renderer = _ref.renderer,
26
24
  searchable = _ref.searchable,
27
25
  selectable = _ref.selectable,
26
+ multiple = _ref.multiple,
28
27
  matcher = _ref.matcher,
29
28
  filterPlaceholder = _ref.filterPlaceholder,
30
29
  defaultLeafIcon = _ref.defaultLeafIcon,
31
30
  defaultNodeIcon = _ref.defaultNodeIcon,
32
31
  _ref$expander = _ref.expander,
33
32
  expander = _ref$expander === void 0 ? "box" : _ref$expander,
34
- onChecked = _ref.onChecked;
35
- _ref.onLoad;
36
- var onSelect = _ref.onSelect,
33
+ onChecked = _ref.onChecked,
34
+ onLoad = _ref.onLoad,
35
+ onQuery = _ref.onQuery,
36
+ onSelect = _ref.onSelect,
37
+ onClick = _ref.onClick,
38
+ sorter = _ref.sorter,
39
+ makeLabel = _ref.makeLabel,
40
+ makeIcon = _ref.makeIcon,
41
+ defaultExpanded = _ref.defaultExpanded,
42
+ onExpandToggle = _ref.onExpandToggle,
43
+ leafClassName = _ref.leafClassName,
44
+ nodeClassName = _ref.nodeClassName,
37
45
  aria = _objectWithoutProperties(_ref, _excluded);
38
46
  var _useTree = useTree.useTree({
39
47
  items: items,
40
48
  checked: checked,
41
49
  selected: selected,
50
+ multiple: multiple,
42
51
  matcher: matcher,
52
+ sorter: sorter,
53
+ onLoad: onLoad,
54
+ onQuery: onQuery,
43
55
  onSelect: onSelect,
44
- onChecked: onChecked
56
+ onChecked: onChecked,
57
+ defaultExpanded: defaultExpanded,
58
+ onExpandToggle: onExpandToggle
45
59
  }),
46
60
  tree = _useTree.tree,
61
+ query = _useTree.query,
62
+ currentSelected = _useTree.selected,
47
63
  toggleExpand = _useTree.toggleExpand,
48
64
  toggleCheck = _useTree.toggleCheck,
49
65
  expandAll = _useTree.expandAll,
50
66
  collapseAll = _useTree.collapseAll,
51
- select = _useTree.select,
67
+ expandAndLoad = _useTree.expandAndLoad,
68
+ _select = _useTree.select,
52
69
  expand = _useTree.expand,
53
70
  onFilter = _useTree.onFilter;
54
71
  var scrollerRef = react.useRef(null);
@@ -63,32 +80,47 @@ var TreePanel = function TreePanel(_ref) {
63
80
  });
64
81
  var virtualItems = virtualizer.getVirtualItems();
65
82
  var expanders = react.useMemo(function () {
66
- if (expander === "caret") return [core.CoreIcons.caretRight, core.CoreIcons.caretDown];
67
- if (expander === "chevron") return [core.CoreIcons.chevronRight, core.CoreIcons.chevronDown];
68
- if (expander === "folder") return [core.CoreIcons.folderClosed, core.CoreIcons.folderOpen];
69
- return [core.CoreIcons.expand, core.CoreIcons.collapse];
83
+ if (expander === "caret") return ["icon-[mdi--menu-right]", "icon-[mdi--menu-down]"];
84
+ if (expander === "chevron") return ["icon-[mdi--chevron-right]", "icon-[mdi--chevron-down]"];
85
+ if (expander === "folder") return ["icon-[mdi--folder-outline]", "icon-[mdi--folder-open-outline]"];
86
+ return ["icon-[mdi--plus-box-outline]", "icon-[mdi--minus-box-outline]"];
70
87
  }, [expander]);
71
88
  react.useImperativeHandle(ref, function () {
72
89
  return {
73
90
  open: function open(id) {
74
91
  return expand(id);
75
92
  },
93
+ openAndLoad: function openAndLoad(list) {
94
+ return expandAndLoad(list);
95
+ },
76
96
  select: function select(id) {
77
- return expand(id);
97
+ return _select(id);
78
98
  }
79
99
  };
80
- }, []);
81
- return /*#__PURE__*/jsxRuntime.jsxs(core.Section, {
100
+ },
101
+ // eslint-disable-next-line @eslint-react/exhaustive-deps
102
+ []);
103
+ react.useEffect(function () {
104
+ var index = tree.findIndex(function (n) {
105
+ return n.id === currentSelected;
106
+ });
107
+ virtualizer.scrollToIndex(index, {
108
+ align: "auto"
109
+ });
110
+ // eslint-disable-next-line @eslint-react/exhaustive-deps
111
+ }, [currentSelected]);
112
+ return /*#__PURE__*/jsxRuntime.jsxs(core.Layout, {
82
113
  children: [/*#__PURE__*/jsxRuntime.jsxs(core.Header, {
83
114
  flex: true,
84
115
  className: "items-center p-px justify-end overflow-hidden border-b",
85
116
  children: [searchable && /*#__PURE__*/jsxRuntime.jsx(form.Search, {
117
+ value: query,
86
118
  onSearch: onFilter,
87
119
  allowClear: true,
88
120
  placeholder: filterPlaceholder,
89
121
  noBorder: true,
90
122
  decorateStart: /*#__PURE__*/jsxRuntime.jsx(core.Icon, {
91
- icon: core.CoreIcons.filter,
123
+ icon: "icon-[mdi--filter-variant]",
92
124
  className: "p-1"
93
125
  })
94
126
  }), /*#__PURE__*/jsxRuntime.jsxs(core.ButtonGroup, {
@@ -97,12 +129,12 @@ var TreePanel = function TreePanel(_ref) {
97
129
  children: [/*#__PURE__*/jsxRuntime.jsx(core.Button, {
98
130
  size: "sm",
99
131
  "aria-label": "expand all",
100
- icon: types.iconExpandAll,
132
+ icon: "icon-[mdi--arrow-expand-vertical]",
101
133
  onClick: expandAll
102
134
  }), /*#__PURE__*/jsxRuntime.jsx(core.Button, {
103
135
  size: "sm",
104
136
  "aria-label": "collapse all",
105
- icon: types.iconCollapseAll,
137
+ icon: "icon-[mdi--arrow-collapse-vertical]",
106
138
  onClick: collapseAll
107
139
  })]
108
140
  })]
@@ -120,6 +152,7 @@ var TreePanel = function TreePanel(_ref) {
120
152
  height: (_virtualItems$ = virtualItems[0]) === null || _virtualItems$ === void 0 ? void 0 : _virtualItems$.start
121
153
  }
122
154
  }), virtualItems.map(function (_ref2) {
155
+ var _makeIcon, _ref3;
123
156
  var index = _ref2.index,
124
157
  key = _ref2.key;
125
158
  return /*#__PURE__*/jsxRuntime.jsx("div", {
@@ -132,17 +165,20 @@ var TreePanel = function TreePanel(_ref) {
132
165
  checkable: checkable,
133
166
  selectable: selectable,
134
167
  defaultLeafIcon: defaultLeafIcon,
135
- defaultNodeIcon: defaultNodeIcon,
168
+ defaultNodeIcon: (_makeIcon = makeIcon === null || makeIcon === void 0 ? void 0 : makeIcon(tree[index].data)) !== null && _makeIcon !== void 0 ? _makeIcon : defaultNodeIcon,
136
169
  onToggle: toggleExpand,
137
170
  onChecked: toggleCheck,
138
- onSelect: select,
139
- children: tree[index].data && (renderer === null || renderer === void 0 ? void 0 : renderer(tree[index].data)) || tree[index].label
171
+ onSelect: _select,
172
+ onClick: onClick,
173
+ leafClassName: leafClassName,
174
+ nodeClassName: nodeClassName,
175
+ children: (_ref3 = tree[index].data && (makeLabel === null || makeLabel === void 0 ? void 0 : makeLabel(tree[index].data))) !== null && _ref3 !== void 0 ? _ref3 : tree[index].label
140
176
  })
141
177
  }, key);
142
178
  })]
143
179
  })
144
180
  }))]
145
181
  });
146
- };
182
+ }
147
183
 
148
184
  exports.TreePanel = TreePanel;