@gnwebsoft/ui 4.0.0 → 4.0.2

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.
Files changed (56) hide show
  1. package/dist/chunk-BXF3QEBN.js +2181 -0
  2. package/dist/chunk-DS524L7W.cjs +467 -0
  3. package/dist/chunk-FYU2OIMD.js +15 -0
  4. package/dist/chunk-GHW77WIM.cjs +72 -0
  5. package/dist/chunk-GLN5JSFF.cjs +2181 -0
  6. package/dist/chunk-GVWCGJ3F.js +140 -0
  7. package/dist/chunk-LUW7V5GI.cjs +15 -0
  8. package/dist/chunk-M526GQZS.js +2490 -0
  9. package/dist/chunk-MULSVYFT.js +72 -0
  10. package/dist/chunk-MVPLBJRK.cjs +1 -1
  11. package/dist/chunk-PUQIPRL2.js +467 -0
  12. package/dist/chunk-QLQ6OH25.cjs +2490 -0
  13. package/dist/chunk-Y3QTSDLJ.cjs +140 -0
  14. package/dist/core/index.cjs +121 -0
  15. package/dist/core/index.js +121 -0
  16. package/dist/hooks/index.cjs +3 -3
  17. package/dist/hooks/index.js +1 -1
  18. package/dist/index.cjs +85 -7
  19. package/dist/index.js +147 -69
  20. package/dist/types/index.cjs +3 -3
  21. package/dist/types/index.js +1 -1
  22. package/dist/utils/index.cjs +4 -24
  23. package/dist/utils/index.js +6 -26
  24. package/dist/wrappers/index.cjs +7 -4
  25. package/dist/wrappers/index.js +21 -18
  26. package/package.json +22 -17
  27. package/dist/AsyncSelectPayload-B9-6l33R.d.cts +0 -10
  28. package/dist/AsyncSelectPayload-B9-6l33R.d.ts +0 -10
  29. package/dist/chunk-3OPVOWQK.js +0 -140
  30. package/dist/chunk-AEOF2TUF.cjs +0 -2273
  31. package/dist/chunk-ALHC7RLK.js +0 -575
  32. package/dist/chunk-BRRLB22L.js +0 -72
  33. package/dist/chunk-CHZU4PZB.js +0 -2273
  34. package/dist/chunk-EBRUE2WR.cjs +0 -493
  35. package/dist/chunk-HEHPKM4B.cjs +0 -140
  36. package/dist/chunk-K2EJ4YKO.cjs +0 -72
  37. package/dist/chunk-U6SDYCWF.js +0 -493
  38. package/dist/chunk-XY4U6A77.cjs +0 -575
  39. package/dist/components/index.cjs +0 -25
  40. package/dist/components/index.d.cts +0 -752
  41. package/dist/components/index.d.ts +0 -752
  42. package/dist/components/index.js +0 -25
  43. package/dist/enhanced-CDTkKUlj.d.ts +0 -134
  44. package/dist/enhanced-ZQoS03Cd.d.cts +0 -134
  45. package/dist/events-BcHVCLBz.d.cts +0 -77
  46. package/dist/events-BcHVCLBz.d.ts +0 -77
  47. package/dist/hooks/index.d.cts +0 -96
  48. package/dist/hooks/index.d.ts +0 -96
  49. package/dist/index.d.cts +0 -16
  50. package/dist/index.d.ts +0 -16
  51. package/dist/types/index.d.cts +0 -820
  52. package/dist/types/index.d.ts +0 -820
  53. package/dist/utils/index.d.cts +0 -683
  54. package/dist/utils/index.d.ts +0 -683
  55. package/dist/wrappers/index.d.cts +0 -1753
  56. package/dist/wrappers/index.d.ts +0 -1753
@@ -0,0 +1,2181 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+ var _chunkY3QTSDLJcjs = require('./chunk-Y3QTSDLJ.cjs');
5
+
6
+
7
+ var _chunkLUW7V5GIcjs = require('./chunk-LUW7V5GI.cjs');
8
+
9
+ // src/wrappers/types/common.ts
10
+ function isValidOption(value) {
11
+ return typeof value === "object" && value !== null && "label" in value && "value" in value && typeof value.label === "string" && (typeof value.value === "string" || typeof value.value === "number" || typeof value.value === "boolean");
12
+ }
13
+ function normalizeOptions(options, labelKey = "label", valueKey = "value") {
14
+ return options.map((option) => ({
15
+ label: String(_nullishCoalesce(option[labelKey], () => ( ""))),
16
+ value: option[valueKey],
17
+ disabled: Boolean(option.disabled)
18
+ }));
19
+ }
20
+
21
+ // src/wrappers/AsyncMultiSelect2/AsyncMultiSelect2.tsx
22
+
23
+
24
+
25
+
26
+
27
+
28
+ var _material = require('@mui/material');
29
+ var _lodash = require('lodash');
30
+ var _react = require('react'); var React4 = _interopRequireWildcard(_react);
31
+ var _reacthookform = require('react-hook-form');
32
+ var _jsxruntime = require('react/jsx-runtime');
33
+ var initialState = {
34
+ options: [],
35
+ selectedOptions: [],
36
+ inputValue: "",
37
+ loading: false,
38
+ initialLoaded: false
39
+ };
40
+ function componentReducer(state, action) {
41
+ switch (action.type) {
42
+ case "SET_OPTIONS":
43
+ return { ...state, options: action.payload, loading: false };
44
+ case "SET_SELECTED_OPTIONS":
45
+ return { ...state, selectedOptions: action.payload };
46
+ case "SET_INPUT_VALUE":
47
+ return { ...state, inputValue: action.payload };
48
+ case "SET_LOADING":
49
+ return { ...state, loading: action.payload };
50
+ case "SET_INITIAL_LOADED":
51
+ return { ...state, initialLoaded: action.payload };
52
+ case "RESET_OPTIONS":
53
+ return { ...state, options: state.selectedOptions };
54
+ default:
55
+ return state;
56
+ }
57
+ }
58
+ var AsyncMultiSelect2Component = ({
59
+ name,
60
+ control,
61
+ placeholder,
62
+ initialValues,
63
+ label,
64
+ queryFn,
65
+ variant = "outlined",
66
+ sx,
67
+ disabled = false,
68
+ debounceMs = 400,
69
+ loadingText = "Loading...",
70
+ noOptionsText = "No options",
71
+ renderInput,
72
+ ...rest
73
+ }) => {
74
+ const [state, dispatch] = _react.useReducer.call(void 0, componentReducer, initialState);
75
+ const theme = _material.useTheme.call(void 0, );
76
+ const {
77
+ field,
78
+ fieldState: { error }
79
+ } = _reacthookform.useController.call(void 0, {
80
+ name,
81
+ control
82
+ });
83
+ const debouncedFetch = _react.useMemo.call(void 0,
84
+ () => _lodash.debounce.call(void 0, async (payload) => {
85
+ try {
86
+ const results = await queryFn(payload);
87
+ const mergedOptions = [
88
+ ...state.selectedOptions,
89
+ ...results.filter(
90
+ (option) => !state.selectedOptions.some((selected) => selected.value === option.value)
91
+ )
92
+ ];
93
+ dispatch({ type: "SET_OPTIONS", payload: mergedOptions });
94
+ } catch (_error) {
95
+ dispatch({ type: "SET_LOADING", payload: false });
96
+ }
97
+ }, debounceMs),
98
+ [queryFn, state.selectedOptions, debounceMs]
99
+ );
100
+ _react.useEffect.call(void 0, () => {
101
+ if (!_optionalChain([initialValues, 'optionalAccess', _2 => _2.length]) || state.initialLoaded) return;
102
+ dispatch({ type: "SET_LOADING", payload: true });
103
+ const payload = {
104
+ query: null,
105
+ initialValues
106
+ };
107
+ queryFn(payload).then((results) => {
108
+ if (results) {
109
+ dispatch({ type: "SET_SELECTED_OPTIONS", payload: results });
110
+ dispatch({ type: "SET_OPTIONS", payload: results });
111
+ dispatch({ type: "SET_INITIAL_LOADED", payload: true });
112
+ field.onChange(results.map((option) => option.value));
113
+ }
114
+ dispatch({ type: "SET_LOADING", payload: false });
115
+ }).catch((_error) => {
116
+ dispatch({ type: "SET_LOADING", payload: false });
117
+ });
118
+ }, [initialValues, state.initialLoaded, queryFn, field]);
119
+ _react.useEffect.call(void 0, () => {
120
+ if (!state.initialLoaded) return;
121
+ if (state.inputValue === "") {
122
+ dispatch({ type: "RESET_OPTIONS" });
123
+ return;
124
+ }
125
+ dispatch({ type: "SET_LOADING", payload: true });
126
+ const payload = {
127
+ query: state.inputValue,
128
+ initialValues: null
129
+ };
130
+ debouncedFetch(payload);
131
+ }, [state.inputValue, state.initialLoaded, debouncedFetch]);
132
+ const handleChange = _react.useCallback.call(void 0,
133
+ (event, newValue) => {
134
+ dispatch({ type: "SET_SELECTED_OPTIONS", payload: newValue });
135
+ field.onChange(newValue.map((option) => option.value));
136
+ },
137
+ [field]
138
+ );
139
+ const handleInputChange = _react.useCallback.call(void 0,
140
+ (event, newInputValue) => {
141
+ dispatch({ type: "SET_INPUT_VALUE", payload: newInputValue });
142
+ },
143
+ []
144
+ );
145
+ const isOptionEqualToValue = _react.useCallback.call(void 0,
146
+ (option, value) => option.value === value.value,
147
+ []
148
+ );
149
+ const getOptionLabel = _react.useCallback.call(void 0, (option) => option.label, []);
150
+ const defaultRenderInput = _react.useCallback.call(void 0,
151
+ (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
152
+ _material.TextField,
153
+ {
154
+ ...params,
155
+ label,
156
+ placeholder,
157
+ variant,
158
+ error: !!error,
159
+ helperText: _optionalChain([error, 'optionalAccess', _3 => _3.message]),
160
+ slotProps: {
161
+ input: {
162
+ ...params.InputProps,
163
+ endAdornment: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
164
+ state.loading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.CircularProgress, { color: "inherit", size: 20 }),
165
+ params.InputProps.endAdornment
166
+ ] })
167
+ }
168
+ },
169
+ sx: {
170
+ "& .MuiInputBase-input": {
171
+ cursor: disabled ? "not-allowed" : "default"
172
+ },
173
+ bgcolor: disabled ? theme.palette.action.disabledBackground : "transparent",
174
+ ...sx
175
+ }
176
+ }
177
+ ),
178
+ [label, placeholder, variant, error, state.loading, disabled, theme.palette.action.disabledBackground, sx]
179
+ );
180
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
181
+ _material.Autocomplete,
182
+ {
183
+ multiple: true,
184
+ options: state.options,
185
+ value: state.selectedOptions,
186
+ loading: state.loading,
187
+ disabled,
188
+ isOptionEqualToValue,
189
+ getOptionLabel,
190
+ filterSelectedOptions: true,
191
+ onChange: handleChange,
192
+ onInputChange: handleInputChange,
193
+ loadingText,
194
+ noOptionsText,
195
+ renderInput: renderInput || defaultRenderInput,
196
+ ...rest
197
+ }
198
+ );
199
+ };
200
+ var AsyncMultiSelect2 = ({
201
+ gridProps,
202
+ ...props
203
+ }) => {
204
+ if (gridProps) {
205
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AsyncMultiSelect2Component, { ...props }) });
206
+ }
207
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AsyncMultiSelect2Component, { ...props });
208
+ };
209
+ AsyncMultiSelect2.displayName = "AsyncMultiSelect2";
210
+
211
+ // src/wrappers/CheckboxElement/CheckboxElement.tsx
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+ var Component = function CheckboxElement(props) {
226
+ const {
227
+ name,
228
+ control,
229
+ label,
230
+ labelProps,
231
+ helperText,
232
+ parseError,
233
+ transform,
234
+ disabled,
235
+ sx,
236
+ onChange: customOnChange,
237
+ ...rest
238
+ } = props;
239
+ const theme = _material.useTheme.call(void 0, );
240
+ const {
241
+ field,
242
+ fieldState: { error }
243
+ } = _reacthookform.useController.call(void 0, {
244
+ name,
245
+ control,
246
+ disabled
247
+ });
248
+ const customOutputTransform = _optionalChain([transform, 'optionalAccess', _4 => _4.output]);
249
+ const { value, onChange } = _chunkY3QTSDLJcjs.useTransform.call(void 0, {
250
+ value: field.value,
251
+ onChange: field.onChange,
252
+ transform: {
253
+ input: typeof _optionalChain([transform, 'optionalAccess', _5 => _5.input]) === "function" ? transform.input : (value2) => !!value2,
254
+ output: typeof customOutputTransform === "function" ? (eventOrValue, _value) => {
255
+ const event = eventOrValue;
256
+ const checked = _value;
257
+ return customOutputTransform(event, checked);
258
+ } : (eventOrValue, _value) => {
259
+ const checked = _value;
260
+ return checked;
261
+ }
262
+ }
263
+ });
264
+ const handleChange = (event, checked) => {
265
+ onChange(event, checked);
266
+ if (typeof customOnChange === "function") {
267
+ customOnChange(event, checked);
268
+ }
269
+ };
270
+ const displayError = error ? typeof parseError === "function" ? parseError(error) : error.message : null;
271
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _material.FormControl, { error: !!error, disabled, children: [
272
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormGroup, { row: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
273
+ _material.FormControlLabel,
274
+ {
275
+ label: label || "",
276
+ ...labelProps,
277
+ disabled,
278
+ control: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
279
+ _material.Checkbox,
280
+ {
281
+ ...rest,
282
+ color: rest.color || "primary",
283
+ sx: [
284
+ ...Array.isArray(sx) ? sx : [sx],
285
+ {
286
+ color: error ? theme.palette.error.main : disabled ? theme.palette.action.disabled : void 0,
287
+ "&.Mui-disabled": {
288
+ color: theme.palette.action.disabled
289
+ }
290
+ }
291
+ ],
292
+ checked: value,
293
+ disabled,
294
+ onChange: handleChange,
295
+ ref: field.ref
296
+ }
297
+ )
298
+ }
299
+ ) }),
300
+ (displayError || helperText) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormHelperText, { error: !!error, children: displayError || helperText })
301
+ ] });
302
+ };
303
+ var CheckboxElement2 = ({
304
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
305
+ ...props
306
+ }) => {
307
+ if (gridProps) {
308
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
309
+ _material.Grid,
310
+ {
311
+ ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps },
312
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component, { ...props })
313
+ }
314
+ );
315
+ }
316
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component, { ...props });
317
+ };
318
+
319
+ // src/wrappers/CheckboxGroup/CheckboxGroup.tsx
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+ var Component2 = function CheckboxGroup(props) {
332
+ const { name, control, labelProps, options, ...rest } = props;
333
+ const {
334
+ field,
335
+ fieldState: { error }
336
+ } = _reacthookform.useController.call(void 0, {
337
+ name,
338
+ control,
339
+ disabled: rest.disabled
340
+ });
341
+ const [selectedValues, setSelectedValues] = _react.useState.call(void 0,
342
+ options.filter((c) => _optionalChain([field, 'access', _6 => _6.value, 'optionalAccess', _7 => _7.includes, 'call', _8 => _8(c.Value)])).map((c) => c.Value) || []
343
+ );
344
+ _react.useEffect.call(void 0, () => {
345
+ field.onChange(selectedValues ? [...selectedValues] : []);
346
+ }, [selectedValues, field]);
347
+ const handleChange = _react.useCallback.call(void 0, (event) => {
348
+ const value = Number.parseInt(event.target.value, 10);
349
+ if (Number.isNaN(value)) {
350
+ return;
351
+ }
352
+ if (event.target.checked) {
353
+ setSelectedValues((prev) => [...prev, value]);
354
+ } else {
355
+ setSelectedValues((prev) => prev.filter((item) => item !== value));
356
+ }
357
+ }, []);
358
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _material.FormControl, { error: !!error, children: [
359
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormGroup, { row: true, children: options.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
360
+ _material.FormControlLabel,
361
+ {
362
+ label: option.Label,
363
+ ...labelProps,
364
+ control: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
365
+ _material.Checkbox,
366
+ {
367
+ ...rest,
368
+ color: rest.color || "primary",
369
+ sx: [
370
+ ...Array.isArray(rest.sx) ? rest.sx : [rest.sx],
371
+ {
372
+ color: error ? "error.main" : void 0
373
+ }
374
+ ],
375
+ value: option.Value,
376
+ checked: selectedValues.includes(option.Value),
377
+ onChange: handleChange
378
+ }
379
+ )
380
+ },
381
+ `${option.Value}`
382
+ )) }),
383
+ error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormHelperText, { error: !!error, children: error.message })
384
+ ] });
385
+ };
386
+ var CheckboxGroup2 = ({
387
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
388
+ ...props
389
+ }) => {
390
+ if (gridProps) {
391
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
392
+ _material.Grid,
393
+ {
394
+ ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps },
395
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component2, { ...props })
396
+ }
397
+ );
398
+ }
399
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component2, { ...props });
400
+ };
401
+ CheckboxGroup2.displayName = "CheckboxGroup";
402
+
403
+ // src/wrappers/DatePickerElement/DatePickerElement.tsx
404
+
405
+
406
+
407
+ // src/wrappers/DatePickerElement/DatePickerElementCore.tsx
408
+
409
+ var _xdatepickers = require('@mui/x-date-pickers');
410
+
411
+
412
+
413
+ // src/wrappers/DatePickerElement/hooks/useDatePickerValue.ts
414
+ var _internals = require('@mui/x-date-pickers/internals');
415
+
416
+ function readDatePickerValueAsDate(adapter, value) {
417
+ if (value === null || value === void 0) {
418
+ return null;
419
+ }
420
+ if (typeof value === "string") {
421
+ if (value === "") {
422
+ return null;
423
+ }
424
+ const parsedDate = adapter.utils.date(value);
425
+ return parsedDate;
426
+ }
427
+ return value;
428
+ }
429
+ function useDatePickerValue(options) {
430
+ const { field, transform } = options;
431
+ const adapter = _internals.useLocalizationContext.call(void 0, );
432
+ const value = _react.useMemo.call(void 0, () => {
433
+ if (typeof _optionalChain([transform, 'optionalAccess', _9 => _9.input]) === "function") {
434
+ return transform.input(field.value);
435
+ }
436
+ return readDatePickerValueAsDate(adapter, field.value);
437
+ }, [field.value, _optionalChain([transform, 'optionalAccess', _10 => _10.input]), adapter]);
438
+ const onChange = _react.useCallback.call(void 0,
439
+ (newValue, context) => {
440
+ if (typeof _optionalChain([transform, 'optionalAccess', _11 => _11.output]) === "function") {
441
+ const transformedValue = transform.output(newValue, context);
442
+ field.onChange(transformedValue);
443
+ } else {
444
+ field.onChange(newValue);
445
+ }
446
+ },
447
+ // eslint-disable-next-line react-hooks/exhaustive-deps
448
+ [field.onChange, _optionalChain([transform, 'optionalAccess', _12 => _12.output])]
449
+ );
450
+ return {
451
+ value,
452
+ onChange
453
+ };
454
+ }
455
+
456
+ // src/wrappers/DatePickerElement/hooks/useDatePickerValidation.ts
457
+
458
+ var DEFAULT_ERROR_MESSAGES = {
459
+ invalidDate: "Please enter a valid date",
460
+ minDate: "Date must be after the minimum allowed date",
461
+ maxDate: "Date must be before the maximum allowed date",
462
+ disabledDate: "This date is not allowed",
463
+ required: "This field is required"
464
+ };
465
+ function useDatePickerValidation(options) {
466
+ const { fieldState, validation, parseError, value } = options;
467
+ const validationResult = _react.useMemo.call(void 0, () => {
468
+ const { error: fieldError, invalid } = fieldState;
469
+ let currentError = fieldError;
470
+ if (!fieldError && value && validation) {
471
+ const { minDate, maxDate, shouldDisableDate, errorMessages } = validation;
472
+ if (minDate && value < minDate) {
473
+ currentError = {
474
+ type: "minDate",
475
+ message: _optionalChain([errorMessages, 'optionalAccess', _13 => _13.minDate]) || DEFAULT_ERROR_MESSAGES.minDate
476
+ };
477
+ } else if (maxDate && value > maxDate) {
478
+ currentError = {
479
+ type: "maxDate",
480
+ message: _optionalChain([errorMessages, 'optionalAccess', _14 => _14.maxDate]) || DEFAULT_ERROR_MESSAGES.maxDate
481
+ };
482
+ } else if (shouldDisableDate && shouldDisableDate(value)) {
483
+ currentError = {
484
+ type: "disabledDate",
485
+ message: _optionalChain([errorMessages, 'optionalAccess', _15 => _15.disabledDate]) || DEFAULT_ERROR_MESSAGES.disabledDate
486
+ };
487
+ }
488
+ }
489
+ const hasError = Boolean(currentError);
490
+ return {
491
+ hasError,
492
+ error: currentError,
493
+ invalid: invalid || hasError
494
+ };
495
+ }, [fieldState, validation, value]);
496
+ const errorMessage = _react.useMemo.call(void 0, () => {
497
+ if (!validationResult.error) {
498
+ return null;
499
+ }
500
+ if (parseError) {
501
+ return parseError(validationResult.error);
502
+ }
503
+ if (typeof validationResult.error === "string") {
504
+ return validationResult.error;
505
+ }
506
+ if ("message" in validationResult.error && validationResult.error.message) {
507
+ return validationResult.error.message;
508
+ }
509
+ if ("type" in validationResult.error) {
510
+ const errorType = validationResult.error.type;
511
+ switch (errorType) {
512
+ case "required":
513
+ return DEFAULT_ERROR_MESSAGES.required;
514
+ case "minDate":
515
+ return DEFAULT_ERROR_MESSAGES.minDate;
516
+ case "maxDate":
517
+ return DEFAULT_ERROR_MESSAGES.maxDate;
518
+ case "disabledDate":
519
+ return DEFAULT_ERROR_MESSAGES.disabledDate;
520
+ case "invalidDate":
521
+ default:
522
+ return DEFAULT_ERROR_MESSAGES.invalidDate;
523
+ }
524
+ }
525
+ return DEFAULT_ERROR_MESSAGES.invalidDate;
526
+ }, [validationResult.error, parseError]);
527
+ return {
528
+ ...validationResult,
529
+ errorMessage
530
+ };
531
+ }
532
+
533
+ // src/wrappers/DatePickerElement/hooks/useDatePickerStyles.ts
534
+
535
+
536
+ function useDatePickerStyles(options = {}) {
537
+ const { disabled, hasError, loading, textReadOnly, sx: customSx } = options;
538
+ const theme = _material.useTheme.call(void 0, );
539
+ const computedSx = _react.useMemo.call(void 0, () => {
540
+ const baseStyles = {
541
+ // Input field styling
542
+ "& .MuiOutlinedInput-root": {
543
+ backgroundColor: disabled ? theme.palette.action.disabledBackground : "transparent",
544
+ // Transition for smooth state changes
545
+ transition: theme.transitions.create([
546
+ "background-color",
547
+ "border-color",
548
+ "color"
549
+ ], {
550
+ duration: theme.transitions.duration.short
551
+ }),
552
+ // Error state styling
553
+ ...hasError && {
554
+ borderColor: theme.palette.error.main,
555
+ "&:hover": {
556
+ borderColor: theme.palette.error.main
557
+ },
558
+ "&.Mui-focused": {
559
+ borderColor: theme.palette.error.main,
560
+ boxShadow: `0 0 0 2px ${theme.palette.error.main}25`
561
+ // 25 is 15% opacity in hex
562
+ }
563
+ },
564
+ // Loading state styling
565
+ ...loading && {
566
+ opacity: 0.7,
567
+ pointerEvents: "none"
568
+ }
569
+ },
570
+ // Input element styling
571
+ "& .MuiInputBase-input": {
572
+ cursor: disabled ? "not-allowed" : textReadOnly ? "pointer" : "text",
573
+ // Read-only specific styling
574
+ ...textReadOnly && !disabled && {
575
+ cursor: "pointer",
576
+ userSelect: "none",
577
+ caretColor: "transparent"
578
+ // Hide text cursor in read-only mode
579
+ },
580
+ // Loading state
581
+ ...loading && {
582
+ cursor: "wait"
583
+ }
584
+ },
585
+ // Required field asterisk styling
586
+ "& .MuiInputLabel-asterisk": {
587
+ color: theme.palette.error.main,
588
+ fontSize: "1.2em"
589
+ },
590
+ // Label styling with better contrast
591
+ "& .MuiInputLabel-root": {
592
+ color: hasError ? theme.palette.error.main : theme.palette.text.secondary,
593
+ // Ensure proper contrast for disabled state
594
+ ...disabled && {
595
+ color: theme.palette.text.disabled
596
+ }
597
+ },
598
+ // Helper text styling
599
+ "& .MuiFormHelperText-root": {
600
+ marginLeft: theme.spacing(1),
601
+ marginRight: theme.spacing(1),
602
+ // Error state
603
+ ...hasError && {
604
+ color: theme.palette.error.main
605
+ }
606
+ },
607
+ // Calendar icon styling
608
+ "& .MuiInputAdornment-root": {
609
+ color: disabled ? theme.palette.action.disabled : hasError ? theme.palette.error.main : theme.palette.action.active
610
+ },
611
+ // Focus ring for accessibility
612
+ "& .MuiOutlinedInput-root.Mui-focused": {
613
+ outline: `2px solid ${theme.palette.primary.main}50`,
614
+ // 50 is 31% opacity
615
+ outlineOffset: "2px"
616
+ },
617
+ // Enhanced contrast for dark themes
618
+ ...theme.palette.mode === "dark" && {
619
+ "& .MuiOutlinedInput-root": {
620
+ borderWidth: 2
621
+ }
622
+ }
623
+ };
624
+ return customSx ? [baseStyles, customSx] : baseStyles;
625
+ }, [
626
+ theme,
627
+ disabled,
628
+ hasError,
629
+ loading,
630
+ textReadOnly,
631
+ customSx
632
+ ]);
633
+ const className = _react.useMemo.call(void 0, () => {
634
+ const classes = [];
635
+ if (disabled) classes.push("DatePickerElement--disabled");
636
+ if (hasError) classes.push("DatePickerElement--error");
637
+ if (loading) classes.push("DatePickerElement--loading");
638
+ if (textReadOnly) classes.push("DatePickerElement--readOnly");
639
+ return classes.length > 0 ? classes.join(" ") : void 0;
640
+ }, [disabled, hasError, loading, textReadOnly]);
641
+ return {
642
+ sx: computedSx,
643
+ className
644
+ };
645
+ }
646
+
647
+ // src/wrappers/DatePickerElement/DatePickerElementCore.tsx
648
+
649
+ var DatePickerElementCore = _react.forwardRef.call(void 0,
650
+ (props, ref) => {
651
+ const {
652
+ name,
653
+ required = false,
654
+ control,
655
+ parseError,
656
+ transform,
657
+ validation,
658
+ label,
659
+ placeholder,
660
+ textReadOnly = false,
661
+ helperText,
662
+ inputProps = {},
663
+ slotProps = {},
664
+ datePickerProps = {},
665
+ variant = "outlined",
666
+ sx: customSx,
667
+ loading = false,
668
+ LoadingComponent,
669
+ ...restProps
670
+ } = props;
671
+ const {
672
+ disabled,
673
+ inputRef: externalInputRef,
674
+ onClose,
675
+ ...restDatePickerProps
676
+ } = datePickerProps;
677
+ const { field, fieldState } = _reacthookform.useController.call(void 0, {
678
+ name,
679
+ control,
680
+ defaultValue: null
681
+ // Let react-hook-form handle the default value typing
682
+ });
683
+ const { value, onChange: onValueChange } = useDatePickerValue({
684
+ field,
685
+ transform
686
+ });
687
+ const { hasError, errorMessage, invalid } = useDatePickerValidation({
688
+ fieldState,
689
+ validation,
690
+ parseError,
691
+ value
692
+ });
693
+ const { sx: computedSx, className } = useDatePickerStyles({
694
+ disabled,
695
+ hasError,
696
+ loading,
697
+ textReadOnly,
698
+ sx: customSx
699
+ });
700
+ const handleInputRef = _material.useForkRef.call(void 0, field.ref, externalInputRef);
701
+ const handleChange = _react.useCallback.call(void 0,
702
+ (newValue, context) => {
703
+ onValueChange(newValue, context);
704
+ },
705
+ [onValueChange]
706
+ );
707
+ const handleClose = _react.useCallback.call(void 0,
708
+ (...args) => {
709
+ field.onBlur();
710
+ if (onClose) {
711
+ onClose(...args);
712
+ }
713
+ },
714
+ // eslint-disable-next-line react-hooks/exhaustive-deps
715
+ [field.onBlur, onClose]
716
+ );
717
+ const handleTextFieldBlur = _react.useCallback.call(void 0,
718
+ (event) => {
719
+ field.onBlur();
720
+ if (typeof inputProps.onBlur === "function") {
721
+ inputProps.onBlur(event);
722
+ }
723
+ },
724
+ // eslint-disable-next-line react-hooks/exhaustive-deps
725
+ [field.onBlur, inputProps.onBlur]
726
+ );
727
+ const memoizedSlotProps = _react.useMemo.call(void 0,
728
+ () => ({
729
+ ...slotProps,
730
+ actionBar: {
731
+ actions: ["clear", "today", "cancel", "accept"],
732
+ ...slotProps.actionBar
733
+ },
734
+ textField: {
735
+ ...inputProps,
736
+ required,
737
+ placeholder,
738
+ fullWidth: true,
739
+ variant,
740
+ onBlur: handleTextFieldBlur,
741
+ error: hasError,
742
+ helperText: hasError ? errorMessage : helperText,
743
+ inputProps: {
744
+ readOnly: textReadOnly,
745
+ "aria-invalid": invalid,
746
+ "aria-describedby": hasError ? `${name}-error` : void 0,
747
+ ...inputProps.inputProps
748
+ },
749
+ // Add loading indicator if provided
750
+ ...loading && LoadingComponent && {
751
+ InputProps: {
752
+ endAdornment: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadingComponent, {}),
753
+ ...inputProps.InputProps
754
+ }
755
+ },
756
+ ...slotProps.textField
757
+ }
758
+ }),
759
+ [
760
+ slotProps,
761
+ inputProps,
762
+ required,
763
+ placeholder,
764
+ variant,
765
+ handleTextFieldBlur,
766
+ hasError,
767
+ errorMessage,
768
+ helperText,
769
+ textReadOnly,
770
+ invalid,
771
+ name,
772
+ loading,
773
+ LoadingComponent
774
+ ]
775
+ );
776
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
777
+ _xdatepickers.DatePicker,
778
+ {
779
+ ...restProps,
780
+ ...restDatePickerProps,
781
+ ref,
782
+ name,
783
+ value,
784
+ onChange: handleChange,
785
+ onClose: handleClose,
786
+ inputRef: handleInputRef,
787
+ label,
788
+ disabled,
789
+ sx: computedSx,
790
+ className,
791
+ slotProps: memoizedSlotProps,
792
+ "aria-invalid": invalid,
793
+ "aria-describedby": hasError ? `${name}-error` : void 0
794
+ }
795
+ );
796
+ }
797
+ );
798
+ DatePickerElementCore.displayName = "DatePickerElementCore";
799
+
800
+ // src/wrappers/DatePickerElement/DatePickerElement.tsx
801
+
802
+ var DatePickerElement = _react.forwardRef.call(void 0, (props, ref) => {
803
+ const {
804
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
805
+ ...coreProps
806
+ } = props;
807
+ if (gridProps === false) {
808
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
809
+ DatePickerElementCore,
810
+ {
811
+ ref,
812
+ ...coreProps
813
+ }
814
+ );
815
+ }
816
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
817
+ _material.Grid,
818
+ {
819
+ ref,
820
+ ...gridProps,
821
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
822
+ DatePickerElementCore,
823
+ {
824
+ ...coreProps
825
+ }
826
+ )
827
+ }
828
+ );
829
+ });
830
+ DatePickerElement.displayName = "DatePickerElement";
831
+
832
+ // src/wrappers/DatePickerElement/utils.ts
833
+ function isValidDate(value) {
834
+ if (value === null || value === void 0) {
835
+ return false;
836
+ }
837
+ if (value instanceof Date) {
838
+ return !isNaN(value.getTime());
839
+ }
840
+ if (typeof value === "object" && value !== null) {
841
+ if ("isValid" in value && typeof value.isValid === "function") {
842
+ return value.isValid();
843
+ }
844
+ if ("isValid" in value && typeof value.isValid === "boolean") {
845
+ return value.isValid;
846
+ }
847
+ }
848
+ return false;
849
+ }
850
+ function isParsableDateString(value) {
851
+ if (typeof value !== "string" || value === "") {
852
+ return false;
853
+ }
854
+ const isoDateRegex = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d{3})?(?:Z|[+-]\d{2}:\d{2})?)?$/;
855
+ if (isoDateRegex.test(value)) {
856
+ return true;
857
+ }
858
+ const parsed = new Date(value);
859
+ return !isNaN(parsed.getTime());
860
+ }
861
+ function createDateInputTransform(adapter) {
862
+ return (value) => {
863
+ if (value === null || value === void 0) {
864
+ return null;
865
+ }
866
+ if (typeof value === "string") {
867
+ if (value === "") {
868
+ return null;
869
+ }
870
+ try {
871
+ const parsed = adapter.utils.date(value);
872
+ return isValidDate(parsed) ? parsed : null;
873
+ } catch (e2) {
874
+ return null;
875
+ }
876
+ }
877
+ if (isValidDate(value)) {
878
+ return value;
879
+ }
880
+ return null;
881
+ };
882
+ }
883
+ function createDateOutputTransform(format) {
884
+ return (value) => {
885
+ if (value === null || value === void 0) {
886
+ return null;
887
+ }
888
+ if (!isValidDate(value)) {
889
+ return null;
890
+ }
891
+ if (!format) {
892
+ return value;
893
+ }
894
+ try {
895
+ if (value instanceof Date) {
896
+ if (format === "iso") {
897
+ return value.toISOString();
898
+ }
899
+ if (format === "date-only") {
900
+ return value.toISOString().split("T")[0];
901
+ }
902
+ }
903
+ if (typeof value.format === "function") {
904
+ return value.format(format);
905
+ }
906
+ if (typeof value.format === "function") {
907
+ return value.format(format);
908
+ }
909
+ if (typeof value.toFormat === "function") {
910
+ return value.toFormat(format);
911
+ }
912
+ return value;
913
+ } catch (e3) {
914
+ return null;
915
+ }
916
+ };
917
+ }
918
+ function createDefaultDatePickerConfig() {
919
+ return {
920
+ // Default slot props for consistent behavior
921
+ slotProps: {
922
+ actionBar: {
923
+ actions: ["clear", "today", "cancel", "accept"]
924
+ },
925
+ textField: {
926
+ fullWidth: true,
927
+ variant: "outlined"
928
+ }
929
+ },
930
+ // Default grid props for layout consistency
931
+ gridProps: {
932
+ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }
933
+ },
934
+ // Default validation configuration
935
+ validation: {
936
+ errorMessages: {
937
+ invalidDate: "Please enter a valid date",
938
+ minDate: "Date must be after the minimum allowed date",
939
+ maxDate: "Date must be before the maximum allowed date",
940
+ disabledDate: "This date is not allowed"
941
+ }
942
+ }
943
+ };
944
+ }
945
+ function extractErrorMessage(error) {
946
+ if (error === null || error === void 0) {
947
+ return "";
948
+ }
949
+ if (typeof error === "string") {
950
+ return error;
951
+ }
952
+ if (typeof error === "object" && error !== null) {
953
+ if ("message" in error && typeof error.message === "string") {
954
+ return error.message;
955
+ }
956
+ if ("type" in error && typeof error.type === "string") {
957
+ const errorType = error.type;
958
+ switch (errorType) {
959
+ case "invalidDate":
960
+ return "Please enter a valid date";
961
+ case "minDate":
962
+ return "Date is too early";
963
+ case "maxDate":
964
+ return "Date is too late";
965
+ case "disabledDate":
966
+ return "This date is not available";
967
+ default:
968
+ return "Invalid date selection";
969
+ }
970
+ }
971
+ }
972
+ return "Invalid input";
973
+ }
974
+ function createStableKey(config) {
975
+ try {
976
+ return JSON.stringify(config, (key, value) => {
977
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
978
+ const sorted = {};
979
+ Object.keys(value).sort().forEach((k) => {
980
+ sorted[k] = value[k];
981
+ });
982
+ return sorted;
983
+ }
984
+ return value;
985
+ });
986
+ } catch (e4) {
987
+ return Object.keys(config).sort().join("-");
988
+ }
989
+ }
990
+
991
+ // src/wrappers/PasswordElement/PasswordElement.tsx
992
+ var _Visibility = require('@mui/icons-material/Visibility'); var _Visibility2 = _interopRequireDefault(_Visibility);
993
+ var _VisibilityOff = require('@mui/icons-material/VisibilityOff'); var _VisibilityOff2 = _interopRequireDefault(_VisibilityOff);
994
+
995
+
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+ var Component3 = function PasswordEl(props) {
1005
+ const {
1006
+ iconColor,
1007
+ renderIcon = (password2) => password2 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _Visibility2.default, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _VisibilityOff2.default, {}),
1008
+ slotProps,
1009
+ name,
1010
+ control,
1011
+ inputRef,
1012
+ onBlur,
1013
+ ...rest
1014
+ } = props;
1015
+ const [password, setPassword] = _react.useState.call(void 0, true);
1016
+ const endAdornment = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.InputAdornment, { position: "end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1017
+ _material.IconButton,
1018
+ {
1019
+ onMouseDown: (e) => e.preventDefault(),
1020
+ onClick: () => setPassword(!password),
1021
+ tabIndex: -1,
1022
+ color: _nullishCoalesce(iconColor, () => ( "default")),
1023
+ children: renderIcon(password)
1024
+ }
1025
+ ) });
1026
+ const {
1027
+ field,
1028
+ fieldState: { error }
1029
+ } = _reacthookform.useController.call(void 0, {
1030
+ name,
1031
+ control
1032
+ });
1033
+ const handleInputRef = _material.useForkRef.call(void 0, field.ref, inputRef);
1034
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1035
+ _material.TextField,
1036
+ {
1037
+ ...rest,
1038
+ inputRef: handleInputRef,
1039
+ type: password ? "password" : "text",
1040
+ value: _nullishCoalesce(field.value, () => ( "")),
1041
+ fullWidth: true,
1042
+ variant: _nullishCoalesce(rest.variant, () => ( "outlined")),
1043
+ size: _nullishCoalesce(rest.size, () => ( "small")),
1044
+ onChange: (event) => {
1045
+ field.onChange(event);
1046
+ if (typeof rest.onChange === "function") {
1047
+ rest.onChange(event);
1048
+ }
1049
+ },
1050
+ onBlur: (event) => {
1051
+ field.onBlur();
1052
+ if (typeof onBlur === "function") {
1053
+ onBlur(event);
1054
+ }
1055
+ },
1056
+ ...typeof slotProps === "undefined" ? {
1057
+ InputProps: {
1058
+ endAdornment
1059
+ }
1060
+ } : {
1061
+ slotProps: {
1062
+ ...slotProps,
1063
+ input: {
1064
+ endAdornment,
1065
+ ..._optionalChain([slotProps, 'optionalAccess', _16 => _16.input])
1066
+ }
1067
+ }
1068
+ },
1069
+ error: !!error,
1070
+ helperText: error ? error.message : ""
1071
+ }
1072
+ );
1073
+ };
1074
+ var PasswordElement = ({
1075
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
1076
+ ...props
1077
+ }) => {
1078
+ if (gridProps) {
1079
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1080
+ _material.Grid,
1081
+ {
1082
+ ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps },
1083
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component3, { ...props })
1084
+ }
1085
+ );
1086
+ }
1087
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component3, { ...props });
1088
+ };
1089
+
1090
+ // src/wrappers/RadioButtonGroup/RadioButtonGroup.tsx
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+
1102
+
1103
+
1104
+
1105
+ var Component4 = function RadioButtonGroup(props) {
1106
+ const {
1107
+ options,
1108
+ label,
1109
+ name,
1110
+ labelKey = "label",
1111
+ valueKey = "id",
1112
+ disabledKey = "disabled",
1113
+ required,
1114
+ emptyOptionLabel,
1115
+ returnObject,
1116
+ row,
1117
+ control,
1118
+ type,
1119
+ labelProps,
1120
+ disabled,
1121
+ formLabelProps,
1122
+ radioProps,
1123
+ transform,
1124
+ ...rest
1125
+ } = props;
1126
+ const theme = _material.useTheme.call(void 0, );
1127
+ const {
1128
+ field,
1129
+ fieldState: { error }
1130
+ } = _reacthookform.useController.call(void 0, {
1131
+ name,
1132
+ disabled,
1133
+ control
1134
+ });
1135
+ const { value, onChange } = _chunkY3QTSDLJcjs.useTransform.call(void 0, {
1136
+ value: field.value,
1137
+ onChange: field.onChange,
1138
+ transform: {
1139
+ input: typeof _optionalChain([transform, 'optionalAccess', _17 => _17.input]) === "function" ? transform.input : (value2) => {
1140
+ return value2 || "";
1141
+ },
1142
+ output: typeof _optionalChain([transform, 'optionalAccess', _18 => _18.output]) === "function" ? _optionalChain([transform, 'optionalAccess', _19 => _19.output]) : (_event, value2) => {
1143
+ if (value2 && type === "number") {
1144
+ return Number(value2);
1145
+ }
1146
+ if (value2 && type === "boolean") {
1147
+ return Boolean(value2);
1148
+ }
1149
+ return value2;
1150
+ }
1151
+ }
1152
+ });
1153
+ const onRadioChange = (event, radioValue) => {
1154
+ const returnValue = returnObject ? options.find((option) => option[valueKey] === radioValue) : radioValue;
1155
+ onChange(event, returnValue);
1156
+ if (typeof rest.onChange === "function") {
1157
+ rest.onChange(returnValue);
1158
+ }
1159
+ };
1160
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _material.FormControl, { error: !!error, children: [
1161
+ label && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormLabel, { ...formLabelProps, required, error: !!error, children: label }),
1162
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _material.RadioGroup, { onChange: onRadioChange, name, row, value, children: [
1163
+ emptyOptionLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1164
+ _material.FormControlLabel,
1165
+ {
1166
+ ...labelProps,
1167
+ control: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1168
+ _material.Radio,
1169
+ {
1170
+ ...radioProps,
1171
+ sx: {
1172
+ color: error ? theme.palette.error.main : void 0
1173
+ },
1174
+ checked: !value
1175
+ }
1176
+ ),
1177
+ label: emptyOptionLabel,
1178
+ value: ""
1179
+ }
1180
+ ),
1181
+ options.map((option) => {
1182
+ const optionKey = option[valueKey];
1183
+ const optionDisabled = option[disabledKey] || false;
1184
+ let val = returnObject ? _optionalChain([value, 'optionalAccess', _20 => _20[valueKey]]) : value;
1185
+ if (type === "number" && val !== void 0) {
1186
+ val = Number(val);
1187
+ } else if (type === "boolean" && val !== void 0) {
1188
+ val = Boolean(val);
1189
+ }
1190
+ const isChecked = val === optionKey;
1191
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1192
+ _material.FormControlLabel,
1193
+ {
1194
+ ...labelProps,
1195
+ control: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1196
+ _material.Radio,
1197
+ {
1198
+ ...radioProps,
1199
+ sx: {
1200
+ color: error ? theme.palette.error.main : void 0
1201
+ },
1202
+ disabled: disabled || optionDisabled,
1203
+ checked: isChecked
1204
+ }
1205
+ ),
1206
+ value: optionKey,
1207
+ label: option[labelKey]
1208
+ },
1209
+ String(optionKey)
1210
+ );
1211
+ })
1212
+ ] }),
1213
+ error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormHelperText, { children: error.message })
1214
+ ] });
1215
+ };
1216
+ var RadioButtonGroup2 = ({
1217
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
1218
+ ...props
1219
+ }) => {
1220
+ if (gridProps) {
1221
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1222
+ _material.Grid,
1223
+ {
1224
+ ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps },
1225
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component4, { ...props })
1226
+ }
1227
+ );
1228
+ }
1229
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component4, { ...props });
1230
+ };
1231
+ RadioButtonGroup2.displayName = "RadioButtonGroup";
1232
+
1233
+ // src/wrappers/SelectCascadeElement/SelectCascadeElement.tsx
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+ var Component5 = function SelectCascadeElement(props) {
1246
+ const {
1247
+ labelKey = "Label",
1248
+ valueKey = "Value",
1249
+ name,
1250
+ onBlur,
1251
+ onChange,
1252
+ disabled,
1253
+ options,
1254
+ control,
1255
+ loading = false,
1256
+ placeholder,
1257
+ label,
1258
+ dependsOn,
1259
+ textFieldProps = {},
1260
+ variant,
1261
+ size,
1262
+ sx,
1263
+ isEdit = false,
1264
+ ...rest
1265
+ } = props;
1266
+ const { required, ...restTextProps } = textFieldProps;
1267
+ const getOptionKey = _react.useCallback.call(void 0,
1268
+ (option) => {
1269
+ if (typeof option === "string" || typeof option === "number") return option;
1270
+ const key = option ? option[valueKey] : void 0;
1271
+ return key !== void 0 && key !== null ? String(key) : "";
1272
+ },
1273
+ [valueKey]
1274
+ );
1275
+ const getOptionLabel = _react.useCallback.call(void 0,
1276
+ (option) => {
1277
+ if (typeof option === "string") return option;
1278
+ return option ? String(option[labelKey]) : "";
1279
+ },
1280
+ [labelKey]
1281
+ );
1282
+ const isOptionEqualToValue = (option, value) => getOptionKey(option) === getOptionKey(value);
1283
+ const {
1284
+ field,
1285
+ fieldState: { error }
1286
+ } = _reacthookform.useController.call(void 0, {
1287
+ name,
1288
+ control
1289
+ });
1290
+ const theme = _material.useTheme.call(void 0, );
1291
+ const { field: dependentField } = _reacthookform.useController.call(void 0, {
1292
+ name: dependsOn,
1293
+ control
1294
+ });
1295
+ const parentValueRef = _react.useRef.call(void 0, _nullishCoalesce(dependentField.value, () => ( null)));
1296
+ const [hasAutoSelected, setHasAutoSelected] = _react.useState.call(void 0, false);
1297
+ _react.useEffect.call(void 0, () => {
1298
+ if (!!dependentField.value && _optionalChain([parentValueRef, 'optionalAccess', _21 => _21.current]) !== dependentField.value || dependentField.value === null) {
1299
+ field.onChange(null);
1300
+ setHasAutoSelected(false);
1301
+ }
1302
+ }, [dependentField.value, field]);
1303
+ _react.useEffect.call(void 0, () => {
1304
+ if (isEdit && !disabled && options.length === 1 && field.value == null && !hasAutoSelected) {
1305
+ field.onChange(getOptionKey(options[0]));
1306
+ setHasAutoSelected(true);
1307
+ } else {
1308
+ if (options.length === 1 && field.value == null && !hasAutoSelected) {
1309
+ field.onChange(getOptionKey(options[0]));
1310
+ setHasAutoSelected(true);
1311
+ }
1312
+ }
1313
+ }, [
1314
+ options,
1315
+ field.value,
1316
+ field.onChange,
1317
+ hasAutoSelected,
1318
+ isEdit,
1319
+ disabled,
1320
+ field,
1321
+ getOptionKey,
1322
+ dependentField.onChange
1323
+ ]);
1324
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1325
+ _material.Autocomplete,
1326
+ {
1327
+ ...rest,
1328
+ value: options.map((option) => getOptionKey(option) === field.value ? option : null).find(Boolean) || null,
1329
+ loading,
1330
+ options,
1331
+ getOptionKey,
1332
+ getOptionLabel,
1333
+ isOptionEqualToValue,
1334
+ ref: field.ref,
1335
+ disabled: dependentField.value == null || disabled,
1336
+ onChange: (event, newValue, reason) => {
1337
+ field.onChange(newValue ? getOptionKey(newValue) : null);
1338
+ if (onChange && typeof onChange === "function") {
1339
+ onChange(event, newValue, reason);
1340
+ }
1341
+ },
1342
+ onBlur: (event) => {
1343
+ field.onBlur();
1344
+ if (typeof onBlur === "function") {
1345
+ onBlur(event);
1346
+ }
1347
+ },
1348
+ size,
1349
+ fullWidth: true,
1350
+ renderInput: (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1351
+ _material.TextField,
1352
+ {
1353
+ ...params,
1354
+ ...restTextProps,
1355
+ fullWidth: true,
1356
+ error: !!error,
1357
+ required,
1358
+ helperText: error ? error.message : "",
1359
+ placeholder,
1360
+ label,
1361
+ variant: variant ? variant : "outlined",
1362
+ sx: {
1363
+ "& .MuiOutlinedInput-root": {
1364
+ bgcolor: disabled || dependentField.value == null ? theme.palette.action.disabledBackground : "transparent"
1365
+ },
1366
+ "& .MuiInputLabel-asterisk": { color: "red" },
1367
+ "& .MuiInputBase-input": {
1368
+ cursor: disabled || dependentField.value == null ? "not-allowed" : "default"
1369
+ },
1370
+ ...sx
1371
+ }
1372
+ }
1373
+ )
1374
+ }
1375
+ );
1376
+ };
1377
+ var SelectCascadeElement2 = ({
1378
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
1379
+ ...props
1380
+ }) => {
1381
+ if (gridProps) {
1382
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component5, { ...props }) });
1383
+ }
1384
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component5, { ...props });
1385
+ };
1386
+ SelectCascadeElement2.displayName = "SelectCascadeElement";
1387
+
1388
+ // src/wrappers/SelectElement/SelectElement.tsx
1389
+
1390
+
1391
+
1392
+
1393
+ var Component6 = function SelectElement(props) {
1394
+ const {
1395
+ name,
1396
+ control,
1397
+ onChange,
1398
+ isEdit,
1399
+ options: optionsInput,
1400
+ label,
1401
+ sx,
1402
+ variant,
1403
+ disabled,
1404
+ labelKey = "Label",
1405
+ valueKey = "Value",
1406
+ placeholder,
1407
+ textFieldProps = {},
1408
+ ...rest
1409
+ } = props;
1410
+ const { required, ...restTextProps } = textFieldProps;
1411
+ const options = _react.useMemo.call(void 0, () => optionsInput || [], [optionsInput]);
1412
+ const {
1413
+ field,
1414
+ fieldState: { error }
1415
+ } = _reacthookform.useController.call(void 0, {
1416
+ name,
1417
+ control
1418
+ });
1419
+ const theme = _material.useTheme.call(void 0, );
1420
+ const getOptionValue = _react.useCallback.call(void 0,
1421
+ (option) => {
1422
+ if (typeof option === "string") return option;
1423
+ return option ? option[valueKey] : null;
1424
+ },
1425
+ [valueKey]
1426
+ );
1427
+ const getOptionLabel = _react.useCallback.call(void 0,
1428
+ (option) => {
1429
+ if (typeof option === "string") return option;
1430
+ return option ? String(option[labelKey]) : "";
1431
+ },
1432
+ [labelKey]
1433
+ );
1434
+ const handleChange = (event, newValue, reason) => {
1435
+ const option = newValue;
1436
+ field.onChange(option ? getOptionValue(option) : null);
1437
+ _optionalChain([onChange, 'optionalCall', _22 => _22(event, newValue, reason)]);
1438
+ };
1439
+ _react.useEffect.call(void 0, () => {
1440
+ if (!isEdit && options.length === 1 && (field.value == null || field.value == void 0 || field.value === "")) {
1441
+ const defaultOption = options[0];
1442
+ const defaultValue = getOptionValue(defaultOption);
1443
+ field.onChange(defaultValue);
1444
+ }
1445
+ }, [isEdit, options, field, getOptionValue]);
1446
+ const autocompleteValue = _react.useMemo.call(void 0,
1447
+ () => _nullishCoalesce(options.find((option) => getOptionValue(option) === field.value), () => ( null)),
1448
+ [field.value, options, getOptionValue]
1449
+ );
1450
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1451
+ _material.Autocomplete,
1452
+ {
1453
+ ...rest,
1454
+ filterSelectedOptions: false,
1455
+ options,
1456
+ value: autocompleteValue,
1457
+ onChange: handleChange,
1458
+ disabled: disabled || options.length == 0,
1459
+ getOptionLabel: (option) => getOptionLabel(option),
1460
+ ref: field.ref,
1461
+ isOptionEqualToValue: (option, value) => getOptionValue(option) === getOptionValue(value),
1462
+ renderInput: (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1463
+ _material.TextField,
1464
+ {
1465
+ ...params,
1466
+ ...restTextProps,
1467
+ fullWidth: true,
1468
+ required,
1469
+ error: !!error,
1470
+ helperText: error ? error.message : "",
1471
+ label,
1472
+ placeholder,
1473
+ variant: variant ? variant : "outlined",
1474
+ sx: {
1475
+ "& .MuiOutlinedInput-root": {
1476
+ bgcolor: disabled || options.length == 0 ? theme.palette.action.disabledBackground : "transparent"
1477
+ },
1478
+ "& .MuiInputLabel-asterisk": { color: "red" },
1479
+ "& .MuiInputBase-input": {
1480
+ cursor: disabled || options.length == 0 ? "not-allowed" : "default"
1481
+ },
1482
+ ...sx
1483
+ }
1484
+ }
1485
+ )
1486
+ }
1487
+ );
1488
+ };
1489
+ var SelectElement2 = ({
1490
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
1491
+ ...props
1492
+ }) => {
1493
+ if (gridProps) {
1494
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1495
+ _material.Grid,
1496
+ {
1497
+ ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps },
1498
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component6, { ...props })
1499
+ }
1500
+ );
1501
+ }
1502
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component6, { ...props });
1503
+ };
1504
+ SelectElement2.displayName = "SelectElement";
1505
+
1506
+ // src/wrappers/SelectMultiElement/SelectMultiElement.tsx
1507
+ var _CheckBox = require('@mui/icons-material/CheckBox'); var _CheckBox2 = _interopRequireDefault(_CheckBox);
1508
+ var _CheckBoxOutlineBlank = require('@mui/icons-material/CheckBoxOutlineBlank'); var _CheckBoxOutlineBlank2 = _interopRequireDefault(_CheckBoxOutlineBlank);
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+
1516
+
1517
+
1518
+
1519
+ var Component7 = function SelectMultiElement(props) {
1520
+ const {
1521
+ name,
1522
+ control,
1523
+ onBlur,
1524
+ disabled,
1525
+ options,
1526
+ loading = false,
1527
+ placeholder,
1528
+ label,
1529
+ variant,
1530
+ sx,
1531
+ size,
1532
+ labelKey = "Label",
1533
+ valueKey = "Value",
1534
+ ...rest
1535
+ } = props;
1536
+ const {
1537
+ field,
1538
+ fieldState: { error }
1539
+ } = _reacthookform.useController.call(void 0, {
1540
+ name,
1541
+ control
1542
+ });
1543
+ const getOptionValue = (option) => {
1544
+ if (typeof option === "string") return option;
1545
+ return option ? option[valueKey] : null;
1546
+ };
1547
+ const getOptionLabel = (option) => {
1548
+ if (typeof option === "string") return option;
1549
+ return option ? option[labelKey] : "";
1550
+ };
1551
+ const selectedValue = field.value && Array.isArray(field.value) ? options.filter((option) => field.value.includes(getOptionValue(option))) : [];
1552
+ const handleChange = (_, selectedOptions, reason) => {
1553
+ if (reason === "clear") {
1554
+ field.onChange([]);
1555
+ } else if (reason === "selectOption" || reason === "removeOption") {
1556
+ const newValues = selectedOptions.map((option) => getOptionValue(option));
1557
+ field.onChange(newValues);
1558
+ }
1559
+ };
1560
+ const icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _CheckBoxOutlineBlank2.default, { fontSize: "small" });
1561
+ const checkedIcon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _CheckBox2.default, { fontSize: "small" });
1562
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1563
+ _material.Autocomplete,
1564
+ {
1565
+ multiple: true,
1566
+ value: selectedValue,
1567
+ loading,
1568
+ options,
1569
+ getOptionLabel,
1570
+ isOptionEqualToValue: (option, value) => getOptionValue(option) === getOptionValue(value),
1571
+ filterSelectedOptions: true,
1572
+ disableCloseOnSelect: true,
1573
+ ref: field.ref,
1574
+ disabled: _nullishCoalesce(disabled, () => ( field.disabled)),
1575
+ onChange: handleChange,
1576
+ onBlur: (event) => {
1577
+ field.onBlur();
1578
+ if (typeof onBlur === "function") {
1579
+ onBlur(event);
1580
+ }
1581
+ },
1582
+ fullWidth: true,
1583
+ size,
1584
+ renderOption: (props1, option, { selected }) => {
1585
+ const { key, ...optionProps } = props1;
1586
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { ...optionProps, children: [
1587
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1588
+ _material.Checkbox,
1589
+ {
1590
+ icon,
1591
+ checkedIcon,
1592
+ checked: selected
1593
+ }
1594
+ ),
1595
+ getOptionLabel(option)
1596
+ ] }, key);
1597
+ },
1598
+ renderInput: (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1599
+ _material.TextField,
1600
+ {
1601
+ ...params,
1602
+ label,
1603
+ error: !!error,
1604
+ helperText: error ? error.message : "",
1605
+ placeholder,
1606
+ slotProps: {
1607
+ input: {
1608
+ ...params.InputProps,
1609
+ endAdornment: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
1610
+ loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.CircularProgress, { color: "inherit", size: 20 }) : null,
1611
+ params.InputProps.endAdornment
1612
+ ] })
1613
+ }
1614
+ },
1615
+ variant: variant ? variant : "outlined",
1616
+ sx: {
1617
+ ...sx
1618
+ }
1619
+ }
1620
+ ),
1621
+ ...rest
1622
+ }
1623
+ );
1624
+ };
1625
+ var SelectMultiElement2 = ({
1626
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
1627
+ ...props
1628
+ }) => {
1629
+ if (gridProps) {
1630
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1631
+ _material.Grid,
1632
+ {
1633
+ ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps },
1634
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component7, { ...props })
1635
+ }
1636
+ );
1637
+ }
1638
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component7, { ...props });
1639
+ };
1640
+ SelectMultiElement2.displayName = "SelectMultiElement";
1641
+
1642
+ // src/wrappers/TextFieldElement/TextFieldElement.tsx
1643
+
1644
+
1645
+
1646
+ var Component8 = function TextFieldElement(props) {
1647
+ const {
1648
+ parseError,
1649
+ name,
1650
+ control,
1651
+ component: TextFieldComponent = _material.TextField,
1652
+ transform,
1653
+ fieldType = "text",
1654
+ // Default to text type
1655
+ defaultValue,
1656
+ label,
1657
+ placeholder,
1658
+ textFieldProps = {},
1659
+ variant,
1660
+ sx,
1661
+ size,
1662
+ onChange: customOnChange,
1663
+ enableWarnings = process.env.NODE_ENV === "development",
1664
+ ...rest
1665
+ } = props;
1666
+ const {
1667
+ type,
1668
+ required,
1669
+ helperText,
1670
+ inputRef,
1671
+ onInput,
1672
+ onBlur,
1673
+ disabled,
1674
+ ...restTextProps
1675
+ } = textFieldProps;
1676
+ const {
1677
+ field,
1678
+ fieldState: { error }
1679
+ } = _reacthookform.useController.call(void 0, {
1680
+ name,
1681
+ control
1682
+ });
1683
+ const theme = _material.useTheme.call(void 0, );
1684
+ const { value, onChange } = _chunkY3QTSDLJcjs.useEnhancedTransform.call(void 0,
1685
+ {
1686
+ value: field.value,
1687
+ onChange: field.onChange,
1688
+ transform: transform ? {
1689
+ input: transform.input,
1690
+ output: transform.output
1691
+ } : void 0,
1692
+ fieldType: !transform ? type === "number" ? "number" : fieldType : void 0,
1693
+ // Auto-detect number type
1694
+ defaultValue,
1695
+ enableWarnings
1696
+ }
1697
+ );
1698
+ const handleInputRef = _material.useForkRef.call(void 0, field.ref, inputRef);
1699
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1700
+ TextFieldComponent,
1701
+ {
1702
+ ...rest,
1703
+ ...restTextProps,
1704
+ name: field.name,
1705
+ value,
1706
+ onChange: (event) => {
1707
+ const input = event.target.value;
1708
+ if (input === "") {
1709
+ field.onChange(void 0);
1710
+ }
1711
+ onChange(event);
1712
+ if (typeof customOnChange === "function") {
1713
+ customOnChange(event);
1714
+ }
1715
+ },
1716
+ onBlur: (event) => {
1717
+ field.onBlur();
1718
+ if (typeof onBlur === "function") {
1719
+ onBlur(event);
1720
+ }
1721
+ },
1722
+ onInput: (event) => {
1723
+ if (typeof onInput === "function") {
1724
+ onInput(event);
1725
+ }
1726
+ },
1727
+ disabled,
1728
+ label,
1729
+ placeholder,
1730
+ fullWidth: true,
1731
+ required,
1732
+ type,
1733
+ error: !!error,
1734
+ helperText: error ? parseError ? parseError(error) : error.message : helperText,
1735
+ inputRef: handleInputRef,
1736
+ variant: variant ? variant : "outlined",
1737
+ size,
1738
+ sx: {
1739
+ "& .MuiInputLabel-asterisk": { color: "red" },
1740
+ "& .MuiInputBase-input": {
1741
+ cursor: disabled ? "not-allowed" : "default"
1742
+ },
1743
+ bgcolor: disabled ? theme.palette.action.disabledBackground : "transparent",
1744
+ ...sx
1745
+ }
1746
+ }
1747
+ );
1748
+ };
1749
+ var TextFieldElement2 = ({
1750
+ gridProps = {},
1751
+ disableGrid = false,
1752
+ ...props
1753
+ }) => {
1754
+ if (disableGrid) {
1755
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component8, { ...props });
1756
+ }
1757
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1758
+ _material.Grid,
1759
+ {
1760
+ size: 12,
1761
+ ...gridProps,
1762
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component8, { ...props })
1763
+ }
1764
+ );
1765
+ };
1766
+
1767
+ // src/wrappers/TimePickerElement/TimePickerElement.tsx
1768
+
1769
+
1770
+
1771
+
1772
+
1773
+ var Component9 = function TimePickerElement(props) {
1774
+ const {
1775
+ name,
1776
+ required,
1777
+ inputProps,
1778
+ control,
1779
+ textReadOnly,
1780
+ label,
1781
+ placeholder,
1782
+ slotProps,
1783
+ timePickerProps = {},
1784
+ transform,
1785
+ sx,
1786
+ ...rest
1787
+ } = props;
1788
+ const adapter = _internals.useLocalizationContext.call(void 0, );
1789
+ const theme = _material.useTheme.call(void 0, );
1790
+ const { disabled, inputRef, onClose, ...restTimePickerProps } = timePickerProps;
1791
+ const {
1792
+ field,
1793
+ fieldState: { error }
1794
+ } = _reacthookform.useController.call(void 0, {
1795
+ name,
1796
+ control,
1797
+ defaultValue: null
1798
+ });
1799
+ const { value, onChange } = _chunkY3QTSDLJcjs.useTransform.call(void 0, {
1800
+ value: field.value,
1801
+ onChange: field.onChange,
1802
+ transform: {
1803
+ input: typeof _optionalChain([transform, 'optionalAccess', _23 => _23.input]) === "function" ? transform.input : (newValue) => _chunkLUW7V5GIcjs.readValueAsDate.call(void 0, adapter, newValue),
1804
+ output: (eventOrValue, value2) => {
1805
+ const actualValue = value2 !== void 0 ? value2 : eventOrValue;
1806
+ if (actualValue === null) return null;
1807
+ return actualValue;
1808
+ }
1809
+ }
1810
+ });
1811
+ const handleInputRef = _material.useForkRef.call(void 0, field.ref, inputRef);
1812
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1813
+ _xdatepickers.TimePicker,
1814
+ {
1815
+ ...rest,
1816
+ ...restTimePickerProps,
1817
+ ...field,
1818
+ value,
1819
+ label,
1820
+ disabled,
1821
+ ...timePickerProps,
1822
+ inputRef: handleInputRef,
1823
+ onClose: (...args) => {
1824
+ field.onBlur();
1825
+ if (onClose) {
1826
+ onClose(...args);
1827
+ }
1828
+ },
1829
+ onChange: (newValue, context) => {
1830
+ onChange(newValue, context);
1831
+ if (typeof timePickerProps.onChange === "function") {
1832
+ timePickerProps.onChange(newValue, context);
1833
+ }
1834
+ },
1835
+ sx: {
1836
+ "& .MuiOutlinedInput-root": {
1837
+ bgcolor: disabled ? theme.palette.action.disabledBackground : "transparent"
1838
+ },
1839
+ "& .MuiInputLabel-asterisk": { color: "red" },
1840
+ "& .MuiInputBase-input": {
1841
+ cursor: disabled ? "not-allowed" : "default"
1842
+ },
1843
+ ...sx
1844
+ },
1845
+ slotProps: {
1846
+ ...slotProps,
1847
+ actionBar: {
1848
+ actions: ["clear", "cancel", "accept"]
1849
+ },
1850
+ textField: {
1851
+ ...inputProps,
1852
+ required,
1853
+ placeholder,
1854
+ fullWidth: true,
1855
+ onBlur: (event) => {
1856
+ field.onBlur();
1857
+ if (typeof _optionalChain([inputProps, 'optionalAccess', _24 => _24.onBlur]) === "function") {
1858
+ inputProps.onBlur(event);
1859
+ }
1860
+ },
1861
+ error: !!error,
1862
+ helperText: error ? error.message : _optionalChain([inputProps, 'optionalAccess', _25 => _25.helperText]) || rest.helperText,
1863
+ inputProps: {
1864
+ readOnly: !!textReadOnly,
1865
+ ..._optionalChain([inputProps, 'optionalAccess', _26 => _26.inputProps])
1866
+ }
1867
+ }
1868
+ }
1869
+ }
1870
+ );
1871
+ };
1872
+ var TimePickerElement2 = ({
1873
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
1874
+ ...props
1875
+ }) => {
1876
+ if (gridProps) {
1877
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1878
+ _material.Grid,
1879
+ {
1880
+ ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps },
1881
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component9, { ...props })
1882
+ }
1883
+ );
1884
+ }
1885
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component9, { ...props });
1886
+ };
1887
+ TimePickerElement2.displayName = "TimePickerElement";
1888
+
1889
+ // src/wrappers/AsyncSelect/index.tsx
1890
+
1891
+
1892
+
1893
+
1894
+
1895
+
1896
+
1897
+ var _utils = require('@mui/material/utils');
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+
1911
+ var Component10 = function AsyncSelectElement(props) {
1912
+ const {
1913
+ name,
1914
+ disabled,
1915
+ control,
1916
+ placeholder,
1917
+ initialValue,
1918
+ label,
1919
+ queryFn,
1920
+ variant,
1921
+ labelKey = "Label",
1922
+ valueKey = "Value",
1923
+ sx,
1924
+ size,
1925
+ ...rest
1926
+ } = props;
1927
+ const {
1928
+ field,
1929
+ fieldState: { error }
1930
+ } = _reacthookform.useController.call(void 0, {
1931
+ name,
1932
+ control
1933
+ });
1934
+ const theme = _material.useTheme.call(void 0, );
1935
+ const [loading, setLoading] = _react.useState.call(void 0, false);
1936
+ const [selectedOption, setSelectedOption] = _react.useState.call(void 0, null);
1937
+ const [inputValue, setInputValue] = _react.useState.call(void 0, "");
1938
+ const inputValue2 = _react.useMemo.call(void 0, () => inputValue, [inputValue]);
1939
+ const setInputValue2 = _react.useCallback.call(void 0,
1940
+ (newValue) => setInputValue(newValue),
1941
+ []
1942
+ );
1943
+ const [options, setOptions] = _react.useState.call(void 0, []);
1944
+ const initialValueLoaded = _react.useRef.call(void 0,
1945
+ !initialValue ? true : !(initialValue != null)
1946
+ );
1947
+ const fieldValue = _react.useRef.call(void 0, field.value);
1948
+ const fetchData = _react.useMemo.call(void 0,
1949
+ () => _utils.debounce.call(void 0,
1950
+ (payload, callback) => {
1951
+ queryFn(payload).then((c) => callback(c));
1952
+ },
1953
+ 400
1954
+ ),
1955
+ [queryFn]
1956
+ );
1957
+ const fillOptions = _react.useCallback.call(void 0,
1958
+ (results) => {
1959
+ let newOptions = [];
1960
+ if (selectedOption) {
1961
+ newOptions = [selectedOption];
1962
+ }
1963
+ if (results) {
1964
+ newOptions = [...newOptions, ...results];
1965
+ }
1966
+ setOptions(newOptions);
1967
+ setLoading(false);
1968
+ },
1969
+ [selectedOption]
1970
+ );
1971
+ _react.useEffect.call(void 0, () => {
1972
+ if (initialValueLoaded.current) return void 0;
1973
+ let active = true;
1974
+ const payload = {
1975
+ query: null,
1976
+ initialValue
1977
+ };
1978
+ setLoading(true);
1979
+ fetchData(payload, (results) => {
1980
+ if (active) {
1981
+ if (!!results && results.length > 0) {
1982
+ fillOptions(_optionalChain([results, 'optionalAccess', _27 => _27.filter, 'call', _28 => _28((c) => c[valueKey] == initialValue)]));
1983
+ setSelectedOption(results[0]);
1984
+ field.onChange(results[0][valueKey]);
1985
+ fieldValue.current = results[0][valueKey];
1986
+ }
1987
+ initialValueLoaded.current = true;
1988
+ setLoading(false);
1989
+ }
1990
+ });
1991
+ return () => {
1992
+ active = false;
1993
+ };
1994
+ }, [initialValue, fetchData, field, fillOptions, valueKey]);
1995
+ React4.useEffect(() => {
1996
+ let active = true;
1997
+ if (inputValue2 === "" || initialValueLoaded.current === false) {
1998
+ setOptions(selectedOption ? [selectedOption] : []);
1999
+ setLoading(false);
2000
+ return void 0;
2001
+ }
2002
+ if (fieldValue.current) {
2003
+ if (field.value === fieldValue.current) {
2004
+ return void 0;
2005
+ }
2006
+ }
2007
+ setLoading(true);
2008
+ const payload = {
2009
+ query: inputValue2,
2010
+ initialValue: null
2011
+ };
2012
+ fetchData(payload, (results) => {
2013
+ if (active) {
2014
+ fillOptions(results);
2015
+ }
2016
+ });
2017
+ return () => {
2018
+ active = false;
2019
+ };
2020
+ }, [
2021
+ initialValue,
2022
+ inputValue2,
2023
+ fetchData,
2024
+ field.value,
2025
+ fillOptions,
2026
+ selectedOption
2027
+ ]);
2028
+ const selectRef = _react.useRef.call(void 0, null);
2029
+ const handleChange = (_, newSelectedOption, reason) => {
2030
+ if (reason === "clear") {
2031
+ setSelectedOption(null);
2032
+ field.onChange(null);
2033
+ setLoading(false);
2034
+ } else if (reason === "selectOption" || reason === "removeOption") {
2035
+ if (newSelectedOption) {
2036
+ setSelectedOption(newSelectedOption);
2037
+ field.onChange(newSelectedOption[valueKey]);
2038
+ fieldValue.current = newSelectedOption[valueKey];
2039
+ setLoading(false);
2040
+ }
2041
+ }
2042
+ setOptions([]);
2043
+ setLoading(false);
2044
+ };
2045
+ _react.useEffect.call(void 0, () => {
2046
+ if (!field.value) {
2047
+ setInputValue("");
2048
+ setSelectedOption(null);
2049
+ setLoading(false);
2050
+ }
2051
+ }, [field.value]);
2052
+ const getOptionValue = (option) => {
2053
+ return option ? String(option[valueKey]) : "";
2054
+ };
2055
+ const getOptionLabel = (option) => {
2056
+ return option ? String(option[labelKey]) : "";
2057
+ };
2058
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2059
+ _material.Autocomplete,
2060
+ {
2061
+ ...rest,
2062
+ ref: selectRef,
2063
+ fullWidth: true,
2064
+ loading,
2065
+ getOptionLabel,
2066
+ getOptionKey: getOptionValue,
2067
+ isOptionEqualToValue: (option, value) => getOptionValue(option) === getOptionValue(value),
2068
+ autoComplete: true,
2069
+ size,
2070
+ disabled,
2071
+ includeInputInList: true,
2072
+ options,
2073
+ filterOptions: (x) => x,
2074
+ value: selectedOption,
2075
+ filterSelectedOptions: true,
2076
+ onChange: handleChange,
2077
+ onInputChange: (_, newInputValue) => {
2078
+ setInputValue2(newInputValue);
2079
+ },
2080
+ noOptionsText: "Type Something...",
2081
+ renderInput: (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2082
+ _material.TextField,
2083
+ {
2084
+ ...params,
2085
+ label,
2086
+ error: !!error,
2087
+ helperText: error ? error.message : "",
2088
+ placeholder,
2089
+ slotProps: {
2090
+ input: {
2091
+ ...params.InputProps,
2092
+ endAdornment: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
2093
+ loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.CircularProgress, { color: "inherit", size: 20 }) : null,
2094
+ params.InputProps.endAdornment
2095
+ ] })
2096
+ }
2097
+ },
2098
+ variant: variant ? variant : "outlined",
2099
+ sx: {
2100
+ "& .MuiInputBase-input": {
2101
+ cursor: disabled ? "not-allowed" : "default"
2102
+ },
2103
+ bgcolor: disabled ? theme.palette.action.disabledBackground : "transparent",
2104
+ ...sx
2105
+ }
2106
+ }
2107
+ ),
2108
+ renderOption: (renderProps, option) => {
2109
+ const { key, ...optionProps } = renderProps;
2110
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { ...optionProps, children: option[labelKey] }, key);
2111
+ }
2112
+ }
2113
+ );
2114
+ };
2115
+ var AsyncSelectElement2 = ({
2116
+ gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
2117
+ ...props
2118
+ }) => {
2119
+ if (gridProps) {
2120
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2121
+ _material.Grid,
2122
+ {
2123
+ ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps },
2124
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2125
+ Component10,
2126
+ {
2127
+ ...props
2128
+ }
2129
+ )
2130
+ }
2131
+ );
2132
+ }
2133
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component10, { ...props });
2134
+ };
2135
+ AsyncSelectElement2.displayName = "AsyncSelectElement";
2136
+
2137
+ // src/wrappers/Field/index.ts
2138
+ var Field = {
2139
+ Text: TextFieldElement2,
2140
+ Checkbox: CheckboxElement2,
2141
+ Date: DatePickerElement,
2142
+ RadioGroup: RadioButtonGroup2,
2143
+ Password: PasswordElement,
2144
+ Time: TimePickerElement2,
2145
+ Select: SelectElement2,
2146
+ SelectMulti: SelectMultiElement2,
2147
+ SelectCascade: SelectCascadeElement2,
2148
+ AsyncSelect: AsyncSelectElement2,
2149
+ AsyncMultiSelect: AsyncMultiSelect2,
2150
+ CheckboxGroup: CheckboxGroup2
2151
+ };
2152
+
2153
+
2154
+
2155
+
2156
+
2157
+
2158
+
2159
+
2160
+
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+
2167
+
2168
+
2169
+
2170
+
2171
+
2172
+
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+ exports.isValidOption = isValidOption; exports.normalizeOptions = normalizeOptions; exports.AsyncMultiSelect2 = AsyncMultiSelect2; exports.CheckboxElement = CheckboxElement2; exports.CheckboxGroup = CheckboxGroup2; exports.readDatePickerValueAsDate = readDatePickerValueAsDate; exports.useDatePickerValue = useDatePickerValue; exports.useDatePickerValidation = useDatePickerValidation; exports.useDatePickerStyles = useDatePickerStyles; exports.DatePickerElementCore = DatePickerElementCore; exports.DatePickerElement = DatePickerElement; exports.isValidDate = isValidDate; exports.isParsableDateString = isParsableDateString; exports.createDateInputTransform = createDateInputTransform; exports.createDateOutputTransform = createDateOutputTransform; exports.createDefaultDatePickerConfig = createDefaultDatePickerConfig; exports.extractErrorMessage = extractErrorMessage; exports.createStableKey = createStableKey; exports.PasswordElement = PasswordElement; exports.RadioButtonGroup = RadioButtonGroup2; exports.SelectCascadeElement = SelectCascadeElement2; exports.SelectElement = SelectElement2; exports.SelectMultiElement = SelectMultiElement2; exports.TextFieldElement = TextFieldElement2; exports.TimePickerElement = TimePickerElement2; exports.Field = Field;
2181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImM6XFxVdHRhbVxcUHJvamVjdHNcXEdOV2ViU29mdC5VSVxccGFja2FnZXNcXHVpXFxkaXN0XFxjaHVuay1HTE41SlNGRi5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDRTtBQUNBO0FBQ0Ysd0RBQTZCO0FBQzdCO0FBQ0U7QUFDRix3REFBNkI7QUFDN0I7QUFDQTtBQUNBLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRTtBQUM5QixFQUFFLE9BQU8sT0FBTyxNQUFNLElBQUksU0FBUyxHQUFHLE1BQU0sSUFBSSxLQUFLLEdBQUcsUUFBUSxHQUFHLE1BQU0sR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxTQUFTLEdBQUcsQ0FBQyxPQUFPLEtBQUssQ0FBQyxNQUFNLElBQUksU0FBUyxHQUFHLE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxTQUFTLEdBQUcsT0FBTyxLQUFLLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztBQUMzTztBQUNBLFNBQVMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRTtBQUMzRSxFQUFFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7QUFDbEMsSUFBSSxLQUFLLEVBQUUsTUFBTSxrQkFBQyxNQUFNLENBQUMsUUFBUSxDQUFFLFVBQUcsSUFBRSxDQUFDO0FBQ3pDLElBQUksS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFDM0IsSUFBSSxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRO0FBQ3JDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRix5Q0FBc0I7QUFDdEIsZ0NBQWlDO0FBQ2pDLDRFQUFtRTtBQUNuRSxnREFBK0M7QUFDL0MsK0NBQXVEO0FBQ3ZELElBQUks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QTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0E7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0E7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0E7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0E7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0E7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0E7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxVQUFBO0FBQ0E7QUFDQSxVQUFBO0FBQ0EsWUFBQTtBQUNBLGNBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0E7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0Esb0JBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsY0FBQTtBQUNBLGNBQUE7QUFDQSxnQkFBQTtBQUNBLGNBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsY0FBQTtBQUNBLGNBQUE7QUFDQSxnQkFBQTtBQUNBLGdCQUFBO0FBQ0Esa0JBQUE7QUFDQSxnQkFBQTtBQUNBLGdCQUFBO0FBQ0EsZ0JBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsWUFBQTtBQUNBLGNBQUE7QUFDQSxZQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxvQkFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxZQUFBO0FBQ0EsY0FBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsWUFBQTtBQUNBLGNBQUE7QUFDQSxZQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSwwQkFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsY0FBQTtBQUNBLGNBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxZQUFBO0FBQ0EsY0FBQTtBQUNBLGNBQUE7QUFDQSxnQkFBQTtBQUNBLGdCQUFBO0FBQ0EsY0FBQTtBQUNBLFlBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0E7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxZQUFBO0FBQ0EsWUFBQTtBQUNBLGNBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxjQUFBO0FBQ0EsY0FBQTtBQUNBLGdCQUFBO0FBQ0EsZ0JBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IkM6XFxVdHRhbVxcUHJvamVjdHNcXEdOV2ViU29mdC5VSVxccGFja2FnZXNcXHVpXFxkaXN0XFxjaHVuay1HTE41SlNGRi5janMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdfQ==