@uva-glass/component-library 2.6.2 → 2.7.0
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/{Lexical.prod-BAr6tzpa.js → Lexical.prod-sR6tW7N6.js} +894 -894
- package/dist/Lexical.prod-sR6tW7N6.js.map +1 -0
- package/dist/{LexicalClipboard.prod-CLCBYtDj.js → LexicalClipboard.prod-BbRoaXo6.js} +93 -93
- package/dist/LexicalClipboard.prod-BbRoaXo6.js.map +1 -0
- package/dist/{LexicalComposerContext.prod-Dyvim1tK.js → LexicalComposerContext.prod-DxxjdrXB.js} +2 -2
- package/dist/{LexicalComposerContext.prod-Dyvim1tK.js.map → LexicalComposerContext.prod-DxxjdrXB.js.map} +1 -1
- package/dist/{LexicalLink.prod-CBgZ4B3x.js → LexicalLink.prod-iDKxtfCF.js} +42 -42
- package/dist/LexicalLink.prod-iDKxtfCF.js.map +1 -0
- package/dist/{LexicalList.prod-haeqjypw.js → LexicalList.prod-ywkx7SnO.js} +56 -56
- package/dist/LexicalList.prod-ywkx7SnO.js.map +1 -0
- package/dist/LexicalSelection.prod-mYXylG1z.js +86 -0
- package/dist/{LexicalSelection.prod-C8x7KK4L.js.map → LexicalSelection.prod-mYXylG1z.js.map} +1 -1
- package/dist/LexicalTable.prod-XN7avk7R.js +1447 -0
- package/dist/LexicalTable.prod-XN7avk7R.js.map +1 -0
- package/dist/{LexicalUtils.prod-Dsec_Kl-.js → LexicalUtils.prod-DnFLi0Ww.js} +24 -24
- package/dist/{LexicalUtils.prod-Dsec_Kl-.js.map → LexicalUtils.prod-DnFLi0Ww.js.map} +1 -1
- package/dist/{SortableProvider-BUsvniX7.js → SortableProvider-RaH_ZXB3.js} +20 -20
- package/dist/{SortableProvider-BUsvniX7.js.map → SortableProvider-RaH_ZXB3.js.map} +1 -1
- package/dist/{TablePlugin-sPSGmCno.js → TablePlugin-5Cs2F_co.js} +12 -11
- package/dist/{TablePlugin-sPSGmCno.js.map → TablePlugin-5Cs2F_co.js.map} +1 -1
- package/dist/assets/FormInput.css +1 -1
- package/dist/components/Buttons/Button.stories.js +1 -1
- package/dist/components/Buttons/LinkButton.stories.js +1 -1
- package/dist/components/Buttons/MenuButton.stories.js +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.js +6 -5
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.stories.js +1 -1
- package/dist/components/CheckboxButton/CheckboxButton.stories.js +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.d.ts +2 -2
- package/dist/components/CheckboxTree/CheckboxTree.js +110 -74
- package/dist/components/CheckboxTree/CheckboxTree.js.map +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.stories.d.ts +2 -1
- package/dist/components/CheckboxTree/CheckboxTree.stories.js +121 -31
- package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
- package/dist/components/Chip/Chip.stories.js +1 -1
- package/dist/components/Drawer/Drawer.stories.js +1 -1
- package/dist/components/FormInput/FormInput.d.ts +1 -1
- package/dist/components/FormInput/FormInput.js +39 -41
- package/dist/components/FormInput/FormInput.js.map +1 -1
- package/dist/components/FormInput/FormInput.stories.js +1 -1
- package/dist/components/IconButton/IconButton.stories.js +1 -1
- package/dist/components/InputField/InputField.js +17 -17
- package/dist/components/InputField/InputField.stories.js +17 -16
- package/dist/components/InputField/InputField.stories.js.map +1 -1
- package/dist/components/ModalDialog/ModalDialog.stories.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.stories.js +2 -2
- package/dist/components/MultiSelect/components/MultiSelectHeader.js +5 -4
- package/dist/components/MultiSelect/components/MultiSelectHeader.js.map +1 -1
- package/dist/components/MultiSelect/index.js +1 -1
- package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +4 -4
- package/dist/components/OverlayStepBar/OverlayStepBar.js +13 -12
- package/dist/components/OverlayStepBar/OverlayStepBar.js.map +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.js +15 -14
- package/dist/components/PeriodSelector/PeriodSelector.js.map +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.stories.js +1 -1
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +11 -10
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js.map +1 -1
- package/dist/components/RadioButton/RadioButton.js +3 -3
- package/dist/components/RteEditor/EditorHeader/EditorHeader.js +6 -5
- package/dist/components/RteEditor/EditorHeader/EditorHeader.js.map +1 -1
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +2 -2
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +15 -14
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +6 -5
- package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js.map +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +10 -9
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +1 -1
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +48 -48
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +5 -5
- package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +5 -4
- package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js.map +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +8 -7
- package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +5 -5
- package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +4 -4
- package/dist/components/RteEditor/Plugins/index.js +1 -1
- package/dist/components/RteEditor/Providers/LanguageProvider.js +7 -7
- package/dist/components/RteEditor/RteEditor.js +473 -472
- package/dist/components/RteEditor/RteEditor.js.map +1 -1
- package/dist/components/RteEditor/helpers.js +4 -4
- package/dist/components/SelectListbox/SelectListBox.stories.js +1 -1
- package/dist/components/SelectListbox/SelectProvider.js +10 -10
- package/dist/components/Sortable/Sortable.js +1 -1
- package/dist/components/Sortable/Sortable.stories.js +7 -7
- package/dist/components/Sortable/SortableProvider.js +1 -1
- package/dist/components/Sortable/components/SortableContainer.js +1 -1
- package/dist/components/Sortable/components/SortableItem.js +15 -15
- package/dist/components/Sortable/sortableReducer.js +21 -21
- package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +5 -5
- package/dist/components/Tooltip/Tooltip.js +22 -22
- package/dist/components/index.js +1 -1
- package/dist/{helpers-DHHQR5ys.js → helpers-BpqX-Lj3.js} +26 -26
- package/dist/helpers-BpqX-Lj3.js.map +1 -0
- package/dist/{index-0wq-B7do.js → index-B3c5pcHk.js} +22 -22
- package/dist/{index-0wq-B7do.js.map → index-B3c5pcHk.js.map} +1 -1
- package/dist/{index-B9BWML6P.js → index-BpZ8v2ye.js} +7088 -7092
- package/dist/{index-B9BWML6P.js.map → index-BpZ8v2ye.js.map} +1 -1
- package/dist/index-CHX1d9_A.js +21922 -0
- package/dist/{index-DWzkl4aY.js.map → index-CHX1d9_A.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/{react-18-BIqxBxbW.js → react-18-CT6mjea2.js} +2 -2
- package/dist/{react-18-BIqxBxbW.js.map → react-18-CT6mjea2.js.map} +1 -1
- package/dist/storybook__react.d.js +510 -510
- package/dist/storybook__react.d.js.map +1 -1
- package/package.json +1 -1
- package/dist/Lexical.prod-BAr6tzpa.js.map +0 -1
- package/dist/LexicalClipboard.prod-CLCBYtDj.js.map +0 -1
- package/dist/LexicalLink.prod-CBgZ4B3x.js.map +0 -1
- package/dist/LexicalList.prod-haeqjypw.js.map +0 -1
- package/dist/LexicalSelection.prod-C8x7KK4L.js +0 -86
- package/dist/LexicalTable.prod-8RqiGUG-.js +0 -1447
- package/dist/LexicalTable.prod-8RqiGUG-.js.map +0 -1
- package/dist/helpers-DHHQR5ys.js.map +0 -1
- package/dist/index-DWzkl4aY.js +0 -21915
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useRef as
|
|
3
|
-
import { c as
|
|
4
|
-
import { Icon as
|
|
5
|
-
import { Button as
|
|
1
|
+
import { jsxs as u, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as y, useState as G, useEffect as O, createRef as S } from "react";
|
|
3
|
+
import { c as E } from "../../clsx-OuTLNxxd.js";
|
|
4
|
+
import { Icon as q } from "../Icon/Icon.js";
|
|
5
|
+
import { Button as I } from "../Buttons/Button.js";
|
|
6
6
|
import "../Buttons/LinkButton.js";
|
|
7
7
|
import "@react-aria/button";
|
|
8
|
-
import { Checkbox as
|
|
9
|
-
import { Label as
|
|
8
|
+
import { Checkbox as w } from "../Checkbox/Checkbox.js";
|
|
9
|
+
import { Label as A } from "../Label/Label.js";
|
|
10
10
|
import "@react-aria/dialog";
|
|
11
11
|
import "@react-aria/focus";
|
|
12
12
|
import "@react-aria/overlays";
|
|
13
13
|
import "../OverlayCloseButton/OverlayCloseButton.js";
|
|
14
|
-
import { FormField as
|
|
14
|
+
import { FormField as C } from "../FormField/FormField.js";
|
|
15
15
|
import "../GridRow/GridRow.js";
|
|
16
16
|
import "../IconButton/IconButton.js";
|
|
17
17
|
import "../Input/Input.js";
|
|
18
18
|
import "../InputField/InputField.js";
|
|
19
19
|
import "react-router";
|
|
20
|
-
import "../../TablePlugin-
|
|
20
|
+
import "../../TablePlugin-5Cs2F_co.js";
|
|
21
21
|
import "../RteEditor/Providers/LanguageProvider.js";
|
|
22
22
|
import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
23
23
|
import "../RteEditor/hooks/components/Flyout.js";
|
|
24
|
-
import "../../index-
|
|
24
|
+
import "../../index-B3c5pcHk.js";
|
|
25
25
|
import "../SelectListbox/SelectListbox.js";
|
|
26
26
|
import "../SelectListbox/SelectProvider.js";
|
|
27
27
|
import "../Sortable/components/SortableItem.js";
|
|
28
|
-
import "../../SortableProvider-
|
|
29
|
-
import { useResponsive as
|
|
30
|
-
import '../../assets/CheckboxTree.css';const
|
|
28
|
+
import "../../SortableProvider-RaH_ZXB3.js";
|
|
29
|
+
import { useResponsive as L } from "../hooks/useResponsive.js";
|
|
30
|
+
import '../../assets/CheckboxTree.css';const s = {
|
|
31
31
|
"checkbox-tree__header": "_checkbox-tree__header_3w3rj_1",
|
|
32
32
|
"checkbox-tree__branch": "_checkbox-tree__branch_3w3rj_8",
|
|
33
33
|
"checkbox-tree__branch--icon": "_checkbox-tree__branch--icon_3w3rj_21",
|
|
@@ -36,89 +36,125 @@ import '../../assets/CheckboxTree.css';const o = {
|
|
|
36
36
|
"checkbox-tree__leaves": "_checkbox-tree__leaves_3w3rj_39",
|
|
37
37
|
"checkbox-tree__leaves--expanded": "_checkbox-tree__leaves--expanded_3w3rj_48",
|
|
38
38
|
"checkbox-tree__leaf": "_checkbox-tree__leaf_3w3rj_52"
|
|
39
|
-
},
|
|
40
|
-
title:
|
|
41
|
-
checkboxTree:
|
|
42
|
-
|
|
43
|
-
noLabelFrontWeight:
|
|
44
|
-
onChange:
|
|
39
|
+
}, le = ({
|
|
40
|
+
title: f,
|
|
41
|
+
checkboxTree: B,
|
|
42
|
+
selectedValues: d,
|
|
43
|
+
noLabelFrontWeight: p = !1,
|
|
44
|
+
onChange: b
|
|
45
45
|
}) => {
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
46
|
+
const n = y({}), [m, x] = G([]), { lessThan: h } = L(), F = (r, e) => {
|
|
47
|
+
if (r.length !== e.length) return !1;
|
|
48
|
+
const t = (o) => o.reduce((l, j) => (l[j] = (l[j] || 0) + 1, l), {}), c = t(r), a = t(e);
|
|
49
|
+
return !Object.keys(c).some((o) => c[o] !== a[o]);
|
|
50
|
+
}, k = (r) => (n.current[r] || (n.current[r] = S()), n.current[r]), v = () => {
|
|
51
|
+
const r = [];
|
|
52
|
+
Object.entries(n.current).forEach(([e]) => {
|
|
53
|
+
const t = n.current[e].current;
|
|
54
|
+
t && t.name.indexOf("Group") === -1 && t.checked && r.push(t.value);
|
|
55
|
+
}), x(r), b && b(r);
|
|
56
|
+
}, _ = (r) => {
|
|
57
|
+
if (r === "") return;
|
|
58
|
+
const e = [];
|
|
59
|
+
Object.entries(n.current).forEach(([a]) => {
|
|
60
|
+
const o = n.current[a].current;
|
|
61
|
+
o && (o == null ? void 0 : o.getAttribute("data-groupname")) === r && e.push(o.checked);
|
|
62
|
+
});
|
|
63
|
+
const t = e.every(Boolean), c = e.some(Boolean);
|
|
64
|
+
n.current[r].current && (n.current[r].current.checked = t, n.current[r].current.indeterminate = !t && t !== c, n.current[r].current.checked = t && t === c);
|
|
65
|
+
}, g = (r, e) => {
|
|
66
|
+
var c, a;
|
|
62
67
|
const t = e == null ? void 0 : e.querySelector("[data-ul]");
|
|
63
|
-
r.childNodes[0].classList.toggle(
|
|
68
|
+
r.childNodes[0].classList.toggle(s["checkbox-tree__branch--icon--expanded"]), (a = e == null ? void 0 : e.closest("[data-li]")) == null || a.setAttribute(
|
|
64
69
|
"aria-expanded",
|
|
65
|
-
((
|
|
66
|
-
), t && t.classList.toggle(
|
|
67
|
-
},
|
|
68
|
-
var c;
|
|
70
|
+
((c = e == null ? void 0 : e.closest("[data-li]")) == null ? void 0 : c.getAttribute("aria-expanded")) === "false" ? "true" : "false"
|
|
71
|
+
), t && t.classList.toggle(s["checkbox-tree__leaves--expanded"]);
|
|
72
|
+
}, R = (r) => {
|
|
69
73
|
const e = r.target;
|
|
70
|
-
if (!e
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
if (!(e.type !== "checkbox" && e.type !== "button")) {
|
|
75
|
+
if (h.md && e.name.indexOf("Group") !== -1 && e.parentNode && e.parentNode.parentNode.getAttribute("aria-expanded") === "false") {
|
|
76
|
+
r.preventDefault(), g(e.parentNode, e.parentNode.parentNode);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (e.name.indexOf("Group") !== -1) {
|
|
80
|
+
const t = e.name;
|
|
81
|
+
Object.entries(n.current).forEach(([c]) => {
|
|
82
|
+
if (c.indexOf(`${t}_`) !== -1) {
|
|
83
|
+
const a = n.current[c].current, o = n.current[t].current;
|
|
84
|
+
if (!a || !o) return;
|
|
85
|
+
a.checked = !!o.checked;
|
|
86
|
+
}
|
|
87
|
+
}), _(t), v();
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
_(e.getAttribute("data-groupname") || ""), v();
|
|
75
91
|
}
|
|
76
|
-
|
|
77
|
-
(e.parentNode.parentNode ? _("input", e.parentNode.parentNode) : []).forEach((h) => h.checked = h.disabled ? !1 : e.checked), x(e), A();
|
|
78
|
-
}, q = (r) => {
|
|
92
|
+
}, $ = (r) => {
|
|
79
93
|
const e = r.target, t = e.closest("[data-li]");
|
|
80
|
-
|
|
94
|
+
g(e, t);
|
|
81
95
|
};
|
|
82
|
-
return
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
96
|
+
return O(() => {
|
|
97
|
+
d && !F(d, m) && Object.entries(n.current).forEach(([r]) => {
|
|
98
|
+
const e = n.current[r].current;
|
|
99
|
+
e && (d != null && d.includes(e.value) ? e.checked = !0 : e.checked = !1, e.name.indexOf("Group") !== -1 && x(d || []));
|
|
100
|
+
});
|
|
101
|
+
}, [d]), O(() => {
|
|
102
|
+
Object.entries(n.current).forEach(([r]) => {
|
|
103
|
+
const e = n.current[r].current;
|
|
104
|
+
e && e.name.indexOf("Group") !== -1 && _(e.name);
|
|
87
105
|
});
|
|
88
|
-
}, [
|
|
89
|
-
|
|
90
|
-
/* @__PURE__ */
|
|
106
|
+
}, [m]), /* @__PURE__ */ u("div", { children: [
|
|
107
|
+
f && /* @__PURE__ */ i("span", { className: s["checkbox-tree__header"], children: f }),
|
|
108
|
+
/* @__PURE__ */ i("div", { onClick: R, "data-ul": !0, role: "tree", tabIndex: 0, children: B.map(({ itemName: r, children: e }, t) => /* @__PURE__ */ u(
|
|
91
109
|
"div",
|
|
92
110
|
{
|
|
93
|
-
className:
|
|
111
|
+
className: s["checkbox-tree__branch"],
|
|
94
112
|
"data-li": !0,
|
|
95
|
-
"aria-expanded":
|
|
113
|
+
"aria-expanded": h.md ? "false" : "true",
|
|
96
114
|
children: [
|
|
97
|
-
/* @__PURE__ */
|
|
98
|
-
/* @__PURE__ */
|
|
99
|
-
|
|
115
|
+
/* @__PURE__ */ u(C, { inline: !0, className: s["checkbox-tree__branch--formfield"], children: [
|
|
116
|
+
/* @__PURE__ */ i(I, { variant: "blank", onClick: $, children: /* @__PURE__ */ i(
|
|
117
|
+
q,
|
|
100
118
|
{
|
|
101
119
|
name: "CheveronRight",
|
|
102
120
|
size: 16,
|
|
103
|
-
className:
|
|
104
|
-
[
|
|
121
|
+
className: E(s["checkbox-tree__branch--icon"], {
|
|
122
|
+
[s["checkbox-tree__branch--icon--expanded"]]: !h.md
|
|
105
123
|
})
|
|
106
124
|
}
|
|
107
125
|
) }),
|
|
108
|
-
/* @__PURE__ */
|
|
109
|
-
|
|
126
|
+
/* @__PURE__ */ i(
|
|
127
|
+
w,
|
|
128
|
+
{
|
|
129
|
+
id: r,
|
|
130
|
+
name: `Group${t}`,
|
|
131
|
+
disabled: e.every((c) => c.disabled),
|
|
132
|
+
ref: k(`Group${t}`)
|
|
133
|
+
}
|
|
134
|
+
),
|
|
135
|
+
/* @__PURE__ */ i(A, { htmlFor: r, noFontWeight: p, children: r })
|
|
110
136
|
] }),
|
|
111
|
-
/* @__PURE__ */
|
|
137
|
+
/* @__PURE__ */ i(
|
|
112
138
|
"div",
|
|
113
139
|
{
|
|
114
|
-
className:
|
|
115
|
-
[
|
|
140
|
+
className: E(s["checkbox-tree__leaves"], {
|
|
141
|
+
[s["checkbox-tree__leaves--expanded"]]: !h.md
|
|
116
142
|
}),
|
|
117
143
|
"data-ul": !0,
|
|
118
|
-
children: e.map(({ itemName:
|
|
119
|
-
/* @__PURE__ */
|
|
120
|
-
|
|
121
|
-
|
|
144
|
+
children: e.map(({ itemName: c, itemValue: a, disabled: o }) => /* @__PURE__ */ i("div", { className: s["checkbox-tree__leaf"], "data-li": !0, children: /* @__PURE__ */ u(C, { inline: !0, className: s["checkbox-tree__branch--formfield"], children: [
|
|
145
|
+
/* @__PURE__ */ i(
|
|
146
|
+
w,
|
|
147
|
+
{
|
|
148
|
+
id: c,
|
|
149
|
+
name: c,
|
|
150
|
+
value: a,
|
|
151
|
+
disabled: o,
|
|
152
|
+
"data-groupname": `Group${t}`,
|
|
153
|
+
ref: k(`Group${t}_${c}`)
|
|
154
|
+
}
|
|
155
|
+
),
|
|
156
|
+
/* @__PURE__ */ i(A, { htmlFor: c, noFontWeight: p, children: c })
|
|
157
|
+
] }) }, c))
|
|
122
158
|
}
|
|
123
159
|
)
|
|
124
160
|
]
|
|
@@ -128,6 +164,6 @@ import '../../assets/CheckboxTree.css';const o = {
|
|
|
128
164
|
] });
|
|
129
165
|
};
|
|
130
166
|
export {
|
|
131
|
-
|
|
167
|
+
le as CheckboxTree
|
|
132
168
|
};
|
|
133
169
|
//# sourceMappingURL=CheckboxTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxTree.js","sources":["../../../src/components/CheckboxTree/CheckboxTree.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport type { MouseEventHandler } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked. When deselecting the parent checkbox, the disabled checkbox is deselected, and will never be checked again. We'll leave this for now, until we run into a real world example where this is necessary.\n\nexport type CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\nexport type CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n defaultValue?: string[];\n /** `true` if the font-weight needs to be unset; otherwise, `false`. The default is `false`. */\n noLabelFrontWeight?: boolean;\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({\n title,\n checkboxTree,\n defaultValue,\n noLabelFrontWeight = false,\n onChange,\n}: CheckboxTreeProps) => {\n const checkboxNodes = useRef<HTMLInputElement[]>([]);\n const { lessThan } = useResponsive();\n\n const nodeArray = (selector: string, parent = document) => [].slice.call(parent.querySelectorAll(selector));\n\n const setValue = () => {\n const values = checkboxNodes.current.reduce((values, checkbox) => {\n if (checkbox.name && checkbox.checked) {\n values.push(checkbox.value);\n }\n return values;\n }, [] as string[]);\n\n if (onChange) onChange(values);\n };\n\n const setCheckboxesState = (check: HTMLInputElement) => {\n while (check) {\n const parent = check.closest('[data-ul]')?.parentNode?.querySelector('input');\n const siblings: HTMLInputElement[] = nodeArray(\n 'input',\n parent?.closest('[data-li]')?.querySelector('[data-ul]') as Document | undefined\n );\n\n const checkStatus = siblings.reduce((status, check) => {\n if (!check.disabled) status.push(check.checked);\n return status;\n }, [] as boolean[]);\n\n const every = checkStatus.every(Boolean);\n const some = checkStatus.some(Boolean);\n\n if (parent) {\n parent.checked = every;\n parent.indeterminate = !every && every !== some;\n }\n\n if (!parent || check === parent) {\n break;\n }\n\n check = parent;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (!check || !check.parentNode || !check.parentNode.parentNode) return;\n const parentCheckbox = check.parentNode.parentNode as HTMLElement;\n\n if (\n lessThan.md &&\n check.previousElementSibling?.tagName === 'BUTTON' &&\n parentCheckbox.getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(parentCheckbox.querySelector('button') as HTMLButtonElement, parentCheckbox);\n return;\n }\n\n if (checkboxNodes.current.indexOf(check) === -1) return;\n\n const children: HTMLInputElement[] = (check.parentNode.parentNode as Document)\n ? nodeArray('input', check.parentNode.parentNode as Document)\n : [];\n\n children.forEach((child) => {\n return (child.checked = child.disabled ? false : check.checked);\n });\n\n setCheckboxesState(check);\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n checkboxNodes.current = nodeArray('input') || [];\n }, []);\n\n useEffect(() => {\n if (defaultValue) {\n checkboxNodes.current.forEach((checkbox) => {\n if (defaultValue.includes(checkbox.value)) {\n checkbox.checked = true;\n setCheckboxesState(checkbox);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [defaultValue]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox id={itemName} disabled={children.every((checkbox) => checkbox.disabled)} />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox id={itemName} name={itemName} value={itemValue} disabled={disabled} />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxTree","title","checkboxTree","defaultValue","noLabelFrontWeight","onChange","checkboxNodes","useRef","lessThan","useResponsive","nodeArray","selector","parent","setValue","values","checkbox","setCheckboxesState","check","_b","_a","checkStatus","_c","status","every","some","setExpandedAttributes","trigger","container","children","styles","handleChange","event","parentCheckbox","child","handleExpanded","target","useEffect","itemName","jsxs","FormField","jsx","Button","Icon","clsx","Checkbox","Label","itemValue","disabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CheckboxTree.js","sources":["../../../src/components/CheckboxTree/CheckboxTree.tsx"],"sourcesContent":["import { createRef, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport type { MouseEventHandler, RefObject } from 'react';\n\nimport styles from './CheckboxTree.module.css';\n\nimport { Button, Checkbox, FormField, Icon, Label } from 'components';\nimport { useResponsive } from 'components/hooks/useResponsive';\n\n// TODO: Currently the checkbox tree shows odd behavior when a disabled checkbox is checked.\n// When deselecting the parent checkbox, the disabled checkbox is deselected, and will never\n// be checked again. We'll leave this for now, until we run into a real world\n// example where this is necessary.\n\nexport type CheckboxLeaf = {\n itemName: string;\n itemValue: string;\n disabled?: boolean;\n};\n\nexport type CheckboxBranch = {\n itemName: string;\n children: CheckboxLeaf[];\n};\n\nexport interface CheckboxTreeProps {\n /** The title of the component. */\n title?: string;\n /** Array of checkbox groups with a label and array of children (itemName, itemValue and disabled boolean). */\n checkboxTree: CheckboxBranch[];\n /** Array of selected values. */\n selectedValues?: string[];\n /** `true` if the font-weight needs to be unset; otherwise, `false`. The default is `false`. */\n noLabelFrontWeight?: boolean;\n /** Returns array of selected values. */\n onChange?: (value: string[]) => void;\n}\n\n/** Represents a component to render a tree of checkboxes. */\nexport const CheckboxTree = ({\n title,\n checkboxTree,\n selectedValues,\n noLabelFrontWeight = false,\n onChange,\n}: CheckboxTreeProps) => {\n const checkboxRefs = useRef<Record<string, RefObject<HTMLInputElement>>>({});\n const [values, setValues] = useState<string[]>([]);\n const { lessThan } = useResponsive();\n\n const valuesAreEqual = (values1: string[], values2: string[]): boolean => {\n if (values1.length !== values2.length) return false;\n\n const countElements = (list: string[]) =>\n list.reduce((acc: Record<string, number>, val) => {\n acc[val] = (acc[val] || 0) + 1;\n return acc;\n }, {});\n\n const numberOfValues1 = countElements(values1);\n const numberOfValues2 = countElements(values2);\n\n return !Object.keys(numberOfValues1).some((key) => numberOfValues1[key] !== numberOfValues2[key]);\n };\n\n const createRefForKey = (key: string) => {\n if (!checkboxRefs.current[key]) {\n checkboxRefs.current[key] = createRef();\n }\n return checkboxRefs.current[key];\n };\n\n const setValue = () => {\n const newValues: string[] = [];\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (chkBox && chkBox.name.indexOf('Group') === -1 && chkBox.checked) {\n newValues.push(chkBox.value);\n }\n });\n setValues(newValues);\n if (onChange) onChange(newValues);\n };\n\n const setCheckboxesState = (checkGroupName: string) => {\n if (checkGroupName === '') return;\n\n const groupStatus: boolean[] = [];\n\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox?.getAttribute('data-groupname') === checkGroupName) {\n groupStatus.push(chkBox.checked);\n }\n });\n\n const every = groupStatus.every(Boolean);\n const some = groupStatus.some(Boolean);\n\n if (checkboxRefs.current[checkGroupName].current) {\n checkboxRefs.current[checkGroupName].current.checked = every;\n checkboxRefs.current[checkGroupName].current.indeterminate = !every && every !== some;\n checkboxRefs.current[checkGroupName].current.checked = every && every === some;\n }\n };\n\n const setExpandedAttributes = (trigger: HTMLButtonElement, container: Element | null) => {\n const children = container?.querySelector('[data-ul]');\n\n (trigger.childNodes[0] as Element).classList.toggle(styles['checkbox-tree__branch--icon--expanded']);\n container\n ?.closest('[data-li]')\n ?.setAttribute(\n 'aria-expanded',\n container?.closest('[data-li]')?.getAttribute('aria-expanded') === 'false' ? 'true' : 'false'\n );\n\n if (children) {\n children.classList.toggle(styles['checkbox-tree__leaves--expanded']);\n }\n };\n\n const handleChange: MouseEventHandler<HTMLDivElement> = (event) => {\n const check = event.target as HTMLInputElement;\n\n if (check.type !== 'checkbox' && check.type !== 'button') return;\n\n if (\n lessThan.md &&\n check.name.indexOf('Group') !== -1 &&\n check.parentNode &&\n (check.parentNode.parentNode as HTMLElement).getAttribute('aria-expanded') === 'false'\n ) {\n event.preventDefault();\n setExpandedAttributes(check.parentNode as HTMLButtonElement, check.parentNode.parentNode as HTMLElement);\n return;\n }\n\n if (check.name.indexOf('Group') !== -1) {\n const childPrefix = check.name;\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n if (key.indexOf(`${childPrefix}_`) !== -1) {\n const chkBox = checkboxRefs.current[key].current;\n const parentCheckbox = checkboxRefs.current[childPrefix].current;\n if (!chkBox || !parentCheckbox) return;\n chkBox.checked = parentCheckbox.checked ? true : false;\n }\n });\n setCheckboxesState(childPrefix);\n setValue();\n return;\n }\n setCheckboxesState(check.getAttribute('data-groupname') || '');\n setValue();\n };\n\n const handleExpanded: MouseEventHandler<HTMLButtonElement> = (event) => {\n const target = event.target as HTMLButtonElement;\n const parent = target.closest('[data-li]');\n setExpandedAttributes(target, parent);\n };\n\n useEffect(() => {\n if (selectedValues && !valuesAreEqual(selectedValues, values)) {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (selectedValues?.includes(chkBox.value)) {\n chkBox.checked = true;\n } else {\n chkBox.checked = false;\n }\n if (chkBox.name.indexOf('Group') !== -1) {\n setValues(selectedValues || []);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedValues]);\n\n useEffect(() => {\n Object.entries(checkboxRefs.current).forEach(([key]) => {\n const chkBox = checkboxRefs.current[key].current;\n if (!chkBox) return;\n if (chkBox.name.indexOf('Group') !== -1) {\n setCheckboxesState(chkBox.name);\n }\n });\n }, [values]);\n\n return (\n <div>\n {title && <span className={styles['checkbox-tree__header']}>{title}</span>}\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */}\n <div onClick={handleChange} data-ul role=\"tree\" tabIndex={0}>\n {checkboxTree.map(({ itemName, children }, index) => (\n <div\n key={itemName}\n className={styles['checkbox-tree__branch']}\n data-li\n aria-expanded={lessThan.md ? 'false' : 'true'}\n >\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Button variant=\"blank\" onClick={handleExpanded}>\n <Icon\n name=\"CheveronRight\"\n size={16}\n className={clsx(styles['checkbox-tree__branch--icon'], {\n [styles['checkbox-tree__branch--icon--expanded']]: !lessThan.md,\n })}\n />\n </Button>\n <Checkbox\n id={itemName}\n name={`Group${index}`}\n disabled={children.every((checkbox) => checkbox.disabled)}\n ref={createRefForKey(`Group${index}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n <div\n className={clsx(styles['checkbox-tree__leaves'], {\n [styles['checkbox-tree__leaves--expanded']]: !lessThan.md,\n })}\n data-ul\n >\n {children.map(({ itemName, itemValue, disabled }) => (\n <div key={itemName} className={styles['checkbox-tree__leaf']} data-li>\n <FormField inline className={styles['checkbox-tree__branch--formfield']}>\n <Checkbox\n id={itemName}\n name={itemName}\n value={itemValue}\n disabled={disabled}\n data-groupname={`Group${index}`}\n ref={createRefForKey(`Group${index}_${itemName}`)}\n />\n <Label htmlFor={itemName} noFontWeight={noLabelFrontWeight}>\n {itemName}\n </Label>\n </FormField>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["CheckboxTree","title","checkboxTree","selectedValues","noLabelFrontWeight","onChange","checkboxRefs","useRef","values","setValues","useState","lessThan","useResponsive","valuesAreEqual","values1","values2","countElements","list","acc","val","numberOfValues1","numberOfValues2","key","createRefForKey","createRef","setValue","newValues","chkBox","setCheckboxesState","checkGroupName","groupStatus","every","some","setExpandedAttributes","trigger","container","children","styles","_b","_a","handleChange","event","check","childPrefix","parentCheckbox","handleExpanded","target","parent","useEffect","itemName","index","jsxs","FormField","jsx","Button","Icon","clsx","Checkbox","checkbox","Label","itemValue","disabled"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Meta } from '@storybook/react';
|
|
1
|
+
import { Meta, StoryFn } from '@storybook/react';
|
|
2
2
|
import { CheckboxTreeProps } from './CheckboxTree';
|
|
3
3
|
declare const _default: Meta<CheckboxTreeProps>;
|
|
4
4
|
export default _default;
|
|
5
5
|
export declare const CheckboxTreeExample: import('@storybook/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, CheckboxTreeProps>;
|
|
6
|
+
export declare const CheckboxTreeWithChips: StoryFn<CheckboxTreeProps>;
|
|
@@ -1,46 +1,136 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { jsx as g, jsxs as x } from "react/jsx-runtime";
|
|
2
|
+
import { j as S, q as D, f as V } from "../../index-CHX1d9_A.js";
|
|
3
|
+
import { s as f } from "../../index-2mUSc_Ki.js";
|
|
4
|
+
import { useState as v } from "react";
|
|
5
|
+
import { CheckboxTree as y } from "./CheckboxTree.js";
|
|
6
|
+
import { Chip as I } from "../Chip/Chip.js";
|
|
7
|
+
let h;
|
|
8
|
+
const j = new Uint8Array(16);
|
|
9
|
+
function U() {
|
|
10
|
+
if (!h && (h = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !h))
|
|
11
|
+
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
12
|
+
return h(j);
|
|
13
|
+
}
|
|
14
|
+
const r = [];
|
|
15
|
+
for (let e = 0; e < 256; ++e)
|
|
16
|
+
r.push((e + 256).toString(16).slice(1));
|
|
17
|
+
function A(e, t = 0) {
|
|
18
|
+
return r[e[t + 0]] + r[e[t + 1]] + r[e[t + 2]] + r[e[t + 3]] + "-" + r[e[t + 4]] + r[e[t + 5]] + "-" + r[e[t + 6]] + r[e[t + 7]] + "-" + r[e[t + 8]] + r[e[t + 9]] + "-" + r[e[t + 10]] + r[e[t + 11]] + r[e[t + 12]] + r[e[t + 13]] + r[e[t + 14]] + r[e[t + 15]];
|
|
19
|
+
}
|
|
20
|
+
const P = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), R = {
|
|
21
|
+
randomUUID: P
|
|
22
|
+
};
|
|
23
|
+
function $(e, t, n) {
|
|
24
|
+
if (R.randomUUID && !e)
|
|
25
|
+
return R.randomUUID();
|
|
26
|
+
e = e || {};
|
|
27
|
+
const o = e.random || (e.rng || U)();
|
|
28
|
+
return o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, A(o);
|
|
29
|
+
}
|
|
30
|
+
var k = "storybook/actions", N = `${k}/action-event`, M = { depth: 10, clearOnStoryChange: !0, limit: 50 }, w = (e, t) => {
|
|
31
|
+
let n = Object.getPrototypeOf(e);
|
|
32
|
+
return !n || t(n) ? n : w(n, t);
|
|
33
|
+
}, F = (e) => !!(typeof e == "object" && e && w(e, (t) => /^Synthetic(?:Base)?Event$/.test(t.constructor.name)) && typeof e.persist == "function"), B = (e) => {
|
|
34
|
+
if (F(e)) {
|
|
35
|
+
let t = Object.create(e.constructor.prototype, Object.getOwnPropertyDescriptors(e));
|
|
36
|
+
t.persist();
|
|
37
|
+
let n = Object.getOwnPropertyDescriptor(t, "view"), o = n == null ? void 0 : n.value;
|
|
38
|
+
return typeof o == "object" && (o == null ? void 0 : o.constructor.name) === "Window" && Object.defineProperty(t, "view", { ...n, value: Object.create(o.constructor.prototype) }), t;
|
|
39
|
+
}
|
|
40
|
+
return e;
|
|
41
|
+
}, W = () => typeof crypto == "object" && typeof crypto.getRandomValues == "function" ? $() : Date.now().toString(36) + Math.random().toString(36).substring(2);
|
|
42
|
+
function _(e, t = {}) {
|
|
43
|
+
let n = { ...M, ...t }, o = function(...c) {
|
|
44
|
+
var b, O;
|
|
45
|
+
if (t.implicit) {
|
|
46
|
+
let E = (b = "__STORYBOOK_PREVIEW__" in f ? f.__STORYBOOK_PREVIEW__ : void 0) == null ? void 0 : b.storyRenders.find((d) => d.phase === "playing" || d.phase === "rendering");
|
|
47
|
+
if (E) {
|
|
48
|
+
let d = !((O = window == null ? void 0 : window.FEATURES) != null && O.disallowImplicitActionsInRenderV8), T = new S({ phase: E.phase, name: e, deprecated: d });
|
|
49
|
+
if (d) console.warn(T);
|
|
50
|
+
else throw T;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
let s = D.getChannel(), m = W(), i = 5, a = c.map(B), l = c.length > 1 ? a : a[0], p = { id: m, count: 0, data: { name: e, args: l }, options: { ...n, maxDepth: i + (n.depth || 3), allowFunction: n.allowFunction || !1 } };
|
|
54
|
+
s.emit(N, p);
|
|
55
|
+
};
|
|
56
|
+
return o.isAction = !0, o.implicit = t.implicit, o;
|
|
57
|
+
}
|
|
58
|
+
const K = (e, t, n) => {
|
|
59
|
+
const o = Array.from({ length: t }, (i, a) => a + 1), c = (i) => {
|
|
60
|
+
const a = Math.ceil(parseInt(i) / n), l = a === n ? "" : `.${parseInt(i) % n || n}`;
|
|
61
|
+
return `${a}${l}`;
|
|
62
|
+
}, s = o.map((i) => ({
|
|
63
|
+
itemName: c(String(i)),
|
|
64
|
+
itemValue: i,
|
|
11
65
|
disabled: !1
|
|
12
66
|
}));
|
|
13
|
-
return
|
|
14
|
-
const
|
|
15
|
-
return
|
|
16
|
-
itemName: `Semester ${
|
|
67
|
+
return o.reduce((i, a, l) => {
|
|
68
|
+
const p = Math.ceil(a / n);
|
|
69
|
+
return e.includes(String(l + 1)) && (i[p] || (i[p] = {
|
|
70
|
+
itemName: `Semester ${p}`,
|
|
17
71
|
children: []
|
|
18
|
-
}),
|
|
19
|
-
...
|
|
20
|
-
itemValue: String(
|
|
21
|
-
})),
|
|
72
|
+
}), i[p].children.push({
|
|
73
|
+
...s[l],
|
|
74
|
+
itemValue: String(s[l].itemValue)
|
|
75
|
+
})), i;
|
|
22
76
|
}, []);
|
|
23
|
-
},
|
|
77
|
+
}, z = 7, L = 3, C = K(
|
|
24
78
|
["1", "2", "3", "4", "5", "6", "7"],
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
),
|
|
79
|
+
z,
|
|
80
|
+
L
|
|
81
|
+
), H = "<CheckboxTree title={} checkboxTree={} selectedValues={} onChange={} />", oe = {
|
|
28
82
|
title: "Organisms/CheckboxTree",
|
|
29
|
-
component:
|
|
83
|
+
component: y,
|
|
30
84
|
parameters: {
|
|
31
|
-
inspectComponent:
|
|
32
|
-
codeString:
|
|
85
|
+
inspectComponent: y,
|
|
86
|
+
codeString: H
|
|
33
87
|
}
|
|
34
|
-
},
|
|
35
|
-
|
|
88
|
+
}, J = (e) => /* @__PURE__ */ g(y, { ...e }), Y = J.bind({});
|
|
89
|
+
Y.args = {
|
|
36
90
|
title: "Periode",
|
|
37
91
|
checkboxTree: C,
|
|
38
92
|
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
39
|
-
|
|
40
|
-
onChange:
|
|
93
|
+
selectedValues: ["3", "4"],
|
|
94
|
+
onChange: V()
|
|
95
|
+
};
|
|
96
|
+
const u = 3, q = (e) => {
|
|
97
|
+
const t = Math.ceil(parseInt(e) / u), n = t === u ? "" : `.${parseInt(e) % u || u}`;
|
|
98
|
+
return `${t}${n}`;
|
|
99
|
+
}, G = (e) => {
|
|
100
|
+
const [t, n] = e.split(".").map(Number);
|
|
101
|
+
return `${(t - 1) * u + (n || 1)}`;
|
|
102
|
+
}, re = () => {
|
|
103
|
+
const [e, t] = v(["5", "4", "1"]), n = (c) => {
|
|
104
|
+
const s = JSON.parse(JSON.stringify(e)).filter(
|
|
105
|
+
(m) => m !== G(c)
|
|
106
|
+
);
|
|
107
|
+
t(() => s), _("onChange value:")(s);
|
|
108
|
+
}, o = (c) => {
|
|
109
|
+
t([...c]), _("onChange value:")(c);
|
|
110
|
+
};
|
|
111
|
+
return /* @__PURE__ */ x("div", { style: { width: "15rem" }, children: [
|
|
112
|
+
/* @__PURE__ */ g("div", { style: { display: "flex", flexWrap: "wrap", gap: "0.5rem", width: "100%", marginBottom: "1rem" }, children: e && e.map((c, s) => /* @__PURE__ */ g(
|
|
113
|
+
I,
|
|
114
|
+
{
|
|
115
|
+
label: q(c),
|
|
116
|
+
onDelete: n
|
|
117
|
+
},
|
|
118
|
+
`${s}_${c}`
|
|
119
|
+
)) }),
|
|
120
|
+
/* @__PURE__ */ g(
|
|
121
|
+
y,
|
|
122
|
+
{
|
|
123
|
+
title: "Periode",
|
|
124
|
+
checkboxTree: C,
|
|
125
|
+
selectedValues: e,
|
|
126
|
+
onChange: o
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
] });
|
|
41
130
|
};
|
|
42
131
|
export {
|
|
43
|
-
|
|
44
|
-
|
|
132
|
+
Y as CheckboxTreeExample,
|
|
133
|
+
re as CheckboxTreeWithChips,
|
|
134
|
+
oe as default
|
|
45
135
|
};
|
|
46
136
|
//# sourceMappingURL=CheckboxTree.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxTree.stories.js","sources":["../../../src/components/CheckboxTree/CheckboxTree.stories.tsx"],"sourcesContent":["import { fn } from '@storybook/test';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { CheckboxLeaf, CheckboxBranch, CheckboxTreeProps } from './CheckboxTree';\n\nimport { CheckboxTree } from './CheckboxTree';\n\nconst createPeriodTree = (periodIndices: string[], numberOfPeriods: number, periodPerSemester: number) => {\n const allPeriods = Array.from({ length: numberOfPeriods }, (_, idx) => idx + 1);\n\n const periodValueToLabel = (value: string) => {\n const semester = Math.ceil(parseInt(value) / periodPerSemester);\n const period = semester === periodPerSemester ? '' : `.${parseInt(value) % periodPerSemester || periodPerSemester}`;\n return `${semester}${period}`;\n };\n\n const periodTree = allPeriods.map((periodIndex) => ({\n itemName: periodValueToLabel(String(periodIndex)),\n itemValue: periodIndex,\n disabled: false,\n }));\n\n const periodTreeObject = allPeriods.reduce((periods, currentPeriod, periodIndex) => {\n const semester = Math.ceil(currentPeriod / periodPerSemester);\n if (periodIndices.includes(String(periodIndex + 1))) {\n if (!periods[semester]) {\n periods[semester] = {\n itemName: `Semester ${semester}`,\n children: [],\n };\n }\n periods[semester].children.push({\n ...periodTree[periodIndex],\n itemValue: String(periodTree[periodIndex].itemValue),\n } as CheckboxLeaf);\n }\n return periods;\n }, [] as CheckboxBranch[]);\n\n return periodTreeObject;\n};\n\nconst NUMBER_OF_PERIODS = 7;\nconst PERIOD_PER_SEMESTER = 3;\n\nconst MOCK_CHECKBOX_TREE = createPeriodTree(\n ['1', '2', '3', '4', '5', '6', '7'],\n NUMBER_OF_PERIODS,\n PERIOD_PER_SEMESTER\n);\n\nconst codeString = '<CheckboxTree title={} checkboxTree={} defaultValue={} onChange={} />';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Organisms/CheckboxTree',\n component: CheckboxTree,\n parameters: {\n inspectComponent: CheckboxTree,\n codeString: codeString,\n },\n} as Meta<CheckboxTreeProps>;\n\nconst Template: StoryFn<CheckboxTreeProps> = (args) => <CheckboxTree {...args} />;\n\nexport const CheckboxTreeExample = Template.bind({});\nCheckboxTreeExample.args = {\n title: 'Periode',\n checkboxTree: MOCK_CHECKBOX_TREE,\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n defaultValue: ['3', '4'],\n onChange: fn(),\n};\n"],"names":["createPeriodTree","periodIndices","numberOfPeriods","periodPerSemester","allPeriods","_","idx","periodValueToLabel","value","semester","period","periodTree","periodIndex","periods","currentPeriod","NUMBER_OF_PERIODS","PERIOD_PER_SEMESTER","MOCK_CHECKBOX_TREE","codeString","CheckboxTree_stories","CheckboxTree","Template","args","jsx","CheckboxTreeExample","fn"],"mappings":";;;AAOA,MAAMA,IAAmB,CAACC,GAAyBC,GAAyBC,MAA8B;AAClG,QAAAC,IAAa,MAAM,KAAK,EAAE,QAAQF,EAAgB,GAAG,CAACG,GAAGC,MAAQA,IAAM,CAAC,GAExEC,IAAqB,CAACC,MAAkB;AAC5C,UAAMC,IAAW,KAAK,KAAK,SAASD,CAAK,IAAIL,CAAiB,GACxDO,IAASD,MAAaN,IAAoB,KAAK,IAAI,SAASK,CAAK,IAAIL,KAAqBA,CAAiB;AAC1G,WAAA,GAAGM,CAAQ,GAAGC,CAAM;AAAA,EAC7B,GAEMC,IAAaP,EAAW,IAAI,CAACQ,OAAiB;AAAA,IAClD,UAAUL,EAAmB,OAAOK,CAAW,CAAC;AAAA,IAChD,WAAWA;AAAA,IACX,UAAU;AAAA,EAAA,EACV;AAmBK,SAjBkBR,EAAW,OAAO,CAACS,GAASC,GAAeF,MAAgB;AAClF,UAAMH,IAAW,KAAK,KAAKK,IAAgBX,CAAiB;AAC5D,WAAIF,EAAc,SAAS,OAAOW,IAAc,CAAC,CAAC,MAC3CC,EAAQJ,CAAQ,MACnBI,EAAQJ,CAAQ,IAAI;AAAA,MAClB,UAAU,YAAYA,CAAQ;AAAA,MAC9B,UAAU,CAAA;AAAA,IACZ,IAEMI,EAAAJ,CAAQ,EAAE,SAAS,KAAK;AAAA,MAC9B,GAAGE,EAAWC,CAAW;AAAA,MACzB,WAAW,OAAOD,EAAWC,CAAW,EAAE,SAAS;AAAA,IAAA,CACpC,IAEZC;AAAA,EACT,GAAG,EAAsB;AAG3B,GAEME,IAAoB,GACpBC,IAAsB,GAEtBC,IAAqBjB;AAAA,EACzB,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,EAClCe;AAAA,EACAC;AACF,GAEME,IAAa,0EAGJC,IAAA;AAAA,EACb,OAAO;AAAA,EACP,WAAWC;AAAA,EACX,YAAY;AAAA,IACV,kBAAkBA;AAAA,IAClB,YAAAF;AAAA,EAAA;AAEJ,GAEMG,IAAuC,CAACC,MAAU,gBAAAC,EAAAH,GAAA,EAAc,GAAGE,GAAM,GAElEE,IAAsBH,EAAS,KAAK,CAAE,CAAA;AACnDG,EAAoB,OAAO;AAAA,EACzB,OAAO;AAAA,EACP,cAAcP;AAAA;AAAA,EAEd,cAAc,CAAC,KAAK,GAAG;AAAA,EACvB,UAAUQ,EAAG;AACf;"}
|
|
1
|
+
{"version":3,"file":"CheckboxTree.stories.js","sources":["../../../node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/uuid/dist/esm-browser/v4.js","../../../node_modules/@storybook/addon-actions/dist/chunk-D5ZWXAHU.mjs","../../../src/components/CheckboxTree/CheckboxTree.stories.tsx"],"sourcesContent":["// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { addons } from 'storybook/internal/preview-api';\nimport { ImplicitActionsDuringRendering } from 'storybook/internal/preview-errors';\nimport { global } from '@storybook/global';\nimport { v4 } from 'uuid';\n\nvar PARAM_KEY=\"actions\",ADDON_ID=\"storybook/actions\",PANEL_ID=`${ADDON_ID}/panel`,EVENT_ID=`${ADDON_ID}/action-event`,CLEAR_ID=`${ADDON_ID}/action-clear`,CYCLIC_KEY=\"$___storybook.isCyclic\";var config={depth:10,clearOnStoryChange:!0,limit:50},configureActions=(options={})=>{Object.assign(config,options);};var findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return !proto||callback(proto)?proto:findProto(proto,callback)},isReactSyntheticEvent=e=>!!(typeof e==\"object\"&&e&&findProto(e,proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name))&&typeof e.persist==\"function\"),serializeArg=a=>{if(isReactSyntheticEvent(a)){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,\"view\"),view=viewDescriptor?.value;return typeof view==\"object\"&&view?.constructor.name===\"Window\"&&Object.defineProperty(e,\"view\",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}return a},generateId=()=>typeof crypto==\"object\"&&typeof crypto.getRandomValues==\"function\"?v4():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=(\"__STORYBOOK_PREVIEW__\"in global?global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find(render=>render.phase===\"playing\"||render.phase===\"rendering\");if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(deprecated)console.warn(error);else throw error}}let channel=addons.getChannel(),id=generateId(),minDepth=5,serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:minDepth+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit);};return handler.isAction=!0,handler.implicit=options.implicit,handler}var actions=(...args)=>{let options=config,names=args;names.length===1&&Array.isArray(names[0])&&([names]=names),names.length!==1&&typeof names[names.length-1]!=\"string\"&&(options={...config,...names.pop()});let namesObject=names[0];(names.length!==1||typeof namesObject==\"string\")&&(namesObject={},names.forEach(name=>{namesObject[name]=name;}));let actionsObject={};return Object.keys(namesObject).forEach(name=>{actionsObject[name]=action(namesObject[name],options);}),actionsObject};\n\nexport { ADDON_ID, CLEAR_ID, CYCLIC_KEY, EVENT_ID, PANEL_ID, PARAM_KEY, action, actions, config, configureActions };\n","import { fn } from '@storybook/test';\nimport { action } from '@storybook/addon-actions';\nimport { useState } from 'react';\n\nimport type { Meta, StoryFn } from '@storybook/react';\nimport type { CheckboxLeaf, CheckboxBranch, CheckboxTreeProps } from './CheckboxTree';\n\nimport { CheckboxTree } from './CheckboxTree';\n\nimport { Chip } from 'components/Chip';\n\nconst createPeriodTree = (periodIndices: string[], numberOfPeriods: number, periodPerSemester: number) => {\n const allPeriods = Array.from({ length: numberOfPeriods }, (_, idx) => idx + 1);\n\n const periodValueToLabel = (value: string) => {\n const semester = Math.ceil(parseInt(value) / periodPerSemester);\n const period = semester === periodPerSemester ? '' : `.${parseInt(value) % periodPerSemester || periodPerSemester}`;\n return `${semester}${period}`;\n };\n\n const periodTree = allPeriods.map((periodIndex) => ({\n itemName: periodValueToLabel(String(periodIndex)),\n itemValue: periodIndex,\n disabled: false,\n }));\n\n const periodTreeObject = allPeriods.reduce((periods, currentPeriod, periodIndex) => {\n const semester = Math.ceil(currentPeriod / periodPerSemester);\n if (periodIndices.includes(String(periodIndex + 1))) {\n if (!periods[semester]) {\n periods[semester] = {\n itemName: `Semester ${semester}`,\n children: [],\n };\n }\n periods[semester].children.push({\n ...periodTree[periodIndex],\n itemValue: String(periodTree[periodIndex].itemValue),\n } as CheckboxLeaf);\n }\n return periods;\n }, [] as CheckboxBranch[]);\n\n return periodTreeObject;\n};\n\nconst NUMBER_OF_PERIODS = 7;\nconst PERIOD_PER_SEMESTER = 3;\n\nconst MOCK_CHECKBOX_TREE = createPeriodTree(\n ['1', '2', '3', '4', '5', '6', '7'],\n NUMBER_OF_PERIODS,\n PERIOD_PER_SEMESTER\n);\n\nconst codeString = '<CheckboxTree title={} checkboxTree={} selectedValues={} onChange={} />';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n title: 'Organisms/CheckboxTree',\n component: CheckboxTree,\n parameters: {\n inspectComponent: CheckboxTree,\n codeString: codeString,\n },\n} as Meta<CheckboxTreeProps>;\n\nconst Template: StoryFn<CheckboxTreeProps> = (args) => <CheckboxTree {...args} />;\n\nexport const CheckboxTreeExample = Template.bind({});\nCheckboxTreeExample.args = {\n title: 'Periode',\n checkboxTree: MOCK_CHECKBOX_TREE,\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n selectedValues: ['3', '4'],\n onChange: fn(),\n};\n\nconst PERIOD_SEGMENT = 3;\n\nconst periodValueToLabel = (value: string) => {\n const semester = Math.ceil(parseInt(value) / PERIOD_SEGMENT);\n const period = semester === PERIOD_SEGMENT ? '' : `.${parseInt(value) % PERIOD_SEGMENT || PERIOD_SEGMENT}`;\n return `${semester}${period}`;\n};\n\nconst periodLabelToValue = (value: string): string => {\n const [row, col] = value.split('.').map(Number);\n return `${(row - 1) * PERIOD_SEGMENT + (col || 1)}`;\n};\n\nexport const CheckboxTreeWithChips: StoryFn<CheckboxTreeProps> = () => {\n const [activeFilters, setActiveFilters] = useState<string[]>(['5', '4', '1']);\n\n const handleRemoveActiveFilter = (filterToRemove: string) => {\n const newActiveFilters = JSON.parse(JSON.stringify(activeFilters)).filter(\n (filter: string) => filter !== periodLabelToValue(filterToRemove)\n );\n\n setActiveFilters(() => newActiveFilters);\n action('onChange value:')(newActiveFilters);\n };\n\n const handlePeriodChange = (value: string[]) => {\n setActiveFilters([...value]);\n action('onChange value:')(value);\n };\n\n return (\n <div style={{ width: '15rem' }}>\n <div style={{ display: 'flex', flexWrap: 'wrap', gap: '0.5rem', width: '100%', marginBottom: '1rem' }}>\n {activeFilters &&\n activeFilters.map((activeFilter, index) => (\n <Chip\n label={periodValueToLabel(activeFilter)}\n onDelete={handleRemoveActiveFilter}\n key={`${index}_${activeFilter}`}\n />\n ))}\n </div>\n <CheckboxTree\n title=\"Periode\"\n checkboxTree={MOCK_CHECKBOX_TREE}\n selectedValues={activeFilters}\n onChange={handlePeriodChange}\n />\n </div>\n );\n};\n"],"names":["getRandomValues","rnds8","rng","byteToHex","i","unsafeStringify","arr","offset","randomUUID","native","v4","options","buf","rnds","ADDON_ID","EVENT_ID","config","findProto","obj","callback","proto","isReactSyntheticEvent","serializeArg","a","e","viewDescriptor","view","generateId","action","name","actionOptions","handler","args","storyRenderer","_a","global","render","deprecated","_b","error","ImplicitActionsDuringRendering","channel","addons","id","minDepth","serializedArgs","normalizedArgs","actionDisplayToEmit","createPeriodTree","periodIndices","numberOfPeriods","periodPerSemester","allPeriods","_","idx","periodValueToLabel","value","semester","period","periodTree","periodIndex","periods","currentPeriod","NUMBER_OF_PERIODS","PERIOD_PER_SEMESTER","MOCK_CHECKBOX_TREE","codeString","CheckboxTree_stories","CheckboxTree","Template","jsx","CheckboxTreeExample","fn","PERIOD_SEGMENT","periodLabelToValue","row","col","CheckboxTreeWithChips","activeFilters","setActiveFilters","useState","handleRemoveActiveFilter","filterToRemove","newActiveFilters","filter","handlePeriodChange","activeFilter","index","Chip"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { f as t } from "../../index-CHX1d9_A.js";
|
|
3
3
|
import { Chip as e } from "./Chip.js";
|
|
4
4
|
const s = "<Chip label={string} onDelete={onDeleteFunction(label)}/>", b = {
|
|
5
5
|
title: "Atoms/Chip",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as a, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { OverlayProvider as p } from "@react-aria/overlays";
|
|
3
|
-
import {
|
|
3
|
+
import { f as m } from "../../index-CHX1d9_A.js";
|
|
4
4
|
import { useState as c } from "react";
|
|
5
5
|
import { Drawer as r } from "./Drawer.js";
|
|
6
6
|
import { Button as o } from "../Buttons/Button.js";
|
|
@@ -13,7 +13,7 @@ export interface FormInputProps {
|
|
|
13
13
|
/** error text to display if set */
|
|
14
14
|
notValidatedText?: string;
|
|
15
15
|
/** Returns array of selected values as number */
|
|
16
|
-
onChange
|
|
16
|
+
onChange?: (value: string) => void;
|
|
17
17
|
/** Determines if the container wrapper is rendered. */
|
|
18
18
|
noContainer?: boolean;
|
|
19
19
|
/** Optional custom input that will replace the default input */
|