@gnwebsoft/ui 4.0.1 → 4.0.3

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