@react-form-builder/components-rsuite 7.12.0 → 7.13.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/autocomplete.js +3 -3
- package/dist/breadcrumb.js +1 -1
- package/dist/button.js +6 -6
- package/dist/calendar.js +2 -2
- package/dist/card.js +2 -2
- package/dist/checkbox.js +1 -1
- package/dist/{commonProperties-ETOgvhCH.js → commonProperties-X-t50qaZ.js} +2 -2
- package/dist/{commonProperties-ETOgvhCH.js.map → commonProperties-X-t50qaZ.js.map} +1 -1
- package/dist/date-picker.js +2 -2
- package/dist/dropdown.js +7 -7
- package/dist/dropdown.js.map +1 -1
- package/dist/error-message.js +1 -1
- package/dist/header.js +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/input.js +1 -1
- package/dist/label.js +1 -1
- package/dist/link.js +4 -4
- package/dist/menu.js +1 -1
- package/dist/message.js +1 -1
- package/dist/modal.js +1 -1
- package/dist/number-format.js +5 -5
- package/dist/pattern-format.js +2 -2
- package/dist/radio-group.js +7 -7
- package/dist/search.js +1 -1
- package/dist/tab.js +1 -1
- package/dist/tag-picker.js +1 -1
- package/dist/text-area.js +2 -2
- package/dist/time-picker.js +2 -2
- package/dist/toggle.js +2 -2
- package/dist/tooltip.js +4 -4
- package/dist/uploader.js +6 -6
- package/dist/wizard.d.ts +8 -6
- package/dist/wizard.js +150 -150
- package/dist/wizard.js.map +1 -1
- package/package.json +3 -3
package/dist/wizard.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { cx as
|
|
3
|
-
import
|
|
4
|
-
import { define as
|
|
5
|
-
import { useState as
|
|
6
|
-
import { Steps as
|
|
7
|
-
import { b as
|
|
8
|
-
import { s as
|
|
9
|
-
import { I as
|
|
10
|
-
const
|
|
11
|
-
/* @__PURE__ */
|
|
1
|
+
import { jsxs as v, jsx as i } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { cx as a1 } from "@emotion/css";
|
|
3
|
+
import b from "@emotion/styled";
|
|
4
|
+
import { define as G, node as l1, string as S, containerStyles as K, ComponentStore as Q, useBuilderMode as c1, useComponentData as d1, event as N, boolean as m, nodeArray as p1, array as C1, oneOf as h1, number as u1 } from "@react-form-builder/core";
|
|
5
|
+
import { forwardRef as f1, useState as m1, useEffect as v1, useCallback as p, useMemo as z } from "react";
|
|
6
|
+
import { Steps as U, ButtonToolbar as b1, Button as q } from "rsuite";
|
|
7
|
+
import { b as y1 } from "./hooks-DMVtrI-b.js";
|
|
8
|
+
import { s as X } from "./categories-_98lyB3C.js";
|
|
9
|
+
import { I as g1 } from "./InputCell-BDyUJFGm.js";
|
|
10
|
+
const S1 = () => /* @__PURE__ */ v("svg", { width: "18", height: "18", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
11
|
+
/* @__PURE__ */ i(
|
|
12
12
|
"path",
|
|
13
13
|
{
|
|
14
14
|
d: "M15.35 8C15.35 12.0593 12.0593 15.35 8 15.35C3.94071 15.35 0.65 12.0593 0.65 8C0.65 3.94071 3.94071 0.65 8 0.65C12.0593 0.65 15.35 3.94071 15.35 8Z",
|
|
@@ -16,65 +16,65 @@ const y1 = () => /* @__PURE__ */ f("svg", { width: "18", height: "18", viewBox:
|
|
|
16
16
|
strokeWidth: "1.3"
|
|
17
17
|
}
|
|
18
18
|
),
|
|
19
|
-
/* @__PURE__ */
|
|
19
|
+
/* @__PURE__ */ i(
|
|
20
20
|
"path",
|
|
21
21
|
{
|
|
22
22
|
d: "M10.0277 9.42974C10.3591 9.42974 10.6277 9.69837 10.6277 10.0297V10.511C10.6277 10.8424 10.3591 11.111 10.0277 11.111H6.47016C6.13879 11.111 5.87016 10.8424 5.87016 10.511V10.0297C5.87016 9.69837 6.13879 9.42974 6.47016 9.42974H7.43397V6.45251C7.3679 6.54591 7.26511 6.63932 7.12562 6.73272C6.98612 6.82612 6.82827 6.91563 6.65207 7.00125C6.4832 7.08687 6.31067 7.15693 6.13446 7.21141V7.21141C5.87237 7.28088 5.6499 7.06169 5.6499 6.79054C5.6499 6.66281 5.6499 6.52969 5.6499 6.41748C5.6499 6.30209 5.6499 6.16457 5.6499 6.03355C5.6499 5.76842 5.86835 5.54026 6.11244 5.43675V5.43675C6.29599 5.35113 6.47953 5.24605 6.66308 5.12151C6.85397 4.99697 7.01916 4.87243 7.15865 4.7479C7.16692 4.74089 7.17501 4.73395 7.18292 4.72709C7.3584 4.57498 7.58215 4.44434 7.81438 4.44434H8.62906C8.96043 4.44434 9.22906 4.71297 9.22906 5.04434V9.42974H10.0277Z",
|
|
23
23
|
fill: "#9CA3AF"
|
|
24
24
|
}
|
|
25
25
|
)
|
|
26
|
-
] }),
|
|
26
|
+
] }), x1 = b.div`
|
|
27
27
|
display: flex;
|
|
28
|
-
`, { flexDirection:
|
|
29
|
-
label:
|
|
30
|
-
children:
|
|
28
|
+
`, { flexDirection: w1, gap: A1 } = K, B = "RsWizardStep", $1 = G(x1, B).name("Wizard step").category(X).kind("container").icon(S1).props({
|
|
29
|
+
label: S.default("Step"),
|
|
30
|
+
children: l1
|
|
31
31
|
}).css({
|
|
32
|
-
...
|
|
33
|
-
flexDirection:
|
|
34
|
-
gap:
|
|
35
|
-
}).insertRestriction((e, t) => t.model.type === "RsWizard"),
|
|
32
|
+
...K,
|
|
33
|
+
flexDirection: w1.default("column"),
|
|
34
|
+
gap: A1.default("10px")
|
|
35
|
+
}).insertRestriction((e, t) => t.model.type === "RsWizard"), L1 = b.div`
|
|
36
36
|
display: flex;
|
|
37
37
|
flex: 1;
|
|
38
38
|
flex-direction: column;
|
|
39
|
-
`,
|
|
40
|
-
const t = new
|
|
39
|
+
`, Y = (e) => {
|
|
40
|
+
const t = new Q(`step${e}`, B);
|
|
41
41
|
return t.props.label = { value: `Step ${e}` }, t;
|
|
42
|
-
},
|
|
43
|
-
onAdd: (e, t,
|
|
44
|
-
const
|
|
45
|
-
if (
|
|
46
|
-
t.children[e - 1]?.insertAfterMe(
|
|
42
|
+
}, V1 = {
|
|
43
|
+
onAdd: (e, t, a) => {
|
|
44
|
+
const o = Y(e + 1), s = a.createComponentData(o), c = t.store.props.activeIndex ??= {};
|
|
45
|
+
if (c.value = e, t.children?.length) {
|
|
46
|
+
t.children[e - 1]?.insertAfterMe(s);
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
s.setParent(t);
|
|
50
50
|
},
|
|
51
51
|
onRemove: (e, t) => {
|
|
52
|
-
const { activeIndex:
|
|
53
|
-
|
|
52
|
+
const { activeIndex: a } = t.store.props;
|
|
53
|
+
a?.value === e && e > 0 && (a.value = e - 1), t.children[e].delete();
|
|
54
54
|
},
|
|
55
|
-
columns: [{ name: "label", input:
|
|
56
|
-
calculateEditorProps: ({ store: e }) => ({ data: e.children?.map(({ props:
|
|
57
|
-
label:
|
|
58
|
-
})) ?? [], onChange: (
|
|
59
|
-
|
|
60
|
-
if (!e.children?.[
|
|
61
|
-
const { props:
|
|
62
|
-
|
|
55
|
+
columns: [{ name: "label", input: g1 }],
|
|
56
|
+
calculateEditorProps: ({ store: e }) => ({ data: e.children?.map(({ props: o }) => ({
|
|
57
|
+
label: o.label?.value
|
|
58
|
+
})) ?? [], onChange: (o) => {
|
|
59
|
+
o.forEach(({ label: s }, c) => {
|
|
60
|
+
if (!e.children?.[c]) return;
|
|
61
|
+
const { props: u } = e.children[c];
|
|
62
|
+
u.label = { value: s };
|
|
63
63
|
});
|
|
64
64
|
} })
|
|
65
|
-
},
|
|
65
|
+
}, e1 = (e, t) => {
|
|
66
66
|
if (t(e)) return e;
|
|
67
67
|
if (e.parent)
|
|
68
|
-
return
|
|
69
|
-
},
|
|
68
|
+
return e1(e.parent, t);
|
|
69
|
+
}, W1 = {
|
|
70
70
|
onSelectNode: (e, t) => {
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
73
|
-
const
|
|
74
|
-
|
|
71
|
+
const a = e1(e, (o) => o?.parent === t);
|
|
72
|
+
if (a) {
|
|
73
|
+
const o = t.children.indexOf(a);
|
|
74
|
+
o >= 0 && t.field?.setValue(o);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
},
|
|
77
|
+
}, I1 = b(U.Item)`
|
|
78
78
|
z-index: 7;
|
|
79
79
|
|
|
80
80
|
&.rs-steps-item-status-process:not(.active) .rs-steps-item-icon-wrapper {
|
|
@@ -97,8 +97,8 @@ const y1 = () => /* @__PURE__ */ f("svg", { width: "18", height: "18", viewBox:
|
|
|
97
97
|
&.active:hover .rs-steps-item-icon-wrapper {
|
|
98
98
|
opacity: 0.8;
|
|
99
99
|
}
|
|
100
|
-
`,
|
|
101
|
-
/* @__PURE__ */
|
|
100
|
+
`, M1 = () => /* @__PURE__ */ v("svg", { width: "18", height: "18", viewBox: "0 0 18 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
101
|
+
/* @__PURE__ */ i(
|
|
102
102
|
"path",
|
|
103
103
|
{
|
|
104
104
|
d: "M9.91356 12.2014C9.94902 12.2322 9.96392 12.2507 9.97091 12.2611C9.9746 12.2666 9.97974 12.2747 9.98431 12.293C9.98452 12.3881 9.97896 12.4231 9.97347 12.4425L9.9733 12.4431C9.97154 12.4494 9.96743 12.4642 9.94436 12.4941C9.90102 12.5221 9.86337 12.5361 9.80599 12.5436C9.75021 12.5297 9.72282 12.5146 9.70528 12.5027C9.68601 12.4896 9.66045 12.468 9.62262 12.4232C9.61547 12.3737 9.61955 12.3255 9.63721 12.2648C9.65945 12.2353 9.67573 12.218 9.6883 12.2069C9.69672 12.1994 9.705 12.1933 9.71561 12.1879C9.80453 12.1766 9.86973 12.1854 9.91356 12.2014ZM7.52741 12.2182C7.54337 12.2371 7.55058 12.2496 7.55453 12.2575C7.55976 12.268 7.56852 12.2889 7.57406 12.336C7.56955 12.3926 7.56029 12.4238 7.55195 12.4439C7.54495 12.4608 7.5331 12.4831 7.50747 12.5145C7.48191 12.5284 7.4499 12.5383 7.39689 12.544C7.35485 12.5304 7.31728 12.5092 7.26778 12.4674C7.25183 12.4212 7.24534 12.3592 7.25504 12.2605C7.27472 12.2349 7.29919 12.2102 7.33282 12.1831C7.39802 12.1809 7.45887 12.1918 7.52741 12.2182Z",
|
|
@@ -106,7 +106,7 @@ const y1 = () => /* @__PURE__ */ f("svg", { width: "18", height: "18", viewBox:
|
|
|
106
106
|
stroke: "#9CA3AF"
|
|
107
107
|
}
|
|
108
108
|
),
|
|
109
|
-
/* @__PURE__ */
|
|
109
|
+
/* @__PURE__ */ i(
|
|
110
110
|
"path",
|
|
111
111
|
{
|
|
112
112
|
d: "M1.02321 12.3725L1.0232 12.3725C0.908298 12.2509 0.716529 12.2454 0.594907 12.3603C0.473281 12.4752 0.467834 12.667 0.582742 12.7886L1.02321 12.3725ZM1.02321 12.3725L1.76724 13.16L2.11533 13.5284L2.47898 13.1754L5.40979 10.3297L5.40979 10.3297C5.52984 10.2132 5.72166 10.216 5.83822 10.3361C5.95478 10.4561 5.95195 10.6479 5.8319 10.7645C5.8319 10.7645 5.8319 10.7645 5.8319 10.7645L2.34629 14.1488L2.69459 14.5075L2.34628 14.1488C2.20902 14.2821 1.98925 14.2773 1.85784 14.1383C1.85784 14.1383 1.85784 14.1382 1.85783 14.1382L0.582748 12.7886L1.02321 12.3725Z",
|
|
@@ -114,7 +114,7 @@ const y1 = () => /* @__PURE__ */ f("svg", { width: "18", height: "18", viewBox:
|
|
|
114
114
|
stroke: "#9CA3AF"
|
|
115
115
|
}
|
|
116
116
|
),
|
|
117
|
-
/* @__PURE__ */
|
|
117
|
+
/* @__PURE__ */ i(
|
|
118
118
|
"path",
|
|
119
119
|
{
|
|
120
120
|
d: "M17.1002 12.2259C17.1002 13.5286 16.0442 14.5846 14.7416 14.5846C13.4389 14.5846 12.3829 13.5286 12.3829 12.2259C12.3829 10.9233 13.4389 9.86729 14.7416 9.86729C16.0442 9.86729 17.1002 10.9233 17.1002 12.2259Z",
|
|
@@ -122,21 +122,21 @@ const y1 = () => /* @__PURE__ */ f("svg", { width: "18", height: "18", viewBox:
|
|
|
122
122
|
strokeWidth: "1.8"
|
|
123
123
|
}
|
|
124
124
|
),
|
|
125
|
-
/* @__PURE__ */
|
|
125
|
+
/* @__PURE__ */ i(
|
|
126
126
|
"path",
|
|
127
127
|
{
|
|
128
128
|
d: "M4.75316 4.55147C5.08454 4.55147 5.35316 4.8201 5.35316 5.15147V5.41897C5.35316 5.75034 5.08454 6.01897 4.75316 6.01897H1.80055C1.46918 6.01897 1.20055 5.75034 1.20055 5.41897V5.15147C1.20055 4.8201 1.46918 4.55147 1.80055 4.55147H2.56553V1.95279C2.50786 2.03432 2.41814 2.11584 2.29638 2.19737C2.17462 2.2789 2.03684 2.35703 1.88304 2.43176C1.73565 2.5065 1.58505 2.56764 1.43125 2.6152V2.6152C1.20248 2.67583 1.0083 2.48451 1.0083 2.24784C1.0083 2.13636 1.0083 2.02016 1.0083 1.92222C1.0083 1.8215 1.0083 1.70146 1.0083 1.5871C1.0083 1.35568 1.19897 1.15653 1.41203 1.06618V1.06618C1.57224 0.991446 1.73244 0.899728 1.89265 0.791025C2.05927 0.682321 2.20346 0.573618 2.32522 0.464915V0.464915C2.49279 0.322793 2.70572 0.199951 2.92545 0.199951H3.53237C3.86374 0.199951 4.13237 0.46858 4.13237 0.799951V4.55147H4.75316Z",
|
|
129
129
|
fill: "#9CA3AF"
|
|
130
130
|
}
|
|
131
131
|
),
|
|
132
|
-
/* @__PURE__ */
|
|
132
|
+
/* @__PURE__ */ i(
|
|
133
133
|
"path",
|
|
134
134
|
{
|
|
135
135
|
d: "M13.1693 6.01897C12.838 6.01897 12.5639 5.74955 12.5974 5.41987C12.6059 5.33585 12.6164 5.25512 12.6288 5.17766C12.6742 4.93061 12.745 4.70693 12.8414 4.50662C12.9434 4.29964 13.0765 4.10934 13.2409 3.93574C13.4109 3.75546 13.6234 3.5852 13.8784 3.42495C14.1448 3.25802 14.3658 3.1178 14.5415 3.0043C14.7228 2.88411 14.8673 2.78395 14.975 2.70383C15.0827 2.62371 15.1563 2.54692 15.196 2.47347C15.2413 2.39335 15.264 2.30655 15.264 2.21307C15.264 2.08621 15.2385 1.97604 15.1875 1.88256C15.1365 1.78908 15.0628 1.71897 14.9665 1.67223C14.8702 1.61882 14.7511 1.59211 14.6095 1.59211C14.4961 1.59211 14.3885 1.6088 14.2864 1.64219C14.1844 1.67557 14.0853 1.72565 13.9889 1.79242C13.8983 1.85919 13.8104 1.93931 13.7254 2.03279V2.03279C13.5884 2.17273 13.3537 2.17265 13.2386 2.01418L12.8889 1.53287C12.7263 1.309 12.7367 0.999513 12.9545 0.828708C12.962 0.822771 12.9697 0.816834 12.9774 0.810897C13.1304 0.697389 13.3032 0.597234 13.4959 0.510432C13.6886 0.416954 13.8983 0.343507 14.1249 0.290091C14.3573 0.229998 14.5981 0.199951 14.8475 0.199951C15.2555 0.199951 15.5984 0.273398 15.8761 0.420293C16.1594 0.56051 16.3748 0.76082 16.5221 1.02122C16.6694 1.28163 16.7431 1.58877 16.7431 1.94265C16.7431 2.16967 16.7119 2.36998 16.6496 2.54358C16.5929 2.71051 16.5164 2.86074 16.4201 2.99428C16.3237 3.12782 16.2132 3.24801 16.0886 3.35484C15.9696 3.46167 15.8505 3.55849 15.7315 3.64529C15.5955 3.72541 15.468 3.80554 15.349 3.88566C15.23 3.95911 15.1195 4.03256 15.0175 4.106C14.9155 4.17277 14.8191 4.24622 14.7285 4.32634V4.32634C14.6235 4.41704 14.695 4.57673 14.8337 4.57673H16.2366C16.568 4.57673 16.8366 4.84536 16.8366 5.17673V5.41897C16.8366 5.75034 16.568 6.01897 16.2366 6.01897H13.1693Z",
|
|
136
136
|
fill: "#9CA3AF"
|
|
137
137
|
}
|
|
138
138
|
)
|
|
139
|
-
] }),
|
|
139
|
+
] }), F1 = { justifyContent: "end", zIndex: 7 }, N1 = b(L1)`
|
|
140
140
|
gap: 10px;
|
|
141
141
|
padding: 10px;
|
|
142
142
|
|
|
@@ -145,133 +145,133 @@ const y1 = () => /* @__PURE__ */ f("svg", { width: "18", height: "18", viewBox:
|
|
|
145
145
|
display: none;
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
|
-
`, z1 =
|
|
148
|
+
`, z1 = b.div`
|
|
149
149
|
display: flex;
|
|
150
150
|
align-items: center;
|
|
151
151
|
justify-content: center;
|
|
152
152
|
width: 100%;
|
|
153
153
|
height: 100px;
|
|
154
|
-
`,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
}, [
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
({ props:
|
|
179
|
-
),
|
|
180
|
-
|
|
181
|
-
}, [
|
|
182
|
-
if (
|
|
183
|
-
|
|
184
|
-
|
|
154
|
+
`, P1 = () => /* @__PURE__ */ i(z1, { children: "Missing content" }), B1 = f1(function(t, a) {
|
|
155
|
+
const {
|
|
156
|
+
children: o,
|
|
157
|
+
activeIndex: s = 0,
|
|
158
|
+
onChange: c,
|
|
159
|
+
onNext: u,
|
|
160
|
+
onPrev: R,
|
|
161
|
+
onFinish: x,
|
|
162
|
+
showSteps: t1,
|
|
163
|
+
showStepsLabels: n1,
|
|
164
|
+
verticalSteps: w,
|
|
165
|
+
stepsNavigation: A,
|
|
166
|
+
prevButtonLabel: k,
|
|
167
|
+
nextButtonLabel: L,
|
|
168
|
+
finishButtonLabel: V,
|
|
169
|
+
validateOnNext: E,
|
|
170
|
+
validateOnFinish: H,
|
|
171
|
+
...s1
|
|
172
|
+
} = t, [l, Z] = m1(s), O = c1() === "builder";
|
|
173
|
+
v1(() => {
|
|
174
|
+
l < s && Z(s);
|
|
175
|
+
}, [l, s]);
|
|
176
|
+
const C = d1(), f = y1(
|
|
177
|
+
C.store.children,
|
|
178
|
+
({ props: n }) => ({ label: n.label?.value })
|
|
179
|
+
), d = p((n) => {
|
|
180
|
+
l < n && Z(n), c?.(n);
|
|
181
|
+
}, [l, c]), j = p((n) => {
|
|
182
|
+
if (H) {
|
|
183
|
+
C.validate().then(() => {
|
|
184
|
+
C.hasErrors || x?.(n);
|
|
185
185
|
});
|
|
186
186
|
return;
|
|
187
187
|
}
|
|
188
|
-
|
|
189
|
-
}, [
|
|
190
|
-
let r =
|
|
191
|
-
r <
|
|
192
|
-
const
|
|
193
|
-
if (
|
|
194
|
-
|
|
195
|
-
|
|
188
|
+
x?.(n);
|
|
189
|
+
}, [C, x, H]), T = p((n) => {
|
|
190
|
+
let r = s ?? 0;
|
|
191
|
+
r < f.length && (r = r + 1);
|
|
192
|
+
const h = C.children[s];
|
|
193
|
+
if (E) {
|
|
194
|
+
h?.validate().then(() => {
|
|
195
|
+
h?.hasErrors || (d?.(r), u?.(n));
|
|
196
196
|
});
|
|
197
197
|
return;
|
|
198
198
|
}
|
|
199
|
-
|
|
200
|
-
}, [
|
|
201
|
-
let r =
|
|
202
|
-
r > 0 && (r = r - 1),
|
|
203
|
-
}, [
|
|
204
|
-
y(
|
|
205
|
-
}, [
|
|
199
|
+
d?.(r), u?.(n);
|
|
200
|
+
}, [s, C.children, f.length, u, d, E]), J = p((n) => {
|
|
201
|
+
let r = s ?? 0;
|
|
202
|
+
r > 0 && (r = r - 1), d?.(r), R?.(n);
|
|
203
|
+
}, [s, R, d]), y = p((n) => O || A === "any" || A === "onlyVisited" && n <= l, [l, O, A]), _ = p((n) => n <= l ? "process" : "wait", [l]), $ = p((n) => {
|
|
204
|
+
y(n) && d(n);
|
|
205
|
+
}, [d, y]), W = s <= 0, g = s >= f.length - 1, D = g && V === L, r1 = z(() => ({
|
|
206
206
|
display: "flex",
|
|
207
|
-
flexDirection:
|
|
207
|
+
flexDirection: w ? "row" : "column",
|
|
208
208
|
gap: 10
|
|
209
|
-
}), [
|
|
210
|
-
!W && /* @__PURE__ */
|
|
211
|
-
/* @__PURE__ */
|
|
212
|
-
|
|
209
|
+
}), [w]), I = Array.isArray(o) ? o[s] ?? o[0] : null, o1 = z(() => /* @__PURE__ */ v(b1, { style: F1, className: "buttons", children: [
|
|
210
|
+
!W && /* @__PURE__ */ i(q, { onClick: J, disabled: W, children: k }),
|
|
211
|
+
/* @__PURE__ */ i(
|
|
212
|
+
q,
|
|
213
213
|
{
|
|
214
|
-
onClick: g ? j :
|
|
215
|
-
disabled:
|
|
214
|
+
onClick: g ? j : T,
|
|
215
|
+
disabled: D,
|
|
216
216
|
appearance: "primary",
|
|
217
|
-
children: g ? V :
|
|
217
|
+
children: g ? V : L
|
|
218
218
|
}
|
|
219
219
|
)
|
|
220
|
-
] }), [
|
|
221
|
-
const
|
|
222
|
-
available: y(
|
|
223
|
-
active:
|
|
224
|
-
}),
|
|
220
|
+
] }), [D, V, j, T, J, g, W, L, k]), i1 = z(() => f.map(({ label: n }, r) => {
|
|
221
|
+
const h = a1({
|
|
222
|
+
available: y(r),
|
|
223
|
+
active: r === s
|
|
224
|
+
}), M = () => $(r), F = _(r);
|
|
225
225
|
return {
|
|
226
|
-
label:
|
|
227
|
-
className:
|
|
228
|
-
status:
|
|
229
|
-
onClick:
|
|
226
|
+
label: n,
|
|
227
|
+
className: h,
|
|
228
|
+
status: F,
|
|
229
|
+
onClick: M
|
|
230
230
|
};
|
|
231
|
-
}), [
|
|
232
|
-
return /* @__PURE__ */
|
|
233
|
-
/* @__PURE__ */
|
|
234
|
-
|
|
235
|
-
|
|
231
|
+
}), [s, _, $, y, f]);
|
|
232
|
+
return /* @__PURE__ */ v(N1, { ...s1, ref: a, children: [
|
|
233
|
+
/* @__PURE__ */ v("div", { style: r1, children: [
|
|
234
|
+
t1 && !!I && /* @__PURE__ */ i(U, { current: s, vertical: w, className: "steps", children: i1.map(({ label: n, onClick: r, status: h, className: M }, F) => /* @__PURE__ */ i(
|
|
235
|
+
I1,
|
|
236
236
|
{
|
|
237
|
-
title:
|
|
238
|
-
onClick:
|
|
239
|
-
status:
|
|
240
|
-
className:
|
|
237
|
+
title: n1 && n,
|
|
238
|
+
onClick: r,
|
|
239
|
+
status: h,
|
|
240
|
+
className: M
|
|
241
241
|
},
|
|
242
|
-
|
|
242
|
+
F
|
|
243
243
|
)) }),
|
|
244
|
-
/* @__PURE__ */
|
|
244
|
+
/* @__PURE__ */ i("div", { className: "content", children: I ?? /* @__PURE__ */ i(P1, {}) })
|
|
245
245
|
] }),
|
|
246
|
-
!!
|
|
246
|
+
!!I && o1
|
|
247
247
|
] });
|
|
248
|
-
},
|
|
249
|
-
const e = new
|
|
250
|
-
return e.children = [1, 2, 3].map((t) =>
|
|
251
|
-
},
|
|
252
|
-
activeIndex:
|
|
248
|
+
}), P = "RsWizard", R1 = () => {
|
|
249
|
+
const e = new Q(P, P);
|
|
250
|
+
return e.children = [1, 2, 3].map((t) => Y(t)), JSON.stringify(e);
|
|
251
|
+
}, D1 = G(B1, P).name("Wizard").category(X).icon(M1).initialJson(R1()).eventListeners(W1).props({
|
|
252
|
+
activeIndex: u1.valued.default(0).withEditorProps({
|
|
253
253
|
calculateEditorProps: ({ store: e }) => ({
|
|
254
254
|
min: 0,
|
|
255
255
|
max: (e.children?.length || 1) - 1
|
|
256
256
|
})
|
|
257
257
|
}),
|
|
258
|
-
stepsNavigation:
|
|
259
|
-
steps:
|
|
260
|
-
children:
|
|
261
|
-
prevButtonLabel:
|
|
262
|
-
nextButtonLabel:
|
|
263
|
-
finishButtonLabel:
|
|
264
|
-
showSteps:
|
|
265
|
-
showStepsLabels:
|
|
266
|
-
verticalSteps:
|
|
267
|
-
validateOnNext:
|
|
268
|
-
validateOnFinish:
|
|
269
|
-
onNext:
|
|
270
|
-
onPrev:
|
|
271
|
-
onFinish:
|
|
258
|
+
stepsNavigation: h1("disable", "onlyVisited", "any").labeled("Disable", "Only visited", "Any").default("onlyVisited").withEditorProps({ creatable: !1 }),
|
|
259
|
+
steps: C1.default([]).withEditorProps(V1),
|
|
260
|
+
children: p1.withInsertRestriction((e, t) => t.model.type === B),
|
|
261
|
+
prevButtonLabel: S.default("Previous"),
|
|
262
|
+
nextButtonLabel: S.default("Next"),
|
|
263
|
+
finishButtonLabel: S.default("Finish"),
|
|
264
|
+
showSteps: m.default(!0),
|
|
265
|
+
showStepsLabels: m.default(!0),
|
|
266
|
+
verticalSteps: m.default(!1),
|
|
267
|
+
validateOnNext: m.default(!0),
|
|
268
|
+
validateOnFinish: m.default(!0),
|
|
269
|
+
onNext: N,
|
|
270
|
+
onPrev: N,
|
|
271
|
+
onFinish: N
|
|
272
272
|
});
|
|
273
273
|
export {
|
|
274
|
-
|
|
275
|
-
|
|
274
|
+
D1 as rsWizard,
|
|
275
|
+
$1 as rsWizardStep
|
|
276
276
|
};
|
|
277
277
|
//# sourceMappingURL=wizard.js.map
|
package/dist/wizard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.js","sources":["../src/components/internal/RsWizard/WizardStepIcon.tsx","../src/components/internal/RsWizard/RsWizardStep.tsx","../src/components/internal/Layout.tsx","../src/components/internal/RsWizard/editorProps.ts","../src/components/internal/RsWizard/eventListeners.ts","../src/components/internal/RsWizard/Item.tsx","../src/components/internal/RsWizard/WizardIcon.tsx","../src/components/RsWizard.tsx"],"sourcesContent":["/**\n * @returns the WizardStep icon component.\n */\nexport const WizardStepIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M15.35 8C15.35 12.0593 12.0593 15.35 8 15.35C3.94071 15.35 0.65 12.0593 0.65 8C0.65 3.94071 3.94071 0.65 8 0.65C12.0593 0.65 15.35 3.94071 15.35 8Z\"\n stroke=\"#9CA3AF\" strokeWidth=\"1.3\"/>\n <path\n d=\"M10.0277 9.42974C10.3591 9.42974 10.6277 9.69837 10.6277 10.0297V10.511C10.6277 10.8424 10.3591 11.111 10.0277 11.111H6.47016C6.13879 11.111 5.87016 10.8424 5.87016 10.511V10.0297C5.87016 9.69837 6.13879 9.42974 6.47016 9.42974H7.43397V6.45251C7.3679 6.54591 7.26511 6.63932 7.12562 6.73272C6.98612 6.82612 6.82827 6.91563 6.65207 7.00125C6.4832 7.08687 6.31067 7.15693 6.13446 7.21141V7.21141C5.87237 7.28088 5.6499 7.06169 5.6499 6.79054C5.6499 6.66281 5.6499 6.52969 5.6499 6.41748C5.6499 6.30209 5.6499 6.16457 5.6499 6.03355C5.6499 5.76842 5.86835 5.54026 6.11244 5.43675V5.43675C6.29599 5.35113 6.47953 5.24605 6.66308 5.12151C6.85397 4.99697 7.01916 4.87243 7.15865 4.7479C7.16692 4.74089 7.17501 4.73395 7.18292 4.72709C7.3584 4.57498 7.58215 4.44434 7.81438 4.44434H8.62906C8.96043 4.44434 9.22906 4.71297 9.22906 5.04434V9.42974H10.0277Z\"\n fill=\"#9CA3AF\"/>\n </svg>\n)\n","import styled from '@emotion/styled'\nimport {containerStyles, define, node, string} from '@react-form-builder/core'\nimport {structureCategory} from '../../categories'\nimport {WizardStepIcon} from './WizardStepIcon'\n\n/**\n * Props for the RsWizardStep component.\n */\nexport interface RsWizardStepProps {\n /**\n * Label for the wizard step.\n */\n label?: string\n}\n\n/**\n * Wizard step component with flex layout.\n * @param props the component props.\n * @param props.label the label for the wizard step.\n * @param props.props the additional step props.\n * @returns the React element.\n */\nconst RsWizardStep = styled.div<RsWizardStepProps>`\n display: flex;\n`\n\nconst {flexDirection, gap} = containerStyles\n\nexport const RsWizardStepComponentType = 'RsWizardStep'\n\nexport const rsWizardStep = define(RsWizardStep, RsWizardStepComponentType)\n .name('Wizard step')\n .category(structureCategory)\n .kind('container')\n .icon(WizardStepIcon)\n .props({\n label: string.default('Step'),\n children: node\n })\n .css({\n ...containerStyles,\n flexDirection: flexDirection.default('column'),\n gap: gap.default('10px')\n })\n .insertRestriction((_, parent) => parent.model.type === 'RsWizard')\n","import styled from '@emotion/styled'\n\nexport const Rows = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n`\n","import type {ComponentData, Store} from '@react-form-builder/core'\nimport {ComponentStore} from '@react-form-builder/core'\nimport {InputCell} from '../InputCell'\nimport {RsWizardStepComponentType} from './RsWizardStep'\n\ntype LabelValue = { label: string }\n\n/**\n * Creates a component store containing the Wizard step.\n * @param index the step index.\n * @returns the component store containing the Wizard step.\n */\nexport const createStep = (index: number) => {\n const componentStore = new ComponentStore(`step${index}`, RsWizardStepComponentType)\n componentStore.props.label = {value: `Step ${index}`}\n return componentStore\n}\n\nexport const editorProps = {\n onAdd: (index: number, wizardComponentData: ComponentData, viewerStore: Store) => {\n const componentStore = createStep(index + 1)\n const componentData = viewerStore.createComponentData(componentStore)\n const activeIndex = wizardComponentData.store.props.activeIndex ??= {}\n activeIndex.value = index\n if (wizardComponentData.children?.length) {\n wizardComponentData.children[index - 1]?.insertAfterMe(componentData)\n return\n }\n componentData.setParent(wizardComponentData)\n },\n onRemove: (index: number, wizardComponentData: ComponentData) => {\n const {activeIndex} = wizardComponentData.store.props\n if (activeIndex?.value === index && index > 0) {\n activeIndex.value = index - 1\n }\n wizardComponentData.children[index].delete()\n },\n columns: [{name: 'label', input: InputCell}],\n calculateEditorProps: ({store}: ComponentData) => {\n const data = store.children?.map(({props}) => ({\n label: props.label?.value\n })) ?? []\n const handleChange = (labels: LabelValue[]) => {\n labels.forEach(({label}, index) => {\n if (!store.children?.[index]) return\n const {props} = store.children[index]\n props.label = {value: label}\n })\n }\n return {data, onChange: handleChange}\n }\n}\n","import type {ComponentData, ComponentMetadataEventListeners} from '@react-form-builder/core'\n\ntype CheckFunction = (parentComponentData: ComponentData) => boolean\n\n/**\n * Finds the parent element with the necessary parameters.\n * @param componentData the target child.\n * @param checkFunction the checking function.\n * @returns returns the found componentData, otherwise undefined.\n */\nconst findParentWithParams = (componentData: ComponentData, checkFunction: CheckFunction): ComponentData | undefined => {\n if (checkFunction(componentData)) return componentData\n if (componentData.parent) {\n return findParentWithParams(componentData.parent, checkFunction)\n }\n return\n}\n\nexport const eventListeners: ComponentMetadataEventListeners = {\n onSelectNode: (data: ComponentData, self: ComponentData) => {\n const parentWithParams = findParentWithParams(data, parent => parent?.parent === self)\n if (parentWithParams) {\n const stepIndex = self.children.indexOf(parentWithParams)\n if (stepIndex >= 0) self.field?.setValue(stepIndex)\n }\n }\n}\n","import styled from '@emotion/styled'\nimport {Steps} from 'rsuite'\n\nexport const SItem = styled(Steps.Item)`\n z-index: 7;\n\n &.rs-steps-item-status-process:not(.active) .rs-steps-item-icon-wrapper {\n color: var(--rs-text-secondary);\n background-color: initial;\n }\n\n &.available {\n cursor: pointer;\n\n &:hover {\n color: var(--rs-steps-state-finish);\n\n .rs-steps-item-icon-wrapper {\n border: 2px solid var(--rs-steps-state-finish);\n }\n }\n }\n\n &.active:hover .rs-steps-item-icon-wrapper {\n opacity: 0.8;\n }\n`\n","/**\n * @returns the Wizard icon component.\n */\nexport const WizardIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.91356 12.2014C9.94902 12.2322 9.96392 12.2507 9.97091 12.2611C9.9746 12.2666 9.97974 12.2747 9.98431 12.293C9.98452 12.3881 9.97896 12.4231 9.97347 12.4425L9.9733 12.4431C9.97154 12.4494 9.96743 12.4642 9.94436 12.4941C9.90102 12.5221 9.86337 12.5361 9.80599 12.5436C9.75021 12.5297 9.72282 12.5146 9.70528 12.5027C9.68601 12.4896 9.66045 12.468 9.62262 12.4232C9.61547 12.3737 9.61955 12.3255 9.63721 12.2648C9.65945 12.2353 9.67573 12.218 9.6883 12.2069C9.69672 12.1994 9.705 12.1933 9.71561 12.1879C9.80453 12.1766 9.86973 12.1854 9.91356 12.2014ZM7.52741 12.2182C7.54337 12.2371 7.55058 12.2496 7.55453 12.2575C7.55976 12.268 7.56852 12.2889 7.57406 12.336C7.56955 12.3926 7.56029 12.4238 7.55195 12.4439C7.54495 12.4608 7.5331 12.4831 7.50747 12.5145C7.48191 12.5284 7.4499 12.5383 7.39689 12.544C7.35485 12.5304 7.31728 12.5092 7.26778 12.4674C7.25183 12.4212 7.24534 12.3592 7.25504 12.2605C7.27472 12.2349 7.29919 12.2102 7.33282 12.1831C7.39802 12.1809 7.45887 12.1918 7.52741 12.2182Z\"\n fill=\"#9CA3AF\" stroke=\"#9CA3AF\"/>\n <path\n d=\"M1.02321 12.3725L1.0232 12.3725C0.908298 12.2509 0.716529 12.2454 0.594907 12.3603C0.473281 12.4752 0.467834 12.667 0.582742 12.7886L1.02321 12.3725ZM1.02321 12.3725L1.76724 13.16L2.11533 13.5284L2.47898 13.1754L5.40979 10.3297L5.40979 10.3297C5.52984 10.2132 5.72166 10.216 5.83822 10.3361C5.95478 10.4561 5.95195 10.6479 5.8319 10.7645C5.8319 10.7645 5.8319 10.7645 5.8319 10.7645L2.34629 14.1488L2.69459 14.5075L2.34628 14.1488C2.20902 14.2821 1.98925 14.2773 1.85784 14.1383C1.85784 14.1383 1.85784 14.1382 1.85783 14.1382L0.582748 12.7886L1.02321 12.3725Z\"\n fill=\"#9CA3AF\" stroke=\"#9CA3AF\"/>\n <path\n d=\"M17.1002 12.2259C17.1002 13.5286 16.0442 14.5846 14.7416 14.5846C13.4389 14.5846 12.3829 13.5286 12.3829 12.2259C12.3829 10.9233 13.4389 9.86729 14.7416 9.86729C16.0442 9.86729 17.1002 10.9233 17.1002 12.2259Z\"\n stroke=\"#9CA3AF\" strokeWidth=\"1.8\"/>\n <path\n d=\"M4.75316 4.55147C5.08454 4.55147 5.35316 4.8201 5.35316 5.15147V5.41897C5.35316 5.75034 5.08454 6.01897 4.75316 6.01897H1.80055C1.46918 6.01897 1.20055 5.75034 1.20055 5.41897V5.15147C1.20055 4.8201 1.46918 4.55147 1.80055 4.55147H2.56553V1.95279C2.50786 2.03432 2.41814 2.11584 2.29638 2.19737C2.17462 2.2789 2.03684 2.35703 1.88304 2.43176C1.73565 2.5065 1.58505 2.56764 1.43125 2.6152V2.6152C1.20248 2.67583 1.0083 2.48451 1.0083 2.24784C1.0083 2.13636 1.0083 2.02016 1.0083 1.92222C1.0083 1.8215 1.0083 1.70146 1.0083 1.5871C1.0083 1.35568 1.19897 1.15653 1.41203 1.06618V1.06618C1.57224 0.991446 1.73244 0.899728 1.89265 0.791025C2.05927 0.682321 2.20346 0.573618 2.32522 0.464915V0.464915C2.49279 0.322793 2.70572 0.199951 2.92545 0.199951H3.53237C3.86374 0.199951 4.13237 0.46858 4.13237 0.799951V4.55147H4.75316Z\"\n fill=\"#9CA3AF\"/>\n <path\n d=\"M13.1693 6.01897C12.838 6.01897 12.5639 5.74955 12.5974 5.41987C12.6059 5.33585 12.6164 5.25512 12.6288 5.17766C12.6742 4.93061 12.745 4.70693 12.8414 4.50662C12.9434 4.29964 13.0765 4.10934 13.2409 3.93574C13.4109 3.75546 13.6234 3.5852 13.8784 3.42495C14.1448 3.25802 14.3658 3.1178 14.5415 3.0043C14.7228 2.88411 14.8673 2.78395 14.975 2.70383C15.0827 2.62371 15.1563 2.54692 15.196 2.47347C15.2413 2.39335 15.264 2.30655 15.264 2.21307C15.264 2.08621 15.2385 1.97604 15.1875 1.88256C15.1365 1.78908 15.0628 1.71897 14.9665 1.67223C14.8702 1.61882 14.7511 1.59211 14.6095 1.59211C14.4961 1.59211 14.3885 1.6088 14.2864 1.64219C14.1844 1.67557 14.0853 1.72565 13.9889 1.79242C13.8983 1.85919 13.8104 1.93931 13.7254 2.03279V2.03279C13.5884 2.17273 13.3537 2.17265 13.2386 2.01418L12.8889 1.53287C12.7263 1.309 12.7367 0.999513 12.9545 0.828708C12.962 0.822771 12.9697 0.816834 12.9774 0.810897C13.1304 0.697389 13.3032 0.597234 13.4959 0.510432C13.6886 0.416954 13.8983 0.343507 14.1249 0.290091C14.3573 0.229998 14.5981 0.199951 14.8475 0.199951C15.2555 0.199951 15.5984 0.273398 15.8761 0.420293C16.1594 0.56051 16.3748 0.76082 16.5221 1.02122C16.6694 1.28163 16.7431 1.58877 16.7431 1.94265C16.7431 2.16967 16.7119 2.36998 16.6496 2.54358C16.5929 2.71051 16.5164 2.86074 16.4201 2.99428C16.3237 3.12782 16.2132 3.24801 16.0886 3.35484C15.9696 3.46167 15.8505 3.55849 15.7315 3.64529C15.5955 3.72541 15.468 3.80554 15.349 3.88566C15.23 3.95911 15.1195 4.03256 15.0175 4.106C14.9155 4.17277 14.8191 4.24622 14.7285 4.32634V4.32634C14.6235 4.41704 14.695 4.57673 14.8337 4.57673H16.2366C16.568 4.57673 16.8366 4.84536 16.8366 5.17673V5.41897C16.8366 5.75034 16.568 6.01897 16.2366 6.01897H13.1693Z\"\n fill=\"#9CA3AF\"/>\n </svg>\n)\n","import {cx} from '@emotion/css'\nimport styled from '@emotion/styled'\nimport type {ComponentData} from '@react-form-builder/core'\nimport {\n array,\n boolean,\n ComponentStore,\n define,\n event,\n nodeArray,\n number,\n oneOf,\n string,\n useBuilderMode,\n useComponentData\n} from '@react-form-builder/core'\nimport type {CSSProperties, PropsWithChildren} from 'react'\nimport {useCallback, useEffect, useMemo, useState} from 'react'\nimport type {StepItemProps} from 'rsuite'\nimport {Button, ButtonToolbar, Steps} from 'rsuite'\nimport {useArrayMapMemo} from '../hooks'\nimport {structureCategory} from './categories'\nimport {Rows} from './internal/Layout'\nimport {createStep, editorProps} from './internal/RsWizard/editorProps'\nimport {eventListeners} from './internal/RsWizard/eventListeners'\nimport {SItem} from './internal/RsWizard/Item'\nimport {RsWizardStepComponentType} from './internal/RsWizard/RsWizardStep'\nimport {WizardIcon} from './internal/RsWizard/WizardIcon'\n\n/**\n * Props for the RsWizard component.\n */\nexport interface RsWizardProps extends PropsWithChildren<any> {\n /**\n * Whether to show steps.\n */\n showSteps?: boolean\n /**\n * Whether to show step labels.\n */\n showStepsLabels?: boolean\n /**\n * Whether steps are vertical.\n */\n verticalSteps?: boolean\n /**\n * Navigation mode for steps.\n */\n stepsNavigation?: 'disable' | 'onlyVisited' | 'any'\n /**\n * Active step index.\n */\n activeIndex?: number\n /**\n * Label for previous button.\n */\n prevButtonLabel?: string\n /**\n * Label for next button.\n */\n nextButtonLabel?: string\n /**\n * Label for finish button.\n */\n finishButtonLabel?: string\n /**\n * Whether to validate on next.\n */\n validateOnNext: boolean,\n /**\n * Whether to validate on finish.\n */\n validateOnFinish: boolean,\n /**\n * Callback when step changes.\n */\n onChange?: (activeIndex?: number) => void\n /**\n * Callback when next button is clicked.\n */\n onNext?: () => void\n /**\n * Callback when previous button is clicked.\n */\n onPrev?: () => void\n /**\n * Callback when finish button is clicked.\n */\n onFinish?: () => void\n}\n\nconst toolbarStyle = {justifyContent: 'end', zIndex: 7} as const\n\nconst Container = styled(Rows)`\n gap: 10px;\n padding: 10px;\n\n .parent-type-RsWizard.Toolbar {\n .add-button {\n display: none;\n }\n }\n`\n\nconst SCentered = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100px;\n`\n\nconst EmptyContent = () => <SCentered>Missing content</SCentered>\n\n/**\n * Props for wizard step item component.\n */\ninterface WizardStepItemProps {\n /**\n * Label for the step.\n */\n label?: string\n /**\n * CSS class name.\n */\n className: string\n /**\n * Status of the step.\n */\n status: StepItemProps['status']\n /**\n * Click handler for the step.\n */\n onClick: () => void\n}\n\n/**\n * Wizard component with step navigation and validation.\n * @param props the component props.\n * @param props.children the children components.\n * @param props.activeIndex the active step index.\n * @param props.onChange the callback when step changes.\n * @param props.onNext the callback when next button is clicked.\n * @param props.onPrev the callback when previous button is clicked.\n * @param props.onFinish the callback when finish button is clicked.\n * @param props.showSteps whether to show steps.\n * @param props.showStepsLabels whether to show step labels.\n * @param props.verticalSteps whether steps are vertical.\n * @param props.stepsNavigation the navigation mode for steps.\n * @param props.prevButtonLabel the label for previous button.\n * @param props.nextButtonLabel the label for next button.\n * @param props.finishButtonLabel the label for finish button.\n * @param props.validateOnNext whether to validate on next.\n * @param props.validateOnFinish whether to validate on finish.\n * @param props.props the additional wizard props.\n * @returns the React element.\n */\nconst RsWizard = ({\n children,\n activeIndex = 0,\n onChange,\n onNext,\n onPrev,\n onFinish,\n showSteps,\n showStepsLabels,\n verticalSteps,\n stepsNavigation,\n prevButtonLabel,\n nextButtonLabel,\n finishButtonLabel,\n validateOnNext,\n validateOnFinish,\n ...props\n }: RsWizardProps) => {\n const [visited, setVisited] = useState(activeIndex)\n const isBuilderMode = useBuilderMode() === 'builder'\n\n useEffect(() => {\n if (visited < activeIndex) setVisited(activeIndex)\n }, [visited, activeIndex])\n\n const componentData = useComponentData()\n\n const labels = useArrayMapMemo(\n componentData.store.children,\n ({props}) => ({label: props.label?.value})\n )\n\n const openStep = useCallback((index: number) => {\n if (visited < index) setVisited(index)\n onChange?.(index)\n }, [visited, onChange])\n\n const handleFinish = useCallback(() => {\n if (validateOnFinish) {\n componentData.validate().then(() => {\n if (componentData.hasErrors) return\n onFinish?.()\n })\n return\n }\n onFinish?.()\n }, [componentData, onFinish, validateOnFinish])\n\n const handleNext = useCallback(() => {\n let newIndex = activeIndex ?? 0\n if (newIndex < labels.length) newIndex = newIndex + 1\n\n const child = componentData.children[activeIndex]\n if (validateOnNext) {\n child?.validate().then(() => {\n if (child?.hasErrors) return\n openStep?.(newIndex)\n onNext?.()\n })\n return\n }\n openStep?.(newIndex)\n onNext?.()\n }, [activeIndex, componentData.children, labels.length, onNext, openStep, validateOnNext])\n\n const handlePrev = useCallback(() => {\n let newIndex = activeIndex ?? 0\n if (newIndex > 0) newIndex = newIndex - 1\n openStep?.(newIndex)\n onPrev?.()\n }, [activeIndex, onPrev, openStep])\n\n const isStepAvailable = useCallback((index: number) => {\n return isBuilderMode || (\n stepsNavigation === 'any' || stepsNavigation === 'onlyVisited' && index <= visited\n )\n }, [visited, isBuilderMode, stepsNavigation])\n\n const getStepStatus = useCallback((index: number): StepItemProps['status'] => {\n return index <= visited ? 'process' : 'wait'\n }, [visited])\n\n const handleStepClick = useCallback((index: number) => {\n if (isStepAvailable(index)) openStep(index)\n }, [openStep, isStepAvailable])\n\n const isStart = activeIndex <= 0\n const isFinish = activeIndex >= labels.length - 1\n const disableNextButton = isFinish && finishButtonLabel === nextButtonLabel\n const stepsContainerStyle = useMemo<CSSProperties>(() => ({\n display: 'flex',\n flexDirection: verticalSteps ? 'row' : 'column',\n gap: 10\n }), [verticalSteps])\n\n const content = Array.isArray(children)\n ? children[activeIndex] ?? children[0]\n : null\n\n const buttons = useMemo(() => (\n <ButtonToolbar style={toolbarStyle} className={'buttons'}>\n {!isStart && <Button onClick={handlePrev} disabled={isStart}>{prevButtonLabel}</Button>}\n <Button onClick={isFinish ? handleFinish : handleNext} disabled={disableNextButton}\n appearance={'primary'}>\n {isFinish ? finishButtonLabel : nextButtonLabel}\n </Button>\n </ButtonToolbar>\n ), [disableNextButton, finishButtonLabel, handleFinish, handleNext, handlePrev, isFinish, isStart, nextButtonLabel, prevButtonLabel])\n\n const wizardItems: WizardStepItemProps[] = useMemo(() => {\n return labels.map(({label}, index) => {\n const className = cx({\n available: isStepAvailable(index),\n active: index === activeIndex\n })\n\n const onClick = () => handleStepClick(index)\n const status = getStepStatus(index)\n\n return {\n label,\n className,\n status,\n onClick,\n }\n })\n }, [activeIndex, getStepStatus, handleStepClick, isStepAvailable, labels])\n\n return <Container {...props}>\n <div style={stepsContainerStyle}>\n {showSteps && !!content &&\n <Steps current={activeIndex} vertical={verticalSteps} className={'steps'}>\n {wizardItems.map(({label, onClick, status, className}, index) => (\n <SItem\n key={index}\n title={showStepsLabels && label}\n onClick={onClick}\n status={status}\n className={className}\n />\n ))}\n </Steps>\n }\n <div className={'content'}>{content ?? <EmptyContent/>}</div>\n </div>\n {!!content && buttons}\n </Container>\n}\n\n/**\n * Component type for RsWizard.\n */\nconst RsWizardComponentType = 'RsWizard'\n\n/**\n * Get initial json for wizard component.\n * @returns initial json string.\n */\nconst getInitialJson = () => {\n const componentStore = new ComponentStore(RsWizardComponentType, RsWizardComponentType)\n componentStore.children = [1, 2, 3].map(index => createStep(index))\n return JSON.stringify(componentStore)\n}\n\nexport {rsWizardStep} from './internal/RsWizard/RsWizardStep'\n\nexport const rsWizard = define(RsWizard, RsWizardComponentType)\n .name('Wizard')\n .category(structureCategory)\n .icon(WizardIcon)\n .initialJson(getInitialJson())\n .eventListeners(eventListeners)\n .props({\n activeIndex: number\n .valued\n .default(0)\n .withEditorProps({\n calculateEditorProps: ({store}: ComponentData) => {\n const length = store.children?.length || 1\n return {\n min: 0,\n max: length - 1\n }\n }\n }),\n stepsNavigation: oneOf('disable', 'onlyVisited', 'any')\n .labeled('Disable', 'Only visited', 'Any')\n .default('onlyVisited')\n .withEditorProps({creatable: false}),\n steps: array\n .default([])\n .withEditorProps(editorProps),\n children: nodeArray\n .withInsertRestriction((_, child) => {\n return child.model.type === RsWizardStepComponentType\n }),\n prevButtonLabel: string.default('Previous'),\n nextButtonLabel: string.default('Next'),\n finishButtonLabel: string.default('Finish'),\n showSteps: boolean.default(true),\n showStepsLabels: boolean.default(true),\n verticalSteps: boolean.default(false),\n validateOnNext: boolean.default(true),\n validateOnFinish: boolean.default(true),\n onNext: event,\n onPrev: event,\n onFinish: event\n })\n"],"names":["WizardStepIcon","jsxs","jsx","RsWizardStep","styled","flexDirection","gap","containerStyles","RsWizardStepComponentType","rsWizardStep","define","structureCategory","string","node","_","parent","Rows","createStep","index","componentStore","ComponentStore","editorProps","wizardComponentData","viewerStore","componentData","activeIndex","InputCell","store","props","labels","label","findParentWithParams","checkFunction","eventListeners","data","self","parentWithParams","stepIndex","SItem","Steps","WizardIcon","toolbarStyle","Container","SCentered","EmptyContent","RsWizard","children","onChange","onNext","onPrev","onFinish","showSteps","showStepsLabels","verticalSteps","stepsNavigation","prevButtonLabel","nextButtonLabel","finishButtonLabel","validateOnNext","validateOnFinish","visited","setVisited","useState","isBuilderMode","useBuilderMode","useEffect","useComponentData","useArrayMapMemo","openStep","useCallback","handleFinish","handleNext","newIndex","child","handlePrev","isStepAvailable","getStepStatus","handleStepClick","isStart","isFinish","disableNextButton","stepsContainerStyle","useMemo","content","buttons","ButtonToolbar","Button","wizardItems","className","cx","onClick","status","RsWizardComponentType","getInitialJson","rsWizard","number","oneOf","array","nodeArray","boolean","event"],"mappings":";;;;;;;;;AAGO,MAAMA,KAAiB,MAC5B,gBAAAC,EAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAChE,UAAA;AAAA,EAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,QAAO;AAAA,MAAU,aAAY;AAAA,IAAA;AAAA,EAAA;AAAA,EAC/B,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA,IAAA;AAAA,EAAA;AAAS,GAClB,GCWIC,KAAeC,EAAO;AAAA;AAAA,GAItB,EAAC,eAAAC,IAAe,KAAAC,GAAA,IAAOC,GAEhBC,IAA4B,gBAE5BC,KAAeC,EAAOP,IAAcK,CAAyB,EACvE,KAAK,aAAa,EAClB,SAASG,CAAiB,EAC1B,KAAK,WAAW,EAChB,KAAKX,EAAc,EACnB,MAAM;AAAA,EACL,OAAOY,EAAO,QAAQ,MAAM;AAAA,EAC5B,UAAUC;AACZ,CAAC,EACA,IAAI;AAAA,EACH,GAAGN;AAAA,EACH,eAAeF,GAAc,QAAQ,QAAQ;AAAA,EAC7C,KAAKC,GAAI,QAAQ,MAAM;AACzB,CAAC,EACA,kBAAkB,CAACQ,GAAGC,MAAWA,EAAO,MAAM,SAAS,UAAU,GC1CvDC,KAAOZ,EAAO;AAAA;AAAA;AAAA;AAAA,GCUda,IAAa,CAACC,MAAkB;AAC3C,QAAMC,IAAiB,IAAIC,EAAe,OAAOF,CAAK,IAAIV,CAAyB;AACnF,SAAAW,EAAe,MAAM,QAAQ,EAAC,OAAO,QAAQD,CAAK,GAAA,GAC3CC;AACT,GAEaE,KAAc;AAAA,EACzB,OAAO,CAACH,GAAeI,GAAoCC,MAAuB;AAChF,UAAMJ,IAAiBF,EAAWC,IAAQ,CAAC,GACrCM,IAAgBD,EAAY,oBAAoBJ,CAAc,GAC9DM,IAAcH,EAAoB,MAAM,MAAM,gBAAgB,CAAA;AAEpE,QADAG,EAAY,QAAQP,GAChBI,EAAoB,UAAU,QAAQ;AACxC,MAAAA,EAAoB,SAASJ,IAAQ,CAAC,GAAG,cAAcM,CAAa;AACpE;AAAA,IACF;AACA,IAAAA,EAAc,UAAUF,CAAmB;AAAA,EAC7C;AAAA,EACA,UAAU,CAACJ,GAAeI,MAAuC;AAC/D,UAAM,EAAC,aAAAG,EAAA,IAAeH,EAAoB,MAAM;AAChD,IAAIG,GAAa,UAAUP,KAASA,IAAQ,MAC1CO,EAAY,QAAQP,IAAQ,IAE9BI,EAAoB,SAASJ,CAAK,EAAE,OAAA;AAAA,EACtC;AAAA,EACA,SAAS,CAAC,EAAC,MAAM,SAAS,OAAOQ,IAAU;AAAA,EAC3C,sBAAsB,CAAC,EAAC,OAAAC,SAWf,EAAC,MAVKA,EAAM,UAAU,IAAI,CAAC,EAAC,OAAAC,SAAY;AAAA,IAC7C,OAAOA,EAAM,OAAO;AAAA,EAAA,EACpB,KAAK,CAAA,GAQO,UAPO,CAACC,MAAyB;AAC7C,IAAAA,EAAO,QAAQ,CAAC,EAAC,OAAAC,EAAA,GAAQZ,MAAU;AACjC,UAAI,CAACS,EAAM,WAAWT,CAAK,EAAG;AAC9B,YAAM,EAAC,OAAAU,EAAA,IAASD,EAAM,SAAST,CAAK;AACpC,MAAAU,EAAM,QAAQ,EAAC,OAAOE,EAAA;AAAA,IACxB,CAAC;AAAA,EACH,EACwB;AAE5B,GCzCMC,IAAuB,CAACP,GAA8BQ,MAA4D;AACtH,MAAIA,EAAcR,CAAa,EAAG,QAAOA;AACzC,MAAIA,EAAc;AAChB,WAAOO,EAAqBP,EAAc,QAAQQ,CAAa;AAGnE,GAEaC,KAAkD;AAAA,EAC7D,cAAc,CAACC,GAAqBC,MAAwB;AAC1D,UAAMC,IAAmBL,EAAqBG,GAAM,CAAAnB,MAAUA,GAAQ,WAAWoB,CAAI;AACrF,QAAIC,GAAkB;AACpB,YAAMC,IAAYF,EAAK,SAAS,QAAQC,CAAgB;AACxD,MAAIC,KAAa,KAAGF,EAAK,OAAO,SAASE,CAAS;AAAA,IACpD;AAAA,EACF;AACF,GCvBaC,KAAQlC,EAAOmC,EAAM,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAzBC,KAAa,MACxB,gBAAAvC,EAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAChE,UAAA;AAAA,EAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA,MAAU,QAAO;AAAA,IAAA;AAAA,EAAA;AAAA,EACxB,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA,MAAU,QAAO;AAAA,IAAA;AAAA,EAAA;AAAA,EACxB,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,QAAO;AAAA,MAAU,aAAY;AAAA,IAAA;AAAA,EAAA;AAAA,EAC/B,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA,IAAA;AAAA,EAAA;AAAA,EACP,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA,IAAA;AAAA,EAAA;AAAS,GAClB,GCuEIuC,KAAe,EAAC,gBAAgB,OAAO,QAAQ,EAAA,GAE/CC,KAAYtC,EAAOY,EAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWvB2B,KAAYvC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQnBwC,KAAe,MAAM,gBAAA1C,EAACyC,IAAA,EAAU,UAAA,kBAAA,CAAe,GA6C/CE,KAAW,CAAC;AAAA,EACE,UAAAC;AAAA,EACA,aAAArB,IAAc;AAAA,EACd,UAAAsB;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,GAAG/B;AACL,MAAqB;AACrC,QAAM,CAACgC,GAASC,CAAU,IAAIC,GAASrC,CAAW,GAC5CsC,IAAgBC,SAAqB;AAE3C,EAAAC,GAAU,MAAM;AACd,IAAIL,IAAUnC,KAAaoC,EAAWpC,CAAW;AAAA,EACnD,GAAG,CAACmC,GAASnC,CAAW,CAAC;AAEzB,QAAMD,IAAgB0C,GAAA,GAEhBrC,IAASsC;AAAA,IACb3C,EAAc,MAAM;AAAA,IACpB,CAAC,EAAC,OAAAI,EAAAA,OAAY,EAAC,OAAOA,EAAM,OAAO,MAAA;AAAA,EAAK,GAGpCwC,IAAWC,EAAY,CAACnD,MAAkB;AAC9C,IAAI0C,IAAU1C,KAAO2C,EAAW3C,CAAK,GACrC6B,IAAW7B,CAAK;AAAA,EAClB,GAAG,CAAC0C,GAASb,CAAQ,CAAC,GAEhBuB,IAAeD,EAAY,MAAM;AACrC,QAAIV,GAAkB;AACpB,MAAAnC,EAAc,WAAW,KAAK,MAAM;AAClC,QAAIA,EAAc,aAClB0B,IAAA;AAAA,MACF,CAAC;AACD;AAAA,IACF;AACA,IAAAA,IAAA;AAAA,EACF,GAAG,CAAC1B,GAAe0B,GAAUS,CAAgB,CAAC,GAExCY,IAAaF,EAAY,MAAM;AACnC,QAAIG,IAAW/C,KAAe;AAC9B,IAAI+C,IAAW3C,EAAO,WAAQ2C,IAAWA,IAAW;AAEpD,UAAMC,IAAQjD,EAAc,SAASC,CAAW;AAChD,QAAIiC,GAAgB;AAClB,MAAAe,GAAO,WAAW,KAAK,MAAM;AAC3B,QAAIA,GAAO,cACXL,IAAWI,CAAQ,GACnBxB,IAAA;AAAA,MACF,CAAC;AACD;AAAA,IACF;AACA,IAAAoB,IAAWI,CAAQ,GACnBxB,IAAA;AAAA,EACF,GAAG,CAACvB,GAAaD,EAAc,UAAUK,EAAO,QAAQmB,GAAQoB,GAAUV,CAAc,CAAC,GAEnFgB,IAAaL,EAAY,MAAM;AACnC,QAAIG,IAAW/C,KAAe;AAC9B,IAAI+C,IAAW,MAAGA,IAAWA,IAAW,IACxCJ,IAAWI,CAAQ,GACnBvB,IAAA;AAAA,EACF,GAAG,CAACxB,GAAawB,GAAQmB,CAAQ,CAAC,GAE5BO,IAAkBN,EAAY,CAACnD,MAC5B6C,KACLT,MAAoB,SAASA,MAAoB,iBAAiBpC,KAAS0C,GAE5E,CAACA,GAASG,GAAeT,CAAe,CAAC,GAEtCsB,IAAgBP,EAAY,CAACnD,MAC1BA,KAAS0C,IAAU,YAAY,QACrC,CAACA,CAAO,CAAC,GAENiB,IAAkBR,EAAY,CAACnD,MAAkB;AACrD,IAAIyD,EAAgBzD,CAAK,KAAGkD,EAASlD,CAAK;AAAA,EAC5C,GAAG,CAACkD,GAAUO,CAAe,CAAC,GAExBG,IAAUrD,KAAe,GACzBsD,IAAWtD,KAAeI,EAAO,SAAS,GAC1CmD,IAAoBD,KAAYtB,MAAsBD,GACtDyB,KAAsBC,EAAuB,OAAO;AAAA,IACxD,SAAS;AAAA,IACT,eAAe7B,IAAgB,QAAQ;AAAA,IACvC,KAAK;AAAA,EAAA,IACH,CAACA,CAAa,CAAC,GAEb8B,IAAU,MAAM,QAAQrC,CAAQ,IAClCA,EAASrB,CAAW,KAAKqB,EAAS,CAAC,IACnC,MAEEsC,KAAUF,EAAQ,MACtB,gBAAAjF,EAACoF,MAAc,OAAO5C,IAAc,WAAW,WAC5C,UAAA;AAAA,IAAA,CAACqC,KAAW,gBAAA5E,EAACoF,GAAA,EAAO,SAASZ,GAAY,UAAUI,GAAU,UAAAvB,GAAgB;AAAA,IAC9E,gBAAArD;AAAA,MAACoF;AAAA,MAAA;AAAA,QAAO,SAASP,IAAWT,IAAeC;AAAA,QAAY,UAAUS;AAAA,QACzD,YAAY;AAAA,QACjB,cAAWvB,IAAoBD;AAAA,MAAA;AAAA,IAAA;AAAA,EAClC,EAAA,CACF,GACC,CAACwB,GAAmBvB,GAAmBa,GAAcC,GAAYG,GAAYK,GAAUD,GAAStB,GAAiBD,CAAe,CAAC,GAE9HgC,KAAqCL,EAAQ,MAC1CrD,EAAO,IAAI,CAAC,EAAC,OAAAC,EAAA,GAAQZ,MAAU;AACpC,UAAMsE,IAAYC,GAAG;AAAA,MACnB,WAAWd,EAAgBzD,CAAK;AAAA,MAChC,QAAQA,MAAUO;AAAA,IAAA,CACnB,GAEKiE,IAAU,MAAMb,EAAgB3D,CAAK,GACrCyE,IAASf,EAAc1D,CAAK;AAElC,WAAO;AAAA,MACL,OAAAY;AAAA,MACA,WAAA0D;AAAA,MACA,QAAAG;AAAA,MACA,SAAAD;AAAA,IAAA;AAAA,EAEJ,CAAC,GACA,CAACjE,GAAamD,GAAeC,GAAiBF,GAAiB9C,CAAM,CAAC;AAEzE,SAAO,gBAAA5B,EAACyC,IAAA,EAAW,GAAGd,IACpB,UAAA;AAAA,IAAA,gBAAA3B,EAAC,OAAA,EAAI,OAAOgF,IACT,UAAA;AAAA,MAAA9B,KAAa,CAAC,CAACgC,KACd,gBAAAjF,EAACqC,KAAM,SAASd,GAAa,UAAU4B,GAAe,WAAW,SAC9D,UAAAkC,GAAY,IAAI,CAAC,EAAC,OAAAzD,GAAO,SAAA4D,GAAS,QAAAC,GAAQ,WAAAH,KAAYtE,MACrD,gBAAAhB;AAAA,QAACoC;AAAA,QAAA;AAAA,UAEC,OAAOc,KAAmBtB;AAAA,UAC1B,SAAA4D;AAAA,UACA,QAAAC;AAAA,UACA,WAAAH;AAAA,QAAA;AAAA,QAJKtE;AAAA,MAAA,CAMR,GACH;AAAA,wBAED,OAAA,EAAI,WAAW,WAAY,UAAAiE,KAAW,gBAAAjF,EAAC0C,MAAY,EAAA,CAAG;AAAA,IAAA,GACzD;AAAA,IACC,CAAC,CAACuC,KAAWC;AAAA,EAAA,GAChB;AACF,GAKMQ,IAAwB,YAMxBC,KAAiB,MAAM;AAC3B,QAAM1E,IAAiB,IAAIC,EAAewE,GAAuBA,CAAqB;AACtF,SAAAzE,EAAe,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAAD,MAASD,EAAWC,CAAK,CAAC,GAC3D,KAAK,UAAUC,CAAc;AACtC,GAIa2E,KAAWpF,EAAOmC,IAAU+C,CAAqB,EAC3D,KAAK,QAAQ,EACb,SAASjF,CAAiB,EAC1B,KAAK6B,EAAU,EACf,YAAYqD,GAAA,CAAgB,EAC5B,eAAe5D,EAAc,EAC7B,MAAM;AAAA,EACL,aAAa8D,GACV,OACA,QAAQ,CAAC,EACT,gBAAgB;AAAA,IACf,sBAAsB,CAAC,EAAC,OAAApE,SAEf;AAAA,MACL,KAAK;AAAA,MACL,MAHaA,EAAM,UAAU,UAAU,KAGzB;AAAA,IAAA;AAAA,EAElB,CACD;AAAA,EACH,iBAAiBqE,GAAM,WAAW,eAAe,KAAK,EACnD,QAAQ,WAAW,gBAAgB,KAAK,EACxC,QAAQ,aAAa,EACrB,gBAAgB,EAAC,WAAW,IAAM;AAAA,EACrC,OAAOC,GACJ,QAAQ,CAAA,CAAE,EACV,gBAAgB5E,EAAW;AAAA,EAC9B,UAAU6E,GACP,sBAAsB,CAACpF,GAAG2D,MAClBA,EAAM,MAAM,SAASjE,CAC7B;AAAA,EACH,iBAAiBI,EAAO,QAAQ,UAAU;AAAA,EAC1C,iBAAiBA,EAAO,QAAQ,MAAM;AAAA,EACtC,mBAAmBA,EAAO,QAAQ,QAAQ;AAAA,EAC1C,WAAWuF,EAAQ,QAAQ,EAAI;AAAA,EAC/B,iBAAiBA,EAAQ,QAAQ,EAAI;AAAA,EACrC,eAAeA,EAAQ,QAAQ,EAAK;AAAA,EACpC,gBAAgBA,EAAQ,QAAQ,EAAI;AAAA,EACpC,kBAAkBA,EAAQ,QAAQ,EAAI;AAAA,EACtC,QAAQC;AAAA,EACR,QAAQA;AAAA,EACR,UAAUA;AACZ,CAAC;"}
|
|
1
|
+
{"version":3,"file":"wizard.js","sources":["../src/components/internal/RsWizard/WizardStepIcon.tsx","../src/components/internal/RsWizard/RsWizardStep.tsx","../src/components/internal/Layout.tsx","../src/components/internal/RsWizard/editorProps.ts","../src/components/internal/RsWizard/eventListeners.ts","../src/components/internal/RsWizard/Item.tsx","../src/components/internal/RsWizard/WizardIcon.tsx","../src/components/RsWizard.tsx"],"sourcesContent":["/**\n * @returns the WizardStep icon component.\n */\nexport const WizardStepIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M15.35 8C15.35 12.0593 12.0593 15.35 8 15.35C3.94071 15.35 0.65 12.0593 0.65 8C0.65 3.94071 3.94071 0.65 8 0.65C12.0593 0.65 15.35 3.94071 15.35 8Z\"\n stroke=\"#9CA3AF\" strokeWidth=\"1.3\"/>\n <path\n d=\"M10.0277 9.42974C10.3591 9.42974 10.6277 9.69837 10.6277 10.0297V10.511C10.6277 10.8424 10.3591 11.111 10.0277 11.111H6.47016C6.13879 11.111 5.87016 10.8424 5.87016 10.511V10.0297C5.87016 9.69837 6.13879 9.42974 6.47016 9.42974H7.43397V6.45251C7.3679 6.54591 7.26511 6.63932 7.12562 6.73272C6.98612 6.82612 6.82827 6.91563 6.65207 7.00125C6.4832 7.08687 6.31067 7.15693 6.13446 7.21141V7.21141C5.87237 7.28088 5.6499 7.06169 5.6499 6.79054C5.6499 6.66281 5.6499 6.52969 5.6499 6.41748C5.6499 6.30209 5.6499 6.16457 5.6499 6.03355C5.6499 5.76842 5.86835 5.54026 6.11244 5.43675V5.43675C6.29599 5.35113 6.47953 5.24605 6.66308 5.12151C6.85397 4.99697 7.01916 4.87243 7.15865 4.7479C7.16692 4.74089 7.17501 4.73395 7.18292 4.72709C7.3584 4.57498 7.58215 4.44434 7.81438 4.44434H8.62906C8.96043 4.44434 9.22906 4.71297 9.22906 5.04434V9.42974H10.0277Z\"\n fill=\"#9CA3AF\"/>\n </svg>\n)\n","import styled from '@emotion/styled'\nimport {containerStyles, define, node, string} from '@react-form-builder/core'\nimport {structureCategory} from '../../categories'\nimport {WizardStepIcon} from './WizardStepIcon'\n\n/**\n * Props for the RsWizardStep component.\n */\nexport interface RsWizardStepProps {\n /**\n * Label for the wizard step.\n */\n label?: string\n}\n\n/**\n * Wizard step component with flex layout.\n * @param props the component props.\n * @param props.label the label for the wizard step.\n * @param props.props the additional step props.\n * @returns the React element.\n */\nconst RsWizardStep = styled.div<RsWizardStepProps>`\n display: flex;\n`\n\nconst {flexDirection, gap} = containerStyles\n\nexport const RsWizardStepComponentType = 'RsWizardStep'\n\nexport const rsWizardStep = define(RsWizardStep, RsWizardStepComponentType)\n .name('Wizard step')\n .category(structureCategory)\n .kind('container')\n .icon(WizardStepIcon)\n .props({\n label: string.default('Step'),\n children: node\n })\n .css({\n ...containerStyles,\n flexDirection: flexDirection.default('column'),\n gap: gap.default('10px')\n })\n .insertRestriction((_, parent) => parent.model.type === 'RsWizard')\n","import styled from '@emotion/styled'\n\nexport const Rows = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n`\n","import type {ComponentData, Store} from '@react-form-builder/core'\nimport {ComponentStore} from '@react-form-builder/core'\nimport {InputCell} from '../InputCell'\nimport {RsWizardStepComponentType} from './RsWizardStep'\n\ntype LabelValue = { label: string }\n\n/**\n * Creates a component store containing the Wizard step.\n * @param index the step index.\n * @returns the component store containing the Wizard step.\n */\nexport const createStep = (index: number) => {\n const componentStore = new ComponentStore(`step${index}`, RsWizardStepComponentType)\n componentStore.props.label = {value: `Step ${index}`}\n return componentStore\n}\n\nexport const editorProps = {\n onAdd: (index: number, wizardComponentData: ComponentData, viewerStore: Store) => {\n const componentStore = createStep(index + 1)\n const componentData = viewerStore.createComponentData(componentStore)\n const activeIndex = wizardComponentData.store.props.activeIndex ??= {}\n activeIndex.value = index\n if (wizardComponentData.children?.length) {\n wizardComponentData.children[index - 1]?.insertAfterMe(componentData)\n return\n }\n componentData.setParent(wizardComponentData)\n },\n onRemove: (index: number, wizardComponentData: ComponentData) => {\n const {activeIndex} = wizardComponentData.store.props\n if (activeIndex?.value === index && index > 0) {\n activeIndex.value = index - 1\n }\n wizardComponentData.children[index].delete()\n },\n columns: [{name: 'label', input: InputCell}],\n calculateEditorProps: ({store}: ComponentData) => {\n const data = store.children?.map(({props}) => ({\n label: props.label?.value\n })) ?? []\n const handleChange = (labels: LabelValue[]) => {\n labels.forEach(({label}, index) => {\n if (!store.children?.[index]) return\n const {props} = store.children[index]\n props.label = {value: label}\n })\n }\n return {data, onChange: handleChange}\n }\n}\n","import type {ComponentData, ComponentMetadataEventListeners} from '@react-form-builder/core'\n\ntype CheckFunction = (parentComponentData: ComponentData) => boolean\n\n/**\n * Finds the parent element with the necessary parameters.\n * @param componentData the target child.\n * @param checkFunction the checking function.\n * @returns returns the found componentData, otherwise undefined.\n */\nconst findParentWithParams = (componentData: ComponentData, checkFunction: CheckFunction): ComponentData | undefined => {\n if (checkFunction(componentData)) return componentData\n if (componentData.parent) {\n return findParentWithParams(componentData.parent, checkFunction)\n }\n return\n}\n\nexport const eventListeners: ComponentMetadataEventListeners = {\n onSelectNode: (data: ComponentData, self: ComponentData) => {\n const parentWithParams = findParentWithParams(data, parent => parent?.parent === self)\n if (parentWithParams) {\n const stepIndex = self.children.indexOf(parentWithParams)\n if (stepIndex >= 0) self.field?.setValue(stepIndex)\n }\n }\n}\n","import styled from '@emotion/styled'\nimport {Steps} from 'rsuite'\n\nexport const SItem = styled(Steps.Item)`\n z-index: 7;\n\n &.rs-steps-item-status-process:not(.active) .rs-steps-item-icon-wrapper {\n color: var(--rs-text-secondary);\n background-color: initial;\n }\n\n &.available {\n cursor: pointer;\n\n &:hover {\n color: var(--rs-steps-state-finish);\n\n .rs-steps-item-icon-wrapper {\n border: 2px solid var(--rs-steps-state-finish);\n }\n }\n }\n\n &.active:hover .rs-steps-item-icon-wrapper {\n opacity: 0.8;\n }\n`\n","/**\n * @returns the Wizard icon component.\n */\nexport const WizardIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.91356 12.2014C9.94902 12.2322 9.96392 12.2507 9.97091 12.2611C9.9746 12.2666 9.97974 12.2747 9.98431 12.293C9.98452 12.3881 9.97896 12.4231 9.97347 12.4425L9.9733 12.4431C9.97154 12.4494 9.96743 12.4642 9.94436 12.4941C9.90102 12.5221 9.86337 12.5361 9.80599 12.5436C9.75021 12.5297 9.72282 12.5146 9.70528 12.5027C9.68601 12.4896 9.66045 12.468 9.62262 12.4232C9.61547 12.3737 9.61955 12.3255 9.63721 12.2648C9.65945 12.2353 9.67573 12.218 9.6883 12.2069C9.69672 12.1994 9.705 12.1933 9.71561 12.1879C9.80453 12.1766 9.86973 12.1854 9.91356 12.2014ZM7.52741 12.2182C7.54337 12.2371 7.55058 12.2496 7.55453 12.2575C7.55976 12.268 7.56852 12.2889 7.57406 12.336C7.56955 12.3926 7.56029 12.4238 7.55195 12.4439C7.54495 12.4608 7.5331 12.4831 7.50747 12.5145C7.48191 12.5284 7.4499 12.5383 7.39689 12.544C7.35485 12.5304 7.31728 12.5092 7.26778 12.4674C7.25183 12.4212 7.24534 12.3592 7.25504 12.2605C7.27472 12.2349 7.29919 12.2102 7.33282 12.1831C7.39802 12.1809 7.45887 12.1918 7.52741 12.2182Z\"\n fill=\"#9CA3AF\" stroke=\"#9CA3AF\"/>\n <path\n d=\"M1.02321 12.3725L1.0232 12.3725C0.908298 12.2509 0.716529 12.2454 0.594907 12.3603C0.473281 12.4752 0.467834 12.667 0.582742 12.7886L1.02321 12.3725ZM1.02321 12.3725L1.76724 13.16L2.11533 13.5284L2.47898 13.1754L5.40979 10.3297L5.40979 10.3297C5.52984 10.2132 5.72166 10.216 5.83822 10.3361C5.95478 10.4561 5.95195 10.6479 5.8319 10.7645C5.8319 10.7645 5.8319 10.7645 5.8319 10.7645L2.34629 14.1488L2.69459 14.5075L2.34628 14.1488C2.20902 14.2821 1.98925 14.2773 1.85784 14.1383C1.85784 14.1383 1.85784 14.1382 1.85783 14.1382L0.582748 12.7886L1.02321 12.3725Z\"\n fill=\"#9CA3AF\" stroke=\"#9CA3AF\"/>\n <path\n d=\"M17.1002 12.2259C17.1002 13.5286 16.0442 14.5846 14.7416 14.5846C13.4389 14.5846 12.3829 13.5286 12.3829 12.2259C12.3829 10.9233 13.4389 9.86729 14.7416 9.86729C16.0442 9.86729 17.1002 10.9233 17.1002 12.2259Z\"\n stroke=\"#9CA3AF\" strokeWidth=\"1.8\"/>\n <path\n d=\"M4.75316 4.55147C5.08454 4.55147 5.35316 4.8201 5.35316 5.15147V5.41897C5.35316 5.75034 5.08454 6.01897 4.75316 6.01897H1.80055C1.46918 6.01897 1.20055 5.75034 1.20055 5.41897V5.15147C1.20055 4.8201 1.46918 4.55147 1.80055 4.55147H2.56553V1.95279C2.50786 2.03432 2.41814 2.11584 2.29638 2.19737C2.17462 2.2789 2.03684 2.35703 1.88304 2.43176C1.73565 2.5065 1.58505 2.56764 1.43125 2.6152V2.6152C1.20248 2.67583 1.0083 2.48451 1.0083 2.24784C1.0083 2.13636 1.0083 2.02016 1.0083 1.92222C1.0083 1.8215 1.0083 1.70146 1.0083 1.5871C1.0083 1.35568 1.19897 1.15653 1.41203 1.06618V1.06618C1.57224 0.991446 1.73244 0.899728 1.89265 0.791025C2.05927 0.682321 2.20346 0.573618 2.32522 0.464915V0.464915C2.49279 0.322793 2.70572 0.199951 2.92545 0.199951H3.53237C3.86374 0.199951 4.13237 0.46858 4.13237 0.799951V4.55147H4.75316Z\"\n fill=\"#9CA3AF\"/>\n <path\n d=\"M13.1693 6.01897C12.838 6.01897 12.5639 5.74955 12.5974 5.41987C12.6059 5.33585 12.6164 5.25512 12.6288 5.17766C12.6742 4.93061 12.745 4.70693 12.8414 4.50662C12.9434 4.29964 13.0765 4.10934 13.2409 3.93574C13.4109 3.75546 13.6234 3.5852 13.8784 3.42495C14.1448 3.25802 14.3658 3.1178 14.5415 3.0043C14.7228 2.88411 14.8673 2.78395 14.975 2.70383C15.0827 2.62371 15.1563 2.54692 15.196 2.47347C15.2413 2.39335 15.264 2.30655 15.264 2.21307C15.264 2.08621 15.2385 1.97604 15.1875 1.88256C15.1365 1.78908 15.0628 1.71897 14.9665 1.67223C14.8702 1.61882 14.7511 1.59211 14.6095 1.59211C14.4961 1.59211 14.3885 1.6088 14.2864 1.64219C14.1844 1.67557 14.0853 1.72565 13.9889 1.79242C13.8983 1.85919 13.8104 1.93931 13.7254 2.03279V2.03279C13.5884 2.17273 13.3537 2.17265 13.2386 2.01418L12.8889 1.53287C12.7263 1.309 12.7367 0.999513 12.9545 0.828708C12.962 0.822771 12.9697 0.816834 12.9774 0.810897C13.1304 0.697389 13.3032 0.597234 13.4959 0.510432C13.6886 0.416954 13.8983 0.343507 14.1249 0.290091C14.3573 0.229998 14.5981 0.199951 14.8475 0.199951C15.2555 0.199951 15.5984 0.273398 15.8761 0.420293C16.1594 0.56051 16.3748 0.76082 16.5221 1.02122C16.6694 1.28163 16.7431 1.58877 16.7431 1.94265C16.7431 2.16967 16.7119 2.36998 16.6496 2.54358C16.5929 2.71051 16.5164 2.86074 16.4201 2.99428C16.3237 3.12782 16.2132 3.24801 16.0886 3.35484C15.9696 3.46167 15.8505 3.55849 15.7315 3.64529C15.5955 3.72541 15.468 3.80554 15.349 3.88566C15.23 3.95911 15.1195 4.03256 15.0175 4.106C14.9155 4.17277 14.8191 4.24622 14.7285 4.32634V4.32634C14.6235 4.41704 14.695 4.57673 14.8337 4.57673H16.2366C16.568 4.57673 16.8366 4.84536 16.8366 5.17673V5.41897C16.8366 5.75034 16.568 6.01897 16.2366 6.01897H13.1693Z\"\n fill=\"#9CA3AF\"/>\n </svg>\n)\n","import {cx} from '@emotion/css'\nimport styled from '@emotion/styled'\nimport type {ComponentData} from '@react-form-builder/core'\nimport {\n array,\n boolean,\n ComponentStore,\n define,\n event,\n nodeArray,\n number,\n oneOf,\n string,\n useBuilderMode,\n useComponentData\n} from '@react-form-builder/core'\nimport type {CSSProperties, ForwardedRef, PropsWithChildren, SyntheticEvent} from 'react'\nimport {forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport type {StepItemProps} from 'rsuite'\nimport {Button, ButtonToolbar, Steps} from 'rsuite'\nimport {useArrayMapMemo} from '../hooks'\nimport {structureCategory} from './categories'\nimport {Rows} from './internal/Layout'\nimport {createStep, editorProps} from './internal/RsWizard/editorProps'\nimport {eventListeners} from './internal/RsWizard/eventListeners'\nimport {SItem} from './internal/RsWizard/Item'\nimport {RsWizardStepComponentType} from './internal/RsWizard/RsWizardStep'\nimport {WizardIcon} from './internal/RsWizard/WizardIcon'\n\n/**\n * Props for the RsWizard component.\n */\nexport interface RsWizardProps extends PropsWithChildren<any> {\n /**\n * Whether to show steps.\n */\n showSteps?: boolean\n /**\n * Whether to show step labels.\n */\n showStepsLabels?: boolean\n /**\n * Whether steps are vertical.\n */\n verticalSteps?: boolean\n /**\n * Navigation mode for steps.\n */\n stepsNavigation?: 'disable' | 'onlyVisited' | 'any'\n /**\n * Active step index.\n */\n activeIndex?: number\n /**\n * Label for previous button.\n */\n prevButtonLabel?: string\n /**\n * Label for next button.\n */\n nextButtonLabel?: string\n /**\n * Label for finish button.\n */\n finishButtonLabel?: string\n /**\n * Whether to validate on next.\n */\n validateOnNext?: boolean,\n /**\n * Whether to validate on finish.\n */\n validateOnFinish?: boolean,\n /**\n * Callback when step changes.\n */\n onChange?: (activeIndex?: number) => void\n /**\n * Callback when next button is clicked.\n */\n onNext?: (event: SyntheticEvent) => void\n /**\n * Callback when previous button is clicked.\n */\n onPrev?: (event: SyntheticEvent) => void\n /**\n * Callback when finish button is clicked.\n */\n onFinish?: (event: SyntheticEvent) => void\n}\n\nconst toolbarStyle = {justifyContent: 'end', zIndex: 7} as const\n\nconst Container = styled(Rows)`\n gap: 10px;\n padding: 10px;\n\n .parent-type-RsWizard.Toolbar {\n .add-button {\n display: none;\n }\n }\n`\n\nconst SCentered = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100px;\n`\n\nconst EmptyContent = () => <SCentered>Missing content</SCentered>\n\n/**\n * Props for wizard step item component.\n */\ninterface WizardStepItemProps {\n /**\n * Label for the step.\n */\n label?: string\n /**\n * CSS class name.\n */\n className: string\n /**\n * Status of the step.\n */\n status: StepItemProps['status']\n /**\n * Click handler for the step.\n */\n onClick: () => void\n}\n\n/**\n * Wizard component with step navigation and validation.\n * @param props the component props.\n * @param props.children the children components.\n * @param props.activeIndex the active step index.\n * @param props.onChange the callback when step changes.\n * @param props.onNext the callback when next button is clicked.\n * @param props.onPrev the callback when previous button is clicked.\n * @param props.onFinish the callback when finish button is clicked.\n * @param props.showSteps whether to show steps.\n * @param props.showStepsLabels whether to show step labels.\n * @param props.verticalSteps whether steps are vertical.\n * @param props.stepsNavigation the navigation mode for steps.\n * @param props.prevButtonLabel the label for previous button.\n * @param props.nextButtonLabel the label for next button.\n * @param props.finishButtonLabel the label for finish button.\n * @param props.validateOnNext whether to validate on next.\n * @param props.validateOnFinish whether to validate on finish.\n * @param props.props the additional wizard props.\n * @returns the React element.\n */\nconst RsWizard = forwardRef(function Wizard(wProps: RsWizardProps, ref: ForwardedRef<HTMLDivElement>) {\n const {\n children,\n activeIndex = 0,\n onChange,\n onNext,\n onPrev,\n onFinish,\n showSteps,\n showStepsLabels,\n verticalSteps,\n stepsNavigation,\n prevButtonLabel,\n nextButtonLabel,\n finishButtonLabel,\n validateOnNext,\n validateOnFinish,\n ...props\n } = wProps\n const [visited, setVisited] = useState(activeIndex)\n const isBuilderMode = useBuilderMode() === 'builder'\n\n useEffect(() => {\n if (visited < activeIndex) setVisited(activeIndex)\n }, [visited, activeIndex])\n\n const componentData = useComponentData()\n\n const labels = useArrayMapMemo(\n componentData.store.children,\n ({props}) => ({label: props.label?.value})\n )\n\n const openStep = useCallback((index: number) => {\n if (visited < index) setVisited(index)\n onChange?.(index)\n }, [visited, onChange])\n\n const handleFinish = useCallback((event: SyntheticEvent) => {\n if (validateOnFinish) {\n componentData.validate().then(() => {\n if (componentData.hasErrors) return\n onFinish?.(event)\n })\n return\n }\n onFinish?.(event)\n }, [componentData, onFinish, validateOnFinish])\n\n const handleNext = useCallback((event: SyntheticEvent) => {\n let newIndex = activeIndex ?? 0\n if (newIndex < labels.length) newIndex = newIndex + 1\n\n const child = componentData.children[activeIndex]\n if (validateOnNext) {\n child?.validate().then(() => {\n if (child?.hasErrors) return\n openStep?.(newIndex)\n onNext?.(event)\n })\n return\n }\n openStep?.(newIndex)\n onNext?.(event)\n }, [activeIndex, componentData.children, labels.length, onNext, openStep, validateOnNext])\n\n const handlePrev = useCallback((event: SyntheticEvent) => {\n let newIndex = activeIndex ?? 0\n if (newIndex > 0) newIndex = newIndex - 1\n openStep?.(newIndex)\n onPrev?.(event)\n }, [activeIndex, onPrev, openStep])\n\n const isStepAvailable = useCallback((index: number) => {\n return isBuilderMode || (\n stepsNavigation === 'any' || stepsNavigation === 'onlyVisited' && index <= visited\n )\n }, [visited, isBuilderMode, stepsNavigation])\n\n const getStepStatus = useCallback((index: number): StepItemProps['status'] => {\n return index <= visited ? 'process' : 'wait'\n }, [visited])\n\n const handleStepClick = useCallback((index: number) => {\n if (isStepAvailable(index)) openStep(index)\n }, [openStep, isStepAvailable])\n\n const isStart = activeIndex <= 0\n const isFinish = activeIndex >= labels.length - 1\n const disableNextButton = isFinish && finishButtonLabel === nextButtonLabel\n const stepsContainerStyle = useMemo<CSSProperties>(() => ({\n display: 'flex',\n flexDirection: verticalSteps ? 'row' : 'column',\n gap: 10\n }), [verticalSteps])\n\n const content = Array.isArray(children)\n ? children[activeIndex] ?? children[0]\n : null\n\n const buttons = useMemo(() => (\n <ButtonToolbar style={toolbarStyle} className={'buttons'}>\n {!isStart && <Button onClick={handlePrev} disabled={isStart}>{prevButtonLabel}</Button>}\n <Button onClick={isFinish ? handleFinish : handleNext} disabled={disableNextButton}\n appearance={'primary'}>\n {isFinish ? finishButtonLabel : nextButtonLabel}\n </Button>\n </ButtonToolbar>\n ), [disableNextButton, finishButtonLabel, handleFinish, handleNext, handlePrev, isFinish, isStart, nextButtonLabel, prevButtonLabel])\n\n const wizardItems: WizardStepItemProps[] = useMemo(() => {\n return labels.map(({label}, index) => {\n const className = cx({\n available: isStepAvailable(index),\n active: index === activeIndex\n })\n\n const onClick = () => handleStepClick(index)\n const status = getStepStatus(index)\n\n return {\n label,\n className,\n status,\n onClick,\n }\n })\n }, [activeIndex, getStepStatus, handleStepClick, isStepAvailable, labels])\n\n return <Container {...props} ref={ref}>\n <div style={stepsContainerStyle}>\n {showSteps && !!content &&\n <Steps current={activeIndex} vertical={verticalSteps} className={'steps'}>\n {wizardItems.map(({label, onClick, status, className}, index) => (\n <SItem\n key={index}\n title={showStepsLabels && label}\n onClick={onClick}\n status={status}\n className={className}\n />\n ))}\n </Steps>\n }\n <div className={'content'}>{content ?? <EmptyContent/>}</div>\n </div>\n {!!content && buttons}\n </Container>\n})\n\n/**\n * Component type for RsWizard.\n */\nconst RsWizardComponentType = 'RsWizard'\n\n/**\n * Get initial json for wizard component.\n * @returns initial json string.\n */\nconst getInitialJson = () => {\n const componentStore = new ComponentStore(RsWizardComponentType, RsWizardComponentType)\n componentStore.children = [1, 2, 3].map(index => createStep(index))\n return JSON.stringify(componentStore)\n}\n\nexport {rsWizardStep} from './internal/RsWizard/RsWizardStep'\n\nexport const rsWizard = define(RsWizard, RsWizardComponentType)\n .name('Wizard')\n .category(structureCategory)\n .icon(WizardIcon)\n .initialJson(getInitialJson())\n .eventListeners(eventListeners)\n .props({\n activeIndex: number\n .valued\n .default(0)\n .withEditorProps({\n calculateEditorProps: ({store}: ComponentData) => {\n const length = store.children?.length || 1\n return {\n min: 0,\n max: length - 1\n }\n }\n }),\n stepsNavigation: oneOf('disable', 'onlyVisited', 'any')\n .labeled('Disable', 'Only visited', 'Any')\n .default('onlyVisited')\n .withEditorProps({creatable: false}),\n steps: array\n .default([])\n .withEditorProps(editorProps),\n children: nodeArray\n .withInsertRestriction((_, child) => {\n return child.model.type === RsWizardStepComponentType\n }),\n prevButtonLabel: string.default('Previous'),\n nextButtonLabel: string.default('Next'),\n finishButtonLabel: string.default('Finish'),\n showSteps: boolean.default(true),\n showStepsLabels: boolean.default(true),\n verticalSteps: boolean.default(false),\n validateOnNext: boolean.default(true),\n validateOnFinish: boolean.default(true),\n onNext: event,\n onPrev: event,\n onFinish: event\n })\n"],"names":["WizardStepIcon","jsxs","jsx","RsWizardStep","styled","flexDirection","gap","containerStyles","RsWizardStepComponentType","rsWizardStep","define","structureCategory","string","node","_","parent","Rows","createStep","index","componentStore","ComponentStore","editorProps","wizardComponentData","viewerStore","componentData","activeIndex","InputCell","store","props","labels","label","findParentWithParams","checkFunction","eventListeners","data","self","parentWithParams","stepIndex","SItem","Steps","WizardIcon","toolbarStyle","Container","SCentered","EmptyContent","RsWizard","forwardRef","wProps","ref","children","onChange","onNext","onPrev","onFinish","showSteps","showStepsLabels","verticalSteps","stepsNavigation","prevButtonLabel","nextButtonLabel","finishButtonLabel","validateOnNext","validateOnFinish","visited","setVisited","useState","isBuilderMode","useBuilderMode","useEffect","useComponentData","useArrayMapMemo","openStep","useCallback","handleFinish","event","handleNext","newIndex","child","handlePrev","isStepAvailable","getStepStatus","handleStepClick","isStart","isFinish","disableNextButton","stepsContainerStyle","useMemo","content","buttons","ButtonToolbar","Button","wizardItems","className","cx","onClick","status","RsWizardComponentType","getInitialJson","rsWizard","number","oneOf","array","nodeArray","boolean"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-form-builder/components-rsuite",
|
|
3
3
|
"description": "OptimaJet Form Builder Components - RSuite",
|
|
4
|
-
"version": "7.
|
|
4
|
+
"version": "7.13.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
7
7
|
"author": "Optimajet",
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
"@emotion/css": "^11.13.5",
|
|
208
208
|
"@emotion/react": "^11.14.0",
|
|
209
209
|
"@emotion/styled": "^11.14.1",
|
|
210
|
-
"@react-form-builder/core": "7.
|
|
210
|
+
"@react-form-builder/core": "7.13.0",
|
|
211
211
|
"@rsuite/icons": "1.3.2",
|
|
212
212
|
"date-fns": "^2.30.0",
|
|
213
213
|
"react": ">=17.0.2 || ^18 || ^19",
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
"LICENSE"
|
|
226
226
|
],
|
|
227
227
|
"devDependencies": {
|
|
228
|
-
"@react-form-builder/json-schema-generator": "^7.
|
|
228
|
+
"@react-form-builder/json-schema-generator": "^7.13.0",
|
|
229
229
|
"vite-inline-css-plugin": "^0.0.1",
|
|
230
230
|
"vite-node": "^5.2.0"
|
|
231
231
|
},
|