@gnwebsoft/ui 4.0.0 → 4.0.1

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