impact-nova 2.5.7 → 2.5.8

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 (148) hide show
  1. package/dist/components/data/ag-grid-react/ag-grid.types.d.ts +2 -2
  2. package/dist/components/data/ag-grid-react/headers/components/date-filter-picker.d.ts +4 -2
  3. package/dist/components/data/ag-grid-react/headers/header-search-input.js +65 -65
  4. package/dist/components/data/ag-grid-react/headers/utils/date-utils.js +55 -48
  5. package/dist/components/data-display/calendar/calendar-apply-validation.d.ts +4 -2
  6. package/dist/components/data-display/calendar/calendar-apply-validation.js +80 -61
  7. package/dist/components/data-display/calendar/calendar-config.d.ts +13 -5
  8. package/dist/components/data-display/calendar/calendar-config.js +31 -20
  9. package/dist/components/data-display/calendar/calendar-day-button.js +43 -35
  10. package/dist/components/data-display/calendar/calendar-day-hover.d.ts +8 -0
  11. package/dist/components/data-display/calendar/calendar-day-hover.js +20 -0
  12. package/dist/components/data-display/calendar/calendar-day-picker-classnames.d.ts +8 -1
  13. package/dist/components/data-display/calendar/calendar-day-picker-classnames.js +40 -20
  14. package/dist/components/data-display/calendar/calendar-day-picker-components.d.ts +12 -1
  15. package/dist/components/data-display/calendar/calendar-day-picker-components.js +201 -108
  16. package/dist/components/data-display/calendar/calendar-day-picker-view.d.ts +11 -3
  17. package/dist/components/data-display/calendar/calendar-day-picker-view.js +136 -92
  18. package/dist/components/data-display/calendar/calendar-fiscal-labels.d.ts +38 -0
  19. package/dist/components/data-display/calendar/calendar-fiscal-labels.js +90 -0
  20. package/dist/components/data-display/calendar/calendar-footer-summary.d.ts +13 -4
  21. package/dist/components/data-display/calendar/calendar-footer-summary.js +101 -50
  22. package/dist/components/data-display/calendar/calendar-footer.d.ts +16 -7
  23. package/dist/components/data-display/calendar/calendar-footer.js +88 -66
  24. package/dist/components/data-display/calendar/calendar-gregorian-presets.d.ts +2 -0
  25. package/dist/components/data-display/calendar/calendar-gregorian-presets.js +26 -0
  26. package/dist/components/data-display/calendar/calendar-interval-caption.d.ts +1 -0
  27. package/dist/components/data-display/calendar/calendar-interval-caption.js +10 -0
  28. package/dist/components/data-display/calendar/calendar-interval-utils.d.ts +23 -0
  29. package/dist/components/data-display/calendar/calendar-interval-utils.js +154 -0
  30. package/dist/components/data-display/calendar/calendar-month-panes.d.ts +5 -1
  31. package/dist/components/data-display/calendar/calendar-month-panes.js +9 -7
  32. package/dist/components/data-display/calendar/calendar-month-picker-panel.d.ts +5 -1
  33. package/dist/components/data-display/calendar/calendar-month-picker-panel.js +76 -77
  34. package/dist/components/data-display/calendar/calendar-month-utils.d.ts +2 -0
  35. package/dist/components/data-display/calendar/calendar-month-utils.js +69 -60
  36. package/dist/components/data-display/calendar/calendar-padding-week.utils.d.ts +15 -0
  37. package/dist/components/data-display/calendar/calendar-padding-week.utils.js +22 -3
  38. package/dist/components/data-display/calendar/calendar-panel-context.d.ts +1 -1
  39. package/dist/components/data-display/calendar/calendar-period-cell.d.ts +18 -0
  40. package/dist/components/data-display/calendar/calendar-period-cell.js +89 -0
  41. package/dist/components/data-display/calendar/calendar-period-keyboard.d.ts +2 -0
  42. package/dist/components/data-display/calendar/calendar-period-keyboard.js +18 -0
  43. package/dist/components/data-display/calendar/calendar-preset-strip.d.ts +6 -0
  44. package/dist/components/data-display/calendar/calendar-preset-strip.js +26 -0
  45. package/dist/components/data-display/calendar/calendar-quarter-panes.d.ts +24 -0
  46. package/dist/components/data-display/calendar/calendar-quarter-panes.js +115 -0
  47. package/dist/components/data-display/calendar/calendar-quarter-utils.d.ts +19 -0
  48. package/dist/components/data-display/calendar/calendar-quarter-utils.js +95 -0
  49. package/dist/components/data-display/calendar/calendar-selection-appearance.d.ts +38 -0
  50. package/dist/components/data-display/calendar/calendar-selection-appearance.js +72 -0
  51. package/dist/components/data-display/calendar/calendar-selection.d.ts +20 -0
  52. package/dist/components/data-display/calendar/calendar-selection.js +31 -0
  53. package/dist/components/data-display/calendar/calendar-week-number-cell.d.ts +6 -1
  54. package/dist/components/data-display/calendar/calendar-week-number-cell.js +53 -38
  55. package/dist/components/data-display/calendar/calendar-week-number-header.d.ts +4 -0
  56. package/dist/components/data-display/calendar/calendar-week-number-header.js +15 -0
  57. package/dist/components/data-display/calendar/calendar-week-utils.d.ts +11 -3
  58. package/dist/components/data-display/calendar/calendar-week-utils.js +49 -42
  59. package/dist/components/data-display/calendar/calendar-year-panes.d.ts +18 -0
  60. package/dist/components/data-display/calendar/calendar-year-panes.js +98 -0
  61. package/dist/components/data-display/calendar/calendar-year-utils.d.ts +17 -0
  62. package/dist/components/data-display/calendar/calendar-year-utils.js +75 -0
  63. package/dist/components/data-display/calendar/calendar.d.ts +1 -1
  64. package/dist/components/data-display/calendar/calendar.js +303 -181
  65. package/dist/components/data-display/calendar/calendar.types.d.ts +53 -16
  66. package/dist/components/data-display/calendar/fiscal-period-caption-select.d.ts +7 -0
  67. package/dist/components/data-display/calendar/fiscal-period-caption-select.js +63 -0
  68. package/dist/components/data-display/calendar/index.d.ts +1 -1
  69. package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +12 -2
  70. package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +92 -62
  71. package/dist/components/data-display/calendar/use-calendar-state.d.ts +31 -11
  72. package/dist/components/data-display/calendar/use-calendar-state.js +370 -163
  73. package/dist/components/data-display/calendar/use-fiscal-calendar.d.ts +5 -0
  74. package/dist/components/data-display/calendar/use-fiscal-calendar.js +24 -0
  75. package/dist/components/feedback/tooltip/overflow-tooltip.js +57 -57
  76. package/dist/components/forms/date-picker/date-input-behavior.d.ts +7 -0
  77. package/dist/components/forms/date-picker/date-input-behavior.js +28 -24
  78. package/dist/components/forms/date-picker/date-picker-shell.d.ts +13 -0
  79. package/dist/components/forms/date-picker/date-picker-shell.js +31 -0
  80. package/dist/components/forms/date-picker/date-picker.js +187 -167
  81. package/dist/components/forms/date-picker/date-picker.types.d.ts +90 -43
  82. package/dist/components/forms/date-picker/date-range-picker.js +273 -224
  83. package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +13 -0
  84. package/dist/components/forms/date-picker/fiscal-pass-through.js +17 -0
  85. package/dist/components/forms/date-picker/fiscal-period-format.d.ts +9 -0
  86. package/dist/components/forms/date-picker/fiscal-period-format.js +50 -0
  87. package/dist/components/forms/date-picker/index.d.ts +12 -0
  88. package/dist/components/forms/date-picker/index.js +19 -7
  89. package/dist/components/forms/date-picker/month-picker.js +225 -182
  90. package/dist/components/forms/date-picker/month-range-picker.js +134 -110
  91. package/dist/components/forms/date-picker/multi-date-picker.js +77 -56
  92. package/dist/components/forms/date-picker/multi-month-picker.js +78 -57
  93. package/dist/components/forms/date-picker/multi-quarter-picker.d.ts +3 -0
  94. package/dist/components/forms/date-picker/multi-quarter-picker.js +177 -0
  95. package/dist/components/forms/date-picker/multi-week-picker.js +81 -70
  96. package/dist/components/forms/date-picker/multi-year-picker.d.ts +3 -0
  97. package/dist/components/forms/date-picker/multi-year-picker.js +179 -0
  98. package/dist/components/forms/date-picker/quarter-picker.d.ts +3 -0
  99. package/dist/components/forms/date-picker/quarter-picker.js +176 -0
  100. package/dist/components/forms/date-picker/quarter-range-picker.d.ts +3 -0
  101. package/dist/components/forms/date-picker/quarter-range-picker.js +177 -0
  102. package/dist/components/forms/date-picker/week-picker.js +148 -137
  103. package/dist/components/forms/date-picker/week-range-picker.js +216 -205
  104. package/dist/components/forms/date-picker/year-picker.d.ts +3 -0
  105. package/dist/components/forms/date-picker/year-picker.js +176 -0
  106. package/dist/components/forms/date-picker/year-range-picker.d.ts +3 -0
  107. package/dist/components/forms/date-picker/year-range-picker.js +179 -0
  108. package/dist/form-react/Fields/DateInputField.js +63 -58
  109. package/dist/form-react/Fields/DateRangeField.js +42 -37
  110. package/dist/form-react/Fields/MonthRangeField.js +50 -45
  111. package/dist/form-react/Fields/MultiWeekPickerField.js +7 -7
  112. package/dist/form-react/Fields/WeekRangePicker.js +44 -45
  113. package/dist/form-react/components/FieldRenderer.js +21 -23
  114. package/dist/form-react/registry/defaultFieldRegistrations.d.ts +9 -1
  115. package/dist/form-react/registry/defaultFieldRegistrations.js +27 -36
  116. package/dist/form-react/registry/resolveFieldComponent.d.ts +3 -2
  117. package/dist/form-react/registry/resolveFieldComponent.js +9 -133
  118. package/dist/form-react/types/fields.types.d.ts +19 -4
  119. package/dist/form-react/utils/date.utils.d.ts +1 -1
  120. package/dist/form-react/utils/date.utils.js +38 -38
  121. package/dist/i18n/defaultMessages.d.ts +19 -1
  122. package/dist/i18n/defaultMessages.js +37 -20
  123. package/dist/i18n/locales/de.js +18 -1
  124. package/dist/i18n/locales/es.js +18 -1
  125. package/dist/i18n/locales/hi.js +18 -1
  126. package/dist/i18n/locales/kn.js +18 -1
  127. package/dist/impact-nova-components.css +379 -3
  128. package/dist/impact-nova.css +1 -1
  129. package/dist/index.js +528 -516
  130. package/dist/lib/fiscal-calendar/build-year.d.ts +8 -0
  131. package/dist/lib/fiscal-calendar/build-year.js +173 -0
  132. package/dist/lib/fiscal-calendar/civil-date.d.ts +21 -0
  133. package/dist/lib/fiscal-calendar/civil-date.js +94 -0
  134. package/dist/lib/fiscal-calendar/index.d.ts +10 -0
  135. package/dist/lib/fiscal-calendar/index.js +40 -0
  136. package/dist/lib/fiscal-calendar/lookup.d.ts +4 -0
  137. package/dist/lib/fiscal-calendar/lookup.js +70 -0
  138. package/dist/lib/fiscal-calendar/presets.d.ts +8 -0
  139. package/dist/lib/fiscal-calendar/presets.js +99 -0
  140. package/dist/lib/fiscal-calendar/selection.d.ts +18 -0
  141. package/dist/lib/fiscal-calendar/selection.js +32 -0
  142. package/dist/lib/fiscal-calendar/types.d.ts +145 -0
  143. package/dist/lib/fiscal-calendar/types.js +10 -0
  144. package/dist/lib/fiscal-calendar/week-selection.d.ts +22 -0
  145. package/dist/lib/fiscal-calendar/week-selection.js +107 -0
  146. package/package.json +5 -1
  147. package/dist/lib/fiscal-calendar.d.ts +0 -62
  148. package/dist/lib/fiscal-calendar.js +0 -99
@@ -1,197 +1,404 @@
1
- import * as i from "react";
2
- import { isCalendarApplyDisabled as ln } from "./calendar-apply-validation.js";
3
- import { nextMonthSelection as y, getAvailableYears as gn, isMonthSelected as mn, getMonthRangeProps as Cn, isMonthDisabled as bn } from "./calendar-month-utils.js";
4
- import { calculateWeekSelection as Dn, nextWeekSelection as W, weekSelectionsToDates as cn, computeWeekRangeModifiers as vn } from "./calendar-week-utils.js";
5
- function Rn({
6
- showFooter: a,
7
- selected: t,
8
- onSelect: C,
9
- pickerType: r,
10
- weekMode: v,
11
- selectedWeeks: f,
12
- onWeekSelect: l,
13
- calendarType: B,
14
- fiscalMode: G,
15
- selectionMode: H,
16
- resolvedFiscalPattern: J,
17
- fiscalYearStartMonth: K,
18
- weekStartsOn: L,
19
- monthMode: x,
20
- selectedMonths: g,
21
- onMonthSelect: m,
22
- month: A,
23
- defaultMonth: N,
24
- onMonthChange: O,
25
- resolvedStartMonth: Q,
26
- resolvedEndMonth: S,
27
- disabled: R,
28
- onApply: Y,
29
- onCancel: U,
30
- onClear: V
1
+ import * as n from "react";
2
+ import { parseCivilDate as Wi, localDateFromCivil as V } from "../../../lib/fiscal-calendar/civil-date.js";
3
+ import { buildFiscalYear as w } from "../../../lib/fiscal-calendar/build-year.js";
4
+ import { isCalendarApplyDisabled as Ki } from "./calendar-apply-validation.js";
5
+ import { nextMonthSelection as Ri, getAvailableYears as ei, isMonthSelected as Ti, getMonthRangeProps as pi, isMonthDisabled as Fi } from "./calendar-month-utils.js";
6
+ import { calculateWeekSelection as wi, nextWeekSelection as yi, weekSelectionsToDates as hi, computeWeekRangeModifiers as di } from "./calendar-week-utils.js";
7
+ import { priorFyComparison as it, flattenDateRanges as tt, multiRangeModifiers as nt, isDateRangeArray as h, dateSelectToCalendarSelection as rt, presetIntervalToDateRange as Si, asDayPickerSelection as Ii, isMultiRangeComplete as ut, asRangeSelection as at, nextMultiRangeDateSelection as st } from "./calendar-interval-utils.js";
8
+ import { nextQuarterSelection as $i, isQuarterSelected as ft, isQuarterDisabledForBounds as lt } from "./calendar-quarter-utils.js";
9
+ import { nextYearSelection as ji, isYearSelectedForSelection as mt, isYearDisabledForBounds as ct } from "./calendar-year-utils.js";
10
+ function yt({
11
+ showFooter: r,
12
+ mode: x,
13
+ selected: s,
14
+ onSelect: g,
15
+ onSelectionChange: d,
16
+ pickerType: u,
17
+ weekMode: y,
18
+ selectedWeeks: A,
19
+ onWeekSelect: I,
20
+ calendarKind: v,
21
+ fiscalMode: ii,
22
+ granularity: ti,
23
+ resolvedFiscalPattern: ni,
24
+ fiscalConfig: l,
25
+ fiscalYearStartMonth: ri,
26
+ weekStartsOn: ui,
27
+ monthMode: S,
28
+ selectedMonths: $,
29
+ onMonthSelect: j,
30
+ selectedQuarters: _,
31
+ onQuarterSelect: C,
32
+ selectedYear: q,
33
+ onYearSelect: Y,
34
+ yearMode: K = "single",
35
+ comparison: e,
36
+ onComparisonChange: E,
37
+ onRangesChange: X,
38
+ month: O,
39
+ defaultMonth: ai,
40
+ onMonthChange: si,
41
+ resolvedStartMonth: fi,
42
+ resolvedEndMonth: li,
43
+ disabled: B,
44
+ onApply: N,
45
+ onCancel: mi,
46
+ onClear: ci
31
47
  }) {
32
- const [P, I] = i.useState(t), [X, Z] = i.useState(() => {
33
- if (A) return A;
34
- if (N) return N;
35
- if (t) {
36
- if (Array.isArray(t))
37
- return t[0] || /* @__PURE__ */ new Date();
38
- if (t instanceof Date)
39
- return t;
40
- if ("from" in t && t.from)
41
- return t.from;
48
+ const [f, U] = n.useState(s), [Di, bi] = n.useState(() => {
49
+ if (O) return O;
50
+ if (ai) return ai;
51
+ if (s) {
52
+ if (Array.isArray(s)) {
53
+ const i = s[0];
54
+ return i instanceof Date ? i : /* @__PURE__ */ new Date();
55
+ }
56
+ if (s instanceof Date)
57
+ return s;
58
+ if ("from" in s && s.from)
59
+ return s.from;
42
60
  }
43
61
  return /* @__PURE__ */ new Date();
44
- }), [s, _] = i.useState(f), [b, $] = i.useState(g), [h, M] = i.useState(
45
- X.getFullYear()
62
+ }), [P, Z] = n.useState(A), [z, k] = n.useState($), [G, Q] = n.useState(_), [H, o] = n.useState(q), [_i, gi] = n.useState(
63
+ Di.getFullYear()
46
64
  );
47
- i.useEffect(() => {
48
- A && (Z(A), M(A.getFullYear()));
49
- }, [A]), i.useEffect(() => {
50
- I(t), _(f), $(g);
51
- }, [t, f, g]);
52
- const F = i.useCallback(
53
- (n) => {
54
- Z(n), M(n.getFullYear()), O?.(n);
65
+ n.useEffect(() => {
66
+ O && (bi(O), gi(O.getFullYear()));
67
+ }, [O]), n.useEffect(() => {
68
+ U(s), Z(A), k($), Q(_), o(q);
69
+ }, [s, A, $, _, q]);
70
+ const qi = n.useCallback(
71
+ (i) => {
72
+ bi(i), gi(i.getFullYear()), si?.(i);
55
73
  },
56
- [O]
57
- ), k = i.useMemo(
74
+ [si]
75
+ ), vi = n.useMemo(
58
76
  () => ({
59
- calendarType: B,
60
- fiscalMode: G,
61
- selectionMode: H,
62
- fiscalMonthPattern: J,
63
- fiscalYearStartMonth: K,
64
- weekStartsOn: L
77
+ calendarKind: v,
78
+ fiscalMode: ii,
79
+ granularity: ti,
80
+ fiscalMonthPattern: ni,
81
+ fiscalYearStartMonth: ri,
82
+ weekStartsOn: ui
65
83
  }),
66
84
  [
67
- B,
68
- G,
69
- H,
70
- J,
71
- K,
72
- L
85
+ v,
86
+ ii,
87
+ ti,
88
+ ni,
89
+ ri,
90
+ ui
73
91
  ]
74
- ), j = i.useCallback(
75
- (n) => Dn(n, k),
76
- [k]
77
- ), q = i.useCallback(
78
- (n) => {
79
- if (a) {
80
- _((D) => {
81
- const c = W(n, D, v);
82
- return l?.(c), c;
92
+ ), T = n.useCallback(
93
+ (i) => wi(i, vi),
94
+ [vi]
95
+ ), p = n.useCallback(
96
+ (i) => {
97
+ if (r) {
98
+ Z((a) => {
99
+ const m = yi(i, a, y === "multi-range" ? "range" : y);
100
+ return I?.(m), m;
83
101
  });
84
102
  return;
85
103
  }
86
- const u = W(n, f, v);
87
- l?.(
88
- v === "multiple" ? Array.isArray(u) && u.length > 0 ? u : void 0 : u
104
+ const t = yi(i, A, y === "multi-range" ? "range" : y);
105
+ I?.(
106
+ y === "multiple" ? Array.isArray(t) && t.length > 0 ? t : void 0 : t
89
107
  );
90
108
  },
91
- [v, a, f, l]
92
- ), w = i.useCallback(
93
- (n, u) => {
94
- const D = { year: n, month: u };
95
- if (a) {
96
- $((sn) => {
97
- const o = y(D, sn, x);
98
- return m?.(o), o;
109
+ [y, r, A, I]
110
+ ), Bi = n.useCallback(
111
+ (i, t) => {
112
+ let a = { year: i, month: t };
113
+ if (v === "fiscal" && l)
114
+ try {
115
+ const c = w(l, i).periods[t];
116
+ if (c) {
117
+ const b = Wi(c.start);
118
+ a = {
119
+ year: b.y,
120
+ month: b.m - 1,
121
+ fy: c.fy,
122
+ period: c.period,
123
+ start: V(c.start),
124
+ end: V(c.end)
125
+ };
126
+ }
127
+ } catch {
128
+ }
129
+ if (r) {
130
+ k((D) => {
131
+ const c = Ri(
132
+ a,
133
+ D,
134
+ S === "multi-range" ? "range" : S
135
+ );
136
+ return j?.(c), c;
99
137
  });
100
138
  return;
101
139
  }
102
- const c = y(D, g, x);
103
- m?.(
104
- x === "multiple" ? Array.isArray(c) && c.length > 0 ? c : void 0 : c
140
+ const m = Ri(
141
+ a,
142
+ $,
143
+ S === "multi-range" ? "range" : S
144
+ );
145
+ j?.(
146
+ S === "multiple" ? Array.isArray(m) && m.length > 0 ? m : void 0 : m
105
147
  );
106
148
  },
107
- [x, a, g, m]
108
- ), T = i.useMemo(
109
- () => gn(Q, S),
110
- [Q, S]
111
- ), z = i.useMemo(() => r !== "week" ? void 0 : cn(a ? s : f), [r, a, s, f]), p = i.useMemo(() => r !== "week" ? { range_start: [], range_middle: [], range_end: [] } : vn(z, v, a ? s : f), [
149
+ [S, r, $, j, v, l]
150
+ ), Ci = n.useCallback(
151
+ (i, t) => {
152
+ let a = {
153
+ year: i,
154
+ quarter: t,
155
+ start: new Date(i, (t - 1) * 3, 1),
156
+ end: new Date(i, t * 3, 0)
157
+ };
158
+ if (v === "fiscal" && l)
159
+ try {
160
+ const D = w(l, i).quarters.find((c) => c.quarter === t);
161
+ D && (a = {
162
+ year: i,
163
+ quarter: t,
164
+ fy: D.fy,
165
+ start: V(D.start),
166
+ end: V(D.end)
167
+ });
168
+ } catch {
169
+ }
170
+ if (r) {
171
+ Q((m) => {
172
+ const D = $i(a, m, S);
173
+ return C?.(D), D;
174
+ });
175
+ return;
176
+ }
177
+ C?.($i(a, _, S));
178
+ },
179
+ [v, l, S, C, _, r]
180
+ ), Yi = n.useCallback(
181
+ (i) => {
182
+ let t = {
183
+ year: i,
184
+ start: new Date(i, 0, 1),
185
+ end: new Date(i, 11, 31)
186
+ };
187
+ if (v === "fiscal" && l)
188
+ try {
189
+ const a = w(l, i);
190
+ t = {
191
+ year: a.fy,
192
+ fy: a.fy,
193
+ start: V(a.start),
194
+ end: V(a.end)
195
+ };
196
+ } catch {
197
+ }
198
+ if (r) {
199
+ o((a) => {
200
+ const m = ji(t, a, K);
201
+ return Y?.(m), m;
202
+ });
203
+ return;
204
+ }
205
+ Y?.(ji(t, q, K));
206
+ },
207
+ [v, l, Y, q, r, K]
208
+ ), J = n.useCallback(
209
+ (i) => {
210
+ if (e !== "prior-fy" || !l || !i?.from || !i.to) {
211
+ e === "prior-fy" && E?.(void 0);
212
+ return;
213
+ }
214
+ E?.(it(l, i.from, i.to));
215
+ },
216
+ [e, l, E]
217
+ ), Ei = n.useMemo(
218
+ () => ei(fi, li),
219
+ [fi, li]
220
+ ), F = n.useMemo(() => u !== "week" ? void 0 : hi(r ? P : A), [u, r, P, A]), Ni = n.useMemo(() => {
221
+ if (x === "multi-range")
222
+ return tt(r ? f : s);
223
+ }, [x, r, f, s]), Ai = n.useMemo(() => {
224
+ if (x !== "multi-range") return;
225
+ const i = r ? f : s;
226
+ return nt(h(i) ? i : void 0);
227
+ }, [x, r, f, s]), zi = n.useMemo(() => u !== "week" ? Ai ?? { range_start: [], range_middle: [], range_end: [] } : di(F, y === "multi-range" ? "range" : y, r ? P : A), [
228
+ u,
229
+ F,
230
+ y,
112
231
  r,
113
- z,
114
- v,
115
- a,
116
- s,
117
- f
118
- ]), d = i.useCallback(
119
- (n, u) => {
120
- if (r === "week" && n) {
121
- const D = u ?? (Array.isArray(n) ? n[n.length - 1] : n instanceof Date ? n : void 0);
122
- if (D) {
123
- q(j(D));
232
+ P,
233
+ A,
234
+ Ai
235
+ ]), R = n.useCallback(
236
+ (i) => {
237
+ d?.(rt(x, i));
238
+ },
239
+ [x, d]
240
+ ), Gi = n.useCallback(
241
+ (i, t) => {
242
+ if (u === "week" && i) {
243
+ const a = t ?? (Array.isArray(i) ? i[i.length - 1] : i instanceof Date ? i : void 0);
244
+ if (a) {
245
+ p(T(a));
124
246
  return;
125
247
  }
126
248
  }
127
- a && I(n), C?.(n);
249
+ if (x === "multi-range") {
250
+ const a = t ?? (i instanceof Date ? i : Array.isArray(i) ? i[i.length - 1] : i && "from" in i ? i.to ?? i.from : void 0);
251
+ if (!a) return;
252
+ const m = (b) => {
253
+ const L = h(b) ? b : b && typeof b == "object" && !(b instanceof Date) && !Array.isArray(b) && "from" in b ? [b] : void 0;
254
+ return st(a, L);
255
+ };
256
+ if (r) {
257
+ U((b) => {
258
+ const L = m(b), W = L[L.length - 1];
259
+ return g?.(W), X?.(L), R(L), W?.from && W.to && J(W), L;
260
+ });
261
+ return;
262
+ }
263
+ const D = m(s), c = D[D.length - 1];
264
+ g?.(c), X?.(D), R(D), c?.from && c.to && J(c);
265
+ return;
266
+ }
267
+ r ? (U(i), g?.(i), R(i), i && typeof i == "object" && !(i instanceof Date) && !Array.isArray(i) && i.from && i.to && J(i)) : (g?.(i), R(i), i && typeof i == "object" && !(i instanceof Date) && !Array.isArray(i) && i.from && i.to && J(i));
128
268
  },
129
- [a, C, r, j, q]
130
- ), e = i.useCallback(() => {
131
- r === "week" ? (l?.(s), Y?.(s)) : r === "month" ? (m?.(b), Y?.(b)) : (C?.(P), Y?.(P));
269
+ [r, g, X, R, u, T, p, x, s, J]
270
+ ), Hi = n.useCallback(
271
+ (i) => {
272
+ const t = Si(i.interval);
273
+ r && U(t), g?.(t), R(t), i.comparison ? E?.({
274
+ primary: t,
275
+ comparison: Si(i.comparison)
276
+ }) : J(t);
277
+ },
278
+ [J, R, E, g, r]
279
+ ), Ji = n.useCallback(() => {
280
+ if (u === "week")
281
+ I?.(P), N?.(P);
282
+ else if (u === "month")
283
+ j?.(z), N?.(z);
284
+ else if (u === "quarter")
285
+ C?.(G), N?.(G);
286
+ else if (u === "year")
287
+ Y?.(H), N?.(H);
288
+ else if (h(f)) {
289
+ const i = f[f.length - 1];
290
+ g?.(i), X?.(f), R(f), N?.(f);
291
+ } else
292
+ g?.(Ii(f)), R(f), N?.(f);
132
293
  }, [
294
+ f,
133
295
  P,
134
- s,
135
- b,
296
+ z,
297
+ G,
298
+ H,
299
+ g,
300
+ I,
301
+ j,
302
+ C,
303
+ Y,
304
+ N,
305
+ X,
306
+ R,
307
+ u
308
+ ]), Li = n.useCallback(() => {
309
+ u === "week" ? Z(A) : u === "month" ? k($) : u === "quarter" ? Q(_) : u === "year" ? o(q) : U(s), mi?.();
310
+ }, [s, A, $, _, q, mi, u]), Oi = n.useCallback(() => {
311
+ u === "week" ? (Z(void 0), r || I?.(void 0)) : u === "month" ? (k(void 0), r || j?.(void 0)) : u === "quarter" ? (Q(void 0), r || C?.(void 0)) : u === "year" ? (o(void 0), r || Y?.(void 0)) : (U(void 0), r || g?.(void 0)), E?.(void 0), ci?.();
312
+ }, [
313
+ r,
314
+ g,
315
+ I,
316
+ j,
136
317
  C,
137
- l,
138
- m,
139
318
  Y,
140
- r
141
- ]), nn = i.useCallback(() => {
142
- r === "week" ? _(f) : r === "month" ? $(g) : I(t), U?.();
143
- }, [t, f, g, U, r]), an = i.useCallback(() => {
144
- r === "week" ? (_(void 0), a || l?.(void 0)) : r === "month" ? ($(void 0), a || m?.(void 0)) : (I(void 0), a || C?.(void 0)), V?.();
145
- }, [a, C, l, m, V, r]), E = a ? b : g, rn = i.useCallback(
146
- (n, u) => mn(n, u, E),
147
- [E]
148
- ), un = i.useCallback(
149
- (n, u) => Cn(n, u, E),
150
- [E]
151
- ), tn = i.useCallback(
152
- (n, u) => bn(n, u, R),
153
- [R]
154
- ), fn = i.useMemo(
155
- () => ln({
156
- showFooter: a,
157
- pickerType: r,
158
- disabled: R,
159
- pendingSelection: P,
160
- pendingWeekSelection: s,
161
- pendingMonthSelection: b
319
+ E,
320
+ ci,
321
+ u
322
+ ]), M = r ? z : $, xi = r ? G : _, Ui = n.useCallback(
323
+ (i, t) => Ti(i, t, M),
324
+ [M]
325
+ ), Vi = n.useCallback(
326
+ (i, t) => pi(i, t, M),
327
+ [M]
328
+ ), Xi = n.useCallback(
329
+ (i, t) => Fi(i, t, B),
330
+ [B]
331
+ ), Zi = n.useCallback(
332
+ (i, t) => ft(i, t, xi),
333
+ [xi]
334
+ ), ki = n.useCallback(
335
+ (i, t) => lt(i, t, B, {
336
+ calendarKind: v,
337
+ fiscalConfig: l
162
338
  }),
163
- [
164
- a,
165
- r,
166
- R,
167
- P,
168
- s,
169
- b
170
- ]
171
- );
339
+ [v, B, l]
340
+ ), Pi = r ? H : q, Qi = n.useCallback(
341
+ (i) => mt(i, Pi),
342
+ [Pi]
343
+ ), oi = n.useCallback(
344
+ (i) => ct(i, B, {
345
+ calendarKind: v,
346
+ fiscalConfig: l
347
+ }),
348
+ [v, B, l]
349
+ ), Mi = n.useMemo(() => x === "multi-range" && r && !ut(at(f)) ? !0 : Ki({
350
+ showFooter: r,
351
+ pickerType: u,
352
+ disabled: B,
353
+ pendingSelection: Ii(f),
354
+ pendingWeekSelection: P,
355
+ pendingMonthSelection: z,
356
+ pendingQuarterSelection: G,
357
+ pendingYearSelection: H
358
+ }), [
359
+ r,
360
+ u,
361
+ B,
362
+ f,
363
+ P,
364
+ z,
365
+ G,
366
+ H,
367
+ x
368
+ ]);
172
369
  return {
173
- pendingSelection: P,
174
- currentMonth: X,
175
- pendingWeekSelection: s,
176
- pendingMonthSelection: b,
177
- monthPickerYear: h,
178
- handleMonthChangeInternal: F,
179
- resolveWeekFromInput: j,
180
- handleWeekClick: q,
181
- handleMonthClick: w,
182
- availableYears: T,
183
- selectedDaysFromWeeks: z,
184
- weekRangeModifiers: p,
185
- handleInternalSelect: d,
186
- handleApply: e,
187
- handleCancel: nn,
188
- handleClear: an,
189
- isMonthSelected: rn,
190
- getMonthRangeProps: un,
191
- isMonthDisabled: tn,
192
- isApplyDisabledInternal: fn
370
+ pendingSelection: f,
371
+ currentMonth: Di,
372
+ pendingWeekSelection: P,
373
+ pendingMonthSelection: z,
374
+ pendingQuarterSelection: G,
375
+ pendingYearSelection: H,
376
+ monthPickerYear: _i,
377
+ handleMonthChangeInternal: qi,
378
+ resolveWeekFromInput: T,
379
+ handleWeekClick: p,
380
+ handleMonthClick: Bi,
381
+ handleQuarterClick: Ci,
382
+ handleYearClick: Yi,
383
+ handlePresetSelect: Hi,
384
+ availableYears: Ei,
385
+ selectedDaysFromWeeks: F,
386
+ selectedDaysFromRanges: Ni,
387
+ weekRangeModifiers: zi,
388
+ handleInternalSelect: Gi,
389
+ handleApply: Ji,
390
+ handleCancel: Li,
391
+ handleClear: Oi,
392
+ isMonthSelected: Ui,
393
+ getMonthRangeProps: Vi,
394
+ isMonthDisabled: Xi,
395
+ isQuarterSelected: Zi,
396
+ isQuarterDisabled: ki,
397
+ isYearSelected: Qi,
398
+ isYearDisabled: oi,
399
+ isApplyDisabledInternal: Mi
193
400
  };
194
401
  }
195
402
  export {
196
- Rn as useCalendarState
403
+ yt as useCalendarState
197
404
  };
@@ -0,0 +1,5 @@
1
+ import { DateCellMeta, FiscalCalendarConfig, FiscalYearModel } from '../../../lib/fiscal-calendar';
2
+ export declare function useFiscalCalendar(config: FiscalCalendarConfig | undefined, visibleMonth: Date): {
3
+ model: FiscalYearModel | undefined;
4
+ getCellMeta: (date: Date) => DateCellMeta | undefined;
5
+ };
@@ -0,0 +1,24 @@
1
+ import * as r from "react";
2
+ import { civilFromLocalDate as i } from "../../../lib/fiscal-calendar/civil-date.js";
3
+ import { buildFiscalYear as m } from "../../../lib/fiscal-calendar/build-year.js";
4
+ import { getCellMeta as s } from "../../../lib/fiscal-calendar/lookup.js";
5
+ function p(e, l) {
6
+ const t = l.getFullYear(), a = r.useMemo(() => {
7
+ if (e)
8
+ try {
9
+ return m(e, t);
10
+ } catch {
11
+ return;
12
+ }
13
+ }, [e, t]), o = r.useCallback(
14
+ (u) => {
15
+ if (e)
16
+ return s(e, i(u));
17
+ },
18
+ [e]
19
+ );
20
+ return { model: a, getCellMeta: o };
21
+ }
22
+ export {
23
+ p as useFiscalCalendar
24
+ };