impact-nova 2.5.13 → 2.5.15

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/dist/components/data/data-table/build-column-tree-from-grid.d.ts +0 -1
  2. package/dist/components/data/data-table/build-column-tree-from-grid.js +50 -55
  3. package/dist/components/data/data-table/data-table-column-apply.d.ts +0 -2
  4. package/dist/components/data/data-table/data-table-column-apply.js +73 -84
  5. package/dist/components/data/data-table/data-table-column-list.js +64 -94
  6. package/dist/components/data/data-table/data-table-column-tree-cache.d.ts +6 -12
  7. package/dist/components/data/data-table/data-table-column-tree-cache.js +131 -250
  8. package/dist/components/data/data-table/patch-column-tree-indicators-from-grid.d.ts +0 -5
  9. package/dist/components/data/data-table/patch-column-tree-indicators-from-grid.js +11 -28
  10. package/dist/components/data/data-table/use-data-table-column-list-sync.d.ts +0 -10
  11. package/dist/components/data/data-table/use-data-table-column-list-sync.js +196 -250
  12. package/dist/components/data/nested-list/components/NestedListContent.d.ts +2 -10
  13. package/dist/components/data/nested-list/components/NestedListContent.js +138 -253
  14. package/dist/components/data/nested-list/components/SortableItem.d.ts +1 -2
  15. package/dist/components/data/nested-list/components/SortableItem.js +60 -62
  16. package/dist/components/data/nested-list/hooks/useNestedListDragDrop.d.ts +20 -10
  17. package/dist/components/data/nested-list/hooks/useNestedListDragDrop.js +233 -44
  18. package/dist/components/data/nested-list/nested-list-constants.d.ts +1 -4
  19. package/dist/components/data/nested-list/nested-list-constants.js +4 -10
  20. package/dist/components/data/nested-list/nested-list.js +336 -322
  21. package/dist/components/data/nested-list/nested-list.types.d.ts +0 -17
  22. package/dist/components/data-display/calendar/calendar-apply-validation.d.ts +2 -0
  23. package/dist/components/data-display/calendar/calendar-apply-validation.js +64 -67
  24. package/dist/components/data-display/calendar/calendar-available-view.d.ts +27 -0
  25. package/dist/components/data-display/calendar/calendar-available-view.js +85 -0
  26. package/dist/components/data-display/calendar/calendar-config.js +1 -1
  27. package/dist/components/data-display/calendar/calendar-day-picker-components.d.ts +4 -2
  28. package/dist/components/data-display/calendar/calendar-day-picker-components.js +234 -164
  29. package/dist/components/data-display/calendar/calendar-day-picker-view.js +77 -76
  30. package/dist/components/data-display/calendar/calendar-fiscal-day-cell.d.ts +9 -0
  31. package/dist/components/data-display/calendar/calendar-fiscal-day-cell.js +45 -0
  32. package/dist/components/data-display/calendar/calendar-fiscal-period-nav.d.ts +6 -0
  33. package/dist/components/data-display/calendar/calendar-fiscal-period-nav.js +34 -18
  34. package/dist/components/data-display/calendar/calendar-footer.js +21 -21
  35. package/dist/components/data-display/calendar/calendar-injected-week-row.d.ts +5 -0
  36. package/dist/components/data-display/calendar/calendar-injected-week-row.js +92 -0
  37. package/dist/components/data-display/calendar/calendar-leading-week.utils.d.ts +16 -0
  38. package/dist/components/data-display/calendar/calendar-leading-week.utils.js +51 -0
  39. package/dist/components/data-display/calendar/calendar-month-picker-panel.js +50 -49
  40. package/dist/components/data-display/calendar/calendar-month-utils.d.ts +5 -0
  41. package/dist/components/data-display/calendar/calendar-month-utils.js +85 -64
  42. package/dist/components/data-display/calendar/calendar-orphan-week.d.ts +23 -0
  43. package/dist/components/data-display/calendar/calendar-padding-week.utils.d.ts +3 -1
  44. package/dist/components/data-display/calendar/calendar-padding-week.utils.js +7 -5
  45. package/dist/components/data-display/calendar/calendar-period-cell.js +45 -46
  46. package/dist/components/data-display/calendar/calendar-quarter-panes.js +33 -31
  47. package/dist/components/data-display/calendar/calendar-selection-appearance.d.ts +10 -0
  48. package/dist/components/data-display/calendar/calendar-selection-appearance.js +53 -39
  49. package/dist/components/data-display/calendar/calendar-selection.d.ts +25 -0
  50. package/dist/components/data-display/calendar/calendar-selection.js +52 -23
  51. package/dist/components/data-display/calendar/calendar-week-number-cell.d.ts +2 -1
  52. package/dist/components/data-display/calendar/calendar-week-number-cell.js +59 -45
  53. package/dist/components/data-display/calendar/calendar-week-utils.d.ts +15 -4
  54. package/dist/components/data-display/calendar/calendar-week-utils.js +59 -50
  55. package/dist/components/data-display/calendar/calendar-year-panes.d.ts +3 -0
  56. package/dist/components/data-display/calendar/calendar-year-panes.js +53 -49
  57. package/dist/components/data-display/calendar/calendar.js +146 -143
  58. package/dist/components/data-display/calendar/calendar.types.d.ts +5 -0
  59. package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +2 -1
  60. package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +79 -74
  61. package/dist/components/data-display/calendar/use-calendar-state.d.ts +3 -1
  62. package/dist/components/data-display/calendar/use-calendar-state.js +394 -314
  63. package/dist/components/forms/date-picker/date-picker.js +60 -58
  64. package/dist/components/forms/date-picker/date-picker.types.d.ts +5 -0
  65. package/dist/components/forms/date-picker/date-range-picker.js +66 -64
  66. package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +1 -0
  67. package/dist/components/forms/date-picker/fiscal-pass-through.js +3 -2
  68. package/dist/components/forms/date-picker/fiscal-picker-fixtures.d.ts +17 -0
  69. package/dist/components/forms/date-picker/month-picker.js +61 -59
  70. package/dist/components/forms/date-picker/month-range-picker.js +63 -61
  71. package/dist/components/forms/date-picker/multi-date-picker.js +51 -49
  72. package/dist/components/forms/date-picker/multi-month-picker.js +49 -47
  73. package/dist/components/forms/date-picker/multi-quarter-picker.js +51 -47
  74. package/dist/components/forms/date-picker/multi-week-picker.js +53 -51
  75. package/dist/components/forms/date-picker/multi-year-picker.js +53 -49
  76. package/dist/components/forms/date-picker/quarter-picker.js +51 -47
  77. package/dist/components/forms/date-picker/quarter-range-picker.js +50 -46
  78. package/dist/components/forms/date-picker/week-picker.js +130 -126
  79. package/dist/components/forms/date-picker/week-range-picker.js +159 -155
  80. package/dist/components/forms/date-picker/year-picker.js +52 -48
  81. package/dist/components/forms/date-picker/year-range-picker.js +52 -48
  82. package/dist/form-react/Fields/DateInputField.js +51 -50
  83. package/dist/form-react/Fields/DateRangeField.js +14 -13
  84. package/dist/form-react/Fields/MonthRangeField.js +29 -28
  85. package/dist/form-react/Fields/MultiMonthPickerField.js +13 -12
  86. package/dist/form-react/Fields/MultiWeekPickerField.js +35 -27
  87. package/dist/form-react/Fields/MultiYearPickerField.d.ts +8 -0
  88. package/dist/form-react/Fields/MultiYearPickerField.js +58 -0
  89. package/dist/form-react/Fields/WeekRangePicker.js +33 -32
  90. package/dist/form-react/Fields/YearPickerField.d.ts +8 -0
  91. package/dist/form-react/Fields/YearPickerField.js +58 -0
  92. package/dist/form-react/Fields/YearRangePickerField.d.ts +8 -0
  93. package/dist/form-react/Fields/YearRangePickerField.js +58 -0
  94. package/dist/form-react/registry/defaultFieldRegistrations.d.ts +1 -1
  95. package/dist/form-react/registry/defaultFieldRegistrations.js +16 -13
  96. package/dist/form-react/types/fields.types.d.ts +72 -1
  97. package/dist/form-react/types/fieldsOutput.types.d.ts +8 -2
  98. package/dist/form-react/utils/fieldDefaults.utils.js +1 -1
  99. package/dist/impact-nova-components.css +13 -6
  100. package/dist/impact-nova.css +1 -1
  101. package/dist/lib/fiscal-calendar/index.d.ts +2 -2
  102. package/dist/lib/fiscal-calendar/index.js +26 -28
  103. package/dist/lib/fiscal-calendar/types.d.ts +0 -7
  104. package/dist/lib/fiscal-calendar/week-selection.d.ts +3 -4
  105. package/dist/lib/fiscal-calendar/week-selection.js +52 -79
  106. package/dist/llms/rules/ag-grid.js +1 -1
  107. package/dist/llms/rules/installation.js +1 -1
  108. package/dist/llms/rules/requirements.js +1 -1
  109. package/package.json +1 -1
  110. package/dist/components/data/data-table/column-picker-authority.d.ts +0 -34
  111. package/dist/components/data/data-table/column-picker-authority.js +0 -116
  112. package/dist/components/data/data-table/column-picker-drop-validation.d.ts +0 -7
  113. package/dist/components/data/data-table/column-picker-drop-validation.js +0 -37
  114. package/dist/components/data/data-table/data-table-column-list-tree-apply.d.ts +0 -10
  115. package/dist/components/data/data-table/data-table-column-list-tree-apply.js +0 -79
  116. package/dist/components/data/data-table/data-table-flat-column-virtual-rows.d.ts +0 -26
  117. package/dist/components/data/data-table/data-table-flat-column-virtual-rows.js +0 -195
  118. package/dist/components/data/data-table/data-table-picker-column-eligibility.d.ts +0 -1
  119. package/dist/components/data/data-table/data-table-picker-column-eligibility.js +0 -7
  120. package/dist/components/data/data-table/reconcile-column-tree-from-grid.d.ts +0 -12
  121. package/dist/components/data/data-table/reconcile-column-tree-from-grid.js +0 -12
  122. package/dist/components/data/nested-list/hooks/useVirtualNestedListDrag.d.ts +0 -24
  123. package/dist/components/data/nested-list/hooks/useVirtualNestedListDrag.js +0 -128
  124. package/dist/components/data/nested-list/nested-list-display-utils.d.ts +0 -11
  125. package/dist/components/data/nested-list/nested-list-display-utils.js +0 -74
  126. package/dist/components/data/nested-list/nested-list-drop-engine.d.ts +0 -31
  127. package/dist/components/data/nested-list/nested-list-drop-engine.js +0 -209
  128. package/dist/components/data/nested-list/nested-list-flat-virtual-handlers.d.ts +0 -26
  129. package/dist/components/data/nested-list/nested-list-flat-virtual-handlers.js +0 -67
  130. package/dist/components/data/nested-list/nested-list-item-tree-mutations.d.ts +0 -4
  131. package/dist/components/data/nested-list/nested-list-item-tree-mutations.js +0 -43
  132. package/dist/components/data/nested-list/nested-list-lazy-flat-rows.d.ts +0 -3
  133. package/dist/components/data/nested-list/nested-list-lazy-flat-rows.js +0 -34
  134. package/dist/components/data/nested-list/nested-list-row-estimates.d.ts +0 -9
  135. package/dist/components/data/nested-list/nested-list-row-estimates.js +0 -14
  136. package/dist/components/data/nested-list/nested-list-scroll-anchor.d.ts +0 -36
  137. package/dist/components/data/nested-list/nested-list-scroll-anchor.js +0 -47
  138. package/dist/components/data/nested-list/nested-list-virtual-drop.d.ts +0 -59
  139. package/dist/components/data/nested-list/nested-list-virtual-drop.js +0 -341
  140. package/dist/lib/hash/fnv1a128.d.ts +0 -16
  141. package/dist/lib/hash/fnv1a128.js +0 -21
@@ -1,378 +1,392 @@
1
- import { jsx as v, jsxs as he } from "react/jsx-runtime";
2
- import K, { useMemo as C, useCallback as c, useRef as Ge } from "react";
3
- import { SortableItem as Oe } from "./components/SortableItem.js";
4
- import { SelectionMode as Ie } from "./nested-list.types.js";
5
- import { useNestedListDragDrop as Me } from "./hooks/useNestedListDragDrop.js";
6
- import { useNestedListSelectAll as et } from "./hooks/useNestedListSelectAll.js";
7
- import { useNestedListState as tt } from "./hooks/useNestedListState.js";
8
- import { useNestedListHandlers as st } from "./hooks/useNestedListHandlers.js";
9
- import { NestedListHeader as it } from "./components/NestedListHeader.js";
10
- import { NestedListCategoryFilters as lt } from "./components/NestedListCategoryFilters.js";
11
- import { NestedListContent as ot } from "./components/NestedListContent.js";
12
- import { NestedListApplyDiscardButtons as rt } from "./components/NestedListApplyDiscardButtons.js";
13
- import { applyNestedListDrop as nt } from "./nested-list-drop-engine.js";
14
- import { shouldUseNestedListRevisionTracking as at, computeNestedListHasChanges as ct } from "./nested-list-change-detection.js";
15
- import { countNestedListLeaves as dt, computeNestedListSubtreeLeafSelection as mt } from "./nested-list-tree-utils.js";
16
- import { extractNestedListCategories as ft, filterNestedListItemsByCategories as ut, filterNestedListItemsBySearch as ht, flattenNestedListTree as It, updateNestedListParentCheckedState as Lt } from "./nested-list-display-utils.js";
17
- import { updateNestedListParentsUpward as pt, collectNestedListGroupItemIds as Nt, findNestedListItemById as Le } from "./nested-list-item-tree-mutations.js";
18
- import { resolveVirtualDropReorderIndices as St, computeFlatVirtualHeaderSelection as gt, triggerFlatVirtualSelectAll as vt, triggerFlatVirtualItemToggle as Ct } from "./nested-list-flat-virtual-handlers.js";
19
- import { resolveGroupHeaderDropTarget as kt } from "./nested-list-virtual-drop.js";
20
- import { cn as xt } from "../../../lib/utils.js";
21
- import { useImpactNovaI18n as Tt } from "../../../i18n/use-impact-nova-i18n.js";
22
- const Xt = ({
23
- items: Q,
24
- onChange: u,
25
- onSubmit: X,
26
- onCancel: Y,
27
- onItemToggle: h,
28
- onDragEnd: y,
29
- renderLabelExtras: Z,
30
- renderActions: $,
31
- enableSearch: pe = !0,
32
- enableDragDrop: E = !0,
33
- enableSelectAll: Ne = !0,
34
- enableGroupBy: k = !1,
35
- getCategory: I,
36
- searchPlaceholder: Se,
37
- className: ge = "",
1
+ import { jsx as S, jsxs as ie } from "react/jsx-runtime";
2
+ import X, { useMemo as T, useCallback as A } from "react";
3
+ import { SortableItem as Ke } from "./components/SortableItem.js";
4
+ import { SelectionMode as _ } from "./nested-list.types.js";
5
+ import { useNestedListDragDrop as Qe } from "./hooks/useNestedListDragDrop.js";
6
+ import { useNestedListSelectAll as Xe } from "./hooks/useNestedListSelectAll.js";
7
+ import { useNestedListState as Ye } from "./hooks/useNestedListState.js";
8
+ import { useNestedListHandlers as Ze } from "./hooks/useNestedListHandlers.js";
9
+ import { NestedListHeader as $e } from "./components/NestedListHeader.js";
10
+ import { NestedListCategoryFilters as Me } from "./components/NestedListCategoryFilters.js";
11
+ import { NestedListContent as Ge } from "./components/NestedListContent.js";
12
+ import { NestedListApplyDiscardButtons as et } from "./components/NestedListApplyDiscardButtons.js";
13
+ import { shouldUseNestedListRevisionTracking as tt, computeNestedListHasChanges as st } from "./nested-list-change-detection.js";
14
+ import { cn as rt } from "../../../lib/utils.js";
15
+ import { useImpactNovaI18n as nt } from "../../../i18n/use-impact-nova-i18n.js";
16
+ const ae = (i, t) => {
17
+ if (!t || typeof t != "string") return i;
18
+ const o = t.toLowerCase(), c = [];
19
+ return i.forEach((n) => {
20
+ const d = n.label.toLowerCase().includes(o), l = n.children ? ae(n.children, t) : void 0;
21
+ (d || l && l.length > 0) && c.push({
22
+ ...n,
23
+ children: l || n.children
24
+ });
25
+ }), c;
26
+ }, he = (i) => i.map((t) => {
27
+ if (t.children && t.children.length > 0) {
28
+ const o = he(t.children), c = o.every((n) => n.checked);
29
+ return {
30
+ ...t,
31
+ checked: c,
32
+ children: o
33
+ };
34
+ }
35
+ return t;
36
+ }), lt = (i, t) => {
37
+ const o = /* @__PURE__ */ new Set(), c = (n) => {
38
+ n.forEach((d) => {
39
+ const l = t ? t(d) : d.category;
40
+ l && o.add(l), d.children && c(d.children);
41
+ });
42
+ };
43
+ return c(i), Array.from(o).sort();
44
+ }, ue = (i, t, o) => {
45
+ if (t.size === 0) return i;
46
+ const c = [];
47
+ return i.forEach((n) => {
48
+ const d = o ? o(n) : n.category, l = d && t.has(d), m = n.children ? ue(n.children, t, o) : void 0;
49
+ (l || m && m.length > 0) && c.push({
50
+ ...n,
51
+ children: m
52
+ });
53
+ }), c;
54
+ }, fe = (i, t, o, c = 0, n = 0) => {
55
+ const d = [];
56
+ return i.forEach((l) => {
57
+ if (d.push({
58
+ item: l,
59
+ level: c,
60
+ indentLevel: l.category === "structure" ? 0 : n
61
+ }), !t[l.id] && l.children && l.children.length > 0 && l.id !== o) {
62
+ const y = l.category === "structure" ? 0 : n + 1;
63
+ d.push(
64
+ ...fe(
65
+ l.children,
66
+ t,
67
+ o,
68
+ c + 1,
69
+ y
70
+ )
71
+ );
72
+ }
73
+ }), d;
74
+ }, St = ({
75
+ items: i,
76
+ onChange: t,
77
+ onSubmit: o,
78
+ onCancel: c,
79
+ onItemToggle: n,
80
+ onDragEnd: d,
81
+ renderLabelExtras: l,
82
+ renderActions: m,
83
+ enableSearch: y = !0,
84
+ enableDragDrop: H = !0,
85
+ enableSelectAll: pe = !0,
86
+ enableGroupBy: g = !1,
87
+ getCategory: C,
88
+ searchPlaceholder: me,
89
+ className: Ie = "",
38
90
  groupLabel: ve,
39
- enableApplyDiscard: B = !1,
40
- enableCollapse: G = !0,
91
+ enableApplyDiscard: p = !1,
92
+ enableCollapse: Y = !0,
41
93
  enableGlobalCollapse: Ce = !0,
42
- submitButtonLabel: ke,
43
- cancelButtonLabel: xe,
44
- selectionMode: x = Ie.CASCADE_DOWN,
45
- initialCollapsedItems: Te,
46
- onCollapseChange: O,
47
- canDrag: L,
48
- isValidDropTarget: U,
49
- dragMode: V,
50
- onVirtualReorder: F,
51
- onVirtualDrop: _,
52
- flatVirtualRowResolver: j,
53
- onFlatVirtualSelectAll: M
94
+ submitButtonLabel: Ne,
95
+ cancelButtonLabel: Le,
96
+ selectionMode: N = _.CASCADE_DOWN,
97
+ initialCollapsedItems: Se,
98
+ onCollapseChange: Z,
99
+ canDrag: w
54
100
  }) => {
55
- const { t: b } = Tt(), De = Se ?? b("nestedList.searchPlaceholder"), Be = ke ?? b("nestedList.apply"), be = xe ?? b("nestedList.reset"), {
56
- items: s,
57
- setItems: a,
58
- itemsRef: T,
59
- savedItems: w,
60
- setSavedItems: ee,
61
- markUserChange: n,
62
- searchText: p,
63
- setSearchText: we,
64
- collapsedItems: o,
65
- setCollapsedItems: Ae,
66
- isListCollapsed: A,
67
- setIsListCollapsed: He,
68
- activeId: d,
101
+ const { t: P } = nt(), ge = me ?? P("nestedList.searchPlaceholder"), ke = Ne ?? P("nestedList.apply"), Ee = Le ?? P("nestedList.reset"), {
102
+ items: h,
103
+ setItems: L,
104
+ itemsRef: O,
105
+ savedItems: x,
106
+ setSavedItems: $,
107
+ markUserChange: R,
108
+ searchText: b,
109
+ setSearchText: De,
110
+ collapsedItems: I,
111
+ setCollapsedItems: Te,
112
+ isListCollapsed: z,
113
+ setIsListCollapsed: Ae,
114
+ activeId: v,
69
115
  setActiveId: W,
70
- setOverId: q,
71
- selectedCategories: H,
72
- setSelectedCategories: Pe,
73
- itemsToBlink: te,
74
- setItemsToBlink: J,
75
- isNormalized: ze,
76
- normalizedState: Re,
77
- batchUpdateItems: ye
78
- } = tt({
79
- initialItems: Q,
80
- enableApplyDiscard: B,
81
- enableNormalizedState: j != null || at(dt(Q)),
82
- initialCollapsedItems: Te
83
- }), l = C(
84
- () => j?.(p) ?? null,
85
- [j, p]
86
- );
87
- K.useEffect(() => {
88
- O?.(o);
89
- }, [o, O]);
90
- const [P, se] = K.useState(0), [z, Ee] = K.useState(0), {
91
- sensors: Ue,
92
- handleDragEnd: Ve,
93
- isValidDrop: ie
94
- } = Me({
95
- items: s,
96
- onDragEnd: y,
97
- collapsedItems: o,
98
- canDrag: L,
99
- isValidDropTarget: U
100
- }), Fe = C(
101
- () => k ? ft(s, I) : [],
102
- [s, k, I]
103
- ), m = C(() => {
104
- let e = s;
105
- return k && H.size > 0 && (e = ut(e, H, I)), p && (e = ht(e, p)), e;
106
- }, [s, p, k, H, I]), N = C(() => l ? [] : It(m, o, d), [l, m, o, d]), le = c((e, t, i) => {
107
- n();
108
- let r = t, f = i;
109
- if (N.find((g) => g.item.id === t)?.item.category === "group") {
110
- const g = kt(
111
- N,
112
- t,
113
- i,
114
- o
115
- );
116
- r = g.overId, f = g.insertAfter;
117
- }
118
- const D = nt(s, {
119
- activeId: e,
120
- overId: r,
121
- insertAfter: f,
122
- collapsedItems: o,
123
- canDrag: L,
124
- isValidDropTarget: U
125
- });
126
- D !== s && (a(D), u(D), y?.(e, t));
127
- }, [s, N, o, L, U, n, u, y, a]), _e = c((e, t, i) => {
128
- if (_) {
129
- e !== t && _(e, t, i);
130
- return;
131
- }
132
- const r = St({
133
- activeId: e,
134
- overId: t,
135
- insertAfter: i,
136
- flatVirtualRowModel: l,
137
- displayItems: N,
138
- onVirtualReorder: F
139
- });
140
- if (r) {
141
- F?.(r.fromIndex, r.toIndex);
142
- return;
116
+ setOverId: j,
117
+ selectedCategories: B,
118
+ setSelectedCategories: we,
119
+ itemsToBlink: M,
120
+ setItemsToBlink: F,
121
+ // Normalized state helpers (for optimized operations)
122
+ isNormalized: Pe,
123
+ normalizedState: xe,
124
+ batchUpdateItems: Re
125
+ } = Ye({
126
+ initialItems: i,
127
+ enableApplyDiscard: p,
128
+ // Enable normalized state for large datasets (can be made configurable via props)
129
+ enableNormalizedState: tt(i.length),
130
+ initialCollapsedItems: Se
131
+ });
132
+ X.useEffect(() => {
133
+ Z?.(I);
134
+ }, [I, Z]);
135
+ const [V, G] = X.useState(0), [U, be] = X.useState(0), {
136
+ sensors: ze,
137
+ handleDragEnd: Be,
138
+ isValidDrop: ee
139
+ } = Qe({
140
+ items: h,
141
+ onDragEnd: d,
142
+ collapsedItems: I,
143
+ canDrag: w
144
+ }), Ve = T(
145
+ () => g ? lt(h, C) : [],
146
+ [h, g, C]
147
+ ), k = T(() => {
148
+ let e = h;
149
+ return g && B.size > 0 && (e = ue(e, B, C)), b && (e = ae(e, b)), e;
150
+ }, [h, b, g, B, C]), q = T(
151
+ () => fe(k, I, v),
152
+ [k, I, v]
153
+ ), { allChecked: E, someChecked: Ue } = T(() => {
154
+ let e = !0, s = !1;
155
+ for (const { item: r } of q)
156
+ if (!(!(!r.children || r.children.length === 0) || r.category === "structure") && (r.checked ? s = !0 : e = !1, s && !e))
157
+ break;
158
+ return { allChecked: e && s, someChecked: s };
159
+ }, [q]), _e = Ue && !E, J = (e, s) => {
160
+ for (const r of e) {
161
+ if (r.id === s) return r;
162
+ if (r.children) {
163
+ const u = J(r.children, s);
164
+ if (u) return u;
165
+ }
143
166
  }
144
- le(e, t, i);
145
- }, [N, l, le, _, F]), { allChecked: S, someChecked: je } = C(() => {
146
- if (l)
147
- return gt(l);
148
- const { totalLeafCount: e, checkedLeafCount: t } = mt(m);
149
- return {
150
- allChecked: e > 0 && t === e,
151
- someChecked: t > 0
152
- };
153
- }, [m, l]), We = je && !S, qe = c(
154
- (e, t) => pt(e, t, x),
155
- [x]
156
- ), {
157
- handleToggle: oe,
167
+ return null;
168
+ }, ye = A(
169
+ (e, s) => {
170
+ if (N === _.INDEPENDENT)
171
+ return e;
172
+ const r = (f, a) => f.id === a ? !0 : f.children ? f.children.some(
173
+ (D) => r(D, a)
174
+ ) : !1, u = (f) => f.map((a) => {
175
+ if (a.id === s)
176
+ return a;
177
+ if (a.children && r(a, s)) {
178
+ const D = u(a.children);
179
+ let K;
180
+ return N === _.CASCADE_UP_DOWN ? K = D.some((Q) => Q.checked) : K = D.every((Q) => Q.checked), {
181
+ ...a,
182
+ checked: K,
183
+ children: D
184
+ };
185
+ }
186
+ return a;
187
+ });
188
+ return u(e);
189
+ },
190
+ [N]
191
+ ), te = (e) => {
192
+ const s = [];
193
+ return e.forEach((r) => {
194
+ r.children && r.children.length > 0 && (s.push(r.id), s.push(...te(r.children)));
195
+ }), s;
196
+ }, {
197
+ handleToggle: se,
158
198
  handleToggleCollapse: re,
159
- handleCollapseAll: Je,
160
- handleToggleCategory: Ke
161
- } = st({
162
- setItems: a,
163
- itemsRef: T,
164
- findItemById: Le,
165
- updateParentsUpward: qe,
199
+ handleCollapseAll: He,
200
+ handleToggleCategory: Oe
201
+ } = Ze({
202
+ setItems: L,
203
+ itemsRef: O,
204
+ findItemById: J,
205
+ updateParentsUpward: ye,
166
206
  onChange: (e) => {
167
- se((t) => t + 1), u(e);
207
+ G((s) => s + 1), t(e);
168
208
  },
169
- onItemToggle: h,
170
- getCategory: I,
171
- setCollapsedItems: Ae,
172
- setIsListCollapsed: He,
173
- setSelectedCategories: Pe,
174
- markUserChange: n,
175
- selectionMode: x,
176
- isNormalized: ze,
177
- normalizedState: Re,
178
- batchUpdateItems: ye
179
- }), ne = Ge(re), {
180
- collectVisibleItemIds: ae,
181
- findItemsNotSelected: ce,
182
- collectVisibleItemsForCallback: de,
183
- updateVisibleItems: me
184
- } = et({
185
- findItemById: Le,
186
- getCategory: I
187
- }), Qe = c(() => {
188
- if (vt(l, S, M)) {
189
- n();
190
- return;
191
- }
192
- n();
193
- const e = T.current, t = ae(m), i = ce(
194
- m,
209
+ onItemToggle: n,
210
+ getCategory: C,
211
+ setCollapsedItems: Te,
212
+ setIsListCollapsed: Ae,
213
+ setSelectedCategories: we,
214
+ markUserChange: R,
215
+ selectionMode: N,
216
+ // Pass normalized state helpers for optimized operations
217
+ isNormalized: Pe,
218
+ normalizedState: xe,
219
+ batchUpdateItems: Re
220
+ }), {
221
+ collectVisibleItemIds: ne,
222
+ findItemsNotSelected: le,
223
+ collectVisibleItemsForCallback: oe,
224
+ updateVisibleItems: ce
225
+ } = Xe({
226
+ findItemById: J,
227
+ getCategory: C
228
+ }), We = A(() => {
229
+ R();
230
+ const e = O.current, s = ne(k), r = le(
231
+ k,
195
232
  e,
196
- t
233
+ s
197
234
  );
198
- i.size > 0 && (J(new Set(i)), setTimeout(() => J(/* @__PURE__ */ new Set()), 600));
199
- const r = me(
235
+ r.size > 0 && (F(new Set(r)), setTimeout(() => F(/* @__PURE__ */ new Set()), 600));
236
+ const u = ce(
200
237
  e,
201
- t,
202
- !S
203
- ), f = x === Ie.INDEPENDENT ? r : Lt(r);
204
- if (a(f), u(f), h) {
205
- const R = de(
238
+ s,
239
+ !E
240
+ ), f = N === _.INDEPENDENT ? u : he(u);
241
+ if (L(f), t(f), n) {
242
+ const a = oe(
206
243
  e,
207
- t,
208
- !S
244
+ s,
245
+ !E
209
246
  );
210
- h(R);
247
+ n(a);
211
248
  }
212
249
  }, [
213
- S,
214
- l,
215
- u,
216
- M,
217
- h,
218
- m,
219
- ae,
220
- ce,
221
- de,
222
- me,
250
+ E,
251
+ t,
223
252
  n,
224
- T,
225
- a,
226
- J,
227
- x
228
- ]), fe = c(
229
- (e) => {
230
- if (l) {
231
- n(), Ct(
232
- l,
233
- T.current,
234
- e,
235
- h
236
- );
237
- return;
238
- }
239
- oe(e);
240
- },
241
- [l, n, h, T, oe]
242
- ), Xe = c(
243
- (e, t, i, r) => {
244
- const f = d ? ie(d, e.id) : !1, R = te.has(e.id), D = L ? !L(e, t) : e.isDragDisabled ?? !1;
245
- return /* @__PURE__ */ v(
246
- Oe,
253
+ k,
254
+ ne,
255
+ le,
256
+ oe,
257
+ ce,
258
+ R,
259
+ O,
260
+ L,
261
+ F,
262
+ N
263
+ ]), je = A(
264
+ (e, s, r) => {
265
+ const u = v ? ee(v, e.id) : !1, f = M.has(e.id), a = w ? !w(e, s) : e.isDragDisabled ?? !1;
266
+ return /* @__PURE__ */ S(
267
+ Ke,
247
268
  {
248
269
  item: e,
249
- level: t,
250
- indentLevel: i,
251
- isCollapsed: o[e.id] || !1,
252
- onToggle: fe,
253
- onToggleCollapse: (g) => ne.current(g),
254
- isAnyDragging: r?.isAnyDragging ?? d !== null,
255
- isValidDrop: f,
256
- enableDragDrop: E,
257
- dragMode: V,
258
- enableCollapse: G,
259
- shouldBlink: R,
260
- isDragDisabled: D,
261
- renderLabelExtras: Z,
262
- renderActions: $
270
+ level: s,
271
+ indentLevel: r,
272
+ isCollapsed: I[e.id] || !1,
273
+ onToggle: se,
274
+ onToggleCollapse: re,
275
+ isAnyDragging: v !== null,
276
+ isValidDrop: u,
277
+ enableDragDrop: H,
278
+ enableCollapse: Y,
279
+ shouldBlink: f,
280
+ isDragDisabled: a,
281
+ renderLabelExtras: l,
282
+ renderActions: m
263
283
  },
264
284
  e.id
265
285
  );
266
286
  },
267
287
  [
268
- o,
269
- fe,
270
- d,
271
- ie,
272
- E,
273
- V,
274
- te,
275
- G,
276
- L,
277
- Z,
278
- $
288
+ I,
289
+ se,
290
+ re,
291
+ v,
292
+ ee,
293
+ H,
294
+ M,
295
+ Y,
296
+ w,
297
+ l,
298
+ m
279
299
  ]
280
- ), Ye = Nt(s).length > 0, ue = C(
281
- () => ct({
282
- enableApplyDiscard: B,
283
- items: s,
284
- savedItems: w,
285
- revision: P,
286
- savedRevision: z
300
+ ), Fe = te(h).length > 0, de = T(
301
+ () => st({
302
+ enableApplyDiscard: p,
303
+ items: h,
304
+ savedItems: x,
305
+ revision: V,
306
+ savedRevision: U
287
307
  }),
288
- [B, s, w, P, z]
289
- ), Ze = c(() => {
290
- ee(s), Ee(P), X?.(s);
291
- }, [s, X, ee, P]), $e = c(() => {
292
- a(w), se(z), Y?.();
293
- }, [w, Y, a, z]);
294
- return /* @__PURE__ */ he(
308
+ [p, h, x, V, U]
309
+ ), qe = A(() => {
310
+ p && ($(h), be(V), o?.(h));
311
+ }, [p, h, o, $, V]), Je = A(() => {
312
+ p && (L(x), G(U), c?.());
313
+ }, [p, x, c, L, U]);
314
+ return /* @__PURE__ */ ie(
295
315
  "div",
296
316
  {
297
- className: xt("flex flex-col min-h-0", ge),
317
+ className: rt("flex flex-col min-h-0", Ie),
298
318
  "data-component": "nested-list",
299
- "data-has-changes": ue ? "" : void 0,
300
- "data-list-collapsed": A ? "" : void 0,
319
+ "data-has-changes": de ? "" : void 0,
320
+ "data-list-collapsed": z ? "" : void 0,
301
321
  children: [
302
- /* @__PURE__ */ he("div", { className: "flex-shrink-0", children: [
303
- /* @__PURE__ */ v(
304
- it,
322
+ /* @__PURE__ */ ie("div", { className: "flex-shrink-0", children: [
323
+ /* @__PURE__ */ S(
324
+ $e,
305
325
  {
306
- hasItemsWithChildren: Ye,
307
- isListCollapsed: A,
308
- onCollapseAll: Je,
309
- enableSearch: pe,
310
- enableSelectAll: Ne,
326
+ hasItemsWithChildren: Fe,
327
+ isListCollapsed: z,
328
+ onCollapseAll: He,
329
+ enableSearch: y,
330
+ enableSelectAll: pe,
311
331
  groupLabel: ve,
312
- allChecked: S,
313
- isIndeterminate: We,
314
- onSelectAll: Qe,
315
- searchText: p,
332
+ allChecked: E,
333
+ isIndeterminate: _e,
334
+ onSelectAll: We,
335
+ searchText: b,
316
336
  onSearchChange: (e) => {
317
- we(e.target.value);
337
+ De(e.target.value);
318
338
  },
319
- searchPlaceholder: De,
320
- selectAllLabel: b("nestedList.selectAll"),
339
+ searchPlaceholder: ge,
340
+ selectAllLabel: P("nestedList.selectAll"),
321
341
  enableCollapse: Ce
322
342
  }
323
343
  ),
324
- /* @__PURE__ */ v(
325
- lt,
344
+ /* @__PURE__ */ S(
345
+ Me,
326
346
  {
327
- isListCollapsed: A,
328
- enableGroupBy: k,
329
- categories: Fe,
330
- selectedCategories: H,
331
- onToggleCategory: Ke
347
+ isListCollapsed: z,
348
+ enableGroupBy: g,
349
+ categories: Ve,
350
+ selectedCategories: B,
351
+ onToggleCategory: Oe
332
352
  }
333
353
  )
334
354
  ] }),
335
- /* @__PURE__ */ v("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ v(
336
- ot,
355
+ /* @__PURE__ */ S("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ S(
356
+ Ge,
337
357
  {
338
- isListCollapsed: A,
339
- enableDragDrop: E,
340
- dragMode: V,
341
- sensors: Ue,
342
- items: N,
343
- flatVirtualRowModel: l,
344
- renderItem: Xe,
345
- activeId: d,
346
- onToggleCollapse: re,
347
- toggleCollapseHandlerRef: ne,
348
- collapsedItems: o,
349
- onVirtualDrop: _e,
358
+ isListCollapsed: z,
359
+ enableDragDrop: H,
360
+ sensors: ze,
361
+ items: q,
362
+ renderItem: je,
363
+ activeId: v,
350
364
  onDragStart: (e) => {
351
365
  W(e.active.id);
352
366
  },
353
367
  onDragOver: (e) => {
354
- q(e.over?.id);
368
+ j(e.over?.id);
355
369
  },
356
370
  onDragEnd: (e) => {
357
- W(null), q(null), n(), Ve(e, (t) => {
358
- const i = t(s);
359
- a(i), u(i);
371
+ W(null), j(null), R(), Be(e, (s) => {
372
+ const r = s(h);
373
+ L(r), t(r);
360
374
  });
361
375
  },
362
376
  onDragCancel: () => {
363
- W(null), q(null);
377
+ W(null), j(null);
364
378
  }
365
379
  }
366
380
  ) }),
367
- /* @__PURE__ */ v(
368
- rt,
381
+ /* @__PURE__ */ S(
382
+ et,
369
383
  {
370
- enableApplyDiscard: B,
371
- hasChanges: ue,
372
- onDiscard: $e,
373
- onApply: Ze,
374
- cancelButtonLabel: be,
375
- submitButtonLabel: Be
384
+ enableApplyDiscard: p,
385
+ hasChanges: de,
386
+ onDiscard: Je,
387
+ onApply: qe,
388
+ cancelButtonLabel: Ee,
389
+ submitButtonLabel: ke
376
390
  }
377
391
  )
378
392
  ]
@@ -380,5 +394,5 @@ const Xt = ({
380
394
  );
381
395
  };
382
396
  export {
383
- Xt as NestedList
397
+ St as NestedList
384
398
  };