@gnwebsoft/ui 3.0.7 → 3.0.9

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