impact-nova 3.0.0-alpha.2 → 3.0.0-alpha.3
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/_virtual/index.js +4 -4
- package/dist/_virtual/index2.js +4 -4
- package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +3 -2
- package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +3 -2
- package/dist/components/data/expandable-list-item/index.d.ts +2 -0
- package/dist/components/data/expandable-list-item/index.js +20 -16
- package/dist/components/data/expandable-list-item/product-card-hero.d.ts +15 -0
- package/dist/components/data/expandable-list-item/product-card-iris-insight-trigger.d.ts +8 -0
- package/dist/components/data/expandable-list-item/product-card-iris-insight-trigger.js +41 -0
- package/dist/components/data/expandable-list-item/product-card-metrics-toggle.d.ts +13 -0
- package/dist/components/data/expandable-list-item/product-card-metrics-toggle.js +27 -0
- package/dist/components/data/expandable-list-item/sku-picker-chrome.d.ts +35 -0
- package/dist/components/data/expandable-list-item/sku-picker-chrome.js +142 -0
- package/dist/components/data/expandable-list-item/virtualized-responsive-grid.sku-picker.d.ts +3 -2
- package/dist/components/feedback/tooltip/tab-tooltip-render.js +3 -2
- 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/select/components/SelectTriggerValue.js +3 -2
- package/dist/components/forms/select/components/Submenu.js +3 -2
- package/dist/form-react/Fields/VirtualizedListField.d.ts +3 -0
- package/dist/form-react/Fields/VirtualizedListField.js +169 -0
- package/dist/form-react/fields.d.ts +1 -0
- package/dist/form-react/fields.js +28 -26
- package/dist/form-react/registry/defaultFieldRegistrations.d.ts +1 -1
- package/dist/form-react/registry/defaultFieldRegistrations.js +13 -12
- package/dist/form-react/types/fields.types.d.ts +21 -1
- package/dist/form-react/types/fieldsOutput.types.d.ts +4 -1
- package/dist/form-react/utils/fieldDefaults.utils.js +1 -1
- package/dist/impact-nova.css +1 -1
- package/dist/index.js +356 -352
- package/dist/llms/rules/installation.js +1 -1
- package/dist/llms/rules/requirements.js +1 -1
- package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
- package/dist/node_modules/unified/lib/index.js +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { jsx as i, jsxs as x } from "react/jsx-runtime";
|
|
2
|
+
import { useState as b } from "react";
|
|
3
|
+
import { Controller as k } from "react-hook-form";
|
|
4
|
+
import { ChoiceCardGroup as I, ChoiceCard as j, ChoiceCardIndicator as q, ChoiceCardContent as z, ChoiceCardTitle as D } from "../../components/forms/choice-card/choice-card.js";
|
|
5
|
+
import { SkuPickerChrome as B } from "../../components/data/expandable-list-item/sku-picker-chrome.js";
|
|
6
|
+
import { cn as S } from "../../lib/utils.js";
|
|
7
|
+
import { getFieldTestId as M } from "../utils/fieldTestIds.js";
|
|
8
|
+
function P(e) {
|
|
9
|
+
if (!Array.isArray(e))
|
|
10
|
+
return [];
|
|
11
|
+
const r = [];
|
|
12
|
+
for (const t of e)
|
|
13
|
+
typeof t == "string" && r.push(t);
|
|
14
|
+
return r;
|
|
15
|
+
}
|
|
16
|
+
function y(e, r, t) {
|
|
17
|
+
if (t === "single") {
|
|
18
|
+
const l = Array.from(r).find((o) => !e.includes(o));
|
|
19
|
+
return l ? [l] : Array.from(r).slice(0, 1);
|
|
20
|
+
}
|
|
21
|
+
const a = [];
|
|
22
|
+
for (const l of e)
|
|
23
|
+
r.has(l) && a.push(l);
|
|
24
|
+
for (const l of r)
|
|
25
|
+
e.includes(l) || a.push(l);
|
|
26
|
+
return a;
|
|
27
|
+
}
|
|
28
|
+
function d(e) {
|
|
29
|
+
return typeof e.label == "string" ? e.label : e.value;
|
|
30
|
+
}
|
|
31
|
+
function E(e, r, t) {
|
|
32
|
+
const a = r.trim().toLowerCase(), l = e.filter(
|
|
33
|
+
(o) => d(o).toLowerCase().includes(a)
|
|
34
|
+
);
|
|
35
|
+
return t ? l.sort(
|
|
36
|
+
(o, f) => d(o).localeCompare(d(f))
|
|
37
|
+
) : l;
|
|
38
|
+
}
|
|
39
|
+
function G(e, r) {
|
|
40
|
+
let t = 0;
|
|
41
|
+
for (const a of e)
|
|
42
|
+
if (a.isDisabled !== !0 && (t += 1, !r.includes(a.value)))
|
|
43
|
+
return !1;
|
|
44
|
+
return t > 0;
|
|
45
|
+
}
|
|
46
|
+
function R(e, r) {
|
|
47
|
+
const t = [];
|
|
48
|
+
for (const a of r) {
|
|
49
|
+
const l = e.find((o) => o.value === a);
|
|
50
|
+
if (l && (t.push(d(l)), t.length === 5))
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
return t;
|
|
54
|
+
}
|
|
55
|
+
function _(e) {
|
|
56
|
+
const r = e.view === "card";
|
|
57
|
+
return /* @__PURE__ */ i(
|
|
58
|
+
I,
|
|
59
|
+
{
|
|
60
|
+
type: "multiple",
|
|
61
|
+
value: e.selected ? [e.option.value] : [],
|
|
62
|
+
onValueChange: (t) => {
|
|
63
|
+
t.includes(e.option.value) !== e.selected && e.onToggle();
|
|
64
|
+
},
|
|
65
|
+
disabled: e.disabled,
|
|
66
|
+
className: "min-w-0 w-full",
|
|
67
|
+
children: /* @__PURE__ */ x(
|
|
68
|
+
j,
|
|
69
|
+
{
|
|
70
|
+
value: e.option.value,
|
|
71
|
+
size: "sm",
|
|
72
|
+
disabled: e.disabled,
|
|
73
|
+
"aria-label": d(e.option),
|
|
74
|
+
className: S(
|
|
75
|
+
"w-full min-w-0",
|
|
76
|
+
!r && "items-center justify-start gap-3 rounded-none border-0 bg-transparent p-0 shadow-none hover:border-0 data-[selected]:border-0 data-[selected]:bg-transparent data-[selected]:shadow-none"
|
|
77
|
+
),
|
|
78
|
+
children: [
|
|
79
|
+
/* @__PURE__ */ i(q, { className: r ? "order-last" : "order-first" }),
|
|
80
|
+
/* @__PURE__ */ i(z, { className: "min-w-0", children: /* @__PURE__ */ i(D, { className: "whitespace-normal normal-case", children: d(e.option) }) })
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
const X = ({
|
|
88
|
+
field: e,
|
|
89
|
+
validationRules: r,
|
|
90
|
+
isDisabled: t,
|
|
91
|
+
formHelpers: a
|
|
92
|
+
}) => {
|
|
93
|
+
const [l, o] = b(""), [f, N] = b(!1), [m, A] = b("card");
|
|
94
|
+
if (e.fieldType !== "virtualized_list") return null;
|
|
95
|
+
const C = e.options ?? [], g = e.selectionMode ?? "multi", L = a.form.control, h = E(C, l, f);
|
|
96
|
+
return /* @__PURE__ */ i(
|
|
97
|
+
k,
|
|
98
|
+
{
|
|
99
|
+
name: e.id,
|
|
100
|
+
control: L,
|
|
101
|
+
disabled: t,
|
|
102
|
+
rules: r,
|
|
103
|
+
render: ({ field: u, fieldState: p }) => {
|
|
104
|
+
const c = P(u.value), v = !!p.error, w = v ? p.error?.message : e.helpText, T = (n) => {
|
|
105
|
+
if (t || n.isDisabled === !0)
|
|
106
|
+
return;
|
|
107
|
+
const s = new Set(c);
|
|
108
|
+
s.has(n.value) ? s.delete(n.value) : s.add(n.value), u.onChange(y(c, s, g));
|
|
109
|
+
}, V = () => {
|
|
110
|
+
if (g === "single") {
|
|
111
|
+
const s = h.find((O) => O.isDisabled !== !0);
|
|
112
|
+
u.onChange(s ? [s.value] : []);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const n = new Set(c);
|
|
116
|
+
for (const s of h)
|
|
117
|
+
s.isDisabled !== !0 && n.add(s.value);
|
|
118
|
+
u.onChange(y(c, n, "multi"));
|
|
119
|
+
};
|
|
120
|
+
return /* @__PURE__ */ x("div", { "data-testid": M(e.id), children: [
|
|
121
|
+
/* @__PURE__ */ i(
|
|
122
|
+
B,
|
|
123
|
+
{
|
|
124
|
+
collapsible: e.collapsible,
|
|
125
|
+
defaultCollapsed: e.defaultCollapsed,
|
|
126
|
+
title: e.label,
|
|
127
|
+
required: e.isRequired,
|
|
128
|
+
emptyLabel: "None selected",
|
|
129
|
+
searchLabel: e.label ? `Search ${e.label}` : "Search",
|
|
130
|
+
showBack: !1,
|
|
131
|
+
view: m,
|
|
132
|
+
search: l,
|
|
133
|
+
sortAlphabetically: f,
|
|
134
|
+
selectedCount: c.length,
|
|
135
|
+
allSelected: G(h, c),
|
|
136
|
+
previewCodes: R(C, c),
|
|
137
|
+
onSearchChange: o,
|
|
138
|
+
onViewChange: A,
|
|
139
|
+
onToggleSort: () => N((n) => !n),
|
|
140
|
+
onSelectAll: V,
|
|
141
|
+
onClear: () => u.onChange([]),
|
|
142
|
+
children: /* @__PURE__ */ i(
|
|
143
|
+
"div",
|
|
144
|
+
{
|
|
145
|
+
className: m === "card" ? "grid w-full grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-3" : "flex w-full flex-col gap-2",
|
|
146
|
+
children: h.map((n) => /* @__PURE__ */ i(
|
|
147
|
+
_,
|
|
148
|
+
{
|
|
149
|
+
option: n,
|
|
150
|
+
selected: c.includes(n.value),
|
|
151
|
+
disabled: t || n.isDisabled === !0,
|
|
152
|
+
view: m,
|
|
153
|
+
onToggle: () => T(n)
|
|
154
|
+
},
|
|
155
|
+
n.value
|
|
156
|
+
))
|
|
157
|
+
}
|
|
158
|
+
)
|
|
159
|
+
}
|
|
160
|
+
),
|
|
161
|
+
w ? /* @__PURE__ */ i("p", { className: S("mt-1 text-xs", v ? "text-destructive" : "text-content-tertiary"), children: w }) : null
|
|
162
|
+
] });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
);
|
|
166
|
+
};
|
|
167
|
+
export {
|
|
168
|
+
X as VirtualizedListField
|
|
169
|
+
};
|
|
@@ -14,6 +14,7 @@ export { SelectField } from './Fields/SelectField';
|
|
|
14
14
|
export { CheckboxField } from './Fields/CheckboxField';
|
|
15
15
|
export { SwitchField } from './Fields/SwitchField';
|
|
16
16
|
export { ChipsField } from './Fields/ChipsField';
|
|
17
|
+
export { VirtualizedListField } from './Fields/VirtualizedListField';
|
|
17
18
|
export { DateInputField } from './Fields/DateInputField';
|
|
18
19
|
export { FillFormByPasteField } from './Fields/FillFormByPasteField';
|
|
19
20
|
export { FillFormByFileUploadField } from './Fields/FillFormByFileUploadField';
|
|
@@ -1,50 +1,52 @@
|
|
|
1
|
-
import { TextField as
|
|
1
|
+
import { TextField as o } from "./Fields/TextField.js";
|
|
2
2
|
import { TextAreaField as t } from "./Fields/TextAreaField.js";
|
|
3
3
|
import { ButtonsGroupField as d } from "./Fields/ButtonsGroupField.js";
|
|
4
4
|
import { RadioField as F } from "./Fields/RadioField.js";
|
|
5
5
|
import { DateRangeField as m } from "./Fields/DateRangeField.js";
|
|
6
6
|
import { WeekRangeField as a } from "./Fields/WeekRangePicker.js";
|
|
7
7
|
import { MonthRangeField as n } from "./Fields/MonthRangeField.js";
|
|
8
|
-
import { FileUploadField as
|
|
8
|
+
import { FileUploadField as u } from "./Fields/FileUploadField.js";
|
|
9
9
|
import { SelectField as R } from "./Fields/SelectField.js";
|
|
10
10
|
import { CheckboxField as g } from "./Fields/CheckboxField.js";
|
|
11
|
-
import { SwitchField as
|
|
12
|
-
import { ChipsField as
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
11
|
+
import { SwitchField as s } from "./Fields/SwitchField.js";
|
|
12
|
+
import { ChipsField as T } from "./Fields/ChipsField.js";
|
|
13
|
+
import { VirtualizedListField as C } from "./Fields/VirtualizedListField.js";
|
|
14
|
+
import { DateInputField as W } from "./Fields/DateInputField.js";
|
|
15
|
+
import { FillFormByPasteField as y } from "./Fields/FillFormByPasteField.js";
|
|
16
|
+
import { FillFormByFileUploadField as U } from "./Fields/FillFormByFileUploadField.js";
|
|
17
|
+
import { NumericComboboxField as w } from "./Fields/NumericComboboxField.js";
|
|
17
18
|
import { MultiMonthPickerField as A } from "./Fields/MultiMonthPickerField.js";
|
|
18
19
|
import { MultiWeekPickerField as I } from "./Fields/MultiWeekPickerField.js";
|
|
19
|
-
import { TextFieldWithBackendValidation as
|
|
20
|
+
import { TextFieldWithBackendValidation as N } from "./Fields/TextFieldWithBackendValidation.js";
|
|
20
21
|
import { SliderRangeField as q } from "./Fields/SliderRangeField.js";
|
|
21
|
-
import { RichTextField as
|
|
22
|
-
import { YearPickerField as
|
|
23
|
-
import { MultiYearPickerField as
|
|
24
|
-
import { YearRangePickerField as
|
|
22
|
+
import { RichTextField as E } from "./Fields/RichTextField.js";
|
|
23
|
+
import { YearPickerField as J } from "./Fields/YearPickerField.js";
|
|
24
|
+
import { MultiYearPickerField as O } from "./Fields/MultiYearPickerField.js";
|
|
25
|
+
import { YearRangePickerField as X } from "./Fields/YearRangePickerField.js";
|
|
25
26
|
export {
|
|
26
27
|
d as ButtonsGroupField,
|
|
27
28
|
g as CheckboxField,
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
T as ChipsField,
|
|
30
|
+
W as DateInputField,
|
|
30
31
|
m as DateRangeField,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
u as FileUploadField,
|
|
33
|
+
U as FillFormByFileUploadField,
|
|
34
|
+
y as FillFormByPasteField,
|
|
34
35
|
n as MonthRangeField,
|
|
35
36
|
A as MultiMonthPickerField,
|
|
36
37
|
I as MultiWeekPickerField,
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
O as MultiYearPickerField,
|
|
39
|
+
w as NumericComboboxField,
|
|
39
40
|
F as RadioField,
|
|
40
|
-
|
|
41
|
+
E as RichTextField,
|
|
41
42
|
R as SelectField,
|
|
42
43
|
q as SliderRangeField,
|
|
43
|
-
|
|
44
|
+
s as SwitchField,
|
|
44
45
|
t as TextAreaField,
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
o as TextField,
|
|
47
|
+
N as TextFieldWithBackendValidation,
|
|
48
|
+
C as VirtualizedListField,
|
|
47
49
|
a as WeekRangeField,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
J as YearPickerField,
|
|
51
|
+
X as YearRangePickerField
|
|
50
52
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Register all
|
|
2
|
+
* Register all built-in field types. Safe to call multiple times — runs once.
|
|
3
3
|
*
|
|
4
4
|
* Consumers must call this at app startup (or use `registerFieldType` selectively)
|
|
5
5
|
* before rendering any `FieldRenderer` / `ReactHooksForm`.
|
|
@@ -2,11 +2,11 @@ import { registerFieldType as e } from "./fieldRegistry.js";
|
|
|
2
2
|
import { SelectField as r } from "../Fields/SelectField.js";
|
|
3
3
|
import { ButtonsGroupField as o } from "../Fields/ButtonsGroupField.js";
|
|
4
4
|
import { RadioField as t } from "../Fields/RadioField.js";
|
|
5
|
-
import { TextField as
|
|
6
|
-
import { TextAreaField as
|
|
5
|
+
import { TextField as l } from "../Fields/TextField.js";
|
|
6
|
+
import { TextAreaField as m } from "../Fields/TextAreaField.js";
|
|
7
7
|
import { DateRangeField as d } from "../Fields/DateRangeField.js";
|
|
8
|
-
import { DateInputField as
|
|
9
|
-
import { WeekRangeField as
|
|
8
|
+
import { DateInputField as a } from "../Fields/DateInputField.js";
|
|
9
|
+
import { WeekRangeField as p } from "../Fields/WeekRangePicker.js";
|
|
10
10
|
import { MonthRangeField as f } from "../Fields/MonthRangeField.js";
|
|
11
11
|
import { MultiWeekPickerField as F } from "../Fields/MultiWeekPickerField.js";
|
|
12
12
|
import { MultiMonthPickerField as _ } from "../Fields/MultiMonthPickerField.js";
|
|
@@ -14,21 +14,22 @@ import { FileUploadField as n } from "../Fields/FileUploadField.js";
|
|
|
14
14
|
import { FillFormByPasteField as c } from "../Fields/FillFormByPasteField.js";
|
|
15
15
|
import { FillFormByFileUploadField as u } from "../Fields/FillFormByFileUploadField.js";
|
|
16
16
|
import { ChipsField as k } from "../Fields/ChipsField.js";
|
|
17
|
+
import { VirtualizedListField as s } from "../Fields/VirtualizedListField.js";
|
|
17
18
|
import { TextFieldWithBackendValidation as b } from "../Fields/TextFieldWithBackendValidation.js";
|
|
18
19
|
import { SwitchField as g } from "../Fields/SwitchField.js";
|
|
19
20
|
import { CheckboxField as h } from "../Fields/CheckboxField.js";
|
|
20
|
-
import { LabelField as
|
|
21
|
-
import { DividerField as
|
|
22
|
-
import { DividerWithLabelField as
|
|
21
|
+
import { LabelField as x } from "../Fields/LabelField.js";
|
|
22
|
+
import { DividerField as y } from "../Fields/DividerField.js";
|
|
23
|
+
import { DividerWithLabelField as v } from "../Fields/DividerWithLabelField.js";
|
|
23
24
|
import { NumericComboboxField as w } from "../Fields/NumericComboboxField.js";
|
|
24
25
|
import { SliderRangeField as P } from "../Fields/SliderRangeField.js";
|
|
25
26
|
import { YearPickerField as R } from "../Fields/YearPickerField.js";
|
|
26
|
-
import { MultiYearPickerField as
|
|
27
|
-
import { YearRangePickerField as
|
|
27
|
+
import { MultiYearPickerField as D } from "../Fields/MultiYearPickerField.js";
|
|
28
|
+
import { YearRangePickerField as M } from "../Fields/YearRangePickerField.js";
|
|
28
29
|
let i = !1;
|
|
29
|
-
function
|
|
30
|
-
i || (i = !0, e("divider",
|
|
30
|
+
function oe() {
|
|
31
|
+
i || (i = !0, e("divider", y), e("divider_with_label", v), e("label", x), e("select", r), e("button_group", o), e("radio", t), e("text", l), e("numeric_combobox", w), e("text_area", m), e("date", a), e("date_range", d), e("week_range", p), e("multi_week_picker", F), e("month_range", f), e("multi_month_picker", _), e("file_upload", n), e("fill_form_by_paste", c), e("fill_form_by_file_upload", u), e("chips", k), e("virtualized_list", s), e("text_with_backend_validation", b), e("switch", g), e("checkbox", h), e("slider_range", P), e("year_picker", R), e("multi_year_picker", D), e("year_range", M));
|
|
31
32
|
}
|
|
32
33
|
export {
|
|
33
|
-
|
|
34
|
+
oe as registerDefaultFieldTypes
|
|
34
35
|
};
|
|
@@ -488,6 +488,26 @@ export type ChipsField = BaseField & {
|
|
|
488
488
|
/** When true in single mode, re-clicking the active chip clears the selection. */
|
|
489
489
|
allowDeselect?: boolean;
|
|
490
490
|
};
|
|
491
|
+
/**
|
|
492
|
+
* Controlled multi/single select rendered with the virtualized list.
|
|
493
|
+
* Form state is a JSON array of selected option values (`string[]`).
|
|
494
|
+
*/
|
|
495
|
+
export type VirtualizedListField = BaseField & {
|
|
496
|
+
fieldType: "virtualized_list";
|
|
497
|
+
options: Array<Option>;
|
|
498
|
+
/** `multi` stores every selected value. `single` stores at most one. Default: multi. */
|
|
499
|
+
selectionMode?: "single" | "multi";
|
|
500
|
+
/** Selected option values when the form first mounts. */
|
|
501
|
+
defaultSelectedValues?: string[];
|
|
502
|
+
/** Row height in pixels. Default: 44. */
|
|
503
|
+
estimateSize?: number;
|
|
504
|
+
/** Scroll viewport height in pixels. Default: 240. */
|
|
505
|
+
viewportHeight?: number;
|
|
506
|
+
/** Fold search and choices behind the label, with the selection summary on the header. */
|
|
507
|
+
collapsible?: boolean;
|
|
508
|
+
/** Start folded. Ignored unless `collapsible` is set. */
|
|
509
|
+
defaultCollapsed?: boolean;
|
|
510
|
+
};
|
|
491
511
|
export type DividerField = BaseField & {
|
|
492
512
|
fieldType: "divider";
|
|
493
513
|
className?: string;
|
|
@@ -549,6 +569,6 @@ export type RichTextField = BaseField & {
|
|
|
549
569
|
/** Minimum editor height in px. Default: 150 */
|
|
550
570
|
minHeight?: number;
|
|
551
571
|
};
|
|
552
|
-
export type IField = FileUploadField | ButtonsGroupField | SelectField | DateInputField | DateRangeField | WeekRangeField | MonthRangeField | MultiMonthPickerField | TextAreaField | RadioField | TextField | NumericComboboxField | CopyPasteField | FillFormByFileUploadField | TextFieldWithBackendValidation | ChipsField | DividerField | DividerWithLabelField | LabelField | SwitchField | CheckboxField | YearPickerField | MultiYearPickerField | YearRangePickerField | MultiWeekRangeField | SliderRangeField | RichTextField | ObjectFieldConfig | ArrayFieldConfig;
|
|
572
|
+
export type IField = FileUploadField | ButtonsGroupField | SelectField | DateInputField | DateRangeField | WeekRangeField | MonthRangeField | MultiMonthPickerField | TextAreaField | RadioField | TextField | NumericComboboxField | CopyPasteField | FillFormByFileUploadField | TextFieldWithBackendValidation | ChipsField | VirtualizedListField | DividerField | DividerWithLabelField | LabelField | SwitchField | CheckboxField | YearPickerField | MultiYearPickerField | YearRangePickerField | MultiWeekRangeField | SliderRangeField | RichTextField | ObjectFieldConfig | ArrayFieldConfig;
|
|
553
573
|
/** Discriminant string union for every built-in field type */
|
|
554
574
|
export type FieldType = IField["fieldType"];
|
|
@@ -23,6 +23,8 @@ export type MultiMonthPickerFieldOutput = MonthSelection[] | null | undefined;
|
|
|
23
23
|
/** Empty string is the unset default from getFieldDefaultValue */
|
|
24
24
|
export type NumericComboboxFieldOutput = number | "" | null | undefined;
|
|
25
25
|
export type ChipsFieldOutput = string | string[] | null | undefined;
|
|
26
|
+
/** Selected option values. Single mode still stores a one-item array. */
|
|
27
|
+
export type VirtualizedListFieldOutput = string[] | null | undefined;
|
|
26
28
|
export type SwitchFieldOutput = boolean | null | undefined;
|
|
27
29
|
export type CheckboxFieldOutput = boolean | null | undefined;
|
|
28
30
|
export type SliderRangeFieldOutput = number[] | null | undefined;
|
|
@@ -36,7 +38,7 @@ export type PresentationalFieldOutput = null | undefined;
|
|
|
36
38
|
* Union of all field output values (recursive for object / array nesting).
|
|
37
39
|
* Defined independently of FieldTypeToOutputMap to avoid circular map lookups.
|
|
38
40
|
*/
|
|
39
|
-
export type FieldOutputValue = FileUploadFieldOutput | ButtonsGroupFieldOutput | SelectFieldOutput | DateInputFieldOutput | DateRangeFieldOutput | WeekRangeFieldOutput | MultiWeekPickerFieldOutput | MonthRangeFieldOutput | MultiMonthPickerFieldOutput | TextAreaFieldOutput | RadioFieldOutput | TextFieldOutput | NumericComboboxFieldOutput | CopyPasteFieldOutput | FillFormByFileUploadFieldOutput | TextFieldWithBackendValidationOutput | ChipsFieldOutput | SwitchFieldOutput | CheckboxFieldOutput | SliderRangeFieldOutput | YearPickerFieldOutput | MultiYearPickerFieldOutput | YearRangePickerFieldOutput | RichTextFieldOutput | PresentationalFieldOutput | {
|
|
41
|
+
export type FieldOutputValue = FileUploadFieldOutput | ButtonsGroupFieldOutput | SelectFieldOutput | DateInputFieldOutput | DateRangeFieldOutput | WeekRangeFieldOutput | MultiWeekPickerFieldOutput | MonthRangeFieldOutput | MultiMonthPickerFieldOutput | TextAreaFieldOutput | RadioFieldOutput | TextFieldOutput | NumericComboboxFieldOutput | CopyPasteFieldOutput | FillFormByFileUploadFieldOutput | TextFieldWithBackendValidationOutput | ChipsFieldOutput | VirtualizedListFieldOutput | SwitchFieldOutput | CheckboxFieldOutput | SliderRangeFieldOutput | YearPickerFieldOutput | MultiYearPickerFieldOutput | YearRangePickerFieldOutput | RichTextFieldOutput | PresentationalFieldOutput | {
|
|
40
42
|
[key: string]: FieldOutputValue;
|
|
41
43
|
} | Array<{
|
|
42
44
|
[key: string]: FieldOutputValue;
|
|
@@ -62,6 +64,7 @@ export type FieldTypeToOutputMap = {
|
|
|
62
64
|
fill_form_by_file_upload: FillFormByFileUploadFieldOutput;
|
|
63
65
|
text_with_backend_validation: TextFieldWithBackendValidationOutput;
|
|
64
66
|
chips: ChipsFieldOutput;
|
|
67
|
+
virtualized_list: VirtualizedListFieldOutput;
|
|
65
68
|
switch: SwitchFieldOutput;
|
|
66
69
|
checkbox: CheckboxFieldOutput;
|
|
67
70
|
slider_range: SliderRangeFieldOutput;
|
|
@@ -30,7 +30,7 @@ function u(e) {
|
|
|
30
30
|
const t = e.min ?? 0;
|
|
31
31
|
return e.range ? [t, e.max ?? 100] : [t];
|
|
32
32
|
}
|
|
33
|
-
return e.fieldType === "year_picker" ? e.defaultValue != null ? { year: e.defaultValue } : null : e.fieldType === "multi_year_picker" ? e.defaultValue?.map((t) => ({ year: t })) ?? null : e.fieldType === "year_range" && e.defaultRange ? { from: { year: e.defaultRange.start }, to: { year: e.defaultRange.end } } : e.fieldType === "date" ? "" : e.fieldType === "select" ? [] : e.fieldType === "week_range" && e.defaultRange ? {
|
|
33
|
+
return e.fieldType === "year_picker" ? e.defaultValue != null ? { year: e.defaultValue } : null : e.fieldType === "multi_year_picker" ? e.defaultValue?.map((t) => ({ year: t })) ?? null : e.fieldType === "year_range" && e.defaultRange ? { from: { year: e.defaultRange.start }, to: { year: e.defaultRange.end } } : e.fieldType === "date" ? "" : e.fieldType === "select" ? [] : e.fieldType === "virtualized_list" ? e.defaultSelectedValues ?? [] : e.fieldType === "week_range" && e.defaultRange ? {
|
|
34
34
|
start: e.defaultRange.start || null,
|
|
35
35
|
end: e.defaultRange.end || null
|
|
36
36
|
} : null;
|