@form-eng/mantine 1.1.1
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/index.d.mts +88 -0
- package/dist/index.d.ts +88 -0
- package/dist/index.js +570 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +519 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +66 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,570 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/index.ts
|
|
30
|
+
var index_exports = {};
|
|
31
|
+
__export(index_exports, {
|
|
32
|
+
CheckboxGroup: () => CheckboxGroup_default,
|
|
33
|
+
DateControl: () => DateControl_default,
|
|
34
|
+
DocumentLinksStrings: () => import_core.DocumentLinksStrings,
|
|
35
|
+
Dropdown: () => Dropdown_default,
|
|
36
|
+
DynamicFragment: () => DynamicFragment_default,
|
|
37
|
+
FieldClassName: () => import_core.FieldClassName,
|
|
38
|
+
FormLoading: () => FormLoading,
|
|
39
|
+
GetFieldDataTestId: () => import_core.GetFieldDataTestId,
|
|
40
|
+
MultiSelect: () => MultiSelect_default,
|
|
41
|
+
Number: () => Number_default,
|
|
42
|
+
RadioGroup: () => RadioGroup_default,
|
|
43
|
+
ReadOnly: () => ReadOnly_default,
|
|
44
|
+
ReadOnlyText: () => ReadOnlyText,
|
|
45
|
+
SimpleDropdown: () => SimpleDropdown_default,
|
|
46
|
+
Slider: () => Slider_default,
|
|
47
|
+
StatusMessage: () => StatusMessage,
|
|
48
|
+
Textarea: () => Textarea_default,
|
|
49
|
+
Textbox: () => Textbox_default,
|
|
50
|
+
Toggle: () => Toggle_default,
|
|
51
|
+
createMantineFieldRegistry: () => createMantineFieldRegistry,
|
|
52
|
+
formatDateTime: () => import_core.formatDateTime
|
|
53
|
+
});
|
|
54
|
+
module.exports = __toCommonJS(index_exports);
|
|
55
|
+
|
|
56
|
+
// src/fields/Textbox.tsx
|
|
57
|
+
var import_core2 = require("@mantine/core");
|
|
58
|
+
|
|
59
|
+
// src/components/ReadOnlyText.tsx
|
|
60
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
61
|
+
var ReadOnlyText = (props) => {
|
|
62
|
+
const { value, fieldName, ellipsifyTextCharacters } = props;
|
|
63
|
+
const cutoff = (ellipsifyTextCharacters || 0) - 3;
|
|
64
|
+
const displayValue = value ? ellipsifyTextCharacters && value.length > ellipsifyTextCharacters ? `${value.substring(0, cutoff)}...` : value : "-";
|
|
65
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
66
|
+
"span",
|
|
67
|
+
{
|
|
68
|
+
id: `${fieldName}-read-only`,
|
|
69
|
+
className: "fe-read-only-text",
|
|
70
|
+
title: value,
|
|
71
|
+
children: displayValue
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
// src/helpers.ts
|
|
77
|
+
var import_core = require("@form-eng/core");
|
|
78
|
+
|
|
79
|
+
// src/fields/Textbox.tsx
|
|
80
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
81
|
+
var Textbox = (props) => {
|
|
82
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, placeholder, setFieldValue } = props;
|
|
83
|
+
const onChange = (event) => {
|
|
84
|
+
setFieldValue(fieldName, event.target.value, false, 3e3);
|
|
85
|
+
};
|
|
86
|
+
if (readOnly) {
|
|
87
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
88
|
+
ReadOnlyText,
|
|
89
|
+
{
|
|
90
|
+
fieldName,
|
|
91
|
+
value,
|
|
92
|
+
ellipsifyTextCharacters: config?.ellipsifyTextCharacters
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
97
|
+
import_core2.TextInput,
|
|
98
|
+
{
|
|
99
|
+
className: (0, import_core.FieldClassName)("fe-textbox", error),
|
|
100
|
+
autoComplete: "off",
|
|
101
|
+
value: value ?? "",
|
|
102
|
+
onChange,
|
|
103
|
+
placeholder: placeholder ?? config?.placeHolder,
|
|
104
|
+
required,
|
|
105
|
+
"aria-invalid": !!error,
|
|
106
|
+
"aria-required": required,
|
|
107
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId)
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
};
|
|
111
|
+
var Textbox_default = Textbox;
|
|
112
|
+
|
|
113
|
+
// src/fields/Number.tsx
|
|
114
|
+
var import_core3 = require("@form-eng/core");
|
|
115
|
+
var import_core4 = require("@mantine/core");
|
|
116
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
117
|
+
var NumberField = (props) => {
|
|
118
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, error, required, setFieldValue } = props;
|
|
119
|
+
const onChange = (val) => {
|
|
120
|
+
if (typeof val === "number") {
|
|
121
|
+
setFieldValue(fieldName, val, false, 1500);
|
|
122
|
+
} else if (val === "") {
|
|
123
|
+
setFieldValue(fieldName, null, false, 1500);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
if (readOnly) {
|
|
127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ReadOnlyText, { fieldName, value: !(0, import_core3.isNull)(value) ? String(value) : "" });
|
|
128
|
+
}
|
|
129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
130
|
+
import_core4.NumberInput,
|
|
131
|
+
{
|
|
132
|
+
className: (0, import_core.FieldClassName)("fe-number", error),
|
|
133
|
+
autoComplete: "off",
|
|
134
|
+
value: !(0, import_core3.isNull)(value) ? value : "",
|
|
135
|
+
onChange,
|
|
136
|
+
required,
|
|
137
|
+
"aria-invalid": !!error,
|
|
138
|
+
"aria-required": required,
|
|
139
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId)
|
|
140
|
+
}
|
|
141
|
+
);
|
|
142
|
+
};
|
|
143
|
+
var Number_default = NumberField;
|
|
144
|
+
|
|
145
|
+
// src/fields/Toggle.tsx
|
|
146
|
+
var import_core5 = require("@form-eng/core");
|
|
147
|
+
var import_core6 = require("@mantine/core");
|
|
148
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
149
|
+
var Toggle = (props) => {
|
|
150
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, error, required, setFieldValue } = props;
|
|
151
|
+
const onChange = (event) => {
|
|
152
|
+
setFieldValue(fieldName, event.currentTarget.checked);
|
|
153
|
+
};
|
|
154
|
+
if (readOnly) {
|
|
155
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ReadOnlyText, { fieldName, value: (0, import_core5.convertBooleanToYesOrNoText)(value) });
|
|
156
|
+
}
|
|
157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
158
|
+
import_core6.Switch,
|
|
159
|
+
{
|
|
160
|
+
className: "fe-toggle",
|
|
161
|
+
checked: !!value,
|
|
162
|
+
onChange,
|
|
163
|
+
required,
|
|
164
|
+
"aria-invalid": !!error,
|
|
165
|
+
"aria-required": required,
|
|
166
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId)
|
|
167
|
+
}
|
|
168
|
+
);
|
|
169
|
+
};
|
|
170
|
+
var Toggle_default = Toggle;
|
|
171
|
+
|
|
172
|
+
// src/fields/Dropdown.tsx
|
|
173
|
+
var import_core7 = require("@mantine/core");
|
|
174
|
+
var import_react = __toESM(require("react"));
|
|
175
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
176
|
+
var Dropdown = (props) => {
|
|
177
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, options, placeholder, setFieldValue } = props;
|
|
178
|
+
const onChange = (val) => {
|
|
179
|
+
setFieldValue(fieldName, val ?? "");
|
|
180
|
+
};
|
|
181
|
+
import_react.default.useEffect(() => {
|
|
182
|
+
if (!value && !readOnly && config?.setDefaultKeyIfOnlyOneOption && options?.length === 1) {
|
|
183
|
+
setFieldValue(fieldName, String(options[0].value));
|
|
184
|
+
}
|
|
185
|
+
}, [options]);
|
|
186
|
+
if (readOnly) {
|
|
187
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ReadOnlyText, { fieldName, value });
|
|
188
|
+
}
|
|
189
|
+
const data = options?.map((option) => ({
|
|
190
|
+
value: String(option.value),
|
|
191
|
+
label: option.label,
|
|
192
|
+
disabled: option.disabled
|
|
193
|
+
})) ?? [];
|
|
194
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
195
|
+
import_core7.Select,
|
|
196
|
+
{
|
|
197
|
+
className: (0, import_core.FieldClassName)("fe-dropdown", error),
|
|
198
|
+
value: value ? String(value) : null,
|
|
199
|
+
onChange,
|
|
200
|
+
data,
|
|
201
|
+
placeholder: placeholder ?? config?.placeHolder,
|
|
202
|
+
clearable: true,
|
|
203
|
+
required,
|
|
204
|
+
"aria-invalid": !!error,
|
|
205
|
+
"aria-required": required,
|
|
206
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId)
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
};
|
|
210
|
+
var Dropdown_default = Dropdown;
|
|
211
|
+
|
|
212
|
+
// src/fields/SimpleDropdown.tsx
|
|
213
|
+
var import_core8 = require("@mantine/core");
|
|
214
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
215
|
+
var SimpleDropdown = (props) => {
|
|
216
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, placeholder, setFieldValue } = props;
|
|
217
|
+
const simpleOptions = config?.dropdownOptions ?? [];
|
|
218
|
+
const onChange = (event) => {
|
|
219
|
+
setFieldValue(fieldName, event.currentTarget.value);
|
|
220
|
+
};
|
|
221
|
+
if (readOnly) {
|
|
222
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ReadOnlyText, { fieldName, value });
|
|
223
|
+
}
|
|
224
|
+
const data = [
|
|
225
|
+
{ value: "", label: placeholder ?? config?.placeHolder ?? "" },
|
|
226
|
+
...simpleOptions.map((option) => ({ value: option, label: option }))
|
|
227
|
+
];
|
|
228
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
229
|
+
import_core8.NativeSelect,
|
|
230
|
+
{
|
|
231
|
+
className: (0, import_core.FieldClassName)("fe-simple-dropdown", error),
|
|
232
|
+
value: value ?? "",
|
|
233
|
+
onChange,
|
|
234
|
+
data,
|
|
235
|
+
required,
|
|
236
|
+
"aria-invalid": !!error,
|
|
237
|
+
"aria-required": required,
|
|
238
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId)
|
|
239
|
+
}
|
|
240
|
+
);
|
|
241
|
+
};
|
|
242
|
+
var SimpleDropdown_default = SimpleDropdown;
|
|
243
|
+
|
|
244
|
+
// src/fields/MultiSelect.tsx
|
|
245
|
+
var import_core9 = require("@mantine/core");
|
|
246
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
247
|
+
var MultiSelect = (props) => {
|
|
248
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, error, required, options, setFieldValue } = props;
|
|
249
|
+
const selectedValues = value ?? [];
|
|
250
|
+
const onChange = (val) => {
|
|
251
|
+
setFieldValue(fieldName, val, false, 1500);
|
|
252
|
+
};
|
|
253
|
+
if (readOnly) {
|
|
254
|
+
return selectedValues.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ul", { className: "fe-multiselect-readonly", children: selectedValues.map((v, i) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("li", { children: v }, i)) }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "fe-read-only-text", children: "-" });
|
|
255
|
+
}
|
|
256
|
+
const data = options?.map((option) => ({
|
|
257
|
+
value: String(option.value),
|
|
258
|
+
label: option.label,
|
|
259
|
+
disabled: option.disabled
|
|
260
|
+
})) ?? [];
|
|
261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
262
|
+
import_core9.MultiSelect,
|
|
263
|
+
{
|
|
264
|
+
className: (0, import_core.FieldClassName)("fe-multi-select", error),
|
|
265
|
+
value: selectedValues,
|
|
266
|
+
onChange,
|
|
267
|
+
data,
|
|
268
|
+
clearable: true,
|
|
269
|
+
required,
|
|
270
|
+
"aria-invalid": !!error,
|
|
271
|
+
"aria-required": required,
|
|
272
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId)
|
|
273
|
+
}
|
|
274
|
+
);
|
|
275
|
+
};
|
|
276
|
+
var MultiSelect_default = MultiSelect;
|
|
277
|
+
|
|
278
|
+
// src/fields/DateControl.tsx
|
|
279
|
+
var import_core10 = require("@form-eng/core");
|
|
280
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
281
|
+
var DateControl = (props) => {
|
|
282
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, error, required, setFieldValue } = props;
|
|
283
|
+
const onChange = (event) => {
|
|
284
|
+
const date = new Date(event.target.value);
|
|
285
|
+
if (!isNaN(date.getTime())) {
|
|
286
|
+
setFieldValue(fieldName, date.toISOString());
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
const onClear = () => {
|
|
290
|
+
setFieldValue(fieldName, null);
|
|
291
|
+
};
|
|
292
|
+
const dateInputValue = value ? new Date(value).toISOString().split("T")[0] : "";
|
|
293
|
+
if (readOnly) {
|
|
294
|
+
return value ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
295
|
+
"time",
|
|
296
|
+
{
|
|
297
|
+
className: "fe-read-only-date",
|
|
298
|
+
dateTime: value,
|
|
299
|
+
children: (0, import_core.formatDateTime)(value, { hideTimestamp: true })
|
|
300
|
+
}
|
|
301
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "fe-read-only-text", children: "-" });
|
|
302
|
+
}
|
|
303
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "fe-date-control", children: [
|
|
304
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
305
|
+
"input",
|
|
306
|
+
{
|
|
307
|
+
type: "date",
|
|
308
|
+
className: "fe-date-control__input",
|
|
309
|
+
value: dateInputValue,
|
|
310
|
+
onChange,
|
|
311
|
+
"aria-invalid": !!error,
|
|
312
|
+
"aria-required": required,
|
|
313
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId)
|
|
314
|
+
}
|
|
315
|
+
),
|
|
316
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
317
|
+
"button",
|
|
318
|
+
{
|
|
319
|
+
type: "button",
|
|
320
|
+
className: "fe-date-control__clear",
|
|
321
|
+
onClick: onClear,
|
|
322
|
+
title: import_core10.FormStrings.clickToClear,
|
|
323
|
+
"aria-label": `${fieldName} ${import_core10.FormStrings.clear}`,
|
|
324
|
+
children: "\xD7"
|
|
325
|
+
}
|
|
326
|
+
)
|
|
327
|
+
] });
|
|
328
|
+
};
|
|
329
|
+
var DateControl_default = DateControl;
|
|
330
|
+
|
|
331
|
+
// src/fields/Slider.tsx
|
|
332
|
+
var import_core11 = require("@mantine/core");
|
|
333
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
334
|
+
var Slider = (props) => {
|
|
335
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, setFieldValue } = props;
|
|
336
|
+
const onChange = (val) => {
|
|
337
|
+
setFieldValue(fieldName, val);
|
|
338
|
+
};
|
|
339
|
+
if (readOnly) {
|
|
340
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ReadOnlyText, { fieldName, value: String(value) });
|
|
341
|
+
}
|
|
342
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
343
|
+
"div",
|
|
344
|
+
{
|
|
345
|
+
className: (0, import_core.FieldClassName)("fe-slider", error),
|
|
346
|
+
"aria-invalid": !!error,
|
|
347
|
+
"aria-required": required,
|
|
348
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId),
|
|
349
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
350
|
+
import_core11.Slider,
|
|
351
|
+
{
|
|
352
|
+
value: value ?? 0,
|
|
353
|
+
onChange,
|
|
354
|
+
max: config?.max,
|
|
355
|
+
min: config?.min,
|
|
356
|
+
step: config?.step,
|
|
357
|
+
label: (val) => String(val)
|
|
358
|
+
}
|
|
359
|
+
)
|
|
360
|
+
}
|
|
361
|
+
);
|
|
362
|
+
};
|
|
363
|
+
var Slider_default = Slider;
|
|
364
|
+
|
|
365
|
+
// src/fields/RadioGroup.tsx
|
|
366
|
+
var import_core12 = require("@mantine/core");
|
|
367
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
368
|
+
var RadioGroup = (props) => {
|
|
369
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, error, required, options, setFieldValue } = props;
|
|
370
|
+
const onChange = (val) => {
|
|
371
|
+
setFieldValue(fieldName, val);
|
|
372
|
+
};
|
|
373
|
+
if (readOnly) {
|
|
374
|
+
const label = options?.find((o) => String(o.value) === String(value))?.label ?? value;
|
|
375
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ReadOnlyText, { fieldName, value: label });
|
|
376
|
+
}
|
|
377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
378
|
+
import_core12.Radio.Group,
|
|
379
|
+
{
|
|
380
|
+
className: "fe-radio-group",
|
|
381
|
+
value: value ? String(value) : "",
|
|
382
|
+
onChange,
|
|
383
|
+
required,
|
|
384
|
+
"aria-invalid": !!error,
|
|
385
|
+
"aria-required": required,
|
|
386
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId),
|
|
387
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_core12.Group, { mt: "xs", children: options?.map((option) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
388
|
+
import_core12.Radio,
|
|
389
|
+
{
|
|
390
|
+
value: String(option.value),
|
|
391
|
+
label: option.label,
|
|
392
|
+
disabled: option.disabled
|
|
393
|
+
},
|
|
394
|
+
String(option.value)
|
|
395
|
+
)) })
|
|
396
|
+
}
|
|
397
|
+
);
|
|
398
|
+
};
|
|
399
|
+
var RadioGroup_default = RadioGroup;
|
|
400
|
+
|
|
401
|
+
// src/fields/CheckboxGroup.tsx
|
|
402
|
+
var import_core13 = require("@mantine/core");
|
|
403
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
404
|
+
var CheckboxGroup = (props) => {
|
|
405
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, error, required, options, setFieldValue } = props;
|
|
406
|
+
const selected = Array.isArray(value) ? value : [];
|
|
407
|
+
const onChange = (val) => {
|
|
408
|
+
setFieldValue(fieldName, val);
|
|
409
|
+
};
|
|
410
|
+
if (readOnly) {
|
|
411
|
+
const labels = options?.filter((o) => selected.includes(String(o.value))).map((o) => o.label).join(", ");
|
|
412
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ReadOnlyText, { fieldName, value: labels ?? "" });
|
|
413
|
+
}
|
|
414
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
415
|
+
import_core13.Checkbox.Group,
|
|
416
|
+
{
|
|
417
|
+
className: "fe-checkbox-group",
|
|
418
|
+
value: selected,
|
|
419
|
+
onChange,
|
|
420
|
+
"aria-invalid": !!error,
|
|
421
|
+
"aria-required": required,
|
|
422
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId),
|
|
423
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core13.Group, { mt: "xs", children: options?.map((option) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
424
|
+
import_core13.Checkbox,
|
|
425
|
+
{
|
|
426
|
+
value: String(option.value),
|
|
427
|
+
label: option.label,
|
|
428
|
+
disabled: option.disabled
|
|
429
|
+
},
|
|
430
|
+
String(option.value)
|
|
431
|
+
)) })
|
|
432
|
+
}
|
|
433
|
+
);
|
|
434
|
+
};
|
|
435
|
+
var CheckboxGroup_default = CheckboxGroup;
|
|
436
|
+
|
|
437
|
+
// src/fields/Textarea.tsx
|
|
438
|
+
var import_core14 = require("@mantine/core");
|
|
439
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
440
|
+
var Textarea = (props) => {
|
|
441
|
+
const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, setFieldValue } = props;
|
|
442
|
+
const onChange = (event) => {
|
|
443
|
+
setFieldValue(fieldName, event.target.value, false, 3e3);
|
|
444
|
+
};
|
|
445
|
+
if (readOnly) {
|
|
446
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
447
|
+
ReadOnlyText,
|
|
448
|
+
{
|
|
449
|
+
fieldName,
|
|
450
|
+
value: value ? `${value}` : "",
|
|
451
|
+
ellipsifyTextCharacters: config?.ellipsifyTextCharacters
|
|
452
|
+
}
|
|
453
|
+
);
|
|
454
|
+
}
|
|
455
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
456
|
+
import_core14.Textarea,
|
|
457
|
+
{
|
|
458
|
+
className: (0, import_core.FieldClassName)("fe-textarea", error),
|
|
459
|
+
autoComplete: "off",
|
|
460
|
+
value: value ? `${value}` : "",
|
|
461
|
+
onChange,
|
|
462
|
+
rows: config?.numberOfRows ?? 4,
|
|
463
|
+
autosize: config?.autoAdjustHeight,
|
|
464
|
+
maxLength: config?.maxLimit,
|
|
465
|
+
required,
|
|
466
|
+
"aria-invalid": !!error,
|
|
467
|
+
"aria-required": required,
|
|
468
|
+
"data-testid": (0, import_core.GetFieldDataTestId)(fieldName, programName, entityType, entityId)
|
|
469
|
+
}
|
|
470
|
+
);
|
|
471
|
+
};
|
|
472
|
+
var Textarea_default = Textarea;
|
|
473
|
+
|
|
474
|
+
// src/fields/DynamicFragment.tsx
|
|
475
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
476
|
+
var DynamicFragment = (props) => {
|
|
477
|
+
const { value } = props;
|
|
478
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("input", { type: "hidden", value });
|
|
479
|
+
};
|
|
480
|
+
var DynamicFragment_default = DynamicFragment;
|
|
481
|
+
|
|
482
|
+
// src/fields/readonly/ReadOnly.tsx
|
|
483
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
484
|
+
var ReadOnly = (props) => {
|
|
485
|
+
const { fieldName, value, config } = props;
|
|
486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ReadOnlyText, { fieldName, value, ...config });
|
|
487
|
+
};
|
|
488
|
+
var ReadOnly_default = ReadOnly;
|
|
489
|
+
|
|
490
|
+
// src/components/StatusMessage.tsx
|
|
491
|
+
var import_core15 = require("@form-eng/core");
|
|
492
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
493
|
+
var StatusMessage = (props) => {
|
|
494
|
+
const { id, error, errorCount, savePending, saving } = props;
|
|
495
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "fe-status-message", children: error ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { id, role: "alert", style: { color: "var(--mantine-color-red-6, #fa5252)" }, children: error.message || "Error" }) : savePending ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { id, role: "alert", style: { color: "var(--mantine-color-orange-6, #fd7e14)" }, children: [
|
|
496
|
+
import_core15.FormStrings.autoSavePending,
|
|
497
|
+
" (",
|
|
498
|
+
errorCount,
|
|
499
|
+
" ",
|
|
500
|
+
import_core15.FormStrings.remaining,
|
|
501
|
+
")"
|
|
502
|
+
] }) : saving ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { id, role: "status", style: { color: "var(--mantine-color-gray-6, #868e96)" }, children: import_core15.FormStrings.saving }) : null });
|
|
503
|
+
};
|
|
504
|
+
|
|
505
|
+
// src/components/FormLoading.tsx
|
|
506
|
+
var import_core16 = require("@form-eng/core");
|
|
507
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
508
|
+
var FormLoading = (props) => {
|
|
509
|
+
const { loadingShimmerCount, loadingFieldShimmerHeight, inPanel, hideTitleShimmer } = props;
|
|
510
|
+
const count = loadingShimmerCount || import_core16.FormConstants.loadingShimmerCount;
|
|
511
|
+
const height = loadingFieldShimmerHeight || import_core16.FormConstants.loadingFieldShimmerHeight;
|
|
512
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
513
|
+
"div",
|
|
514
|
+
{
|
|
515
|
+
className: `fe-form-loading ${inPanel ? "fe-form-loading--panel" : ""}`,
|
|
516
|
+
role: "status",
|
|
517
|
+
"aria-label": "Loading form",
|
|
518
|
+
children: [...Array(count)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { style: { marginBottom: 16 }, children: [
|
|
519
|
+
!hideTitleShimmer && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "fe-skeleton", style: { width: "33%", height: 16, marginBottom: 8, background: "var(--mantine-color-gray-2, #e9ecef)", borderRadius: 4 } }),
|
|
520
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "fe-skeleton", style: { width: "100%", height, background: "var(--mantine-color-gray-2, #e9ecef)", borderRadius: 4 } })
|
|
521
|
+
] }, `fe-loading-${i}`))
|
|
522
|
+
}
|
|
523
|
+
);
|
|
524
|
+
};
|
|
525
|
+
|
|
526
|
+
// src/registry.ts
|
|
527
|
+
var import_core17 = require("@form-eng/core");
|
|
528
|
+
var import_react2 = __toESM(require("react"));
|
|
529
|
+
function createMantineFieldRegistry() {
|
|
530
|
+
return {
|
|
531
|
+
[import_core17.ComponentTypes.Textbox]: import_react2.default.createElement(Textbox_default),
|
|
532
|
+
[import_core17.ComponentTypes.Number]: import_react2.default.createElement(Number_default),
|
|
533
|
+
[import_core17.ComponentTypes.Toggle]: import_react2.default.createElement(Toggle_default),
|
|
534
|
+
[import_core17.ComponentTypes.Dropdown]: import_react2.default.createElement(Dropdown_default),
|
|
535
|
+
[import_core17.ComponentTypes.SimpleDropdown]: import_react2.default.createElement(SimpleDropdown_default),
|
|
536
|
+
[import_core17.ComponentTypes.MultiSelect]: import_react2.default.createElement(MultiSelect_default),
|
|
537
|
+
[import_core17.ComponentTypes.DateControl]: import_react2.default.createElement(DateControl_default),
|
|
538
|
+
[import_core17.ComponentTypes.Slider]: import_react2.default.createElement(Slider_default),
|
|
539
|
+
[import_core17.ComponentTypes.RadioGroup]: import_react2.default.createElement(RadioGroup_default),
|
|
540
|
+
[import_core17.ComponentTypes.CheckboxGroup]: import_react2.default.createElement(CheckboxGroup_default),
|
|
541
|
+
[import_core17.ComponentTypes.Textarea]: import_react2.default.createElement(Textarea_default),
|
|
542
|
+
[import_core17.ComponentTypes.Fragment]: import_react2.default.createElement(DynamicFragment_default),
|
|
543
|
+
[import_core17.ComponentTypes.ReadOnly]: import_react2.default.createElement(ReadOnly_default)
|
|
544
|
+
};
|
|
545
|
+
}
|
|
546
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
547
|
+
0 && (module.exports = {
|
|
548
|
+
CheckboxGroup,
|
|
549
|
+
DateControl,
|
|
550
|
+
DocumentLinksStrings,
|
|
551
|
+
Dropdown,
|
|
552
|
+
DynamicFragment,
|
|
553
|
+
FieldClassName,
|
|
554
|
+
FormLoading,
|
|
555
|
+
GetFieldDataTestId,
|
|
556
|
+
MultiSelect,
|
|
557
|
+
Number,
|
|
558
|
+
RadioGroup,
|
|
559
|
+
ReadOnly,
|
|
560
|
+
ReadOnlyText,
|
|
561
|
+
SimpleDropdown,
|
|
562
|
+
Slider,
|
|
563
|
+
StatusMessage,
|
|
564
|
+
Textarea,
|
|
565
|
+
Textbox,
|
|
566
|
+
Toggle,
|
|
567
|
+
createMantineFieldRegistry,
|
|
568
|
+
formatDateTime
|
|
569
|
+
});
|
|
570
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/fields/Textbox.tsx","../src/components/ReadOnlyText.tsx","../src/helpers.ts","../src/fields/Number.tsx","../src/fields/Toggle.tsx","../src/fields/Dropdown.tsx","../src/fields/SimpleDropdown.tsx","../src/fields/MultiSelect.tsx","../src/fields/DateControl.tsx","../src/fields/Slider.tsx","../src/fields/RadioGroup.tsx","../src/fields/CheckboxGroup.tsx","../src/fields/Textarea.tsx","../src/fields/DynamicFragment.tsx","../src/fields/readonly/ReadOnly.tsx","../src/components/StatusMessage.tsx","../src/components/FormLoading.tsx","../src/registry.ts"],"sourcesContent":["// Field components\nexport { default as Textbox } from \"./fields/Textbox\";\nexport { default as Number } from \"./fields/Number\";\nexport { default as Toggle } from \"./fields/Toggle\";\nexport { default as Dropdown } from \"./fields/Dropdown\";\nexport { default as SimpleDropdown } from \"./fields/SimpleDropdown\";\nexport { default as MultiSelect } from \"./fields/MultiSelect\";\nexport { default as DateControl } from \"./fields/DateControl\";\nexport { default as Slider } from \"./fields/Slider\";\nexport { default as RadioGroup } from \"./fields/RadioGroup\";\nexport { default as CheckboxGroup } from \"./fields/CheckboxGroup\";\nexport { default as Textarea } from \"./fields/Textarea\";\nexport { default as DynamicFragment } from \"./fields/DynamicFragment\";\n\n// Read-only fields\nexport { default as ReadOnly } from \"./fields/readonly/ReadOnly\";\n\n// Supporting components\nexport { ReadOnlyText } from \"./components/ReadOnlyText\";\nexport type { IReadOnlyFieldProps } from \"./components/ReadOnlyText\";\nexport { StatusMessage } from \"./components/StatusMessage\";\nexport { FormLoading } from \"./components/FormLoading\";\n\n// Registry\nexport { createMantineFieldRegistry } from \"./registry\";\n\n// Helpers\nexport { FieldClassName, GetFieldDataTestId, formatDateTime, DocumentLinksStrings } from \"./helpers\";\n","import { IFieldProps } from \"@form-eng/core\";\nimport { TextInput } from \"@mantine/core\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface ITextboxProps {\n ellipsifyTextCharacters?: number;\n placeHolder?: string;\n multiline?: boolean;\n}\n\nconst Textbox = (props: IFieldProps<ITextboxProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, placeholder, setFieldValue } = props;\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setFieldValue(fieldName, event.target.value, false, 3000);\n };\n\n if (readOnly) {\n return (\n <ReadOnlyText\n fieldName={fieldName}\n value={value as string}\n ellipsifyTextCharacters={config?.ellipsifyTextCharacters}\n />\n );\n }\n\n return (\n <TextInput\n className={FieldClassName(\"fe-textbox\", error)}\n autoComplete=\"off\"\n value={(value as string) ?? \"\"}\n onChange={onChange}\n placeholder={placeholder ?? config?.placeHolder}\n required={required}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n );\n};\n\nexport default Textbox;\n","import React from \"react\";\n\nexport interface IReadOnlyFieldProps {\n readonly value?: string;\n readonly fieldName?: string;\n readonly labelClassName?: string;\n readonly valueClassName?: string;\n readonly showControlOnSide?: boolean;\n readonly containerClassName?: string;\n readonly ellipsifyTextCharacters?: number;\n}\n\nexport const ReadOnlyText: React.FunctionComponent<IReadOnlyFieldProps> = (props) => {\n const { value, fieldName, ellipsifyTextCharacters } = props;\n const cutoff = (ellipsifyTextCharacters || 0) - 3;\n\n const displayValue = value\n ? ellipsifyTextCharacters && value.length > ellipsifyTextCharacters\n ? `${value.substring(0, cutoff)}...`\n : value\n : \"-\";\n\n return (\n <span\n id={`${fieldName}-read-only`}\n className=\"fe-read-only-text\"\n title={value}\n >\n {displayValue}\n </span>\n );\n};\n\nexport default ReadOnlyText;\n","// Re-export shared field utilities from core\nexport {\n FieldClassName,\n GetFieldDataTestId,\n formatDateTime,\n DocumentLinksStrings,\n} from \"@form-eng/core\";\n","import { IFieldProps, isNull } from \"@form-eng/core\";\nimport { NumberInput } from \"@mantine/core\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\nconst NumberField = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, setFieldValue } = props;\n\n const onChange = (val: number | string) => {\n // Mantine NumberInput passes number or empty string\n if (typeof val === \"number\") {\n setFieldValue(fieldName, val, false, 1500);\n } else if (val === \"\") {\n setFieldValue(fieldName, null, false, 1500);\n }\n };\n\n if (readOnly) {\n return <ReadOnlyText fieldName={fieldName} value={!isNull(value) ? String(value) : \"\"} />;\n }\n\n return (\n <NumberInput\n className={FieldClassName(\"fe-number\", error)}\n autoComplete=\"off\"\n value={!isNull(value) ? (value as number) : \"\"}\n onChange={onChange}\n required={required}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n );\n};\n\nexport default NumberField;\n","import { IFieldProps, convertBooleanToYesOrNoText } from \"@form-eng/core\";\nimport { Switch } from \"@mantine/core\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { GetFieldDataTestId } from \"../helpers\";\n\nconst Toggle = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, setFieldValue } = props;\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setFieldValue(fieldName, event.currentTarget.checked);\n };\n\n if (readOnly) {\n return <ReadOnlyText fieldName={fieldName} value={convertBooleanToYesOrNoText(value as boolean)} />;\n }\n\n return (\n <Switch\n className=\"fe-toggle\"\n checked={!!value}\n onChange={onChange}\n required={required}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n );\n};\n\nexport default Toggle;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { Select } from \"@mantine/core\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface IDropdownProps {\n placeHolder?: string;\n setDefaultKeyIfOnlyOneOption?: boolean;\n}\n\nconst Dropdown = (props: IFieldProps<IDropdownProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, options, placeholder, setFieldValue } = props;\n\n const onChange = (val: string | null) => {\n setFieldValue(fieldName, val ?? \"\");\n };\n\n React.useEffect(() => {\n if (!value && !readOnly && config?.setDefaultKeyIfOnlyOneOption && options?.length === 1) {\n setFieldValue(fieldName, String(options[0].value));\n }\n }, [options]);\n\n if (readOnly) {\n return <ReadOnlyText fieldName={fieldName} value={value as string} />;\n }\n\n const data = options?.map(option => ({\n value: String(option.value),\n label: option.label,\n disabled: option.disabled,\n })) ?? [];\n\n return (\n <Select\n className={FieldClassName(\"fe-dropdown\", error)}\n value={value ? String(value) : null}\n onChange={onChange}\n data={data}\n placeholder={placeholder ?? config?.placeHolder}\n clearable\n required={required}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n );\n};\n\nexport default Dropdown;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { NativeSelect } from \"@mantine/core\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface ISimpleDropdownProps {\n dropdownOptions?: string[];\n placeHolder?: string;\n}\n\nconst SimpleDropdown = (props: IFieldProps<ISimpleDropdownProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, placeholder, setFieldValue } = props;\n\n const simpleOptions = config?.dropdownOptions ?? [];\n\n const onChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n setFieldValue(fieldName, event.currentTarget.value);\n };\n\n if (readOnly) {\n return <ReadOnlyText fieldName={fieldName} value={value as string} />;\n }\n\n const data = [\n { value: \"\", label: placeholder ?? config?.placeHolder ?? \"\" },\n ...simpleOptions.map(option => ({ value: option, label: option })),\n ];\n\n return (\n <NativeSelect\n className={FieldClassName(\"fe-simple-dropdown\", error)}\n value={(value as string) ?? \"\"}\n onChange={onChange}\n data={data}\n required={required}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n );\n};\n\nexport default SimpleDropdown;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { MultiSelect as MantineMultiSelect } from \"@mantine/core\";\nimport React from \"react\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\nconst MultiSelect = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, options, setFieldValue } = props;\n\n const selectedValues = (value as string[]) ?? [];\n\n const onChange = (val: string[]) => {\n setFieldValue(fieldName, val, false, 1500);\n };\n\n if (readOnly) {\n return selectedValues.length > 0 ? (\n <ul className=\"fe-multiselect-readonly\">\n {selectedValues.map((v, i) => (\n <li key={i}>{v}</li>\n ))}\n </ul>\n ) : (\n <span className=\"fe-read-only-text\">-</span>\n );\n }\n\n const data = options?.map(option => ({\n value: String(option.value),\n label: option.label,\n disabled: option.disabled,\n })) ?? [];\n\n return (\n <MantineMultiSelect\n className={FieldClassName(\"fe-multi-select\", error)}\n value={selectedValues}\n onChange={onChange}\n data={data}\n clearable\n required={required}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n );\n};\n\nexport default MultiSelect;\n","import { IFieldProps, FormStrings } from \"@form-eng/core\";\nimport React from \"react\";\nimport { GetFieldDataTestId, formatDateTime } from \"../helpers\";\n\nconst DateControl = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, setFieldValue } = props;\n\n const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const date = new Date(event.target.value);\n if (!isNaN(date.getTime())) {\n setFieldValue(fieldName, date.toISOString());\n }\n };\n\n const onClear = () => {\n setFieldValue(fieldName, null);\n };\n\n const dateInputValue = value ? new Date(value as string).toISOString().split(\"T\")[0] : \"\";\n\n if (readOnly) {\n return value ? (\n <time\n className=\"fe-read-only-date\"\n dateTime={value as string}\n >\n {formatDateTime(value as string, { hideTimestamp: true })}\n </time>\n ) : (\n <span className=\"fe-read-only-text\">-</span>\n );\n }\n\n return (\n <div className=\"fe-date-control\">\n <input\n type=\"date\"\n className=\"fe-date-control__input\"\n value={dateInputValue}\n onChange={onChange}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n <button\n type=\"button\"\n className=\"fe-date-control__clear\"\n onClick={onClear}\n title={FormStrings.clickToClear}\n aria-label={`${fieldName} ${FormStrings.clear}`}\n >\n ×\n </button>\n </div>\n );\n};\n\nexport default DateControl;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { Slider as MantineSlider } from \"@mantine/core\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface ISliderProps {\n max?: number;\n min?: number;\n step?: number;\n}\n\nconst Slider = (props: IFieldProps<ISliderProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, setFieldValue } = props;\n\n const onChange = (val: number) => {\n setFieldValue(fieldName, val);\n };\n\n if (readOnly) {\n return <ReadOnlyText fieldName={fieldName} value={String(value)} />;\n }\n\n return (\n <div\n className={FieldClassName(\"fe-slider\", error)}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n >\n <MantineSlider\n value={(value as number) ?? 0}\n onChange={onChange}\n max={config?.max}\n min={config?.min}\n step={config?.step}\n label={(val) => String(val)}\n />\n </div>\n );\n};\n\nexport default Slider;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { Radio, Group } from \"@mantine/core\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { GetFieldDataTestId } from \"../helpers\";\n\nconst RadioGroup = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, options, setFieldValue } = props;\n\n const onChange = (val: string) => {\n setFieldValue(fieldName, val);\n };\n\n if (readOnly) {\n const label = options?.find(o => String(o.value) === String(value))?.label ?? (value as string);\n return <ReadOnlyText fieldName={fieldName} value={label} />;\n }\n\n return (\n <Radio.Group\n className=\"fe-radio-group\"\n value={value ? String(value) : \"\"}\n onChange={onChange}\n required={required}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n >\n <Group mt=\"xs\">\n {options?.map(option => (\n <Radio\n key={String(option.value)}\n value={String(option.value)}\n label={option.label}\n disabled={option.disabled}\n />\n ))}\n </Group>\n </Radio.Group>\n );\n};\n\nexport default RadioGroup;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { Checkbox, Group } from \"@mantine/core\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { GetFieldDataTestId } from \"../helpers\";\n\nconst CheckboxGroup = (props: IFieldProps<{}>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, error, required, options, setFieldValue } = props;\n\n const selected = Array.isArray(value) ? (value as string[]) : [];\n\n const onChange = (val: string[]) => {\n setFieldValue(fieldName, val);\n };\n\n if (readOnly) {\n const labels = options\n ?.filter(o => selected.includes(String(o.value)))\n .map(o => o.label)\n .join(\", \");\n return <ReadOnlyText fieldName={fieldName} value={labels ?? \"\"} />;\n }\n\n return (\n <Checkbox.Group\n className=\"fe-checkbox-group\"\n value={selected}\n onChange={onChange}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n >\n <Group mt=\"xs\">\n {options?.map(option => (\n <Checkbox\n key={String(option.value)}\n value={String(option.value)}\n label={option.label}\n disabled={option.disabled}\n />\n ))}\n </Group>\n </Checkbox.Group>\n );\n};\n\nexport default CheckboxGroup;\n","import { IFieldProps } from \"@form-eng/core\";\nimport { Textarea as MantineTextarea } from \"@mantine/core\";\nimport React from \"react\";\nimport { ReadOnlyText } from \"../components/ReadOnlyText\";\nimport { FieldClassName, GetFieldDataTestId } from \"../helpers\";\n\ninterface ITextareaProps {\n autoAdjustHeight?: boolean;\n numberOfRows?: number;\n ellipsifyTextCharacters?: number;\n maxLimit?: number;\n}\n\nconst Textarea = (props: IFieldProps<ITextareaProps>) => {\n const { fieldName, programName, entityType, entityId, value, readOnly, config, error, required, setFieldValue } = props;\n\n const onChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n setFieldValue(fieldName, event.target.value, false, 3000);\n };\n\n if (readOnly) {\n return (\n <ReadOnlyText\n fieldName={fieldName}\n value={value ? `${value}` : \"\"}\n ellipsifyTextCharacters={config?.ellipsifyTextCharacters}\n />\n );\n }\n\n return (\n <MantineTextarea\n className={FieldClassName(\"fe-textarea\", error)}\n autoComplete=\"off\"\n value={value ? `${value}` : \"\"}\n onChange={onChange}\n rows={config?.numberOfRows ?? 4}\n autosize={config?.autoAdjustHeight}\n maxLength={config?.maxLimit}\n required={required}\n aria-invalid={!!error}\n aria-required={required}\n data-testid={GetFieldDataTestId(fieldName, programName, entityType, entityId)}\n />\n );\n};\n\nexport default Textarea;\n","import { IFieldProps } from \"@form-eng/core\";\nimport React from \"react\";\n\nconst DynamicFragment = (props: IFieldProps<{}>) => {\n const { value } = props;\n return <input type=\"hidden\" value={value as string} />;\n};\n\nexport default DynamicFragment;\n","import { IFieldProps } from \"@form-eng/core\";\nimport React from \"react\";\nimport { ReadOnlyText, IReadOnlyFieldProps } from \"../../components/ReadOnlyText\";\n\nconst ReadOnly = (props: IFieldProps<IReadOnlyFieldProps>) => {\n const { fieldName, value, config } = props;\n return <ReadOnlyText fieldName={fieldName} value={value as string} {...config} />;\n};\n\nexport default ReadOnly;\n","import { FormStrings } from \"@form-eng/core\";\nimport React from \"react\";\nimport { FieldError } from \"react-hook-form\";\n\ninterface IStatusMessageProps {\n id?: string;\n readonly error?: FieldError;\n readonly errorCount?: number;\n readonly savePending?: boolean;\n readonly saving?: boolean;\n}\n\nexport const StatusMessage: React.FunctionComponent<IStatusMessageProps> = (props) => {\n const { id, error, errorCount, savePending, saving } = props;\n return (\n <div className=\"fe-status-message\">\n {error ? (\n <span id={id} role=\"alert\" style={{ color: \"var(--mantine-color-red-6, #fa5252)\" }}>\n {error.message || \"Error\"}\n </span>\n ) : savePending ? (\n <span id={id} role=\"alert\" style={{ color: \"var(--mantine-color-orange-6, #fd7e14)\" }}>\n {FormStrings.autoSavePending} ({errorCount} {FormStrings.remaining})\n </span>\n ) : saving ? (\n <span id={id} role=\"status\" style={{ color: \"var(--mantine-color-gray-6, #868e96)\" }}>\n {FormStrings.saving}\n </span>\n ) : null}\n </div>\n );\n};\n","import { FormConstants } from \"@form-eng/core\";\nimport React from \"react\";\n\ninterface IFormLoadingProps {\n loadingShimmerCount?: number;\n loadingFieldShimmerHeight?: number;\n inPanel?: boolean;\n hideTitleShimmer?: boolean;\n}\n\nexport const FormLoading = (props: IFormLoadingProps) => {\n const { loadingShimmerCount, loadingFieldShimmerHeight, inPanel, hideTitleShimmer } = props;\n const count = loadingShimmerCount || FormConstants.loadingShimmerCount;\n const height = loadingFieldShimmerHeight || FormConstants.loadingFieldShimmerHeight;\n\n return (\n <div\n className={`fe-form-loading ${inPanel ? \"fe-form-loading--panel\" : \"\"}`}\n role=\"status\"\n aria-label=\"Loading form\"\n >\n {[...Array(count)].map((_, i) => (\n <div key={`fe-loading-${i}`} style={{ marginBottom: 16 }}>\n {!hideTitleShimmer && (\n <div className=\"fe-skeleton\" style={{ width: \"33%\", height: 16, marginBottom: 8, background: \"var(--mantine-color-gray-2, #e9ecef)\", borderRadius: 4 }} />\n )}\n <div className=\"fe-skeleton\" style={{ width: \"100%\", height, background: \"var(--mantine-color-gray-2, #e9ecef)\", borderRadius: 4 }} />\n </div>\n ))}\n </div>\n );\n};\n\nexport default FormLoading;\n","import { ComponentTypes, Dictionary } from \"@form-eng/core\";\nimport Textbox from \"./fields/Textbox\";\nimport NumberField from \"./fields/Number\";\nimport Toggle from \"./fields/Toggle\";\nimport Dropdown from \"./fields/Dropdown\";\nimport SimpleDropdown from \"./fields/SimpleDropdown\";\nimport MultiSelect from \"./fields/MultiSelect\";\nimport DateControl from \"./fields/DateControl\";\nimport Slider from \"./fields/Slider\";\nimport RadioGroup from \"./fields/RadioGroup\";\nimport CheckboxGroup from \"./fields/CheckboxGroup\";\nimport Textarea from \"./fields/Textarea\";\nimport DynamicFragment from \"./fields/DynamicFragment\";\nimport ReadOnly from \"./fields/readonly/ReadOnly\";\nimport React from \"react\";\n\n/** Creates the default Mantine v7 field registry for use with InjectedFieldProvider */\nexport function createMantineFieldRegistry(): Dictionary<React.JSX.Element> {\n return {\n [ComponentTypes.Textbox]: React.createElement(Textbox),\n [ComponentTypes.Number]: React.createElement(NumberField),\n [ComponentTypes.Toggle]: React.createElement(Toggle),\n [ComponentTypes.Dropdown]: React.createElement(Dropdown),\n [ComponentTypes.SimpleDropdown]: React.createElement(SimpleDropdown),\n [ComponentTypes.MultiSelect]: React.createElement(MultiSelect),\n [ComponentTypes.DateControl]: React.createElement(DateControl),\n [ComponentTypes.Slider]: React.createElement(Slider),\n [ComponentTypes.RadioGroup]: React.createElement(RadioGroup),\n [ComponentTypes.CheckboxGroup]: React.createElement(CheckboxGroup),\n [ComponentTypes.Textarea]: React.createElement(Textarea),\n [ComponentTypes.Fragment]: React.createElement(DynamicFragment),\n [ComponentTypes.ReadOnly]: React.createElement(ReadOnly),\n };\n}\n"],"mappings":"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","names":["import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","React","import_core","import_jsx_runtime","import_core","import_jsx_runtime","MantineMultiSelect","import_core","import_jsx_runtime","import_core","import_jsx_runtime","MantineSlider","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","MantineTextarea","import_jsx_runtime","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_react","React"]}
|