react-crud-mui 0.2.40 → 0.2.41
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/dist/components/detail-page/components/DetailPageCommands.d.ts +32 -66
- package/dist/components/detail-page/components/DetailPageDrawerCommands.d.ts +2 -2
- package/dist/components/detail-page/components/DetailPageProvider.d.ts +10 -0
- package/dist/components/detail-page/components/DetailPageStepForm.d.ts +13 -0
- package/dist/components/detail-page/components/DetailPageStepsHeader.d.ts +21 -0
- package/dist/components/detail-page/hooks/useDetailPage.d.ts +1 -7
- package/dist/components/detail-page/hooks/useDetailPageModal.d.ts +6 -5
- package/dist/components/detail-page/hooks/useDetailPageStates.d.ts +21 -8
- package/dist/components/detail-page/pages/DetailPage.d.ts +4 -2
- package/dist/components/detail-page/pages/DetailPageContent.d.ts +26 -7
- package/dist/components/detail-page/pages/DetailPageData.d.ts +0 -1
- package/dist/components/detail-page/pages/DetailPageForm.d.ts +2 -2
- package/dist/components/form/components/FormCollectionProvider.d.ts +15 -0
- package/dist/components/form/hooks/index.d.ts +1 -0
- package/dist/components/form/hooks/useForm.d.ts +1 -1
- package/dist/components/form/hooks/useFormCollectionContext.d.ts +3 -0
- package/dist/components/form/hooks/useRegisterForm.d.ts +8 -0
- package/dist/components/page/Page.d.ts +1 -1
- package/dist/coreui.js +8529 -8473
- package/dist/index.d.ts +2 -2
- package/package.json +1 -1
- package/dist/components/detail-page/components/DetailPageStepCommands.d.ts +0 -38
- package/dist/components/detail-page/components/DetailPageSteps.d.ts +0 -20
|
@@ -1,36 +1,27 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { CloseReason, CommandsPosition } from '../../page/Page';
|
|
1
|
+
import { PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
import { UseFormReturn } from '../../form/hooks/useForm';
|
|
3
|
+
import { CloseReason } from '../../page/Page';
|
|
4
|
+
import { DetailPageCommandsFlag } from '../hooks/useDetailPageStates';
|
|
6
5
|
import { SaveMode } from '../pages/DetailPageData';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
export interface DetailPageCommandsOptions {
|
|
27
|
-
visible: DetailPageCommandsFlag;
|
|
28
|
-
disabled: DetailPageCommandsFlag;
|
|
29
|
-
loading?: boolean;
|
|
30
|
-
isNew: boolean;
|
|
31
|
-
isDisabled?: boolean;
|
|
32
|
-
}
|
|
33
|
-
export type DetailPageCommandsState = {
|
|
6
|
+
import { StepPane } from './DetailPageStepsHeader';
|
|
7
|
+
export type DetailPageStandartCommandsOptions = {
|
|
8
|
+
saveCommandMode?: SaveMode;
|
|
9
|
+
createCommandLabel?: ReactNode;
|
|
10
|
+
saveCommandLabel?: ReactNode;
|
|
11
|
+
};
|
|
12
|
+
export type DetailPageStepCommandsOptions = {
|
|
13
|
+
nextButtonTitle?: React.ReactNode;
|
|
14
|
+
prevButtonTitle?: React.ReactNode;
|
|
15
|
+
showNextButton?: boolean;
|
|
16
|
+
showPrevButton?: boolean;
|
|
17
|
+
currentKey: React.Key;
|
|
18
|
+
name: string;
|
|
19
|
+
activeStepIndex: number;
|
|
20
|
+
steps: StepPane[];
|
|
21
|
+
currentForm?: UseFormReturn;
|
|
22
|
+
};
|
|
23
|
+
export type DetailPageCommandsOptions = DetailPageStandartCommandsOptions & DetailPageStepCommandsOptions;
|
|
24
|
+
export type DetailPageStandartCommandsEvents = {
|
|
34
25
|
onSave?: () => void;
|
|
35
26
|
onSaveCreate?: () => void;
|
|
36
27
|
onCreate?: () => void;
|
|
@@ -39,40 +30,15 @@ export type DetailPageCommandsState = {
|
|
|
39
30
|
onDelete?: () => void;
|
|
40
31
|
onClose?: (reason?: CloseReason) => void;
|
|
41
32
|
onSaveClose?: () => void;
|
|
42
|
-
saveCommandMode?: SaveMode;
|
|
43
|
-
createCommandLabel?: ReactNode;
|
|
44
|
-
commandsPosition?: CommandsPosition;
|
|
45
|
-
};
|
|
46
|
-
export type DetailPageCommandsLayoutContents = {
|
|
47
|
-
save: ReactNode;
|
|
48
|
-
create: ReactNode;
|
|
49
|
-
discardChanges: ReactNode;
|
|
50
|
-
delete: ReactNode;
|
|
51
|
-
close: ReactNode;
|
|
52
|
-
content: ReactNode;
|
|
53
|
-
renderMoreCommand: (items: MoreButtonItem[]) => ReactNode;
|
|
54
|
-
extra?: ReactNode;
|
|
55
33
|
};
|
|
56
|
-
export type
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
props: DetailPageCommandsState & DetailPageCommandsOptions;
|
|
60
|
-
data?: TModel;
|
|
34
|
+
export type DetailPageStepCommandsEvents = {
|
|
35
|
+
onNextClick?: () => void;
|
|
36
|
+
onPrevClick?: () => void;
|
|
61
37
|
};
|
|
62
|
-
export
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
export declare enum DetailPageCommandNames {
|
|
69
|
-
SAVE = "save",
|
|
70
|
-
CREATE = "create",
|
|
71
|
-
COPY = "copy",
|
|
72
|
-
DISCARD = "discard",
|
|
73
|
-
DELETE = "delete",
|
|
74
|
-
CLOSE = "close",
|
|
75
|
-
NAVIGATE = "navigate"
|
|
76
|
-
}
|
|
77
|
-
declare function DetailPageCommands<TModel extends FieldValues = FieldValues>(props: DetailPageCommandsProps<TModel>): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export type DetailPageCommandsProps = DetailPageStandartCommandsEvents & DetailPageStepCommandsEvents & {
|
|
39
|
+
options: DetailPageCommandsOptions;
|
|
40
|
+
mode: 'standard' | 'steps';
|
|
41
|
+
moreCommands?: Partial<Record<keyof DetailPageCommandsFlag, true>>;
|
|
42
|
+
} & PropsWithChildren;
|
|
43
|
+
declare function DetailPageCommands(props: DetailPageCommandsProps): import("react/jsx-runtime").JSX.Element;
|
|
78
44
|
export default DetailPageCommands;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare function DetailPageDrawerCommands(
|
|
1
|
+
import { DetailPageCommandsProps } from './DetailPageCommands';
|
|
2
|
+
declare function DetailPageDrawerCommands(props: DetailPageCommandsProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default DetailPageDrawerCommands;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React, PropsWithChildren } from 'react';
|
|
2
|
+
import { FieldValues } from 'react-hook-form';
|
|
3
|
+
import { DetailPageContentProps } from '../pages/DetailPageContent';
|
|
4
|
+
export type DetailPageContextType<TModel extends FieldValues = FieldValues> = Pick<DetailPageContentProps<TModel>, 'loading' | 'enableClose' | 'enableCopy' | 'enableCreate' | 'enableDelete' | 'enableDiscardChanges' | 'enableSave' | 'reason' | 'disabled' | 'data' | 'activeSegmentIndex'> & {
|
|
5
|
+
onSave: () => void;
|
|
6
|
+
setActiveSegmentIndex: (index: number) => void;
|
|
7
|
+
};
|
|
8
|
+
export declare const DetailPageContext: React.Context<DetailPageContextType<FieldValues> | null>;
|
|
9
|
+
declare function DetailPageProvider({ children, data, reason, loading, enableCopy, enableCreate, enableClose, enableDiscardChanges, enableDelete, onSave, enableSave, disabled, activeSegmentIndex, setActiveSegmentIndex, }: PropsWithChildren & DetailPageContextType): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default DetailPageProvider;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
import { DefaultValues, FieldValues, Path } from 'react-hook-form';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
interface DetailPageStepContentProps<TModel extends FieldValues> {
|
|
5
|
+
schema?: z.ZodType<TModel>;
|
|
6
|
+
defaultValues?: DefaultValues<TModel>;
|
|
7
|
+
name: Path<TModel>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* This component is used to create a form for each step in the detail page.
|
|
11
|
+
*/
|
|
12
|
+
declare function DetailPageStepForm<TModel extends FieldValues>({ schema, name, children, defaultValues, }: DetailPageStepContentProps<TModel> & PropsWithChildren): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default DetailPageStepForm;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
|
+
import { DefaultValues, FieldValues, Path, PathValue } from 'react-hook-form';
|
|
3
|
+
import { StepProps } from '@mui/material/Step';
|
|
4
|
+
import { StepLabelProps } from '@mui/material/StepLabel';
|
|
5
|
+
import { StepperProps } from '@mui/material/Stepper';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
export interface DetailPageStepsHeaderProps<TModel extends FieldValues = FieldValues> extends Omit<StepperProps, 'onChange'> {
|
|
8
|
+
items: StepPane<TModel>[];
|
|
9
|
+
status?: StepStatus;
|
|
10
|
+
}
|
|
11
|
+
export type StepPane<TModel extends FieldValues = FieldValues, TFieldStepName extends Path<TModel> = Path<TModel>> = Omit<StepProps & StepLabelProps, 'children' | 'key'> & {
|
|
12
|
+
name?: TFieldStepName;
|
|
13
|
+
key: React.Key;
|
|
14
|
+
schema?: z.ZodType<PathValue<TModel, TFieldStepName>>;
|
|
15
|
+
defaultValues?: DefaultValues<PathValue<TModel, TFieldStepName>>;
|
|
16
|
+
label: ReactNode;
|
|
17
|
+
children: ReactNode;
|
|
18
|
+
};
|
|
19
|
+
export type StepStatus = 'wait' | 'process' | 'finish' | 'error';
|
|
20
|
+
declare function DetailPageStepsHeader<TModel extends FieldValues = FieldValues>({ activeStep, items, ...stepperProps }: DetailPageStepsHeaderProps<TModel>): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export default DetailPageStepsHeader;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
1
|
import { FieldValues } from 'react-hook-form';
|
|
3
|
-
import {
|
|
4
|
-
export type DetailPageContextType<TModel extends FieldValues = FieldValues> = Pick<DetailPageContentProps<TModel>, 'loading' | 'enableClose' | 'enableCopy' | 'enableCreate' | 'enableDelete' | 'enableDiscardChanges' | 'enableSave' | 'reason' | 'disabled' | 'data' | 'activeSegmentIndex'> & {
|
|
5
|
-
onSave: () => void;
|
|
6
|
-
setActiveSegmentIndex: (index: number) => void;
|
|
7
|
-
};
|
|
8
|
-
export declare const DetailPageContext: React.Context<DetailPageContextType<FieldValues> | null>;
|
|
2
|
+
import { DetailPageContextType } from '../components/DetailPageProvider';
|
|
9
3
|
declare const useDetailPage: <TModel extends FieldValues = FieldValues>() => DetailPageContextType<TModel>;
|
|
10
4
|
export default useDetailPage;
|
|
@@ -455,9 +455,10 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
|
|
|
455
455
|
readonly enableSave?: boolean;
|
|
456
456
|
readonly reason?: NeedDataReason;
|
|
457
457
|
readonly activeSegmentIndex?: number;
|
|
458
|
-
readonly onCommands?: ((props: import('../components/DetailPageCommands').DetailPageCommmandsSettings<TModel>) => import('react').ReactNode) | undefined;
|
|
459
|
-
readonly onExtraCommands?: () => import('react').ReactNode;
|
|
460
458
|
readonly createCommandLabel?: import('react').ReactNode;
|
|
459
|
+
readonly saveCommandLabel?: import('react').ReactNode;
|
|
460
|
+
readonly onCommands?: (props: import('../components/DetailPageCommands').DetailPageCommandsProps) => import('react').ReactNode;
|
|
461
|
+
readonly onExtraCommands?: () => import('react').ReactNode;
|
|
461
462
|
readonly alerts?: import('../../page/hooks/useNormalizeMessages').Message[];
|
|
462
463
|
readonly onSegmentChanged?: (index: number) => void;
|
|
463
464
|
readonly hotkeyScopes?: string;
|
|
@@ -467,9 +468,9 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
|
|
|
467
468
|
readonly onContentLayout?: (props: import('../components/DetailPageDefaultLayout').DetailPageLayoutProps) => React.ReactNode;
|
|
468
469
|
readonly onWrapperLayout?: (props: import('../pages/DetailPageContent').DetailPageWrapperLayoutProps) => React.ReactNode;
|
|
469
470
|
readonly defaultSaveMode?: import('../pages/DetailPageData').SaveMode;
|
|
470
|
-
readonly steps?: import('../components/
|
|
471
|
-
readonly customSteps?: React.ComponentType<import('../components/
|
|
472
|
-
readonly stepsProps?: Partial<import('../components/
|
|
471
|
+
readonly steps?: import('../components/DetailPageStepsHeader').StepPane<TModel>[] | undefined;
|
|
472
|
+
readonly customSteps?: React.ComponentType<import('../components/DetailPageStepsHeader').DetailPageStepsHeaderProps>;
|
|
473
|
+
readonly stepsProps?: Partial<import('../components/DetailPageStepsHeader').DetailPageStepsHeaderProps>;
|
|
473
474
|
readonly showSuccessMessages?: boolean;
|
|
474
475
|
readonly onAfterSave?: ((result: void | Awaited<TModel> | undefined, variables: import('../pages/DetailPageData').SavePayload<TModel>, form: import('../../form/hooks/useForm').UseFormReturn<TModel>) => void) | undefined;
|
|
475
476
|
readonly onAfterDelete?: ((variables: import('../pages/DetailPageData').DeletePayload<TModel>, form: import('../../form/hooks/useForm').UseFormReturn<TModel>) => void) | undefined;
|
|
@@ -1,13 +1,26 @@
|
|
|
1
|
+
export interface DetailPageCommandsFlag {
|
|
2
|
+
copy?: boolean;
|
|
3
|
+
save?: boolean;
|
|
4
|
+
savecreate?: boolean;
|
|
5
|
+
saveclose?: boolean;
|
|
6
|
+
discardchanges?: boolean;
|
|
7
|
+
delete?: boolean;
|
|
8
|
+
close?: boolean;
|
|
9
|
+
navigate?: boolean;
|
|
10
|
+
create?: boolean;
|
|
11
|
+
prev?: boolean;
|
|
12
|
+
next?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface DetailPageCommandsOptions {
|
|
15
|
+
visible: DetailPageCommandsFlag;
|
|
16
|
+
disabled: DetailPageCommandsFlag;
|
|
17
|
+
loading?: boolean;
|
|
18
|
+
isNew: boolean;
|
|
19
|
+
isDisabled?: boolean;
|
|
20
|
+
}
|
|
1
21
|
/**
|
|
2
22
|
* Returns buttons props depending on validation,loading etc
|
|
3
23
|
* Beware of rerender when state of form changes
|
|
4
24
|
*/
|
|
5
|
-
declare function useDetailPageStates():
|
|
6
|
-
formStates: import('react-hook-form').UseFormStateReturn<import('react-hook-form').FieldValues>;
|
|
7
|
-
visible: import('../components/DetailPageCommands').DetailPageCommandsFlag;
|
|
8
|
-
disabled: import('../components/DetailPageCommands').DetailPageCommandsFlag;
|
|
9
|
-
loading?: boolean;
|
|
10
|
-
isNew: boolean;
|
|
11
|
-
isDisabled?: boolean;
|
|
12
|
-
};
|
|
25
|
+
declare function useDetailPageStates(): DetailPageCommandsOptions;
|
|
13
26
|
export default useDetailPageStates;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FieldValues } from 'react-hook-form';
|
|
2
|
+
import { default as DetailPageCommands } from '../components/DetailPageCommands';
|
|
2
3
|
import { default as DetailPageDefaultLayout } from '../components/DetailPageDefaultLayout';
|
|
3
4
|
import { default as DetailPageHeader } from '../components/DetailPageHeader';
|
|
4
|
-
import { default as
|
|
5
|
+
import { default as DetailPageStepsHeader } from '../components/DetailPageStepsHeader';
|
|
5
6
|
import { NeedDataReason } from './DetailPageContent';
|
|
6
7
|
import { default as DetailPageDrawer } from './DetailPageDrawer';
|
|
7
8
|
import { DetailPageFormProps } from './DetailPageForm';
|
|
@@ -22,6 +23,7 @@ declare namespace DetailPage {
|
|
|
22
23
|
var Drawer: typeof DetailPageDrawer;
|
|
23
24
|
var Route: typeof DetailPageRoute;
|
|
24
25
|
var Layout: typeof DetailPageDefaultLayout;
|
|
25
|
-
var Steps: typeof
|
|
26
|
+
var Steps: typeof DetailPageStepsHeader;
|
|
27
|
+
var Commands: typeof DetailPageCommands;
|
|
26
28
|
}
|
|
27
29
|
export default DetailPage;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { default as React, ReactNode } from 'react';
|
|
2
2
|
import { FieldValues } from 'react-hook-form';
|
|
3
|
+
import { UseFormReturn } from '../../form/hooks/useForm';
|
|
3
4
|
import { Message } from '../../page/hooks/useNormalizeMessages';
|
|
4
5
|
import { PageProps } from '../../page/Page';
|
|
5
6
|
import { ServerError } from '../../utils';
|
|
6
7
|
import { AutoSaveOptions } from '../components/AutoSave';
|
|
7
|
-
import { DetailPageCommandsProps } from '../components/DetailPageCommands';
|
|
8
|
+
import { DetailPageCommandsProps, DetailPageStandartCommandsOptions } from '../components/DetailPageCommands';
|
|
8
9
|
import { DetailPageLayoutProps } from '../components/DetailPageDefaultLayout';
|
|
9
10
|
import { DetailPageHeaderProps } from '../components/DetailPageHeader';
|
|
10
|
-
import {
|
|
11
|
+
import { DetailPageStepsHeaderProps, StepPane } from '../components/DetailPageStepsHeader';
|
|
11
12
|
import { SaveMode } from './DetailPageData';
|
|
12
13
|
export type NeedDataReason = 'create' | 'fetch' | 'copy' | 'view';
|
|
13
14
|
export type DetailPageWrapperLayoutProps = {
|
|
@@ -16,7 +17,19 @@ export type DetailPageWrapperLayoutProps = {
|
|
|
16
17
|
commandsContent: ReactNode;
|
|
17
18
|
alertsContent: ReactNode;
|
|
18
19
|
};
|
|
19
|
-
export interface DetailPageContentProps<TModel extends FieldValues> extends Omit<PageProps, 'commandsContent' | 'alertsContent' | 'autoSave' | 'onHeader' | 'tabExtraContent'>, Pick<
|
|
20
|
+
export interface DetailPageContentProps<TModel extends FieldValues> extends Omit<PageProps, 'commandsContent' | 'alertsContent' | 'autoSave' | 'onHeader' | 'tabExtraContent'>, Pick<DetailPageStandartCommandsOptions, 'createCommandLabel' | 'saveCommandLabel'> {
|
|
21
|
+
/**
|
|
22
|
+
* Custom commands node
|
|
23
|
+
*/
|
|
24
|
+
onCommands?: (props: DetailPageCommandsProps) => ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Extra commands positioned left side in commands section
|
|
27
|
+
*/
|
|
28
|
+
onExtraCommands?: () => ReactNode;
|
|
29
|
+
/**
|
|
30
|
+
* Main rhf instance of page
|
|
31
|
+
*/
|
|
32
|
+
form: UseFormReturn<TModel>;
|
|
20
33
|
data?: TModel;
|
|
21
34
|
/**
|
|
22
35
|
* External error indicator
|
|
@@ -106,22 +119,28 @@ export interface DetailPageContentProps<TModel extends FieldValues> extends Omit
|
|
|
106
119
|
* Having called "onSave" once changing form values
|
|
107
120
|
*/
|
|
108
121
|
autoSave?: boolean | AutoSaveOptions;
|
|
122
|
+
/**
|
|
123
|
+
* Custom content layout
|
|
124
|
+
*/
|
|
109
125
|
onContentLayout?: (props: DetailPageLayoutProps) => React.ReactNode;
|
|
110
126
|
onWrapperLayout?: (props: DetailPageWrapperLayoutProps) => React.ReactNode;
|
|
127
|
+
/**
|
|
128
|
+
*Default save mode (save,saveclose,savecreate) default is 'save'
|
|
129
|
+
*/
|
|
111
130
|
defaultSaveMode?: SaveMode;
|
|
112
131
|
/**
|
|
113
132
|
* Steps definitons
|
|
114
133
|
*/
|
|
115
|
-
steps?: StepPane[];
|
|
134
|
+
steps?: StepPane<TModel>[];
|
|
116
135
|
/**
|
|
117
136
|
* Custom steps component
|
|
118
137
|
*/
|
|
119
|
-
customSteps?: React.ComponentType<
|
|
138
|
+
customSteps?: React.ComponentType<DetailPageStepsHeaderProps>;
|
|
120
139
|
/**
|
|
121
140
|
* Optional steps props
|
|
122
141
|
*/
|
|
123
|
-
stepsProps?: Partial<
|
|
142
|
+
stepsProps?: Partial<DetailPageStepsHeaderProps>;
|
|
124
143
|
tabExtraContent?: ReactNode | ((data?: TModel) => ReactNode);
|
|
125
144
|
}
|
|
126
|
-
declare function DetailPageContent<TModel extends FieldValues>({ activeSegmentIndex, alerts, autoSave, children, commandsPosition, customSteps: CustomSteps, createCommandLabel, data, defaultSaveMode, disabled, disableShortCuts, enableClose, enableCopy, enableCreate, enableDelete, enableDiscardChanges, enableSave, error, hotkeyScopes, loading, onClose, onCommands, onContentLayout, onCopy, onCreate, onDelete, onDiscardChanges, onSegmentChanged, onExtraCommands, onHeader, onSave, onSaveClose, onSaveCreate, onWrapperLayout, reason, showHeader, steps, stepsProps, tabExtraContent, ...pageProps }: DetailPageContentProps<TModel>): import("react/jsx-runtime").JSX.Element;
|
|
145
|
+
declare function DetailPageContent<TModel extends FieldValues>({ activeSegmentIndex, alerts, autoSave, children, commandsPosition, customSteps: CustomSteps, createCommandLabel, data, defaultSaveMode, disabled, disableShortCuts, enableClose, enableCopy, enableCreate, enableDelete, enableDiscardChanges, enableSave, error, form, hotkeyScopes, loading, onClose, onCommands, onContentLayout, onCopy, onCreate, onDelete, onDiscardChanges, onSegmentChanged, onExtraCommands, onHeader, onSave, onSaveClose, onSaveCreate, onWrapperLayout, reason, saveCommandLabel, showHeader, steps, stepsProps, tabExtraContent, ...pageProps }: DetailPageContentProps<TModel>): import("react/jsx-runtime").JSX.Element;
|
|
127
146
|
export default DetailPageContent;
|
|
@@ -19,7 +19,6 @@ export interface DeletePayload<TModel extends FieldValues = FieldValues> extends
|
|
|
19
19
|
data?: TModel;
|
|
20
20
|
}
|
|
21
21
|
export interface DetailPageDataProps<TModel extends FieldValues> extends Omit<DetailPageContentProps<TModel>, 'onSave' | 'onDelete' | 'onDiscardChanges' | 'onCopy' | 'onSaveCreate' | 'onSaveClose'> {
|
|
22
|
-
form: UseFormReturn<TModel>;
|
|
23
22
|
/**
|
|
24
23
|
* Save event
|
|
25
24
|
* @returns if returns data,either in promise or object will bind to form data
|
|
@@ -5,7 +5,7 @@ import { DeepNullable } from '../../utils';
|
|
|
5
5
|
import { NeedDataReason } from './DetailPageContent';
|
|
6
6
|
import { DetailPageDataProps } from './DetailPageData';
|
|
7
7
|
export type DefaultDataFn<TModel extends FieldValues> = (reason: NeedDataReason, data?: TModel) => DeepNullable<TModel> | Promise<DeepNullable<TModel>>;
|
|
8
|
-
export type DefaultData<TModel extends FieldValues> = DeepNullable<TModel> | DefaultDataFn<TModel>;
|
|
8
|
+
export type DefaultData<TModel extends FieldValues = FieldValues> = DeepNullable<TModel> | DefaultDataFn<TModel>;
|
|
9
9
|
export interface DetailPageFormProps<TModel extends FieldValues> extends Omit<DetailPageDataProps<TModel>, 'form'> {
|
|
10
10
|
form?: UseFormReturn<TModel>;
|
|
11
11
|
schema?: z.ZodType<TModel>;
|
|
@@ -13,5 +13,5 @@ export interface DetailPageFormProps<TModel extends FieldValues> extends Omit<De
|
|
|
13
13
|
defaultValues?: DefaultData<TModel>;
|
|
14
14
|
formProps?: Partial<UseFormProps<TModel>>;
|
|
15
15
|
}
|
|
16
|
-
declare function DetailPageForm<TModel extends FieldValues>({ activeSegmentIndex,
|
|
16
|
+
declare function DetailPageForm<TModel extends FieldValues>({ activeSegmentIndex, data, defaultValues, formProps, reason, schema, validationOptions, ...dpProps }: DetailPageFormProps<TModel>): import("react/jsx-runtime").JSX.Element;
|
|
17
17
|
export default DetailPageForm;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { default as React, PropsWithChildren } from 'react';
|
|
2
|
+
import { FieldValues } from 'react-hook-form';
|
|
3
|
+
import { UseFormReturn } from '../hooks/useForm';
|
|
4
|
+
export interface FormCollectionContextType {
|
|
5
|
+
forms?: Map<string, UseFormReturn>;
|
|
6
|
+
registerForm?: (data: FormData) => void;
|
|
7
|
+
unRegisterForm?: (name: string) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const FormCollectionContext: React.Context<FormCollectionContextType>;
|
|
10
|
+
export type FormData<TFieldValues extends FieldValues = FieldValues> = {
|
|
11
|
+
name: string;
|
|
12
|
+
form: UseFormReturn<TFieldValues>;
|
|
13
|
+
};
|
|
14
|
+
declare function FormCollectionProvider({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export default FormCollectionProvider;
|
|
@@ -11,4 +11,5 @@ export { default as useArrayFieldHelpers } from './useArrayFieldHelpers';
|
|
|
11
11
|
export { default as useUniqueFieldsInArray } from './useUniqueFieldsInArray';
|
|
12
12
|
export { default as useFormInitEffect } from './useFormInitEffect';
|
|
13
13
|
export { default as useFieldWithContext } from './useFieldWithContext';
|
|
14
|
+
export { default as useFormCollectionContext } from './useFormCollectionContext';
|
|
14
15
|
export { UNIQUE_IDENTIFIER_FIELD_NAME } from './useArrayFieldHelpers';
|
|
@@ -12,7 +12,7 @@ export type ValidationOptions<TFieldValues extends FieldValues = FieldValues> =
|
|
|
12
12
|
export interface UseFormOptions<TFieldValues extends FieldValues> extends UseFormProps<TFieldValues> {
|
|
13
13
|
schema?: z.ZodType<Partial<TFieldValues>>;
|
|
14
14
|
}
|
|
15
|
-
export interface UseFormReturn<TFieldValues extends FieldValues> extends ReactHookFormUseFormReturn<TFieldValues> {
|
|
15
|
+
export interface UseFormReturn<TFieldValues extends FieldValues = FieldValues> extends ReactHookFormUseFormReturn<TFieldValues> {
|
|
16
16
|
/**
|
|
17
17
|
* Shortcut method for handleSubmit()()
|
|
18
18
|
* @returns Returns form model when validation successed
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FieldValues, Path } from 'react-hook-form';
|
|
2
|
+
import { UseFormReturn } from './useForm';
|
|
3
|
+
interface UseRegisterFormOptions<TFieldValues extends FieldValues> {
|
|
4
|
+
name: Path<TFieldValues>;
|
|
5
|
+
form: UseFormReturn<TFieldValues>;
|
|
6
|
+
}
|
|
7
|
+
declare function useRegisterForm<TFieldValues extends FieldValues>({ name, form, }: UseRegisterFormOptions<TFieldValues>): void;
|
|
8
|
+
export default useRegisterForm;
|
|
@@ -11,7 +11,7 @@ import { default as PageProvider, PaddingSize } from './components/PageProvider'
|
|
|
11
11
|
import { default as PageDrawer } from './PageDrawer';
|
|
12
12
|
import { default as PageModal } from './PageModal';
|
|
13
13
|
export type CloseReason = 'backdrop' | 'close-button' | 'action';
|
|
14
|
-
export type CommandsPosition = 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' | 'bottom' | 'top';
|
|
14
|
+
export type CommandsPosition = 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' | 'bottom-between' | 'top-between' | 'bottom' | 'top';
|
|
15
15
|
export type TabsPosition = 'in-center' | 'in-subrow';
|
|
16
16
|
export interface PageProps extends HeaderProps {
|
|
17
17
|
commandsContent?: ReactNode;
|