impact-nova 2.5.11 → 2.5.13
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.
- package/dist/components/data/data-table/build-column-tree-from-grid.d.ts +1 -0
- package/dist/components/data/data-table/build-column-tree-from-grid.js +55 -50
- package/dist/components/data/data-table/column-picker-authority.d.ts +34 -0
- package/dist/components/data/data-table/column-picker-authority.js +116 -0
- package/dist/components/data/data-table/column-picker-drop-validation.d.ts +7 -0
- package/dist/components/data/data-table/column-picker-drop-validation.js +37 -0
- package/dist/components/data/data-table/data-table-column-apply.d.ts +2 -0
- package/dist/components/data/data-table/data-table-column-apply.js +84 -73
- package/dist/components/data/data-table/data-table-column-list-tree-apply.d.ts +10 -0
- package/dist/components/data/data-table/data-table-column-list-tree-apply.js +79 -0
- package/dist/components/data/data-table/data-table-column-list.js +94 -64
- package/dist/components/data/data-table/data-table-column-tree-cache.d.ts +12 -6
- package/dist/components/data/data-table/data-table-column-tree-cache.js +250 -131
- package/dist/components/data/data-table/data-table-flat-column-virtual-rows.d.ts +26 -0
- package/dist/components/data/data-table/data-table-flat-column-virtual-rows.js +195 -0
- package/dist/components/data/data-table/data-table-picker-column-eligibility.d.ts +1 -0
- package/dist/components/data/data-table/data-table-picker-column-eligibility.js +7 -0
- package/dist/components/data/data-table/patch-column-tree-indicators-from-grid.d.ts +5 -0
- package/dist/components/data/data-table/patch-column-tree-indicators-from-grid.js +28 -11
- package/dist/components/data/data-table/reconcile-column-tree-from-grid.d.ts +12 -0
- package/dist/components/data/data-table/reconcile-column-tree-from-grid.js +12 -0
- package/dist/components/data/data-table/use-data-table-column-list-sync.d.ts +10 -0
- package/dist/components/data/data-table/use-data-table-column-list-sync.js +250 -196
- package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +2 -3
- package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +2 -3
- package/dist/components/data/nested-list/components/NestedListContent.d.ts +10 -2
- package/dist/components/data/nested-list/components/NestedListContent.js +253 -138
- package/dist/components/data/nested-list/components/SortableItem.d.ts +2 -1
- package/dist/components/data/nested-list/components/SortableItem.js +62 -60
- package/dist/components/data/nested-list/hooks/useNestedListDragDrop.d.ts +10 -20
- package/dist/components/data/nested-list/hooks/useNestedListDragDrop.js +44 -233
- package/dist/components/data/nested-list/hooks/useVirtualNestedListDrag.d.ts +24 -0
- package/dist/components/data/nested-list/hooks/useVirtualNestedListDrag.js +128 -0
- package/dist/components/data/nested-list/nested-list-constants.d.ts +4 -1
- package/dist/components/data/nested-list/nested-list-constants.js +10 -4
- package/dist/components/data/nested-list/nested-list-display-utils.d.ts +11 -0
- package/dist/components/data/nested-list/nested-list-display-utils.js +74 -0
- package/dist/components/data/nested-list/nested-list-drop-engine.d.ts +31 -0
- package/dist/components/data/nested-list/nested-list-drop-engine.js +209 -0
- package/dist/components/data/nested-list/nested-list-flat-virtual-handlers.d.ts +26 -0
- package/dist/components/data/nested-list/nested-list-flat-virtual-handlers.js +67 -0
- package/dist/components/data/nested-list/nested-list-item-tree-mutations.d.ts +4 -0
- package/dist/components/data/nested-list/nested-list-item-tree-mutations.js +43 -0
- package/dist/components/data/nested-list/nested-list-lazy-flat-rows.d.ts +3 -0
- package/dist/components/data/nested-list/nested-list-lazy-flat-rows.js +34 -0
- package/dist/components/data/nested-list/nested-list-row-estimates.d.ts +9 -0
- package/dist/components/data/nested-list/nested-list-row-estimates.js +14 -0
- package/dist/components/data/nested-list/nested-list-scroll-anchor.d.ts +36 -0
- package/dist/components/data/nested-list/nested-list-scroll-anchor.js +47 -0
- package/dist/components/data/nested-list/nested-list-virtual-drop.d.ts +59 -0
- package/dist/components/data/nested-list/nested-list-virtual-drop.js +341 -0
- package/dist/components/data/nested-list/nested-list.js +322 -336
- package/dist/components/data/nested-list/nested-list.types.d.ts +17 -0
- package/dist/components/data-display/calendar/calendar-apply-validation.d.ts +0 -2
- package/dist/components/data-display/calendar/calendar-apply-validation.js +67 -64
- package/dist/components/data-display/calendar/calendar-day-picker-components.d.ts +2 -4
- package/dist/components/data-display/calendar/calendar-day-picker-components.js +152 -163
- package/dist/components/data-display/calendar/calendar-day-picker-view.js +76 -77
- package/dist/components/data-display/calendar/calendar-fiscal-period-nav.d.ts +0 -6
- package/dist/components/data-display/calendar/calendar-fiscal-period-nav.js +18 -34
- package/dist/components/data-display/calendar/calendar-month-utils.d.ts +0 -5
- package/dist/components/data-display/calendar/calendar-month-utils.js +64 -85
- package/dist/components/data-display/calendar/calendar-selection-appearance.d.ts +0 -1
- package/dist/components/data-display/calendar/calendar-selection-appearance.js +30 -31
- package/dist/components/data-display/calendar/calendar-week-number-cell.d.ts +1 -2
- package/dist/components/data-display/calendar/calendar-week-number-cell.js +41 -55
- package/dist/components/data-display/calendar/calendar-year-panes.d.ts +0 -2
- package/dist/components/data-display/calendar/calendar-year-panes.js +1 -3
- package/dist/components/data-display/calendar/calendar.js +143 -146
- package/dist/components/data-display/calendar/calendar.types.d.ts +0 -5
- package/dist/components/data-display/calendar/use-calendar-day-picker-config.d.ts +1 -2
- package/dist/components/data-display/calendar/use-calendar-day-picker-config.js +74 -79
- package/dist/components/data-display/calendar/use-calendar-state.d.ts +1 -3
- package/dist/components/data-display/calendar/use-calendar-state.js +325 -403
- package/dist/components/feedback/tooltip/tab-tooltip-render.js +2 -3
- package/dist/components/flows/command-palette/shortcut-settings.js +10 -10
- package/dist/components/flows/filter-panel/filter-panel.js +4 -4
- package/dist/components/forms/date-picker/date-picker.js +58 -60
- package/dist/components/forms/date-picker/date-picker.types.d.ts +0 -5
- package/dist/components/forms/date-picker/date-range-picker.js +64 -66
- package/dist/components/forms/date-picker/fiscal-pass-through.d.ts +0 -1
- package/dist/components/forms/date-picker/fiscal-pass-through.js +2 -3
- package/dist/components/forms/date-picker/month-picker.js +59 -61
- package/dist/components/forms/date-picker/month-range-picker.js +61 -63
- package/dist/components/forms/date-picker/multi-date-picker.js +49 -51
- package/dist/components/forms/date-picker/multi-month-picker.js +47 -49
- package/dist/components/forms/date-picker/multi-quarter-picker.js +44 -46
- package/dist/components/forms/date-picker/multi-week-picker.js +51 -53
- package/dist/components/forms/date-picker/multi-year-picker.js +46 -48
- package/dist/components/forms/date-picker/quarter-picker.js +44 -46
- package/dist/components/forms/date-picker/quarter-range-picker.js +43 -45
- package/dist/components/forms/date-picker/week-picker.js +66 -68
- package/dist/components/forms/date-picker/week-range-picker.js +80 -82
- package/dist/components/forms/date-picker/year-picker.js +45 -47
- package/dist/components/forms/date-picker/year-range-picker.js +45 -47
- package/dist/components/forms/select/components/SelectTriggerValue.js +2 -3
- package/dist/components/forms/select/components/Submenu.js +2 -3
- package/dist/form-react/Fields/DateInputField.js +50 -51
- package/dist/form-react/Fields/DateRangeField.js +13 -14
- package/dist/form-react/Fields/MonthRangeField.js +28 -29
- package/dist/form-react/Fields/MultiMonthPickerField.js +12 -13
- package/dist/form-react/Fields/MultiWeekPickerField.js +17 -18
- package/dist/form-react/Fields/WeekRangePicker.js +21 -22
- package/dist/form-react/types/fields.types.d.ts +0 -12
- package/dist/impact-nova.css +1 -1
- package/dist/lib/hash/fnv1a128.d.ts +16 -0
- package/dist/lib/hash/fnv1a128.js +21 -0
- package/dist/llms/rules/ag-grid.js +1 -1
- package/package.json +1 -1
- package/dist/components/data-display/calendar/calendar-available-view.d.ts +0 -27
- package/dist/components/data-display/calendar/calendar-available-view.js +0 -85
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { jsx as r, jsxs as y } from "react/jsx-runtime";
|
|
2
2
|
import * as n from "react";
|
|
3
|
-
import { Cross as
|
|
4
|
-
import { cn as
|
|
5
|
-
import { Input as
|
|
6
|
-
import { Calendar as
|
|
3
|
+
import { Cross as _, CalendarMonth as $ } from "impact-nova-icons";
|
|
4
|
+
import { cn as ee } from "../../../lib/utils.js";
|
|
5
|
+
import { Input as te } from "../input/input.js";
|
|
6
|
+
import { Calendar as re } from "../../data-display/calendar/calendar.js";
|
|
7
7
|
import { Tooltip as M, TooltipTrigger as x, TooltipContent as R } from "../../feedback/tooltip/tooltip.js";
|
|
8
|
-
import { useImpactNovaI18n as
|
|
9
|
-
import { buildDateBoundsMatcher as
|
|
10
|
-
import { fiscalCalendarPassThrough as
|
|
11
|
-
import { DatePickerShell as
|
|
12
|
-
import { usePickerDismissActionsRef as
|
|
13
|
-
import { formatYearInput as
|
|
14
|
-
import { viewMonthFromYear as
|
|
15
|
-
const
|
|
8
|
+
import { useImpactNovaI18n as ne } from "../../../i18n/use-impact-nova-i18n.js";
|
|
9
|
+
import { buildDateBoundsMatcher as oe } from "../../../lib/date-bounds-matcher.js";
|
|
10
|
+
import { fiscalCalendarPassThrough as ae } from "./fiscal-pass-through.js";
|
|
11
|
+
import { DatePickerShell as ie } from "./date-picker-shell.js";
|
|
12
|
+
import { usePickerDismissActionsRef as se, usePickerFooterDismissNudge as ce, handleReadonlyPickerKeyDown as le, handlePickerSurfacePointerDown as pe } from "./date-input-behavior.js";
|
|
13
|
+
import { formatYearInput as fe } from "../../data-display/calendar/calendar-fiscal-labels.js";
|
|
14
|
+
import { viewMonthFromYear as de } from "../../data-display/calendar/calendar-year-utils.js";
|
|
15
|
+
const ue = n.forwardRef(
|
|
16
16
|
({
|
|
17
17
|
value: t,
|
|
18
18
|
onChange: f,
|
|
@@ -32,17 +32,16 @@ const me = n.forwardRef(
|
|
|
32
32
|
fiscalConfig: g,
|
|
33
33
|
showPresets: j,
|
|
34
34
|
showPeriodBoundaries: F,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
n.
|
|
41
|
-
const [i, s] = n.useState(!1), u = n.useRef(!1), P = ce(), { footerFlashKey: q, footerFlashTarget: G, popoverHandlers: J } = le(c, i, P, k), [C, l] = n.useState(t), [Q, U] = n.useState(ue(t?.[0]));
|
|
35
|
+
showIntervalCaption: L = !1,
|
|
36
|
+
...z
|
|
37
|
+
}, E) => {
|
|
38
|
+
const { t: a } = ne(), H = D ?? a("datePicker.selectMultipleYears"), V = g?.fyLabel ?? "fy-long", d = n.useRef(null), k = n.useRef(null);
|
|
39
|
+
n.useImperativeHandle(E, () => d.current);
|
|
40
|
+
const [i, s] = n.useState(!1), u = n.useRef(!1), P = se(), { footerFlashKey: B, footerFlashTarget: q, popoverHandlers: G } = ce(c, i, P, k), [C, l] = n.useState(t), [J, Q] = n.useState(de(t?.[0]));
|
|
42
41
|
n.useEffect(() => {
|
|
43
42
|
i || l(t);
|
|
44
43
|
}, [i, t]);
|
|
45
|
-
const m = n.useCallback(() => s(!1), []),
|
|
44
|
+
const m = n.useCallback(() => s(!1), []), U = ae({
|
|
46
45
|
calendarKind: O,
|
|
47
46
|
fiscalMode: T,
|
|
48
47
|
granularity: w,
|
|
@@ -50,12 +49,11 @@ const me = n.forwardRef(
|
|
|
50
49
|
fiscalYearStartMonth: K,
|
|
51
50
|
fiscalConfig: g,
|
|
52
51
|
showPresets: j,
|
|
53
|
-
showPeriodBoundaries: F
|
|
54
|
-
|
|
55
|
-
}), X = (e) => {
|
|
52
|
+
showPeriodBoundaries: F
|
|
53
|
+
}), W = (e) => {
|
|
56
54
|
const p = Array.isArray(e) && e.length > 0 ? e : void 0;
|
|
57
55
|
l(p), c || f?.(p);
|
|
58
|
-
},
|
|
56
|
+
}, X = () => {
|
|
59
57
|
f?.(C), m();
|
|
60
58
|
}, h = () => {
|
|
61
59
|
l(t), m();
|
|
@@ -65,9 +63,9 @@ const me = n.forwardRef(
|
|
|
65
63
|
n.useLayoutEffect(() => {
|
|
66
64
|
P.current = { onDismiss: h, resolveFlash: () => "cancel" };
|
|
67
65
|
});
|
|
68
|
-
const
|
|
66
|
+
const Z = t && t.length > 0 ? t.length === 1 ? fe(t[0], V) : a("datePicker.yearsSelected", { count: t.length }) : "";
|
|
69
67
|
return /* @__PURE__ */ r(
|
|
70
|
-
|
|
68
|
+
ie,
|
|
71
69
|
{
|
|
72
70
|
open: i,
|
|
73
71
|
disabled: o,
|
|
@@ -78,26 +76,26 @@ const me = n.forwardRef(
|
|
|
78
76
|
onOpenAutoFocus: (e) => {
|
|
79
77
|
u.current || e.preventDefault(), u.current = !1;
|
|
80
78
|
},
|
|
81
|
-
popoverHandlers:
|
|
79
|
+
popoverHandlers: G,
|
|
82
80
|
trigger: /* @__PURE__ */ r(
|
|
83
81
|
"div",
|
|
84
82
|
{
|
|
85
83
|
ref: k,
|
|
86
84
|
"data-component": "multi-year-picker",
|
|
87
85
|
"data-state": i ? "open" : "closed",
|
|
88
|
-
onPointerDown: (e) =>
|
|
86
|
+
onPointerDown: (e) => pe({
|
|
89
87
|
disabled: o,
|
|
90
88
|
event: e,
|
|
91
89
|
onOpen: () => s(!0),
|
|
92
90
|
focusField: () => d.current?.focus()
|
|
93
91
|
}),
|
|
94
92
|
children: /* @__PURE__ */ r(
|
|
95
|
-
|
|
93
|
+
te,
|
|
96
94
|
{
|
|
97
95
|
ref: d,
|
|
98
|
-
value:
|
|
96
|
+
value: Z,
|
|
99
97
|
readOnly: !0,
|
|
100
|
-
onKeyDown: (e) =>
|
|
98
|
+
onKeyDown: (e) => le(e, {
|
|
101
99
|
disabled: o,
|
|
102
100
|
open: i,
|
|
103
101
|
onOpen: () => s(!0),
|
|
@@ -107,10 +105,10 @@ const me = n.forwardRef(
|
|
|
107
105
|
}
|
|
108
106
|
}),
|
|
109
107
|
onClick: () => !o && s(!0),
|
|
110
|
-
placeholder:
|
|
108
|
+
placeholder: H,
|
|
111
109
|
disabled: o,
|
|
112
110
|
"data-form-control": "input",
|
|
113
|
-
className:
|
|
111
|
+
className: ee("cursor-pointer", I),
|
|
114
112
|
suffix: /* @__PURE__ */ y("div", { className: "flex items-center gap-1", children: [
|
|
115
113
|
t && t.length > 0 && !o ? /* @__PURE__ */ y(M, { children: [
|
|
116
114
|
/* @__PURE__ */ r(x, { asChild: !0, children: /* @__PURE__ */ r(
|
|
@@ -123,7 +121,7 @@ const me = n.forwardRef(
|
|
|
123
121
|
e.stopPropagation(), b();
|
|
124
122
|
},
|
|
125
123
|
className: "inline-flex size-4 items-center justify-center border-none bg-transparent p-0",
|
|
126
|
-
children: /* @__PURE__ */ r(
|
|
124
|
+
children: /* @__PURE__ */ r(_, { className: "size-3 hover:text-content" })
|
|
127
125
|
}
|
|
128
126
|
) }),
|
|
129
127
|
/* @__PURE__ */ r(R, { variant: "tertiary", side: "top", children: a("calendar.clear") })
|
|
@@ -140,44 +138,44 @@ const me = n.forwardRef(
|
|
|
140
138
|
e.stopPropagation(), o || s((p) => !p);
|
|
141
139
|
},
|
|
142
140
|
className: "inline-flex items-center justify-center border-none bg-transparent p-0",
|
|
143
|
-
children: /* @__PURE__ */ r(
|
|
141
|
+
children: /* @__PURE__ */ r($, { className: "h-4 w-4 text-secondary-foreground" })
|
|
144
142
|
}
|
|
145
143
|
) }),
|
|
146
144
|
/* @__PURE__ */ r(R, { variant: "tertiary", side: "top", children: a("datePicker.selectMultipleYears") })
|
|
147
145
|
] })
|
|
148
146
|
] }),
|
|
149
|
-
...
|
|
147
|
+
...z
|
|
150
148
|
}
|
|
151
149
|
)
|
|
152
150
|
}
|
|
153
151
|
),
|
|
154
152
|
children: /* @__PURE__ */ r(
|
|
155
|
-
|
|
153
|
+
re,
|
|
156
154
|
{
|
|
157
155
|
pickerType: "year",
|
|
158
156
|
yearMode: "multiple",
|
|
159
157
|
selectedYear: C,
|
|
160
|
-
footerFlashKey:
|
|
161
|
-
footerFlashTarget:
|
|
162
|
-
onYearSelect:
|
|
163
|
-
month:
|
|
164
|
-
onMonthChange:
|
|
165
|
-
disabled:
|
|
158
|
+
footerFlashKey: B,
|
|
159
|
+
footerFlashTarget: q,
|
|
160
|
+
onYearSelect: W,
|
|
161
|
+
month: J,
|
|
162
|
+
onMonthChange: Q,
|
|
163
|
+
disabled: oe(Y, N),
|
|
166
164
|
startMonth: S,
|
|
167
165
|
endMonth: A,
|
|
168
166
|
showFooter: c,
|
|
169
|
-
onApply:
|
|
167
|
+
onApply: X,
|
|
170
168
|
onCancel: h,
|
|
171
169
|
onClear: b,
|
|
172
|
-
showIntervalCaption:
|
|
173
|
-
...
|
|
170
|
+
showIntervalCaption: L,
|
|
171
|
+
...U
|
|
174
172
|
}
|
|
175
173
|
)
|
|
176
174
|
}
|
|
177
175
|
);
|
|
178
176
|
}
|
|
179
177
|
);
|
|
180
|
-
|
|
178
|
+
ue.displayName = "MultiYearPicker";
|
|
181
179
|
export {
|
|
182
|
-
|
|
180
|
+
ue as MultiYearPicker
|
|
183
181
|
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { jsx as r, jsxs as y } from "react/jsx-runtime";
|
|
2
2
|
import * as t from "react";
|
|
3
|
-
import { Cross as
|
|
4
|
-
import { cn as
|
|
5
|
-
import { Input as
|
|
6
|
-
import { Calendar as
|
|
3
|
+
import { Cross as Z, CalendarMonth as _ } from "impact-nova-icons";
|
|
4
|
+
import { cn as $ } from "../../../lib/utils.js";
|
|
5
|
+
import { Input as q } from "../input/input.js";
|
|
6
|
+
import { Calendar as ee } from "../../data-display/calendar/calendar.js";
|
|
7
7
|
import { Tooltip as x, TooltipTrigger as b, TooltipContent as R } from "../../feedback/tooltip/tooltip.js";
|
|
8
|
-
import { useImpactNovaI18n as
|
|
9
|
-
import { buildDateBoundsMatcher as
|
|
10
|
-
import { fiscalCalendarPassThrough as
|
|
11
|
-
import { DatePickerShell as
|
|
12
|
-
import { usePickerDismissActionsRef as
|
|
13
|
-
import { formatQuarterInput as
|
|
14
|
-
import { viewMonthFromQuarter as
|
|
15
|
-
const
|
|
8
|
+
import { useImpactNovaI18n as re } from "../../../i18n/use-impact-nova-i18n.js";
|
|
9
|
+
import { buildDateBoundsMatcher as te } from "../../../lib/date-bounds-matcher.js";
|
|
10
|
+
import { fiscalCalendarPassThrough as ne } from "./fiscal-pass-through.js";
|
|
11
|
+
import { DatePickerShell as oe } from "./date-picker-shell.js";
|
|
12
|
+
import { usePickerDismissActionsRef as ae, usePickerFooterDismissNudge as ie, handleReadonlyPickerKeyDown as ce, handlePickerSurfacePointerDown as se } from "./date-input-behavior.js";
|
|
13
|
+
import { formatQuarterInput as le } from "../../data-display/calendar/calendar-fiscal-labels.js";
|
|
14
|
+
import { viewMonthFromQuarter as pe } from "../../data-display/calendar/calendar-quarter-utils.js";
|
|
15
|
+
const fe = t.forwardRef(
|
|
16
16
|
({
|
|
17
17
|
value: n,
|
|
18
18
|
onChange: u,
|
|
@@ -32,16 +32,15 @@ const ue = t.forwardRef(
|
|
|
32
32
|
fiscalConfig: K,
|
|
33
33
|
showPresets: j,
|
|
34
34
|
showPeriodBoundaries: F,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
t.
|
|
40
|
-
const [i, c] = t.useState(!1), P = ie(), { footerFlashKey: V, footerFlashTarget: B, popoverHandlers: G } = ce(s, i, P, k), m = t.useRef(!1), [g, l] = t.useState(n), [J, U] = t.useState(fe(n));
|
|
35
|
+
...z
|
|
36
|
+
}, E) => {
|
|
37
|
+
const { t: a } = re(), H = D ?? a("datePicker.selectQuarter"), d = t.useRef(null), k = t.useRef(null);
|
|
38
|
+
t.useImperativeHandle(E, () => d.current);
|
|
39
|
+
const [i, c] = t.useState(!1), P = ae(), { footerFlashKey: L, footerFlashTarget: V, popoverHandlers: B } = ie(s, i, P, k), m = t.useRef(!1), [g, l] = t.useState(n), [G, J] = t.useState(pe(n));
|
|
41
40
|
t.useEffect(() => {
|
|
42
41
|
i || l(n);
|
|
43
42
|
}, [i, n]);
|
|
44
|
-
const p = t.useCallback(() => c(!1), []),
|
|
43
|
+
const p = t.useCallback(() => c(!1), []), U = ne({
|
|
45
44
|
calendarKind: I,
|
|
46
45
|
fiscalMode: O,
|
|
47
46
|
granularity: T,
|
|
@@ -49,12 +48,11 @@ const ue = t.forwardRef(
|
|
|
49
48
|
fiscalYearStartMonth: M,
|
|
50
49
|
fiscalConfig: K,
|
|
51
50
|
showPresets: j,
|
|
52
|
-
showPeriodBoundaries: F
|
|
53
|
-
|
|
54
|
-
}), X = (e) => {
|
|
51
|
+
showPeriodBoundaries: F
|
|
52
|
+
}), W = (e) => {
|
|
55
53
|
const f = e && !Array.isArray(e) && !("from" in e) && !("to" in e) ? e : void 0;
|
|
56
54
|
l(f), s || (u?.(f), p());
|
|
57
|
-
},
|
|
55
|
+
}, X = () => {
|
|
58
56
|
u?.(g), p();
|
|
59
57
|
}, h = () => {
|
|
60
58
|
l(n), p();
|
|
@@ -64,9 +62,9 @@ const ue = t.forwardRef(
|
|
|
64
62
|
t.useLayoutEffect(() => {
|
|
65
63
|
P.current = { onDismiss: h, resolveFlash: () => "cancel" };
|
|
66
64
|
});
|
|
67
|
-
const
|
|
65
|
+
const Y = n ? le(n) : "";
|
|
68
66
|
return /* @__PURE__ */ r(
|
|
69
|
-
|
|
67
|
+
oe,
|
|
70
68
|
{
|
|
71
69
|
open: i,
|
|
72
70
|
disabled: o,
|
|
@@ -77,26 +75,26 @@ const ue = t.forwardRef(
|
|
|
77
75
|
onOpenAutoFocus: (e) => {
|
|
78
76
|
m.current || e.preventDefault(), m.current = !1;
|
|
79
77
|
},
|
|
80
|
-
popoverHandlers:
|
|
78
|
+
popoverHandlers: B,
|
|
81
79
|
trigger: /* @__PURE__ */ r(
|
|
82
80
|
"div",
|
|
83
81
|
{
|
|
84
82
|
ref: k,
|
|
85
83
|
"data-component": "quarter-picker",
|
|
86
84
|
"data-state": i ? "open" : "closed",
|
|
87
|
-
onPointerDown: (e) =>
|
|
85
|
+
onPointerDown: (e) => se({
|
|
88
86
|
disabled: o,
|
|
89
87
|
event: e,
|
|
90
88
|
onOpen: () => c(!0),
|
|
91
89
|
focusField: () => d.current?.focus()
|
|
92
90
|
}),
|
|
93
91
|
children: /* @__PURE__ */ r(
|
|
94
|
-
|
|
92
|
+
q,
|
|
95
93
|
{
|
|
96
94
|
ref: d,
|
|
97
|
-
value:
|
|
95
|
+
value: Y,
|
|
98
96
|
readOnly: !0,
|
|
99
|
-
onKeyDown: (e) =>
|
|
97
|
+
onKeyDown: (e) => ce(e, {
|
|
100
98
|
disabled: o,
|
|
101
99
|
open: i,
|
|
102
100
|
onOpen: () => c(!0),
|
|
@@ -106,10 +104,10 @@ const ue = t.forwardRef(
|
|
|
106
104
|
}
|
|
107
105
|
}),
|
|
108
106
|
onClick: () => !o && c(!0),
|
|
109
|
-
placeholder:
|
|
107
|
+
placeholder: H,
|
|
110
108
|
disabled: o,
|
|
111
109
|
"data-form-control": "input",
|
|
112
|
-
className:
|
|
110
|
+
className: $("cursor-pointer", A),
|
|
113
111
|
suffix: /* @__PURE__ */ y("div", { className: "flex items-center gap-1", children: [
|
|
114
112
|
n && !o ? /* @__PURE__ */ y(x, { children: [
|
|
115
113
|
/* @__PURE__ */ r(b, { asChild: !0, children: /* @__PURE__ */ r(
|
|
@@ -122,7 +120,7 @@ const ue = t.forwardRef(
|
|
|
122
120
|
e.stopPropagation(), C();
|
|
123
121
|
},
|
|
124
122
|
className: "inline-flex size-4 items-center justify-center border-none bg-transparent p-0",
|
|
125
|
-
children: /* @__PURE__ */ r(
|
|
123
|
+
children: /* @__PURE__ */ r(Z, { className: "size-3 hover:text-content" })
|
|
126
124
|
}
|
|
127
125
|
) }),
|
|
128
126
|
/* @__PURE__ */ r(R, { variant: "tertiary", side: "top", children: a("calendar.clear") })
|
|
@@ -139,42 +137,42 @@ const ue = t.forwardRef(
|
|
|
139
137
|
e.stopPropagation(), o || c((f) => !f);
|
|
140
138
|
},
|
|
141
139
|
className: "inline-flex items-center justify-center border-none bg-transparent p-0",
|
|
142
|
-
children: /* @__PURE__ */ r(
|
|
140
|
+
children: /* @__PURE__ */ r(_, { className: "h-4 w-4 text-secondary-foreground" })
|
|
143
141
|
}
|
|
144
142
|
) }),
|
|
145
143
|
/* @__PURE__ */ r(R, { variant: "tertiary", side: "top", children: a("datePicker.selectQuarter") })
|
|
146
144
|
] })
|
|
147
145
|
] }),
|
|
148
|
-
...
|
|
146
|
+
...z
|
|
149
147
|
}
|
|
150
148
|
)
|
|
151
149
|
}
|
|
152
150
|
),
|
|
153
151
|
children: /* @__PURE__ */ r(
|
|
154
|
-
|
|
152
|
+
ee,
|
|
155
153
|
{
|
|
156
154
|
pickerType: "quarter",
|
|
157
155
|
selectedQuarters: g,
|
|
158
|
-
footerFlashKey:
|
|
159
|
-
footerFlashTarget:
|
|
160
|
-
onQuarterSelect:
|
|
161
|
-
month:
|
|
162
|
-
onMonthChange:
|
|
163
|
-
disabled:
|
|
156
|
+
footerFlashKey: L,
|
|
157
|
+
footerFlashTarget: V,
|
|
158
|
+
onQuarterSelect: W,
|
|
159
|
+
month: G,
|
|
160
|
+
onMonthChange: J,
|
|
161
|
+
disabled: te(Q, v),
|
|
164
162
|
startMonth: N,
|
|
165
163
|
endMonth: S,
|
|
166
164
|
showFooter: s,
|
|
167
|
-
onApply:
|
|
165
|
+
onApply: X,
|
|
168
166
|
onCancel: h,
|
|
169
167
|
onClear: C,
|
|
170
|
-
...
|
|
168
|
+
...U
|
|
171
169
|
}
|
|
172
170
|
)
|
|
173
171
|
}
|
|
174
172
|
);
|
|
175
173
|
}
|
|
176
174
|
);
|
|
177
|
-
|
|
175
|
+
fe.displayName = "QuarterPicker";
|
|
178
176
|
export {
|
|
179
|
-
|
|
177
|
+
fe as QuarterPicker
|
|
180
178
|
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { jsx as r, jsxs as g } from "react/jsx-runtime";
|
|
2
2
|
import * as t from "react";
|
|
3
|
-
import { Cross as
|
|
4
|
-
import { cn as
|
|
5
|
-
import { Input as
|
|
6
|
-
import { Calendar as
|
|
3
|
+
import { Cross as Z, CalendarMonth as _ } from "impact-nova-icons";
|
|
4
|
+
import { cn as q } from "../../../lib/utils.js";
|
|
5
|
+
import { Input as ee } from "../input/input.js";
|
|
6
|
+
import { Calendar as re } from "../../data-display/calendar/calendar.js";
|
|
7
7
|
import { Tooltip as C, TooltipTrigger as x, TooltipContent as b } from "../../feedback/tooltip/tooltip.js";
|
|
8
|
-
import { useImpactNovaI18n as
|
|
9
|
-
import { buildDateBoundsMatcher as
|
|
10
|
-
import { fiscalCalendarPassThrough as
|
|
11
|
-
import { DatePickerShell as
|
|
12
|
-
import { usePickerDismissActionsRef as
|
|
8
|
+
import { useImpactNovaI18n as te } from "../../../i18n/use-impact-nova-i18n.js";
|
|
9
|
+
import { buildDateBoundsMatcher as ne } from "../../../lib/date-bounds-matcher.js";
|
|
10
|
+
import { fiscalCalendarPassThrough as oe } from "./fiscal-pass-through.js";
|
|
11
|
+
import { DatePickerShell as ae } from "./date-picker-shell.js";
|
|
12
|
+
import { usePickerDismissActionsRef as ie, usePickerFooterDismissNudge as ce, handleReadonlyPickerKeyDown as se, handlePickerSurfacePointerDown as le } from "./date-input-behavior.js";
|
|
13
13
|
import { formatQuarterInput as D } from "../../data-display/calendar/calendar-fiscal-labels.js";
|
|
14
|
-
import { viewMonthFromQuarter as
|
|
15
|
-
const
|
|
14
|
+
import { viewMonthFromQuarter as fe } from "../../data-display/calendar/calendar-quarter-utils.js";
|
|
15
|
+
const pe = t.forwardRef(
|
|
16
16
|
({
|
|
17
17
|
value: n,
|
|
18
18
|
onChange: d,
|
|
@@ -32,16 +32,15 @@ const de = t.forwardRef(
|
|
|
32
32
|
fiscalConfig: j,
|
|
33
33
|
showPresets: F,
|
|
34
34
|
showPeriodBoundaries: $,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
t.
|
|
40
|
-
const [i, c] = t.useState(!1), u = t.useRef(!1), k = ce(), { footerFlashKey: V, footerFlashTarget: B, popoverHandlers: G } = se(l, i, k, y), [P, f] = t.useState(n), [J, U] = t.useState(pe(n?.from));
|
|
35
|
+
...z
|
|
36
|
+
}, E) => {
|
|
37
|
+
const { t: a } = te(), H = Q ?? a("datePicker.selectQuarterRange"), m = t.useRef(null), y = t.useRef(null);
|
|
38
|
+
t.useImperativeHandle(E, () => m.current);
|
|
39
|
+
const [i, c] = t.useState(!1), u = t.useRef(!1), k = ie(), { footerFlashKey: L, footerFlashTarget: V, popoverHandlers: B } = ce(l, i, k, y), [P, f] = t.useState(n), [G, J] = t.useState(fe(n?.from));
|
|
41
40
|
t.useEffect(() => {
|
|
42
41
|
i || f(n);
|
|
43
42
|
}, [i, n]);
|
|
44
|
-
const p = t.useCallback(() => c(!1), []),
|
|
43
|
+
const p = t.useCallback(() => c(!1), []), U = oe({
|
|
45
44
|
calendarKind: M,
|
|
46
45
|
fiscalMode: O,
|
|
47
46
|
granularity: T,
|
|
@@ -49,12 +48,11 @@ const de = t.forwardRef(
|
|
|
49
48
|
fiscalYearStartMonth: K,
|
|
50
49
|
fiscalConfig: j,
|
|
51
50
|
showPresets: F,
|
|
52
|
-
showPeriodBoundaries:
|
|
53
|
-
|
|
54
|
-
}), X = (e) => {
|
|
51
|
+
showPeriodBoundaries: $
|
|
52
|
+
}), W = (e) => {
|
|
55
53
|
const s = e && !Array.isArray(e) && ("from" in e || "to" in e) ? e : void 0;
|
|
56
54
|
f(s), l || (d?.(s), s?.to && p());
|
|
57
|
-
},
|
|
55
|
+
}, X = () => {
|
|
58
56
|
d?.(P), p();
|
|
59
57
|
}, h = () => {
|
|
60
58
|
f(n), p();
|
|
@@ -64,9 +62,9 @@ const de = t.forwardRef(
|
|
|
64
62
|
t.useLayoutEffect(() => {
|
|
65
63
|
k.current = { onDismiss: h, resolveFlash: () => "cancel" };
|
|
66
64
|
});
|
|
67
|
-
const
|
|
65
|
+
const Y = n?.from ? `${D(n.from)}${n.to ? ` – ${D(n.to)}` : ""}` : "";
|
|
68
66
|
return /* @__PURE__ */ r(
|
|
69
|
-
|
|
67
|
+
ae,
|
|
70
68
|
{
|
|
71
69
|
open: i,
|
|
72
70
|
disabled: o,
|
|
@@ -77,26 +75,26 @@ const de = t.forwardRef(
|
|
|
77
75
|
onOpenAutoFocus: (e) => {
|
|
78
76
|
u.current || e.preventDefault(), u.current = !1;
|
|
79
77
|
},
|
|
80
|
-
popoverHandlers:
|
|
78
|
+
popoverHandlers: B,
|
|
81
79
|
trigger: /* @__PURE__ */ r(
|
|
82
80
|
"div",
|
|
83
81
|
{
|
|
84
82
|
ref: y,
|
|
85
83
|
"data-component": "quarter-range-picker",
|
|
86
84
|
"data-state": i ? "open" : "closed",
|
|
87
|
-
onPointerDown: (e) =>
|
|
85
|
+
onPointerDown: (e) => le({
|
|
88
86
|
disabled: o,
|
|
89
87
|
event: e,
|
|
90
88
|
onOpen: () => c(!0),
|
|
91
89
|
focusField: () => m.current?.focus()
|
|
92
90
|
}),
|
|
93
91
|
children: /* @__PURE__ */ r(
|
|
94
|
-
|
|
92
|
+
ee,
|
|
95
93
|
{
|
|
96
94
|
ref: m,
|
|
97
|
-
value:
|
|
95
|
+
value: Y,
|
|
98
96
|
readOnly: !0,
|
|
99
|
-
onKeyDown: (e) =>
|
|
97
|
+
onKeyDown: (e) => se(e, {
|
|
100
98
|
disabled: o,
|
|
101
99
|
open: i,
|
|
102
100
|
onOpen: () => c(!0),
|
|
@@ -106,10 +104,10 @@ const de = t.forwardRef(
|
|
|
106
104
|
}
|
|
107
105
|
}),
|
|
108
106
|
onClick: () => !o && c(!0),
|
|
109
|
-
placeholder:
|
|
107
|
+
placeholder: H,
|
|
110
108
|
disabled: o,
|
|
111
109
|
"data-form-control": "input",
|
|
112
|
-
className:
|
|
110
|
+
className: q("cursor-pointer", I),
|
|
113
111
|
suffix: /* @__PURE__ */ g("div", { className: "flex items-center gap-1", children: [
|
|
114
112
|
n?.from && !o ? /* @__PURE__ */ g(C, { children: [
|
|
115
113
|
/* @__PURE__ */ r(x, { asChild: !0, children: /* @__PURE__ */ r(
|
|
@@ -122,7 +120,7 @@ const de = t.forwardRef(
|
|
|
122
120
|
e.stopPropagation(), R();
|
|
123
121
|
},
|
|
124
122
|
className: "inline-flex size-4 items-center justify-center border-none bg-transparent p-0",
|
|
125
|
-
children: /* @__PURE__ */ r(
|
|
123
|
+
children: /* @__PURE__ */ r(Z, { className: "size-3 hover:text-content" })
|
|
126
124
|
}
|
|
127
125
|
) }),
|
|
128
126
|
/* @__PURE__ */ r(b, { variant: "tertiary", side: "top", children: a("calendar.clear") })
|
|
@@ -139,43 +137,43 @@ const de = t.forwardRef(
|
|
|
139
137
|
e.stopPropagation(), o || c((s) => !s);
|
|
140
138
|
},
|
|
141
139
|
className: "inline-flex items-center justify-center border-none bg-transparent p-0",
|
|
142
|
-
children: /* @__PURE__ */ r(
|
|
140
|
+
children: /* @__PURE__ */ r(_, { className: "h-4 w-4 text-secondary-foreground" })
|
|
143
141
|
}
|
|
144
142
|
) }),
|
|
145
143
|
/* @__PURE__ */ r(b, { variant: "tertiary", side: "top", children: a("datePicker.selectQuarterRange") })
|
|
146
144
|
] })
|
|
147
145
|
] }),
|
|
148
|
-
...
|
|
146
|
+
...z
|
|
149
147
|
}
|
|
150
148
|
)
|
|
151
149
|
}
|
|
152
150
|
),
|
|
153
151
|
children: /* @__PURE__ */ r(
|
|
154
|
-
|
|
152
|
+
re,
|
|
155
153
|
{
|
|
156
154
|
pickerType: "quarter",
|
|
157
155
|
monthMode: "range",
|
|
158
156
|
selectedQuarters: P,
|
|
159
|
-
footerFlashKey:
|
|
160
|
-
footerFlashTarget:
|
|
161
|
-
onQuarterSelect:
|
|
162
|
-
month:
|
|
163
|
-
onMonthChange:
|
|
164
|
-
disabled:
|
|
157
|
+
footerFlashKey: L,
|
|
158
|
+
footerFlashTarget: V,
|
|
159
|
+
onQuarterSelect: W,
|
|
160
|
+
month: G,
|
|
161
|
+
onMonthChange: J,
|
|
162
|
+
disabled: ne(N, S),
|
|
165
163
|
startMonth: v,
|
|
166
164
|
endMonth: A,
|
|
167
165
|
showFooter: l,
|
|
168
|
-
onApply:
|
|
166
|
+
onApply: X,
|
|
169
167
|
onCancel: h,
|
|
170
168
|
onClear: R,
|
|
171
|
-
...
|
|
169
|
+
...U
|
|
172
170
|
}
|
|
173
171
|
)
|
|
174
172
|
}
|
|
175
173
|
);
|
|
176
174
|
}
|
|
177
175
|
);
|
|
178
|
-
|
|
176
|
+
pe.displayName = "QuarterRangePicker";
|
|
179
177
|
export {
|
|
180
|
-
|
|
178
|
+
pe as QuarterRangePicker
|
|
181
179
|
};
|