react-restyle-components 0.4.46 → 0.4.47

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 (231) hide show
  1. package/lib/index.js +1 -3
  2. package/lib/src/core-components/index.js +1 -1
  3. package/lib/src/core-components/src/components/Accordion/AccordionSection/Accordion.js +1 -15
  4. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionContext.js +1 -6
  5. package/lib/src/core-components/src/components/Accordion/AccordionSection/AccordionSection.js +1 -39
  6. package/lib/src/core-components/src/components/Accordion/AccordionSection/Header.js +1 -39
  7. package/lib/src/core-components/src/components/Accordion/AccordionSection/elements.js +57 -94
  8. package/lib/src/core-components/src/components/Accordion/AccordionSection/hooks/useCurrentAccordionIndex.js +1 -13
  9. package/lib/src/core-components/src/components/Accordion/AccordionSection/index.js +1 -3
  10. package/lib/src/core-components/src/components/Accordion/AccordionSection/types.js +1 -9
  11. package/lib/src/core-components/src/components/Accordion/Collapsible/Collapsible2.component.js +1 -249
  12. package/lib/src/core-components/src/components/Action/types.js +1 -8
  13. package/lib/src/core-components/src/components/AlertBanner/AlertBanner.js +1 -45
  14. package/lib/src/core-components/src/components/AlertBanner/elements.js +45 -120
  15. package/lib/src/core-components/src/components/AlertBanner/index.js +1 -2
  16. package/lib/src/core-components/src/components/AlertBanner/types.js +1 -10
  17. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-group-by-multiple-select-multiple-fields-display/auto-complete-filter-group-by-multiple-select-multiple-fields-display.component.js +1 -451
  18. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-multi-fields-display-drag-drop/auto-complete-filter-multi-select-multi-fields-display-drag-drop.component.js +1 -229
  19. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multi-select-selected-top-display/auto-complete-filter-multi-select-selected-top-display.component.js +1 -174
  20. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-multiple-select-multiple-fields-display/auto-complete-filter-multiple-select-multiple-fields-display.component.js +2 -129
  21. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select/auto-complete-filter-single-select.component.js +1 -55
  22. package/lib/src/core-components/src/components/AutoComplete/auto-complete-filter-single-select-multiple-fields-display/auto-complete-filter-single-select-multiple-fields-display.component.js +2 -308
  23. package/lib/src/core-components/src/components/AutoComplete/auto-complete-group-by/auto-complete-group-by.component.js +1 -115
  24. package/lib/src/core-components/src/components/AutoComplete/autocomplete/autocomplete.js +2 -442
  25. package/lib/src/core-components/src/components/AutoComplete/index.js +1 -8
  26. package/lib/src/core-components/src/components/Avatar/Avatar.js +14 -148
  27. package/lib/src/core-components/src/components/Badge/Badge.js +2 -25
  28. package/lib/src/core-components/src/components/Badge/InnerBadge/Inline.js +1 -25
  29. package/lib/src/core-components/src/components/Badge/InnerBadge/InnerBadge.js +1 -25
  30. package/lib/src/core-components/src/components/Badge/InnerBadge/elements.js +32 -78
  31. package/lib/src/core-components/src/components/Badge/InnerBadge/index.js +1 -1
  32. package/lib/src/core-components/src/components/Badge/index.js +1 -1
  33. package/lib/src/core-components/src/components/Badge/types.js +1 -5
  34. package/lib/src/core-components/src/components/Breadcrumb/Breadcrumb.js +1 -83
  35. package/lib/src/core-components/src/components/Breadcrumb/elements.js +94 -166
  36. package/lib/src/core-components/src/components/Breadcrumb/index.js +1 -3
  37. package/lib/src/core-components/src/components/Breadcrumb/types.js +1 -3
  38. package/lib/src/core-components/src/components/Button/button.component.js +1 -18
  39. package/lib/src/core-components/src/components/Button/buttonGroup/buttonGroup.component.js +1 -4
  40. package/lib/src/core-components/src/components/Button/index.js +1 -2
  41. package/lib/src/core-components/src/components/Button/types.js +1 -1
  42. package/lib/src/core-components/src/components/Chip/Chip.js +1 -64
  43. package/lib/src/core-components/src/components/Chip/elements.js +48 -148
  44. package/lib/src/core-components/src/components/Chip/index.js +1 -2
  45. package/lib/src/core-components/src/components/Chip/types.js +1 -4
  46. package/lib/src/core-components/src/components/Divider/Divider.js +1 -25
  47. package/lib/src/core-components/src/components/Divider/elements.js +31 -68
  48. package/lib/src/core-components/src/components/Divider/index.js +1 -2
  49. package/lib/src/core-components/src/components/Divider/types.js +1 -4
  50. package/lib/src/core-components/src/components/DynamicGrid/DynamicGrid.js +1 -147
  51. package/lib/src/core-components/src/components/DynamicGrid/GridContainer.js +17 -24
  52. package/lib/src/core-components/src/components/DynamicGrid/elements.js +100 -162
  53. package/lib/src/core-components/src/components/DynamicGrid/index.js +1 -3
  54. package/lib/src/core-components/src/components/DynamicGrid/types.js +1 -28
  55. package/lib/src/core-components/src/components/DynamicGrid/utils.js +1 -193
  56. package/lib/src/core-components/src/components/FormField/FormField.js +1 -103
  57. package/lib/src/core-components/src/components/FormField/components/CheckboxGroupInput.js +1 -37
  58. package/lib/src/core-components/src/components/FormField/components/CheckboxInput.js +1 -8
  59. package/lib/src/core-components/src/components/FormField/components/CssMultilineInput.js +1 -192
  60. package/lib/src/core-components/src/components/FormField/components/DatePickerInput.js +1 -99
  61. package/lib/src/core-components/src/components/FormField/components/DropdownInput.js +1 -70
  62. package/lib/src/core-components/src/components/FormField/components/OtpInput.js +1 -81
  63. package/lib/src/core-components/src/components/FormField/components/PasswordInput.js +1 -40
  64. package/lib/src/core-components/src/components/FormField/components/PinInput.js +1 -75
  65. package/lib/src/core-components/src/components/FormField/components/RadioInput.js +1 -54
  66. package/lib/src/core-components/src/components/FormField/components/TextDropdownInput.js +1 -94
  67. package/lib/src/core-components/src/components/FormField/components/ToggleInput.js +1 -36
  68. package/lib/src/core-components/src/components/FormField/components/index.js +1 -11
  69. package/lib/src/core-components/src/components/FormField/css-properties.js +1 -161
  70. package/lib/src/core-components/src/components/FormField/index.js +1 -2
  71. package/lib/src/core-components/src/components/Icon/Icon.js +1 -159
  72. package/lib/src/core-components/src/components/Icon/index.js +1 -2
  73. package/lib/src/core-components/src/components/Icon/types.js +1 -9
  74. package/lib/src/core-components/src/components/Loader/loader.component.js +2 -215
  75. package/lib/src/core-components/src/components/Masonry/Masonry.js +1 -73
  76. package/lib/src/core-components/src/components/Masonry/elements.js +29 -46
  77. package/lib/src/core-components/src/components/Masonry/hooks.js +1 -100
  78. package/lib/src/core-components/src/components/Masonry/index.js +1 -3
  79. package/lib/src/core-components/src/components/Masonry/types.js +1 -1
  80. package/lib/src/core-components/src/components/Modal/BasicModal/modal.component.js +1 -116
  81. package/lib/src/core-components/src/components/Modal/index.js +1 -2
  82. package/lib/src/core-components/src/components/Modal/modal-confirm/modal-confirm.component.js +1 -147
  83. package/lib/src/core-components/src/components/Picker/color-picker/color-picker.component.js +1 -12
  84. package/lib/src/core-components/src/components/Picker/color-picker-modal/color-picker-modal.component.js +1 -40
  85. package/lib/src/core-components/src/components/Picker/index.js +1 -2
  86. package/lib/src/core-components/src/components/Selection/index.js +1 -4
  87. package/lib/src/core-components/src/components/Selection/multi-select/multi-select.component.js +1 -49
  88. package/lib/src/core-components/src/components/Selection/multi-select-with-field/multi-select-with-field.component.js +1 -58
  89. package/lib/src/core-components/src/components/Selection/multi-selection-dropdown/multi-selection-dropdown.component.js +1 -43
  90. package/lib/src/core-components/src/components/Selection/single-select/single-select.component.js +1 -87
  91. package/lib/src/core-components/src/components/Skeleton/Skeleton.js +1 -51
  92. package/lib/src/core-components/src/components/Skeleton/elements.js +54 -143
  93. package/lib/src/core-components/src/components/Skeleton/index.js +1 -2
  94. package/lib/src/core-components/src/components/Skeleton/types.js +1 -4
  95. package/lib/src/core-components/src/components/SpeedDial/SpeedDial.js +1 -128
  96. package/lib/src/core-components/src/components/SpeedDial/elements.js +62 -132
  97. package/lib/src/core-components/src/components/SpeedDial/index.js +1 -2
  98. package/lib/src/core-components/src/components/SpeedDial/types.js +1 -3
  99. package/lib/src/core-components/src/components/Stepper2/stepper.component.js +1 -139
  100. package/lib/src/core-components/src/components/Switch/Switch.js +1 -26
  101. package/lib/src/core-components/src/components/Switch/elements.js +34 -103
  102. package/lib/src/core-components/src/components/Switch/index.js +1 -2
  103. package/lib/src/core-components/src/components/Switch/types.js +1 -3
  104. package/lib/src/core-components/src/components/Table/Table.js +1 -1489
  105. package/lib/src/core-components/src/components/Table/columnReorder.js +36 -332
  106. package/lib/src/core-components/src/components/Table/columnResize.js +21 -284
  107. package/lib/src/core-components/src/components/Table/elements.js +173 -277
  108. package/lib/src/core-components/src/components/Table/filters.js +30 -555
  109. package/lib/src/core-components/src/components/Table/hooks.js +2 -536
  110. package/lib/src/core-components/src/components/Table/index.js +1 -6
  111. package/lib/src/core-components/src/components/Table/types.js +1 -1
  112. package/lib/src/core-components/src/components/Tabs/tabs.component.js +1 -22
  113. package/lib/src/core-components/src/components/Tags1/Tags.component.js +1 -118
  114. package/lib/src/core-components/src/components/Tags1/types.js +1 -20
  115. package/lib/src/core-components/src/components/Timer1/timer.component.js +1 -76
  116. package/lib/src/core-components/src/components/Toast/Toast.js +1 -50
  117. package/lib/src/core-components/src/components/Toast/elements.js +41 -122
  118. package/lib/src/core-components/src/components/Toast/index.js +1 -2
  119. package/lib/src/core-components/src/components/Toast/types.js +1 -9
  120. package/lib/src/core-components/src/components/Tooltip/Tooltip.js +1 -200
  121. package/lib/src/core-components/src/components/Tooltip/elements.js +55 -117
  122. package/lib/src/core-components/src/components/Tooltip/index.js +1 -2
  123. package/lib/src/core-components/src/components/Tooltip/types.js +1 -17
  124. package/lib/src/core-components/src/components/Tooltip/utils.js +1 -140
  125. package/lib/src/core-components/src/components/TreeSelect/TreeSelect.js +1 -303
  126. package/lib/src/core-components/src/components/TreeSelect/elements.js +117 -216
  127. package/lib/src/core-components/src/components/TreeSelect/hooks.js +1 -252
  128. package/lib/src/core-components/src/components/TreeSelect/index.js +1 -3
  129. package/lib/src/core-components/src/components/TreeSelect/types.js +1 -1
  130. package/lib/src/core-components/src/components/ag-grid/AgGrid.js +1 -1057
  131. package/lib/src/core-components/src/components/ag-grid/elements.js +396 -790
  132. package/lib/src/core-components/src/components/ag-grid/hooks.js +4 -1220
  133. package/lib/src/core-components/src/components/ag-grid/index.js +1 -15
  134. package/lib/src/core-components/src/components/ag-grid/types.js +1 -6
  135. package/lib/src/core-components/src/components/index.js +1 -31
  136. package/lib/src/core-components/src/components/pdf/pdf-images.components.js +1 -7
  137. package/lib/src/core-components/src/components/pdf/pdf-table.components.js +5 -48
  138. package/lib/src/core-components/src/components/pdf/pdf-typography.components.js +1 -70
  139. package/lib/src/core-components/src/components/pdf/pdf-wrapped-view.components.js +1 -50
  140. package/lib/src/core-components/src/core-components/Avatar.js +4 -33
  141. package/lib/src/core-components/src/core-components/CoreButton/CoreButton.js +1 -10
  142. package/lib/src/core-components/src/core-components/CoreButton/elements.js +67 -176
  143. package/lib/src/core-components/src/core-components/CoreButton/index.js +1 -3
  144. package/lib/src/core-components/src/core-components/CoreButton/types.js +1 -6
  145. package/lib/src/core-components/src/core-components/CoreButton/utils.js +1 -12
  146. package/lib/src/core-components/src/core-components/Divider/Divider.js +4 -19
  147. package/lib/src/core-components/src/core-components/Divider/index.js +1 -1
  148. package/lib/src/core-components/src/core-components/SelectionCardStrip/index.js +1 -1
  149. package/lib/src/core-components/src/core-components/SelectionCardStrip/selectionCardStrip.js +10 -33
  150. package/lib/src/core-components/src/core-components/StateLayer.js +3 -5
  151. package/lib/src/core-components/src/core-components/ToggleCore/elements.js +25 -50
  152. package/lib/src/core-components/src/core-components/ToggleCore/index.js +1 -2
  153. package/lib/src/core-components/src/core-components/ToggleCore/toggleCore.js +1 -14
  154. package/lib/src/core-components/src/core-components/atoms/Input/Input.js +1 -22
  155. package/lib/src/core-components/src/core-components/atoms/Label/Label.js +1 -21
  156. package/lib/src/core-components/src/core-components/atoms/Textarea/Textarea.js +1 -19
  157. package/lib/src/core-components/src/core-components/index.js +1 -3
  158. package/lib/src/core-components/src/helpers/constants.js +1 -11
  159. package/lib/src/core-components/src/hooks/index.js +1 -1
  160. package/lib/src/core-components/src/hooks/outside.hook.js +1 -28
  161. package/lib/src/core-components/src/index.js +1 -12
  162. package/lib/src/core-components/src/tc.global.css +1 -0
  163. package/lib/src/core-components/src/utils/abstracts/breakpoints/index.js +1 -28
  164. package/lib/src/core-components/src/utils/abstracts/colors/index.js +1 -49
  165. package/lib/src/core-components/src/utils/abstracts/index.js +1 -5
  166. package/lib/src/core-components/src/utils/abstracts/space/index.js +1 -26
  167. package/lib/src/core-components/src/utils/abstracts/theme/ThemeBoundary.js +1 -8
  168. package/lib/src/core-components/src/utils/abstracts/theme/default-themes.js +1 -30
  169. package/lib/src/core-components/src/utils/abstracts/theme/index.js +1 -3
  170. package/lib/src/core-components/src/utils/abstracts/theme/theme.js +1 -30
  171. package/lib/src/core-components/src/utils/abstracts/theme/types.js +1 -1
  172. package/lib/src/core-components/src/utils/abstracts/theme/useTheme.js +1 -17
  173. package/lib/src/core-components/src/utils/abstracts/typography/index.js +1 -25
  174. package/lib/src/core-components/src/utils/context/DefaultsProvider.js +1 -8
  175. package/lib/src/core-components/src/utils/context/InternalProvider.js +1 -24
  176. package/lib/src/core-components/src/utils/context/index.js +1 -2
  177. package/lib/src/core-components/src/utils/designTokens.js +1 -128
  178. package/lib/src/core-components/src/utils/helpers/attachSubComponents.js +1 -23
  179. package/lib/src/core-components/src/utils/helpers/flattenChildren.js +1 -11
  180. package/lib/src/core-components/src/utils/helpers/getChildByType.js +1 -3
  181. package/lib/src/core-components/src/utils/helpers/index.js +1 -5
  182. package/lib/src/core-components/src/utils/helpers/isComponentType.js +1 -16
  183. package/lib/src/core-components/src/utils/helpers/separateChildrenByType.js +1 -12
  184. package/lib/src/core-components/src/utils/hooks/index.js +1 -18
  185. package/lib/src/core-components/src/utils/hooks/useClickOutside.js +1 -18
  186. package/lib/src/core-components/src/utils/hooks/useCombinedRefs.js +1 -17
  187. package/lib/src/core-components/src/utils/hooks/useDebouncedCallback.js +1 -12
  188. package/lib/src/core-components/src/utils/hooks/useDebouncedValue.js +1 -20
  189. package/lib/src/core-components/src/utils/hooks/useDeprecation.js +1 -40
  190. package/lib/src/core-components/src/utils/hooks/useDeviceDetect.js +1 -10
  191. package/lib/src/core-components/src/utils/hooks/useDeviceForm.js +1 -24
  192. package/lib/src/core-components/src/utils/hooks/useDisableBodyScroll.js +1 -16
  193. package/lib/src/core-components/src/utils/hooks/useHoverState.js +1 -36
  194. package/lib/src/core-components/src/utils/hooks/useId.js +1 -7
  195. package/lib/src/core-components/src/utils/hooks/useIsBrowser.js +1 -11
  196. package/lib/src/core-components/src/utils/hooks/useMediaQuery.js +1 -16
  197. package/lib/src/core-components/src/utils/hooks/useOverflow.js +1 -22
  198. package/lib/src/core-components/src/utils/hooks/useSafeLayoutEffect.js +1 -5
  199. package/lib/src/core-components/src/utils/hooks/useScrollingUp.js +1 -18
  200. package/lib/src/core-components/src/utils/hooks/useTrapFocus.js +1 -30
  201. package/lib/src/core-components/src/utils/hooks/useWindowDimensions.js +1 -23
  202. package/lib/src/core-components/src/utils/index.js +1 -9
  203. package/lib/src/core-components/src/utils/stories/Wrappers.js +8 -23
  204. package/lib/src/core-components/src/utils/stories/cleanProps.js +1 -5
  205. package/lib/src/core-components/src/utils/stories/index.js +1 -4
  206. package/lib/src/core-components/src/utils/stories/sleep.js +1 -4
  207. package/lib/src/core-components/src/utils/stories/view-ports.js +1 -50
  208. package/lib/src/core-components/src/utils/styling/calcWidthOfColumns.js +1 -5
  209. package/lib/src/core-components/src/utils/styling/createGridContainer.js +6 -12
  210. package/lib/src/core-components/src/utils/styling/createTransition.js +2 -7
  211. package/lib/src/core-components/src/utils/styling/forwardProps.js +1 -10
  212. package/lib/src/core-components/src/utils/styling/index.js +1 -5
  213. package/lib/src/core-components/src/utils/styling/pxToRem.js +1 -6
  214. package/lib/src/core-components/src/utils/testing/getComputedStyle.js +1 -3
  215. package/lib/src/core-components/src/utils/testing/index.js +1 -1
  216. package/lib/src/core-components/src/utils/utility.util.js +1 -14
  217. package/lib/src/core-components/tailwind.config.js +1 -233
  218. package/lib/src/core-hooks/index.js +1 -3
  219. package/lib/src/core-hooks/src/useClickOutside/useClickOutside.hook.js +1 -46
  220. package/lib/src/core-hooks/src/useDebounce/useDebounce.hook.js +1 -30
  221. package/lib/src/core-hooks/src/usePreventEKey/usePreventEKey.hook.js +1 -8
  222. package/lib/src/core-utils/index.js +1 -7
  223. package/lib/src/core-utils/src/calculation/calculation.util.js +1 -89
  224. package/lib/src/core-utils/src/colors/color.util.js +1 -15
  225. package/lib/src/core-utils/src/convert/numberToWords/numToWords.util.js +1 -145
  226. package/lib/src/core-utils/src/convert/typography/camelCaseToTitleCase.util.js +1 -5
  227. package/lib/src/core-utils/src/form-helper/form-helper.util.js +1 -82
  228. package/lib/src/core-utils/src/index.js +1 -7
  229. package/lib/src/core-utils/src/utility/utility.util.js +1 -12
  230. package/lib/src/core-utils/src/uuid/uuid.util.js +1 -8
  231. package/package.json +1 -1
@@ -1,252 +1 @@
1
- import { useState, useCallback, useEffect } from 'react';
2
- /**
3
- * Get the actual field value based on field names mapping
4
- */
5
- export function getFieldValue(node, field, fieldNames = {}) {
6
- const mapping = {
7
- label: fieldNames.label || 'title',
8
- value: fieldNames.value || 'value',
9
- children: fieldNames.children || 'children',
10
- };
11
- return node[mapping[field]];
12
- }
13
- /**
14
- * Flatten tree data for easier searching
15
- */
16
- export function flattenTree(nodes, fieldNames, parent) {
17
- const result = [];
18
- for (const node of nodes) {
19
- const value = getFieldValue(node, 'value', fieldNames);
20
- const children = getFieldValue(node, 'children', fieldNames);
21
- const path = parent ? [...parent.path, value] : [value];
22
- result.push({ ...node, parent, path });
23
- if (children && Array.isArray(children)) {
24
- result.push(...flattenTree(children, fieldNames, { ...node, path }));
25
- }
26
- }
27
- return result;
28
- }
29
- /**
30
- * Find a node by value
31
- */
32
- export function findNodeByValue(nodes, value, fieldNames) {
33
- for (const node of nodes) {
34
- const nodeValue = getFieldValue(node, 'value', fieldNames);
35
- const children = getFieldValue(node, 'children', fieldNames);
36
- if (nodeValue === value)
37
- return node;
38
- if (children && Array.isArray(children)) {
39
- const found = findNodeByValue(children, value, fieldNames);
40
- if (found)
41
- return found;
42
- }
43
- }
44
- return undefined;
45
- }
46
- /**
47
- * Get all descendant values
48
- */
49
- export function getDescendantValues(node, fieldNames) {
50
- const values = [];
51
- const children = getFieldValue(node, 'children', fieldNames);
52
- if (children && Array.isArray(children)) {
53
- for (const child of children) {
54
- const childValue = getFieldValue(child, 'value', fieldNames);
55
- values.push(childValue);
56
- values.push(...getDescendantValues(child, fieldNames));
57
- }
58
- }
59
- return values;
60
- }
61
- /**
62
- * Get all ancestor values
63
- */
64
- export function getAncestorValues(nodes, targetValue, fieldNames) {
65
- const flatNodes = flattenTree(nodes, fieldNames);
66
- const target = flatNodes.find((n) => getFieldValue(n, 'value', fieldNames) === targetValue);
67
- return target?.path.slice(0, -1) || [];
68
- }
69
- /**
70
- * Filter tree nodes based on search
71
- */
72
- export function filterTree(nodes, searchValue, filterFn, filterProp = 'title', fieldNames) {
73
- if (!searchValue)
74
- return nodes;
75
- const defaultFilter = (value, node) => {
76
- const nodeLabel = node[filterProp];
77
- if (typeof nodeLabel === 'string') {
78
- return nodeLabel.toLowerCase().includes(value.toLowerCase());
79
- }
80
- return false;
81
- };
82
- const filter = filterFn || defaultFilter;
83
- const result = [];
84
- for (const node of nodes) {
85
- const children = getFieldValue(node, 'children', fieldNames);
86
- const filteredChildren = children
87
- ? filterTree(children, searchValue, filterFn, filterProp, fieldNames)
88
- : [];
89
- if (filter(searchValue, node) || filteredChildren.length > 0) {
90
- result.push({
91
- ...node,
92
- children: filteredChildren.length > 0 ? filteredChildren : children,
93
- });
94
- }
95
- }
96
- return result;
97
- }
98
- /**
99
- * Hook for managing expanded state
100
- */
101
- export function useExpandedState(treeData, defaultExpandedKeys, defaultExpandAll, controlledExpandedKeys, fieldNames) {
102
- const [internalExpanded, setInternalExpanded] = useState(() => {
103
- if (defaultExpandAll) {
104
- const allKeys = new Set();
105
- const collectKeys = (nodes) => {
106
- for (const node of nodes) {
107
- const value = getFieldValue(node, 'value', fieldNames);
108
- const children = getFieldValue(node, 'children', fieldNames);
109
- if (children && children.length > 0) {
110
- allKeys.add(value);
111
- collectKeys(children);
112
- }
113
- }
114
- };
115
- collectKeys(treeData);
116
- return allKeys;
117
- }
118
- return new Set(defaultExpandedKeys || []);
119
- });
120
- const expandedKeys = controlledExpandedKeys
121
- ? new Set(controlledExpandedKeys)
122
- : internalExpanded;
123
- const toggleExpand = useCallback((key) => {
124
- setInternalExpanded((prev) => {
125
- const next = new Set(prev);
126
- if (next.has(key)) {
127
- next.delete(key);
128
- }
129
- else {
130
- next.add(key);
131
- }
132
- return next;
133
- });
134
- }, []);
135
- const setExpanded = useCallback((keys) => {
136
- setInternalExpanded(new Set(keys));
137
- }, []);
138
- return { expandedKeys, toggleExpand, setExpanded };
139
- }
140
- /**
141
- * Hook for managing checked state (checkable mode)
142
- */
143
- export function useCheckedState(treeData, value, checkStrictly = false, fieldNames) {
144
- const [checkedKeys, setCheckedKeys] = useState(new Set(value || []));
145
- const [halfCheckedKeys, setHalfCheckedKeys] = useState(new Set());
146
- // Update when controlled value changes
147
- useEffect(() => {
148
- if (value) {
149
- setCheckedKeys(new Set(value));
150
- if (!checkStrictly) {
151
- updateHalfChecked(new Set(value));
152
- }
153
- }
154
- }, [value, checkStrictly]);
155
- const updateHalfChecked = useCallback((checked) => {
156
- if (checkStrictly) {
157
- setHalfCheckedKeys(new Set());
158
- return;
159
- }
160
- const half = new Set();
161
- const flatNodes = flattenTree(treeData, fieldNames);
162
- // Check each parent node
163
- for (const node of flatNodes) {
164
- const nodeValue = getFieldValue(node, 'value', fieldNames);
165
- const children = getFieldValue(node, 'children', fieldNames);
166
- if (children && children.length > 0) {
167
- const descendantValues = getDescendantValues(node, fieldNames);
168
- const checkedDescendants = descendantValues.filter((v) => checked.has(v));
169
- if (checkedDescendants.length > 0 &&
170
- checkedDescendants.length < descendantValues.length) {
171
- half.add(nodeValue);
172
- }
173
- }
174
- }
175
- setHalfCheckedKeys(half);
176
- }, [treeData, checkStrictly, fieldNames]);
177
- const toggleCheck = useCallback((nodeValue, node) => {
178
- setCheckedKeys((prev) => {
179
- const next = new Set(prev);
180
- const isChecked = next.has(nodeValue);
181
- if (isChecked) {
182
- next.delete(nodeValue);
183
- if (!checkStrictly) {
184
- // Uncheck all descendants
185
- const descendants = getDescendantValues(node, fieldNames);
186
- descendants.forEach((v) => next.delete(v));
187
- }
188
- }
189
- else {
190
- next.add(nodeValue);
191
- if (!checkStrictly) {
192
- // Check all descendants
193
- const descendants = getDescendantValues(node, fieldNames);
194
- descendants.forEach((v) => next.add(v));
195
- }
196
- }
197
- // Update parent states if not strict
198
- if (!checkStrictly) {
199
- updateParentStates(next, nodeValue, treeData, fieldNames);
200
- }
201
- updateHalfChecked(next);
202
- return next;
203
- });
204
- }, [checkStrictly, treeData, fieldNames, updateHalfChecked]);
205
- return { checkedKeys, halfCheckedKeys, toggleCheck, setCheckedKeys };
206
- }
207
- function updateParentStates(checked, changedValue, treeData, fieldNames) {
208
- const ancestors = getAncestorValues(treeData, changedValue, fieldNames);
209
- for (const ancestorValue of ancestors.reverse()) {
210
- const ancestorNode = findNodeByValue(treeData, ancestorValue, fieldNames);
211
- if (ancestorNode) {
212
- const descendants = getDescendantValues(ancestorNode, fieldNames);
213
- const allChecked = descendants.every((v) => checked.has(v));
214
- if (allChecked) {
215
- checked.add(ancestorValue);
216
- }
217
- else {
218
- checked.delete(ancestorValue);
219
- }
220
- }
221
- }
222
- }
223
- /**
224
- * Hook for managing async loading
225
- */
226
- export function useAsyncLoading() {
227
- const [loadingKeys, setLoadingKeys] = useState(new Set());
228
- const [loadedKeys, setLoadedKeys] = useState(new Set());
229
- const setLoading = useCallback((key, isLoading) => {
230
- setLoadingKeys((prev) => {
231
- const next = new Set(prev);
232
- if (isLoading) {
233
- next.add(key);
234
- }
235
- else {
236
- next.delete(key);
237
- }
238
- return next;
239
- });
240
- }, []);
241
- const markLoaded = useCallback((key) => {
242
- setLoadedKeys((prev) => new Set(prev).add(key));
243
- setLoadingKeys((prev) => {
244
- const next = new Set(prev);
245
- next.delete(key);
246
- return next;
247
- });
248
- }, []);
249
- const isLoading = useCallback((key) => loadingKeys.has(key), [loadingKeys]);
250
- const isLoaded = useCallback((key) => loadedKeys.has(key), [loadedKeys]);
251
- return { loadingKeys, setLoading, markLoaded, isLoading, isLoaded };
252
- }
1
+ "use strict";import{useState as x,useCallback as g,useEffect as L}from"react";export function getFieldValue(o,t,e={}){const n={label:e.label||"title",value:e.value||"value",children:e.children||"children"};return o[n[t]]}export function flattenTree(o,t,e){const n=[];for(const c of o){const r=getFieldValue(c,"value",t),a=getFieldValue(c,"children",t),f=e?[...e.path,r]:[r];n.push({...c,parent:e,path:f}),a&&Array.isArray(a)&&n.push(...flattenTree(a,t,{...c,path:f}))}return n}export function findNodeByValue(o,t,e){for(const n of o){const c=getFieldValue(n,"value",e),r=getFieldValue(n,"children",e);if(c===t)return n;if(r&&Array.isArray(r)){const a=findNodeByValue(r,t,e);if(a)return a}}}export function getDescendantValues(o,t){const e=[],n=getFieldValue(o,"children",t);if(n&&Array.isArray(n))for(const c of n){const r=getFieldValue(c,"value",t);e.push(r),e.push(...getDescendantValues(c,t))}return e}export function getAncestorValues(o,t,e){return flattenTree(o,e).find(r=>getFieldValue(r,"value",e)===t)?.path.slice(0,-1)||[]}export function filterTree(o,t,e,n="title",c){if(!t)return o;const a=e||((d,u)=>{const s=u[n];return typeof s=="string"?s.toLowerCase().includes(d.toLowerCase()):!1}),f=[];for(const d of o){const u=getFieldValue(d,"children",c),s=u?filterTree(u,t,e,n,c):[];(a(t,d)||s.length>0)&&f.push({...d,children:s.length>0?s:u})}return f}export function useExpandedState(o,t,e,n,c){const[r,a]=x(()=>{if(e){const s=new Set,i=h=>{for(const l of h){const C=getFieldValue(l,"value",c),p=getFieldValue(l,"children",c);p&&p.length>0&&(s.add(C),i(p))}};return i(o),s}return new Set(t||[])}),f=n?new Set(n):r,d=g(s=>{a(i=>{const h=new Set(i);return h.has(s)?h.delete(s):h.add(s),h})},[]),u=g(s=>{a(new Set(s))},[]);return{expandedKeys:f,toggleExpand:d,setExpanded:u}}export function useCheckedState(o,t,e=!1,n){const[c,r]=x(new Set(t||[])),[a,f]=x(new Set);L(()=>{t&&(r(new Set(t)),e||d(new Set(t)))},[t,e]);const d=g(s=>{if(e){f(new Set);return}const i=new Set,h=flattenTree(o,n);for(const l of h){const C=getFieldValue(l,"value",n),p=getFieldValue(l,"children",n);if(p&&p.length>0){const w=getDescendantValues(l,n),S=w.filter(K=>s.has(K));S.length>0&&S.length<w.length&&i.add(C)}}f(i)},[o,e,n]),u=g((s,i)=>{r(h=>{const l=new Set(h);return l.has(s)?(l.delete(s),e||getDescendantValues(i,n).forEach(w=>l.delete(w))):(l.add(s),e||getDescendantValues(i,n).forEach(w=>l.add(w))),e||v(l,s,o,n),d(l),l})},[e,o,n,d]);return{checkedKeys:c,halfCheckedKeys:a,toggleCheck:u,setCheckedKeys:r}}function v(o,t,e,n){const c=getAncestorValues(e,t,n);for(const r of c.reverse()){const a=findNodeByValue(e,r,n);a&&(getDescendantValues(a,n).every(u=>o.has(u))?o.add(r):o.delete(r))}}export function useAsyncLoading(){const[o,t]=x(new Set),[e,n]=x(new Set),c=g((d,u)=>{t(s=>{const i=new Set(s);return u?i.add(d):i.delete(d),i})},[]),r=g(d=>{n(u=>new Set(u).add(d)),t(u=>{const s=new Set(u);return s.delete(d),s})},[]),a=g(d=>o.has(d),[o]),f=g(d=>e.has(d),[e]);return{loadingKeys:o,setLoading:c,markLoaded:r,isLoading:a,isLoaded:f}}
@@ -1,3 +1 @@
1
- export { TreeSelect, default } from './TreeSelect';
2
- export * from './types';
3
- export { flattenTree, findNodeByValue, getDescendantValues, getAncestorValues, filterTree, getFieldValue, } from './hooks';
1
+ "use strict";export{TreeSelect,default}from"./TreeSelect";export*from"./types";export{flattenTree,findNodeByValue,getDescendantValues,getAncestorValues,filterTree,getFieldValue}from"./hooks";
@@ -1 +1 @@
1
- export {};
1
+ "use strict";export{};