@chris-c-brine/form-dialog 1.0.6 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -97
- package/dist/components/buttons/FormSubmitButton.d.ts +1 -1
- package/dist/components/dialogs/BaseDialog.d.ts +3 -3
- package/dist/components/dialogs/FormDialog.d.ts +7 -9
- package/dist/components/dialogs/FormDialogActions.d.ts +1 -1
- package/dist/components/forms/PaperForm.d.ts +14 -6
- package/dist/components/forms/PersistForm.d.ts +2 -2
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/useDialog.d.ts +9 -7
- package/dist/hooks/useFormDialog.d.ts +1 -1
- package/dist/hooks/usePersistForm.d.ts +29 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +185 -207
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +185 -207
- package/dist/index.js.map +1 -1
- package/dist/utils/ThemeBridge.d.ts +0 -1
- package/dist/utils/applyDefaultFormDialogProps.d.ts +24 -24
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,20 +1,34 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
|
-
import { createContext,
|
|
2
|
+
import { createContext, useContext, Fragment, useState, useEffect, useRef, useCallback, memo, useMemo, Children } from 'react';
|
|
3
3
|
import { Dialog, DialogTitle, DialogContent, DialogActions, Paper, IconButton, Button, useTheme as useTheme$1, Box, CircularProgress, Badge, Grid } from '@mui/material';
|
|
4
|
-
import {
|
|
4
|
+
import { useFormContext, FormContainer, useFormState } from 'react-hook-form-mui';
|
|
5
|
+
import { isEqualWith, isObject, isNumber, isEqual, isEmpty, omit, merge, debounce } from 'lodash';
|
|
6
|
+
import { Refresh, Close, Save } from '@mui/icons-material';
|
|
5
7
|
import { useTheme } from '@mui/material/styles';
|
|
6
|
-
import { merge, isEqualWith, isObject, isNumber, isEqual, isEmpty, omit, debounce } from 'lodash';
|
|
7
|
-
import { Close, Refresh, Save } from '@mui/icons-material';
|
|
8
8
|
import { create } from 'zustand';
|
|
9
9
|
import { createJSONStorage, persist } from 'zustand/middleware';
|
|
10
|
-
import { useFormContext as useFormContext$1 } from 'react-hook-form';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* A component for rendering a modal dialog with an optional blackout effect.
|
|
14
13
|
*/
|
|
15
14
|
const BlackoutDialog = ({ open = false, blackout = false, id = "blackout-dialog", children, sx, ...props }) => {
|
|
16
15
|
const sxProps = blackout ? { ...sx, backgroundColor: "black" } : sx;
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* 1) When you open a dialog via a button, the button's ancestor gets aria-hidden, presumably so that
|
|
18
|
+
* screen readers (SR) can't interact with it while the dialog is open.
|
|
19
|
+
* 2) When you close the dialog, the aria-hidden is removed so that SRs can interact with the button again.
|
|
20
|
+
* 3) Also, when closing, the focus is moved back on the opener button.
|
|
21
|
+
*
|
|
22
|
+
* Now comes the important part. You get Blocked aria-hidden on a <div> only when 3 happens before 2. In this case,
|
|
23
|
+
* as the error message explains, we are trying to place focus somewhere where SRs don't have access, which is
|
|
24
|
+
* a No No, and browsers correctly warn about it.
|
|
25
|
+
*
|
|
26
|
+
* This ordering is dependent on the closeAfterTransition prop on the MUI Dialog. When false and user triggers
|
|
27
|
+
* dialog close, aria-hidden is removed (2) and then focus is placed on the opener button (3). Meaning there is no
|
|
28
|
+
* issue. You can see it in action here. However, when it's true (the default), the order is the other way around,
|
|
29
|
+
* and you get the warning.
|
|
30
|
+
*/
|
|
31
|
+
return (jsx(Dialog, { closeAfterTransition: false, open: open, id: id, ...props, sx: sxProps, children: children }));
|
|
18
32
|
};
|
|
19
33
|
|
|
20
34
|
/**
|
|
@@ -58,157 +72,15 @@ const BaseDialog = ({ title = null, closeButton, titleProps, children = null, co
|
|
|
58
72
|
...sx,
|
|
59
73
|
}, ...props, children: [title && jsx(DialogTitle, { ...titleProps, children: title }), " ", closeButton, children && jsx(DialogContent, { ...contentProps, children: children }), actions && jsx(DialogActions, { ...actionsProps, children: actions })] }));
|
|
60
74
|
|
|
61
|
-
/**
|
|
62
|
-
* A component that combines a Material UI Paper with a form container
|
|
63
|
-
*
|
|
64
|
-
* PaperForm wraps form content in an elevated paper surface, providing
|
|
65
|
-
* visual distinction and a clean container for form elements. It integrates
|
|
66
|
-
* seamlessly with react-hook-form by using FormContainer internally.
|
|
67
|
-
*
|
|
68
|
-
* This component is useful for creating standalone form surfaces outside of dialogs,
|
|
69
|
-
* such as on pages or within cards. It supports all Paper props for styling
|
|
70
|
-
* while handling form state management through FormContainer.
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* // Basic usage
|
|
74
|
-
* <PaperForm
|
|
75
|
-
* formProps={{
|
|
76
|
-
* defaultValues: { name: "", email: "" },
|
|
77
|
-
* onSuccess: handleSubmit
|
|
78
|
-
* }}
|
|
79
|
-
* elevation={3}
|
|
80
|
-
* >
|
|
81
|
-
* <TextFieldElement name="name" label="Name" />
|
|
82
|
-
* <TextFieldElement name="email" label="Email" />
|
|
83
|
-
* <Button type="submit">Submit</Button>
|
|
84
|
-
* </PaperForm>
|
|
85
|
-
*
|
|
86
|
-
* @example
|
|
87
|
-
* // With custom styling and validation
|
|
88
|
-
* <PaperForm
|
|
89
|
-
* formProps={{
|
|
90
|
-
* defaultValues: formDefaultValues,
|
|
91
|
-
* onSuccess: handleSubmit,
|
|
92
|
-
* onError: handleError,
|
|
93
|
-
* }}
|
|
94
|
-
* sx={{
|
|
95
|
-
* padding: 3,
|
|
96
|
-
* borderRadius: 2,
|
|
97
|
-
* backgroundColor: 'background.paper',
|
|
98
|
-
* }}
|
|
99
|
-
* elevation={2}
|
|
100
|
-
* >
|
|
101
|
-
* <FormFields />
|
|
102
|
-
* <FormDialogActions submitProps={{ children: "Save Profile" }} />
|
|
103
|
-
* </PaperForm>
|
|
104
|
-
*
|
|
105
|
-
* @template T - The type of form values being handled
|
|
106
|
-
*/
|
|
107
|
-
const PaperForm = ({ children, formProps, ...paperProps }) => (jsx(Paper, { ...paperProps, children: jsx(FormContainer, { ...formProps, children: children }) }));
|
|
108
|
-
|
|
109
75
|
const FormDialogContext = createContext(undefined);
|
|
110
76
|
FormDialogContext.displayName = "FormDialogContext";
|
|
111
77
|
|
|
112
|
-
// Create a context that will hold the parent theme
|
|
113
|
-
const ParentThemeContext = createContext(null);
|
|
114
|
-
const ThemeBridge = ({ children }) => {
|
|
115
|
-
const parentTheme = useTheme();
|
|
116
|
-
const [themeSnapshot, setThemeSnapshot] = useState(parentTheme);
|
|
117
|
-
// Update the snapshot when the parent theme changes
|
|
118
|
-
useEffect(() => {
|
|
119
|
-
setThemeSnapshot(parentTheme);
|
|
120
|
-
}, [parentTheme]);
|
|
121
|
-
// Pass the parent theme to our components
|
|
122
|
-
return (jsx(ParentThemeContext.Provider, { value: themeSnapshot, children: children }));
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Context provider component for form dialog state management
|
|
127
|
-
*
|
|
128
|
-
* FormDialogProvider creates and manages shared state for form dialogs,
|
|
129
|
-
* allowing child components to access dialog state and controls through
|
|
130
|
-
* the useFormDialog hook.
|
|
131
|
-
*
|
|
132
|
-
* This provider handles:
|
|
133
|
-
* - Dialog open/close state
|
|
134
|
-
* - Form-wide disabled state
|
|
135
|
-
* - Dialog close handler passing
|
|
136
|
-
* - Theme consistency via ThemeBridge
|
|
137
|
-
*
|
|
138
|
-
* Use this provider to wrap form components that need to share state
|
|
139
|
-
* and disabled status, such as dialogs with multiple form fields
|
|
140
|
-
* and action buttons that need to be coordinated.
|
|
141
|
-
*
|
|
142
|
-
* @example
|
|
143
|
-
* // Basic usage wrapping a form
|
|
144
|
-
* <FormDialogProvider>
|
|
145
|
-
* <FormContainer onSuccess={handleSubmit}>
|
|
146
|
-
* <TextFieldElement name="name" />
|
|
147
|
-
* <FormDialogActions />
|
|
148
|
-
* </FormContainer>
|
|
149
|
-
* </FormDialogProvider>
|
|
150
|
-
*
|
|
151
|
-
* @example
|
|
152
|
-
* // With pre-configured dialog state
|
|
153
|
-
* <FormDialogProvider open={isOpen} closeDialog={handleClose}>
|
|
154
|
-
* <PaperForm formProps={formProps}>
|
|
155
|
-
* <LoginFormFields />
|
|
156
|
-
* <FormDialogActions submitProps={{ maxAttempts: 3 }} />
|
|
157
|
-
* </PaperForm>
|
|
158
|
-
* </FormDialogProvider>
|
|
159
|
-
*/
|
|
160
|
-
const FormDialogProvider = ({ children, ...value }) => {
|
|
161
|
-
const [disabled, setDisabled] = useState(false);
|
|
162
|
-
return (jsx(ThemeBridge, { children: jsx(FormDialogContext.Provider, { value: { ...value, disabled, setDisabled }, children: children }) }));
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* A dialog component specialized for forms with integrated context providers
|
|
167
|
-
*
|
|
168
|
-
* FormDialog combines Material UI dialog functionality with React Hook Form,
|
|
169
|
-
* creating a comprehensive solution for modal forms. It provides context
|
|
170
|
-
* providers for form state management, dialog controls, and accessibility.
|
|
171
|
-
*
|
|
172
|
-
* Key features:
|
|
173
|
-
* - Integrates React Hook Form with Material UI dialogs
|
|
174
|
-
* - Provides form state management through FormProvider
|
|
175
|
-
* - Establishes dialog context through FormDialogProvider
|
|
176
|
-
* - Handles form submission and error states
|
|
177
|
-
* - Supports loading states for form operations
|
|
178
|
-
* - Maintains consistent styling and behavior
|
|
179
|
-
*
|
|
180
|
-
* Child components can access the form and dialog context through hooks:
|
|
181
|
-
* - useFormContext() - Access form methods and state
|
|
182
|
-
* - useFormState() - Access form validation state
|
|
183
|
-
* - useFormDialog() - Access dialog controls and state
|
|
184
|
-
*
|
|
185
|
-
*/
|
|
186
|
-
const FormDialog = ({ formProps, children, open, onClose, ...dialogProps }) => {
|
|
187
|
-
const PaperComponent = useCallback((props) => jsx(PaperForm, { formProps: formProps, ...props }), [formProps]);
|
|
188
|
-
const FormDialogContent = useCallback(() => (jsx(BaseDialog, { PaperComponent: PaperComponent, open: open, onClose: onClose, closeButton: jsx(IconButton, { sx: {
|
|
189
|
-
position: "absolute",
|
|
190
|
-
top: 8,
|
|
191
|
-
right: 8,
|
|
192
|
-
}, onClick: (e) => onClose === null || onClose === void 0 ? void 0 : onClose(e, 'escapeKeyDown'), children: jsx(Close, { fontSize: "small", "aria-label": "close-form-dialog" }) }), disableRestoreFocus: true, disableEnforceFocus: false, disableAutoFocus: false, ...merge({
|
|
193
|
-
actionsProps: { sx: { pt: 2.5 } },
|
|
194
|
-
contentProps: {
|
|
195
|
-
sx: {
|
|
196
|
-
display: "flex",
|
|
197
|
-
justifyContent: "center",
|
|
198
|
-
boxSizing: "border-box",
|
|
199
|
-
maxHeight: `calc(100vh - 235px)`, // 235 estimate using H4 title & default FormDialogActions
|
|
200
|
-
},
|
|
201
|
-
},
|
|
202
|
-
}, dialogProps), children: children })), [open, onClose, dialogProps, children, PaperComponent]);
|
|
203
|
-
return (jsx(FormDialogProvider, { open: open, closeDialog: onClose, children: jsx(FormDialogContent, {}) }));
|
|
204
|
-
};
|
|
205
|
-
|
|
206
78
|
// src/components/dialogs/FormDialog/hooks/useFormDialog.ts
|
|
207
79
|
/**
|
|
208
80
|
* Hook for accessing the FormDialog context values and functions
|
|
209
81
|
*
|
|
210
82
|
* This hook provides access to the form dialog state and controls managed by
|
|
211
|
-
* the FormDialogProvider. It allows components to interact with dialog state,
|
|
83
|
+
* the FormDialogProvider. It allows components to interact with the dialog state,
|
|
212
84
|
* including open/close status and form-wide disabled state.
|
|
213
85
|
*
|
|
214
86
|
* The context provides:
|
|
@@ -324,6 +196,19 @@ function applyDefaultFormDialogProps({ resetProps, submitProps, gridProps, cance
|
|
|
324
196
|
return { resetButtonProps, gridContainerProps, cancelButtonProps, submitButtonProps };
|
|
325
197
|
}
|
|
326
198
|
|
|
199
|
+
// Create a context that will hold the parent theme
|
|
200
|
+
const ParentThemeContext = createContext(null);
|
|
201
|
+
const ThemeBridge = ({ children }) => {
|
|
202
|
+
const parentTheme = useTheme();
|
|
203
|
+
const [themeSnapshot, setThemeSnapshot] = useState(parentTheme);
|
|
204
|
+
// Update the snapshot when the parent theme changes
|
|
205
|
+
useEffect(() => {
|
|
206
|
+
setThemeSnapshot(parentTheme);
|
|
207
|
+
}, [parentTheme]);
|
|
208
|
+
// Pass the parent theme to our components
|
|
209
|
+
return (jsx(ParentThemeContext.Provider, { value: themeSnapshot, children: children }));
|
|
210
|
+
};
|
|
211
|
+
|
|
327
212
|
const useMaxAttempts = ({ maxAttempts }) => {
|
|
328
213
|
const { formState, resetField } = useFormContext();
|
|
329
214
|
const { setDisabled, disabled } = useFormDialog();
|
|
@@ -418,36 +303,18 @@ function useOnMount(callback) {
|
|
|
418
303
|
* - Only saves changed fields, not the entire form state
|
|
419
304
|
* - Automatically clears storage when form values match defaults
|
|
420
305
|
*
|
|
421
|
-
* @example
|
|
422
|
-
* // In a form component:
|
|
423
|
-
* const MyPersistedForm = () => {
|
|
424
|
-
* const formMethods = useForm({ defaultValues: { name: '' } });
|
|
425
|
-
* // Connect the form to persistence
|
|
426
|
-
* usePersistedForm({ formName: 'user-registration' });
|
|
427
|
-
*
|
|
428
|
-
* return (<FormProvider {...formMethods}>
|
|
429
|
-
* <TextFieldElement name="name" label="Name" />
|
|
430
|
-
* </FormProvider>);
|
|
431
|
-
* }
|
|
432
|
-
*
|
|
433
|
-
* @example
|
|
434
|
-
* // For convenience, use with the PersistForm wrapper component:
|
|
435
|
-
* <PersistForm formName="user-profile">
|
|
436
|
-
* <ProfileFormFields />
|
|
437
|
-
* </PersistForm>
|
|
438
|
-
*
|
|
439
|
-
* @param props - Configuration options
|
|
440
306
|
*/
|
|
441
|
-
const
|
|
442
|
-
const { setValue, watch, formState } =
|
|
307
|
+
const usePersistForm = ({ formName = "", formContext }) => {
|
|
308
|
+
// const { setValue, watch, formState } = formContext;
|
|
443
309
|
const { formData, updateFormData, resetFormData } = createFormChangeStore(formName)();
|
|
444
|
-
const {
|
|
310
|
+
const { disabled } = useFormDialog();
|
|
445
311
|
const debouncedUpdate = debounce((key, values) => {
|
|
446
312
|
updateFormData(key, values);
|
|
447
313
|
}, 200);
|
|
448
314
|
useEffect(() => {
|
|
449
|
-
if (!formName)
|
|
315
|
+
if (!formName || !formContext)
|
|
450
316
|
return;
|
|
317
|
+
const { watch, formState } = formContext;
|
|
451
318
|
const subscription = watch((newValues, { name }) => {
|
|
452
319
|
if (deepCompare(newValues, formState.defaultValues, true)) {
|
|
453
320
|
resetFormData();
|
|
@@ -466,19 +333,18 @@ const usePersistedForm = ({ formName = "" }) => {
|
|
|
466
333
|
debouncedUpdate.cancel();
|
|
467
334
|
};
|
|
468
335
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
469
|
-
}, [
|
|
336
|
+
}, [formContext, debouncedUpdate]);
|
|
470
337
|
useOnMount(() => {
|
|
471
|
-
if (!isEmpty(formData) && !disabled && !formState.isLoading &&
|
|
338
|
+
if (!isEmpty(formData) && !disabled && !(formContext === null || formContext === void 0 ? void 0 : formContext.formState.isLoading) && formName) {
|
|
472
339
|
setTimeout(() => {
|
|
473
340
|
Object.entries(formData).forEach(([key, value]) => {
|
|
474
|
-
setValue(key, value, { shouldDirty: true, shouldTouch: true });
|
|
341
|
+
formContext === null || formContext === void 0 ? void 0 : formContext.setValue(key, value, { shouldDirty: true, shouldTouch: true });
|
|
475
342
|
});
|
|
476
343
|
}, 200);
|
|
477
344
|
}
|
|
478
345
|
});
|
|
479
346
|
};
|
|
480
347
|
|
|
481
|
-
// src/hooks/useDialog.ts
|
|
482
348
|
/**
|
|
483
349
|
* Hook for managing dialog state and providing dialog control functions
|
|
484
350
|
*
|
|
@@ -486,6 +352,8 @@ const usePersistedForm = ({ formName = "" }) => {
|
|
|
486
352
|
* functions to open and close the dialog, along with props that can be
|
|
487
353
|
* spread onto a Material-UI Dialog component.
|
|
488
354
|
*
|
|
355
|
+
* Restores focus to the opening element, but only after the dialog has fully closed.
|
|
356
|
+
*
|
|
489
357
|
* @example
|
|
490
358
|
* // Basic usage
|
|
491
359
|
* const { openDialog, closeDialog, dialogProps } = useDialog();
|
|
@@ -498,38 +366,16 @@ const usePersistedForm = ({ formName = "" }) => {
|
|
|
498
366
|
* // With initial configuration
|
|
499
367
|
* const { dialogProps } = useDialog({ keepMounted: true});
|
|
500
368
|
*
|
|
501
|
-
*
|
|
502
369
|
* @param props - Optional configuration options
|
|
503
370
|
*/
|
|
504
371
|
const useDialog = (props) => {
|
|
505
372
|
const [open, setOpen] = useState(!!(props === null || props === void 0 ? void 0 : props.open));
|
|
506
|
-
const
|
|
507
|
-
const
|
|
508
|
-
setOpen(false);
|
|
509
|
-
// Restore focus after a small delay to ensure the dialog has fully closed
|
|
510
|
-
setTimeout(() => {
|
|
511
|
-
if (previousFocus.current) {
|
|
512
|
-
previousFocus.current.focus();
|
|
513
|
-
}
|
|
514
|
-
}, 100);
|
|
515
|
-
}, []);
|
|
516
|
-
const openDialog = useCallback(() => {
|
|
517
|
-
// Store the current active element before opening dialog
|
|
518
|
-
previousFocus.current = document.activeElement;
|
|
519
|
-
setOpen(true);
|
|
520
|
-
}, []);
|
|
373
|
+
const closeDialog = useCallback(() => setOpen(false), []);
|
|
374
|
+
const openDialog = useCallback(() => setOpen(true), []);
|
|
521
375
|
return {
|
|
522
|
-
closeDialog
|
|
376
|
+
closeDialog,
|
|
523
377
|
openDialog,
|
|
524
|
-
dialogProps: {
|
|
525
|
-
open,
|
|
526
|
-
onClose,
|
|
527
|
-
// Add to ensure that the dialog properly handles focus
|
|
528
|
-
disableRestoreFocus: true,
|
|
529
|
-
disableEnforceFocus: false,
|
|
530
|
-
disableAutoFocus: false,
|
|
531
|
-
...props === null || props === void 0 ? void 0 : props.dialogProps
|
|
532
|
-
}
|
|
378
|
+
dialogProps: { open, onClose: closeDialog, keepMounted: !!(props === null || props === void 0 ? void 0 : props.keepMounted) }
|
|
533
379
|
};
|
|
534
380
|
};
|
|
535
381
|
|
|
@@ -574,10 +420,142 @@ const useDialog = (props) => {
|
|
|
574
420
|
* </PersistForm>
|
|
575
421
|
* </FormDialog>
|
|
576
422
|
*/
|
|
577
|
-
const PersistForm = ({ children, formName })
|
|
578
|
-
|
|
423
|
+
const PersistForm = memo(function ({ children, formName }) {
|
|
424
|
+
const formContext = useFormContext();
|
|
425
|
+
usePersistForm({ formName, formContext });
|
|
579
426
|
return jsx(Fragment$1, { children: children });
|
|
427
|
+
});
|
|
428
|
+
PersistForm.displayName = "PersistForm";
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* A component that combines a Material UI Paper with a form container
|
|
432
|
+
*
|
|
433
|
+
* PaperForm wraps form content in an elevated paper surface, providing
|
|
434
|
+
* visual distinction and a clean container for form elements. It integrates
|
|
435
|
+
* seamlessly with react-hook-form by using FormContainer internally.
|
|
436
|
+
*
|
|
437
|
+
* This component is useful for creating standalone form surfaces outside of dialogs,
|
|
438
|
+
* such as on pages or within cards. It supports all Paper props for styling
|
|
439
|
+
* while handling form state management through FormContainer.
|
|
440
|
+
*
|
|
441
|
+
* @example
|
|
442
|
+
* // Basic usage
|
|
443
|
+
* <PaperForm
|
|
444
|
+
* formProps={{
|
|
445
|
+
* defaultValues: { name: "", email: "" },
|
|
446
|
+
* onSuccess: handleSubmit
|
|
447
|
+
* }}
|
|
448
|
+
* elevation={3}
|
|
449
|
+
* >
|
|
450
|
+
* <TextFieldElement name="name" label="Name" />
|
|
451
|
+
* <TextFieldElement name="email" label="Email" />
|
|
452
|
+
* <Button type="submit">Submit</Button>
|
|
453
|
+
* </PaperForm>
|
|
454
|
+
*
|
|
455
|
+
* @example
|
|
456
|
+
* // With custom styling and validation
|
|
457
|
+
* <PaperForm
|
|
458
|
+
* formProps={{
|
|
459
|
+
* defaultValues: formDefaultValues,
|
|
460
|
+
* onSuccess: handleSubmit,
|
|
461
|
+
* onError: handleError,
|
|
462
|
+
* }}
|
|
463
|
+
* sx={{
|
|
464
|
+
* padding: 3,
|
|
465
|
+
* borderRadius: 2,
|
|
466
|
+
* backgroundColor: 'background.paper',
|
|
467
|
+
* }}
|
|
468
|
+
* elevation={2}
|
|
469
|
+
* >
|
|
470
|
+
* <FormFields />
|
|
471
|
+
* <FormDialogActions submitProps={{ children: "Save Profile" }} />
|
|
472
|
+
* </PaperForm>
|
|
473
|
+
*
|
|
474
|
+
* @template T - The type of form values being handled
|
|
475
|
+
*/
|
|
476
|
+
const PaperForm = ({ children, persistKey = "", formProps, ...paperProps }) => (jsx(Paper, { ...paperProps, children: jsx(FormContainer, { ...formProps, children: jsx(PersistForm, { formName: persistKey, children: children }) }) }));
|
|
477
|
+
|
|
478
|
+
/**
|
|
479
|
+
* Context provider component for form dialog state management
|
|
480
|
+
*
|
|
481
|
+
* FormDialogProvider creates and manages shared state for form dialogs,
|
|
482
|
+
* allowing child components to access dialog state and controls through
|
|
483
|
+
* the useFormDialog hook.
|
|
484
|
+
*
|
|
485
|
+
* This provider handles:
|
|
486
|
+
* - Dialog open/close state
|
|
487
|
+
* - Form-wide disabled state
|
|
488
|
+
* - Dialog close handler passing
|
|
489
|
+
* - Theme consistency via ThemeBridge
|
|
490
|
+
*
|
|
491
|
+
* Use this provider to wrap form components that need to share state
|
|
492
|
+
* and disabled status, such as dialogs with multiple form fields
|
|
493
|
+
* and action buttons that need to be coordinated.
|
|
494
|
+
*
|
|
495
|
+
* @example
|
|
496
|
+
* // Basic usage wrapping a form
|
|
497
|
+
* <FormDialogProvider>
|
|
498
|
+
* <FormContainer onSuccess={handleSubmit}>
|
|
499
|
+
* <TextFieldElement name="name" />
|
|
500
|
+
* <FormDialogActions />
|
|
501
|
+
* </FormContainer>
|
|
502
|
+
* </FormDialogProvider>
|
|
503
|
+
*
|
|
504
|
+
* @example
|
|
505
|
+
* // With pre-configured dialog state
|
|
506
|
+
* <FormDialogProvider open={isOpen} closeDialog={handleClose}>
|
|
507
|
+
* <PaperForm formProps={formProps}>
|
|
508
|
+
* <LoginFormFields />
|
|
509
|
+
* <FormDialogActions submitProps={{ maxAttempts: 3 }} />
|
|
510
|
+
* </PaperForm>
|
|
511
|
+
* </FormDialogProvider>
|
|
512
|
+
*/
|
|
513
|
+
const FormDialogProvider = ({ children, ...value }) => {
|
|
514
|
+
const [disabled, setDisabled] = useState(false);
|
|
515
|
+
return (jsx(ThemeBridge, { children: jsx(FormDialogContext.Provider, { value: { ...value, disabled, setDisabled }, children: children }) }));
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
/**
|
|
519
|
+
* A dialog component specialized for forms with integrated context providers
|
|
520
|
+
*
|
|
521
|
+
* FormDialog combines Material UI dialog functionality with React Hook Form,
|
|
522
|
+
* creating a comprehensive solution for modal forms. It provides context
|
|
523
|
+
* providers for form state management, dialog controls, and accessibility.
|
|
524
|
+
*
|
|
525
|
+
* Key features:
|
|
526
|
+
* - Integrates React Hook Form with Material UI dialogs
|
|
527
|
+
* - Provides form state management through FormProvider
|
|
528
|
+
* - Establishes dialog context through FormDialogProvider
|
|
529
|
+
* - Handles form submission and error states
|
|
530
|
+
* - Supports loading states for form operations
|
|
531
|
+
* - Maintains consistent styling and behavior
|
|
532
|
+
*
|
|
533
|
+
* Child components can access the form and dialog context through hooks:
|
|
534
|
+
* - useFormContext() - Access form methods and state
|
|
535
|
+
* - useFormState() - Access form validation state
|
|
536
|
+
* - useFormDialog() - Access dialog controls and state
|
|
537
|
+
*
|
|
538
|
+
*/
|
|
539
|
+
const FormDialog = function ({ formProps, children, open, onClose, persistKey = "", ...dialogProps }) {
|
|
540
|
+
const PaperComponent = useCallback((props) => jsx(PaperForm, { persistKey: persistKey, formProps: formProps, ...props }), [formProps, persistKey]);
|
|
541
|
+
const baseDialogProps = useMemo(() => merge({
|
|
542
|
+
actionsProps: { sx: { pt: 2.5 } },
|
|
543
|
+
contentProps: {
|
|
544
|
+
sx: {
|
|
545
|
+
display: "flex",
|
|
546
|
+
justifyContent: "center",
|
|
547
|
+
boxSizing: "border-box",
|
|
548
|
+
maxHeight: `calc(100vh - 235px)`, // 235 estimate using H4 title & default FormDialogActions
|
|
549
|
+
},
|
|
550
|
+
},
|
|
551
|
+
}, dialogProps), [dialogProps]);
|
|
552
|
+
return (jsx(FormDialogProvider, { open: open, closeDialog: onClose, children: jsx(BaseDialog, { PaperComponent: PaperComponent, open: open, onClose: onClose, closeButton: jsx(IconButton, { sx: {
|
|
553
|
+
position: "absolute",
|
|
554
|
+
top: 8,
|
|
555
|
+
right: 8,
|
|
556
|
+
}, onClick: (e) => onClose === null || onClose === void 0 ? void 0 : onClose(e, 'escapeKeyDown'), children: jsx(Close, { fontSize: "small", "aria-label": "close-form-dialog" }) }), ...baseDialogProps, children: children }) }));
|
|
580
557
|
};
|
|
558
|
+
FormDialog.displayName = "FormDialog";
|
|
581
559
|
|
|
582
560
|
/**
|
|
583
561
|
* A cancel button component that integrates with FormDialogContext.
|
|
@@ -660,7 +638,7 @@ const LoadingButton = ({ children, loading = false, altIcon, ...props }) => {
|
|
|
660
638
|
};
|
|
661
639
|
|
|
662
640
|
/**
|
|
663
|
-
* A submit button for forms with loading state, attempt tracking and form context awareness
|
|
641
|
+
* A "submit button" for forms with loading state, attempt tracking and form context awareness
|
|
664
642
|
*
|
|
665
643
|
* This component extends the LoadingButton with form-specific features:
|
|
666
644
|
* - Automatically displays loading state during form submission
|
|
@@ -692,7 +670,7 @@ const LoadingButton = ({ children, loading = false, altIcon, ...props }) => {
|
|
|
692
670
|
* </FormSubmitButton>
|
|
693
671
|
*/
|
|
694
672
|
const FormSubmitButton = memo(function ({ showAttempts, maxAttempts, children = "Save", ...props }) {
|
|
695
|
-
const
|
|
673
|
+
const formState = useFormState();
|
|
696
674
|
const { disabled: disabledForm } = useFormDialog();
|
|
697
675
|
const disabled = formState.isSubmitting || formState.isLoading || props.disabled || disabledForm;
|
|
698
676
|
const hasMaxAttempts = maxAttempts && isFinite(maxAttempts);
|
|
@@ -883,5 +861,5 @@ const AutoGrid = ({ components, columnCount = 1, ...props }) => (jsx(Grid, { con
|
|
|
883
861
|
xs: 12 / columnCount,
|
|
884
862
|
}, children: child }, child.key))) }));
|
|
885
863
|
|
|
886
|
-
export { AutoGrid, BaseDialog, BlackoutDialog, FormCancelButton, FormDialog, FormDialogActions, FormDialogProvider, FormResetButton, FormSubmitButton, GridSpacer, LoadingButton, PaperForm, PersistForm, useDialog, useFormDialog,
|
|
864
|
+
export { AutoGrid, BaseDialog, BlackoutDialog, FormCancelButton, FormDialog, FormDialogActions, FormDialogProvider, FormResetButton, FormSubmitButton, GridSpacer, LoadingButton, PaperForm, PersistForm, useDialog, useFormDialog, usePersistForm };
|
|
887
865
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/components/dialogs/BlackoutDialog.tsx","../src/components/dialogs/BaseDialog.tsx","../src/components/forms/PaperForm.tsx","../src/state/FormDialogContext.ts","../src/utils/ThemeBridge.tsx","../src/state/FormDialogProvider.tsx","../src/components/dialogs/FormDialog.tsx","../src/hooks/useFormDialog.ts","../src/utils/hasMaxAttempts.ts","../src/utils/deepCompare.ts","../src/utils/applyDefaultFormDialogProps.tsx","../src/hooks/useMaxAttempts.ts","../src/state/createFormChangeStore.ts","../src/hooks/useOnMount.ts","../src/hooks/usePersistedForm.tsx","../src/hooks/useDialog.ts","../src/components/forms/PersistForm.tsx","../src/components/buttons/FormCancelButton.tsx","../src/components/buttons/LoadingButton.tsx","../src/components/buttons/FormSubmitButton.tsx","../src/components/buttons/FormResetButton.tsx","../src/components/GridSpacer.tsx","../src/components/dialogs/FormDialogActions.tsx","../src/components/AutoGrid.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_jsx","_jsxs","useMuiTheme","CloseIcon","RefreshIcon","_Fragment","SaveIcon","useTheme","useFormContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/components/dialogs/BlackoutDialog.tsx","../src/components/dialogs/BaseDialog.tsx","../src/state/FormDialogContext.ts","../src/hooks/useFormDialog.ts","../src/utils/hasMaxAttempts.ts","../src/utils/deepCompare.ts","../src/utils/applyDefaultFormDialogProps.tsx","../src/utils/ThemeBridge.tsx","../src/hooks/useMaxAttempts.ts","../src/state/createFormChangeStore.ts","../src/hooks/useOnMount.ts","../src/hooks/usePersistForm.ts","../src/hooks/useDialog.ts","../src/components/forms/PersistForm.tsx","../src/components/forms/PaperForm.tsx","../src/state/FormDialogProvider.tsx","../src/components/dialogs/FormDialog.tsx","../src/components/buttons/FormCancelButton.tsx","../src/components/buttons/LoadingButton.tsx","../src/components/buttons/FormSubmitButton.tsx","../src/components/buttons/FormResetButton.tsx","../src/components/GridSpacer.tsx","../src/components/dialogs/FormDialogActions.tsx","../src/components/AutoGrid.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["_jsx","_jsxs","RefreshIcon","CloseIcon","_Fragment","SaveIcon","useMuiTheme","useTheme"],"mappings":";;;;;;;;;;AAwBA;;AAEG;AACU,MAAA,cAAc,GAA4B,CAAC,EACtD,IAAI,GAAG,KAAK,EACZ,QAAQ,GAAG,KAAK,EAChB,EAAE,GAAG,iBAAiB,EACtB,QAAQ,EACR,EAAE,EACF,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,OAAO,GAAG,QAAQ,GAAG,EAAE,GAAG,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE;AAEnE;;;;;;;;;;;;;;AAcG;IACH,QACEA,GAAC,CAAA,MAAM,EAAC,EAAA,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAM,GAAA,KAAK,EAAE,EAAE,EAAE,OAAO,EAC5E,QAAA,EAAA,QAAQ,EACF,CAAA;AAEb;;ACbA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;MACU,UAAU,GAAwB,CAAC,EAC9C,KAAK,GAAG,IAAI,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,GAAG,IAAI,EACf,YAAY,EACZ,EAAE,EACF,OAAO,GAAG,IAAI,EACd,YAAY,EACZ,EAAE,EACF,GAAG,KAAK,EACT,MACCC,KAAC,cAAc,EAAA,EACb,EAAE,EAAE,EAAE,EACN,EAAE,EAAE;AACF,QAAA,wBAAwB,EAAE;AACxB,YAAA,kBAAkB,EAAE;AAClB,gBAAA,QAAQ,EAAE,aAAa;AACvB,gBAAA,EAAE,EAAE,CAAC;AACN,aAAA;AACF,SAAA;AACD,QAAA,GAAG,EAAE;AACN,KAAA,EAAA,GACG,KAAK,EAAA,QAAA,EAAA,CAER,KAAK,IAAID,IAAC,WAAW,EAAA,EAAA,GAAK,UAAU,EAAA,QAAA,EAAG,KAAK,EAAe,CAAA,EAAA,GAAA,EAAG,WAAW,EACzE,QAAQ,IAAIA,GAAA,CAAC,aAAa,EAAA,EAAA,GAAK,YAAY,EAAG,QAAA,EAAA,QAAQ,EAAiB,CAAA,EACvE,OAAO,IAAIA,GAAA,CAAC,aAAa,EAAA,EAAA,GAAK,YAAY,EAAG,QAAA,EAAA,OAAO,EAAiB,CAAA,CAAA,EAAA,CACvD;;AC5FZ,MAAM,iBAAiB,GAAG,aAAa,CAAoC,SAAS,CAAC;AAE5F,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;;ACbnD;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACI,MAAM,aAAa,GAAG,MAAK;AAChC,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;;AAE3E,IAAA,OAAO,OAAO;AAChB;;ACrCA,MAAM,cAAc,GAAG,CAAC,WAAoB,KAA2B;IACrE,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;AAC/C,CAAC;AAED,cAAc,CAAC,WAAW,GAAG,gBAAgB;;ACH7C;;;;;;;;;;AAUG;AACH,MAAM,WAAW,GAAG,CAAI,CAAI,EAAE,CAAI,EAAE,UAAU,GAAG,KAAK,KAAc;IAChE,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAa,EAAE,IAAa,KAAI;QACtD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAEvD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClC;;;;;AAKG;YACH,OAAO,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;;QAE3E,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI;AAE7D,QAAA,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9B,KAAC,CAAC;AACN,CAAC;AAED,WAAW,CAAC,WAAW,GAAG,aAAa;;AClBvB,SAAA,2BAA2B,CACzC,EAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,GAAG,UAAU,EAAmC,EAAA;;AAGzG,IAAA,MAAM,WAAW,GAAG,CAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,MAAA,GAAA,MAAA,GAAA,WAAW,CAAE,WAAW,KAAI,QAAQ;IACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC;;AAG/D,IAAA,MAAM,kBAAkB,GAAG;AACzB,QAAA,cAAc,EAAE,eAAe;AAC/B,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,EAAE,EAAE,CAAC;AACL,QAAA,EAAE,EAAE,GAAG;AACP,QAAA,SAAS,EAAE,CAAC;AACZ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,GAAG,SAAS;KACb;;IAGD,IAAI,aAAa,GAA0B,SAAS;IACpD,IAAI,OAAO,IAAI,MAAM;AAAE,QAAA,aAAa,GAAGA,GAAA,CAACE,OAAW,EAAA,EAAA,CAAE;IACrD,IAAI,OAAO,IAAI,UAAU;QACvB,aAAa,IACXD,IAAC,CAAA,QAAQ,eACPD,GAAC,CAAAE,OAAW,IAAC,EAAE,EAAE,EAAC,EAAE,EAAE,CAAC,EAAC,EAAA,CAAG,eADf,iBAAiB,CAEpB,CACZ;AACH,IAAA,MAAM,gBAAgB,GAAG;AACvB,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,IAAI,aAAa,GAAG,EAAC,QAAQ,EAAE,aAAa,EAAC,GAAG,EAAE,CAAC;AACnD,QAAA,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;KAChC;;IAGD,IAAI,cAAc,GAA0B,SAAS;IACrD,IAAI,OAAO,IAAI,MAAM;AAAE,QAAA,cAAc,GAAGF,GAAA,CAACG,KAAS,EAAA,EAAA,CAAE;IACpD,IAAI,OAAO,IAAI,UAAU;QACvB,cAAc,IACZF,IAAC,CAAA,QAAQ,eACPD,GAAC,CAAAG,KAAS,IAAC,EAAE,EAAE,EAAC,EAAE,EAAE,CAAC,EAAC,EAAA,CAAG,gBADb,gBAAgB,CAEnB,CACZ;AACH,IAAA,MAAM,iBAAiB,GAAG;AACxB,QAAA,IAAI,cAAc,GAAG,EAAC,QAAQ,EAAE,cAAc,EAAC,GAAG,EAAE,CAAC;AACrD,QAAA,GAAG,WAAW;KACf;;IAGD,IAAI,cAAc,GAAmC,EAAE;IACvD,IAAI,OAAO,IAAI,MAAM;AACnB,QAAA,cAAc,GAAG,EAAC,QAAQ,EAAEH,GAAK,CAAAI,UAAA,EAAA,EAAA,CAAA,EAAE,OAAO,EAAEJ,GAAC,CAAAK,IAAQ,EAAE,EAAA,CAAA,EAAC;IAC1D,IAAI,OAAO,IAAI,UAAU;AACvB,QAAA,cAAc,GAAG,EAAC,OAAO,EAAEL,GAAA,CAACK,IAAQ,EAAC,EAAA,EAAE,EAAE,EAAC,EAAE,EAAE,CAAC,EAAC,EAAA,CAAG,EAAC;AACtD,IAAA,MAAM,iBAAiB,GAAG;AACxB,QAAA,GAAG,cAAc;AACjB,QAAA,GAAG,WAAW;KACf;IAED,OAAO,EAAC,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAC;AACrF;;ACrEA;AACA,MAAM,kBAAkB,GAAG,aAAa,CAAM,IAAI,CAAC;AAM5C,MAAM,WAAW,GAA+B,CAAC,EAAE,QAAQ,EAAE,KAAI;AACpE,IAAA,MAAM,WAAW,GAAGC,QAAW,EAAE;IACjC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;;IAG/D,SAAS,CAAC,MAAK;QACX,gBAAgB,CAAC,WAAW,CAAC;AACjC,KAAC,EAAE,CAAC,WAAW,CAAC,CAAC;;AAGjB,IAAA,QACIN,GAAA,CAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,aAAa,EAAA,QAAA,EAC5C,QAAQ,EAAA,CACiB;AAEtC,CAAC;;AChBM,MAAM,cAAc,GAAG,CAAC,EAAE,WAAW,EAAsB,KAAI;IACpE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE;IAClD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE;AACjD,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;;IAG5B,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,cAAc,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,WAAW,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,OAAO,EAAG;YAC3F,WAAW,CAAC,IAAI,CAAC;AACjB,YAAA,MAAM,CAAC,OAAO,GAAG,IAAI;;KAExB,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;;IAGrD,SAAS,CAAC,MAAK;QACb,IAAI,QAAQ,EAAE;YACZ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;gBACxE,UAAU,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACtC,aAAC,CAAC;;KAEL,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;;AC/BD;AAWA,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAK;AACrC,IAAA,IAAI;AACF,QAAA,OAAO,cAAc;;IACrB,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,YAAY;;AAEvB,CAAC,CAAC;AAEF;;;;;AAKG;AACI,MAAM,qBAAqB,GAAG,CAAC,SAAiB,KACrD,MAAM,EAA0B,CAC9B,OAAO,CACL,CAAC,GAAG,MAAM;AACR,IAAA,QAAQ,EAAE,EAAE;AACZ,IAAA,cAAc,EAAE,CAAC,GAAG,EAAE,KAAK,KAAI;AAC7B,QAAA,OAAO,GAAG,CAAC,CAAC,KAAK,MAAM;AACrB,YAAA,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE;AAC9C,SAAA,CAAC,CAAC;KACJ;AACD,IAAA,aAAa,EAAE,CAAC,GAAG,KAAI;AACrB,QAAA,OAAO,GAAG,CAAC,CAAC,KAAK,KAAI;YACnB,IAAI,GAAG,EAAE;;AAEP,gBAAA,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC,QAAQ;AACjD,gBAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE;;AAEhC,YAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;AACzB,SAAC,CAAC;KACH;AACF,CAAA,CAAC,EACF;AACE,IAAA,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,SAAS;AAChB,CAAA,CACF,CACF;;ACnDH;AAGA;;;;AAIG;AACG,SAAU,UAAU,CAAC,QAAoB,EAAA;AAC7C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;IAEhC,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACvB,YAAA,QAAQ,EAAE;AACV,YAAA,UAAU,CAAC,OAAO,GAAG,IAAI;;;AAI3B,QAAA,OAAO,MAAK;AACV,YAAA,UAAU,CAAC,OAAO,GAAG,IAAI;AAC3B,SAAC;;KAGF,EAAE,EAAE,CAAC;AACR;;ACxBA;AAwBA;;;;;;;;;;;;;;AAcG;AACI,MAAM,cAAc,GAAG,CAAwB,EACpD,QAAQ,GAAG,EAAE,EACb,WAAW,EACmB,KAAI;;AAGlC,IAAA,MAAM,EAAC,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,EAAE;AACnF,IAAA,MAAM,EAAC,QAAQ,EAAC,GAAG,aAAa,EAAE;IAElC,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,KAAI;AAC/C,QAAA,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC;KAC5B,EAAE,GAAG,CAAC;IAEP,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW;YAAE;AAE/B,QAAA,MAAM,EAAC,KAAK,EAAE,SAAS,EAAC,GAAG,WAAW;QAEtC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,SAAS,EAAE,EAAC,IAAI,EAAC,KAAI;YAC/C,IAAI,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;AACzD,gBAAA,aAAa,EAAE;;iBACV,IAAI,IAAI,EAAE;AACf,gBAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;AAChC,gBAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;;AAGnC,gBAAA,IAAI,YAAY,KAAK,QAAQ,EAAE;AAC7B,oBAAA,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC;;;AAGrC,SAAC,CAAC;AAEF,QAAA,OAAO,MAAK;YACV,YAAY,CAAC,WAAW,EAAE;YAC1B,eAAe,CAAC,MAAM,EAAE;AAC1B,SAAC;;AAEH,KAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAElC,UAAU,CAAC,MAAK;QACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAC,WAAW,aAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,SAAS,CAAC,SAAS,CAAA,IAAI,QAAQ,EAAE;YAEpF,UAAU,CAAC,MAAK;AACd,gBAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;oBAChD,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,MAAA,GAAA,MAAA,GAAA,WAAW,CAAE,QAAQ,CAAC,GAAc,EAAE,KAAK,EAAE,EAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;AACtF,iBAAC,CAAC;aACH,EAAE,GAAG,CAAC;;AAEX,KAAC,CAAC;AACJ;;ACjEA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACU,MAAA,SAAS,GAAG,CAAC,KAAsB,KAAqB;IACnE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,MAAA,GAAA,MAAA,GAAA,KAAK,CAAE,IAAI,CAAA,CAAC;AAE/C,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AACzD,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IAEvD,OAAO;QACL,WAAW;QACX,UAAU;QACV,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAC,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAA;KAC7E;AACH;;AC1CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;AACU,MAAA,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAoB,EAAA;AAChF,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;AACpC,IAAA,cAAc,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACzC,OAAOA,GAAA,CAAAI,UAAA,EAAA,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAI;AACxB,CAAC;AAED,WAAW,CAAC,WAAW,GAAG,aAAa;;ACnCvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CG;AACU,MAAA,SAAS,GAAG,CAAwB,EAAE,QAAQ,EAAE,UAAU,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,UAAU,EAAqB,MACzHJ,IAAC,KAAK,EAAA,EAAA,GAAK,UAAU,EACnB,QAAA,EAAAA,GAAA,CAAC,aAAa,EAAK,EAAA,GAAA,SAAS,YAC1BA,GAAC,CAAA,WAAW,IAAC,QAAQ,EAAE,UAAU,EAC9B,QAAA,EAAA,QAAQ,GACG,EACA,CAAA,EAAA,CACV;;AClEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;AACI,MAAM,kBAAkB,GAAgC,CAAC,EAAC,QAAQ,EAAE,GAAG,KAAK,EAAC,KAAI;IACtF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE/C,QACEA,GAAC,CAAA,WAAW,EACV,EAAA,QAAA,EAAAA,GAAA,CAAC,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,EAAC,GAAG,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAC,YACjE,QAAQ,EAAA,CACkB,EACjB,CAAA;AAElB;;AC5CA;;;;;;;;;;;;;;;;;;;;AAoBG;MACU,UAAU,GAAG,UAAiC,EACvD,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,UAAU,GAAG,EAAE,EACf,GAAG,WAAW,EACK,EAAA;AACrB,IAAA,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,KAAiB,KAAKA,GAAA,CAAC,SAAS,EAAA,EAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAA,GAAM,KAAK,EAAA,CAAI,EAC7F,CAAC,SAAS,EAAE,UAAU,CAAC,CACxB;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,KAAK,CACzC;QACE,YAAY,EAAE,EAAC,EAAE,EAAE,EAAC,EAAE,EAAE,GAAG,EAAC,EAAC;AAC7B,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE;AACF,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,SAAS,EAAE,YAAY;gBACvB,SAAS,EAAE,CAAqB,mBAAA,CAAA;AACjC,aAAA;AACF,SAAA;AACF,KAAA,EACD,WAAW,CACZ,EAAE,CAAC,WAAW,CAAC,CAAC;AAEjB,IAAA,QACEA,GAAA,CAAC,kBAAkB,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAClD,QAAA,EAAAA,GAAA,CAAC,UAAU,EACT,EAAA,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,WAAW,EACTA,GAAA,CAAC,UAAU,EAAA,EACT,EAAE,EAAE;AACF,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,KAAK,EAAE,CAAC;AACT,iBAAA,EACD,OAAO,EAAE,CAAC,CAAC,KAAK,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAG,CAAC,EAAE,eAAe,CAAC,EAE7C,QAAA,EAAAA,GAAA,CAACG,KAAS,EAAC,EAAA,QAAQ,EAAC,OAAO,gBAAY,mBAAmB,EAAA,CAAE,EACjD,CAAA,EAAA,GAEX,eAAe,EAElB,QAAA,EAAA,QAAQ,EACE,CAAA,EAAA,CACM;AAEzB;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;AChFrC;;;;;;;;;;;;;;;AAeG;AACU,MAAA,gBAAgB,GAAG,IAAI,CAAC,UAAU,KAA6B,EAAA;AACxE,IAAA,MAAM,EAAC,WAAW,EAAC,GAAG,aAAa,EAAE;AAErC,IAAA,MAAM,WAAW,GAAgB;AAC7B,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,OAAO;QACd,GAAG,IAAI,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,MAAA,GAAA,KAAK,GAAI,EAAE,EAAE,WAAW;KACnC;IACD,OAAOH,GAAA,CAAC,MAAM,EAAK,EAAA,GAAA,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAG,CAAC,EAAE,eAAe,CAAC,EAAA,CAAG;AACxF,CAAC;AAED,gBAAgB,CAAC,WAAW,GAAG,kBAAkB;;AClBjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCG;AACU,MAAA,aAAa,GAAG,CAAC,EAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAqB,KAAI;AAClG,IAAA,MAAM,KAAK,GAAGO,UAAQ,EAAE;IACxB,QACEN,KAAC,MAAM,EAAA,EAAA,GAAK,KAAK,EACd,QAAA,EAAA,CAAA,CAAC,OAAO,GAAG,OAAO,IACjBD,IAAC,GAAG,EAAA,EACF,EAAE,EAAE;AACF,oBAAA,OAAO,EAAE,MAAM;AACf,oBAAA,UAAU,EAAE,QAAQ;AACpB,oBAAA,cAAc,EAAE,QAAQ;AACxB,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,EAAE,EAAE,CAAC;iBACN,EACD,QAAA,EAAAA,GAAA,CAAC,gBAAgB,EAAC,EAAA,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAG,CAAA,EAAA,CAChE,CACP,EACA,QAAQ,CACF,EAAA,CAAA;AAEb;;ACzDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACU,MAAA,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAC7C,YAAY,EACZ,WAAW,EACX,QAAQ,GAAG,MAAM,EACjB,GAAG,KAAK,EACc,EAAA;AACtB,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;IAChC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE;AAClD,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY;IAChG,MAAM,cAAc,GAAG,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;AAE3D,IAAA,QACEA,GAAC,CAAA,aAAa,EACZ,EAAA,OAAO,EAAE,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,SAAS,EACtD,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,QAAQ,EAAA,GACd,KAAK,EAGP,QAAA,EAAAA,GAAA,CAAC,KAAK,EACJ,EAAA,YAAY,EAAE,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC,EACrF,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,EACrC,SAAS,EAAE,CAAC,cAAc,IAAI,CAAC,YAAY,EAAA,QAAA,EAE1C,QAAQ,EACH,CAAA,EAAA,CAEI;AAEpB,CAAC;AAED,gBAAgB,CAAC,WAAW,GAAG,kBAAkB;;AC/DjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACU,MAAA,eAAe,GAAG,IAAI,CAAC,UAAU,KAA4B,EAAA;;AACxE,IAAA,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,MAAA,GAAA,MAAA,GAAA,KAAK,CAAE,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE;IACpC,MAAM,EAAE,aAAa,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE;AAC1D,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,EAAE;IAClC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE;IAC3D,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE;AAElD,IAAA,MAAM,eAAe,GAAG,CAAC,EAAC,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,MAAA,GAAA,MAAA,GAAA,KAAK,CAAE,SAAS,CAAA;AAE1C,IAAA,MAAM,aAAa,GAAG,WAAW,CAAC,MAAK;QACrC,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AACvE,QAAA,IAAI,OAAO;AAAE,YAAA,aAAa,EAAE;KAC7B,EAAE,CAAC,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAEpD,IAAA,MAAM,MAAM,GAAG,YAAY,IAAI,SAAS;AACxC,IAAA,MAAM,UAAU,GAAG,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,MAAA,GAAA,MAAA,GAAA,KAAK,CAAE,QAAQ,KAAI,YAAY;AAClD,IAAA,MAAM,OAAO,GAAG,CAAC,OAAO;AAExB,IAAA,MAAM,WAAW,GAAgB;AAC/B,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,IAAI,EAAE,OAAO;QACb,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;KACrD;AAED,IAAA,QACEA,GAAC,CAAA,MAAM,OAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,UAAU,IAAI,OAAO,EAAE,OAAO,EAAE,aAAa,EAAA,CAAI;AAElG,CAAC;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;;ACrF/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;MACU,UAAU,GAAO,MAAMA,GAAC,CAAA,IAAI,EAAC,EAAA,IAAI,EAAC,OAAO,EAAC,EAAE,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAA;;ACYjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG;AACU,MAAA,iBAAiB,GAA+B,CAAC,EAC5D,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,kBAAkB,GAAG,KAAK,EAC1B,iBAAiB,GAAG,KAAK,EACzB,SAAS,EACV,KAAI;;AAEH,IAAA,cAAc,CAAC,EAAE,WAAW,EAAE,CAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,MAAA,GAAA,MAAA,GAAA,WAAW,CAAE,WAAW,KAAI,QAAQ,EAAE,CAAC;;IAGrE,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GAChF,2BAA2B,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAE7F,QACEC,IAAC,CAAA,IAAI,EAAC,EAAA,SAAS,WAAK,kBAAkB,EAAA,QAAA,EAAA,CACjC,CAAC,kBAAkB,IAAID,GAAA,CAAC,IAAI,EACzB,EAAA,QAAA,EAAAA,GAAA,CAAC,gBAAgB,EAAA,EAAA,GAAK,iBAAiB,EAAA,CAAI,EACxC,CAAA,EACN,CAAC,iBAAiB,IAAIA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EACxBA,IAAC,eAAe,EAAA,EAAA,GAAK,gBAAgB,EAAA,CAAI,EACtC,CAAA,EACR,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAR,QAAQ,GAAIA,GAAC,CAAA,UAAU,KAAG,EAC3BA,GAAA,CAAC,IAAI,EAAA,EAAA,QAAA,EACHA,GAAC,CAAA,gBAAgB,EAAK,EAAA,GAAA,iBAAiB,EAAI,CAAA,EAAA,CACtC,CACF,EAAA,CAAA;AAEX;;ACvGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;MACU,QAAQ,GAAsB,CAAC,EAAE,UAAU,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,MACnFA,IAAC,IAAI,EAAA,EAAC,SAAS,EAAK,IAAA,EAAA,GAAA,KAAK,YACtB,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,MACtCA,GAAC,CAAA,IAAI,EAEH,EAAA,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE,GAAG,WAAW;SACrB,EAEA,QAAA,EAAA,KAAK,EALA,EAAA,KAAsB,CAAC,GAAG,CAM3B,CACR,CAAC,EACG,CAAA;;;;"}
|