react-crud-mui 0.2.105 → 0.2.107

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.
@@ -25,14 +25,14 @@ export type DetailPageCommandsOptions = DetailPageStandartCommandsOptions & Deta
25
25
  export type CommandsProps = Partial<Record<keyof DetailPageCommandsFlag, ButtonProps>>;
26
26
  export type CommandsPropsFn = (reason: NeedDataReason) => CommandsProps;
27
27
  export type DetailPageStandartCommandsEvents = {
28
- onSave?: () => void;
29
- onSaveCreate?: () => void;
28
+ onSave?: (args?: unknown) => void;
29
+ onSaveCreate?: (args?: unknown) => void;
30
+ onSaveClose?: (args?: unknown) => void;
30
31
  onCreate?: () => void;
31
32
  onCopy?: () => void;
32
33
  onDiscardChanges?: () => void;
33
34
  onDelete?: () => void;
34
35
  onClose?: (reason?: CloseReason) => void;
35
- onSaveClose?: () => void;
36
36
  onNavigate?: (direction: NavigationDirection) => void;
37
37
  };
38
38
  export type DetailPageStepCommandsEvents = {
@@ -1,10 +1,11 @@
1
1
  import { default as React, PropsWithChildren } from 'react';
2
2
  import { FieldValues } from 'react-hook-form';
3
3
  import { DetailPageContentProps } from '../pages/DetailPageContent';
4
+ import { SaveOptions } from '../pages/DetailPageData';
4
5
  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
+ save: (options?: SaveOptions) => void;
6
7
  setActiveSegmentIndex: (index: number) => void;
7
8
  };
8
9
  export declare const DetailPageContext: React.Context<DetailPageContextType<FieldValues> | null>;
9
- declare function DetailPageProvider<TModel extends FieldValues = FieldValues>({ children, data, reason, loading, enableCopy, enableCreate, enableClose, enableDiscardChanges, enableDelete, onSave, enableSave, disabled, activeSegmentIndex, setActiveSegmentIndex, }: PropsWithChildren & DetailPageContextType<TModel>): import("react/jsx-runtime").JSX.Element;
10
+ declare function DetailPageProvider<TModel extends FieldValues = FieldValues>({ children, data, reason, loading, enableCopy, enableCreate, enableClose, enableDiscardChanges, enableDelete, save, enableSave, disabled, activeSegmentIndex, setActiveSegmentIndex, }: PropsWithChildren & DetailPageContextType<TModel>): import("react/jsx-runtime").JSX.Element;
10
11
  export default DetailPageProvider;
@@ -22,6 +22,7 @@ declare function useDetailPageModal<TModel extends FieldValues, TProps extends S
22
22
  readonly modalProps?: Omit<import('../../..').ModalProps, "children" | "open">;
23
23
  readonly open?: boolean;
24
24
  readonly promptOptions?: import('./useFormPrompt').UseFormPromptProps;
25
+ readonly draggable?: boolean;
25
26
  readonly defaultReason?: NeedDataReason;
26
27
  readonly defaultSegmentIndex?: number;
27
28
  readonly form?: import('../../form/hooks/useForm').UseFormReturn<TModel, FieldValues> | undefined;
@@ -170,7 +171,6 @@ declare function useDetailPageModal<TModel extends FieldValues, TProps extends S
170
171
  readonly contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
171
172
  readonly contextMenu?: string | undefined;
172
173
  readonly dir?: string | undefined;
173
- readonly draggable?: (boolean | "true" | "false") | undefined;
174
174
  readonly hidden?: boolean | undefined;
175
175
  readonly id?: string | undefined;
176
176
  readonly lang?: string | undefined;
@@ -457,22 +457,22 @@ declare function useDetailPageModal<TModel extends FieldValues, TProps extends S
457
457
  readonly panelProps?: Partial<import('../../page/components/DefaultPanels').DefaultAccordionsProps>;
458
458
  readonly reason?: NeedDataReason;
459
459
  readonly onDelete?: import('../pages/DetailPageData').DataEvent<TModel, import('../pages/DetailPageData').DeletePayload<TModel>> | undefined;
460
- readonly enableClose?: boolean;
461
- readonly enableCopy?: boolean;
462
- readonly enableCreate?: boolean;
463
- readonly enableDelete?: boolean;
464
- readonly enableDiscardChanges?: boolean;
465
- readonly enableSave?: boolean;
466
- readonly activeSegmentIndex?: number;
460
+ readonly onSave?: import('../pages/DetailPageData').DataEvent<TModel, import('../pages/DetailPageData').SavePayload<TModel>> | undefined;
461
+ readonly onDiscardChanges?: () => void;
467
462
  readonly commandsProps?: import('../components/DetailPageCommands').CommandsPropsFn | Partial<Record<keyof import('./useDetailPageStates').DetailPageCommandsFlag, import('@mui/material').ButtonProps>> | undefined;
468
463
  readonly onCommands?: (props: import('../components/DetailPageCommands').DetailPageCommandsProps) => import('react').ReactNode;
469
464
  readonly onExtraCommands?: () => import('react').ReactNode;
470
465
  readonly alerts?: import('../../page/hooks/useNormalizeMessages').Message[];
466
+ readonly activeSegmentIndex?: number;
471
467
  readonly onSegmentChanged?: (index: number) => void;
472
468
  readonly hotkeyScopes?: string;
473
469
  readonly onCreate?: () => void;
474
- readonly onSave?: import('../pages/DetailPageData').DataEvent<TModel, import('../pages/DetailPageData').SavePayload<TModel>> | undefined;
475
- readonly onDiscardChanges?: () => void;
470
+ readonly enableCreate?: boolean;
471
+ readonly enableCopy?: boolean;
472
+ readonly enableSave?: boolean;
473
+ readonly enableClose?: boolean;
474
+ readonly enableDiscardChanges?: boolean;
475
+ readonly enableDelete?: boolean;
476
476
  readonly onContentLayout?: ((props: import('../components/DetailPageDefaultLayout').DetailPageLayoutProps<TModel>) => React.ReactNode) | undefined;
477
477
  readonly onWrapperLayout?: ((props: import('../pages/DetailPageContent').DetailPageWrapperLayoutProps<TModel>) => React.ReactNode) | undefined;
478
478
  readonly defaultSaveMode?: import('../pages/DetailPageData').SaveMode;
@@ -69,15 +69,15 @@ export interface DetailPageContentProps<TModel extends FieldValues> extends Omit
69
69
  /**
70
70
  * Save event
71
71
  */
72
- onSave: () => void;
72
+ onSave: (args?: unknown) => void;
73
73
  /**
74
74
  * Create new model after saving process has been finished
75
75
  */
76
- onSaveCreate: () => void;
76
+ onSaveCreate: (args?: unknown) => void;
77
77
  /**
78
78
  * Close form after saving process has been finished
79
79
  */
80
- onSaveClose: () => void;
80
+ onSaveClose: (args?: unknown) => void;
81
81
  /**
82
82
  * Undo all chnages and revert to originial form values
83
83
  */
@@ -6,8 +6,13 @@ export interface DataEvent<TModel extends FieldValues, TVariables> {
6
6
  (variables: TVariables, form: UseFormReturn<TModel>): DataResult<TModel>;
7
7
  }
8
8
  export type SaveMode = 'save' | 'save-close' | 'save-create';
9
+ export type SaveOptions = {
10
+ mode?: SaveMode;
11
+ args?: unknown;
12
+ };
9
13
  export interface BasePayload {
10
14
  reason: NeedDataReason;
15
+ args?: unknown;
11
16
  }
12
17
  export interface SavePayload<TModel extends FieldValues = FieldValues> extends BasePayload {
13
18
  model: TModel;
@@ -9,7 +9,7 @@ export interface DetailPageDrawerProps<TModel extends FieldValues = FieldValues>
9
9
  */
10
10
  drawerProps?: DrawerProps;
11
11
  }
12
- declare function DetailPageDrawer<TModel extends FieldValues>({ drawerProps, open, onClose, promptOptions, ...dpProps }: DetailPageDrawerProps<TModel>): import("react/jsx-runtime").JSX.Element;
12
+ declare function DetailPageDrawer<TModel extends FieldValues>({ drawerProps, open, onClose, promptOptions, onLayout, ...dpProps }: DetailPageDrawerProps<TModel>): import("react/jsx-runtime").JSX.Element;
13
13
  declare namespace DetailPageDrawer {
14
14
  var Commands: typeof DetailPageDrawerCommands;
15
15
  var Layout: typeof DetailPageDrawerLayout;
@@ -16,8 +16,12 @@ export interface DetailPageModalProps<TModel extends FieldValues = FieldValues>
16
16
  * Whether to leave modal without saving when form is dirty,default true
17
17
  */
18
18
  promptOptions?: UseFormPromptProps;
19
+ /**
20
+ * Whether to show close button and allow closing modal, default false
21
+ */
22
+ draggable?: boolean;
19
23
  }
20
- declare function DetailPageModal<TModel extends FieldValues>({ modalProps, onClose, open, enableClose, promptOptions, ...dpProps }: DetailPageModalProps<TModel>): import("react/jsx-runtime").JSX.Element;
24
+ declare function DetailPageModal<TModel extends FieldValues>({ modalProps, onClose, draggable, open, enableClose, promptOptions, onLayout, ...dpProps }: DetailPageModalProps<TModel>): import("react/jsx-runtime").JSX.Element;
21
25
  declare namespace DetailPageModal {
22
26
  var Layout: typeof DetailPageModalLayout;
23
27
  }
@@ -6,8 +6,10 @@ export interface ModalProps extends BoxProps, Pick<MuiModalProps, 'disableAutoFo
6
6
  onClose?: () => void;
7
7
  closable?: boolean;
8
8
  size?: ModalSize;
9
+ draggable?: boolean;
9
10
  }
10
- declare function Modal({ children, open, onClose, closable, disableAutoFocus, disablePortal, disableScrollLock, disableEnforceFocus, disableEscapeKeyDown, disableRestoreFocus, ...props }: ModalProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare const DRAGGABLE_HANDLE_CLASS = "draggable-handle";
12
+ declare function Modal({ children, draggable, open, onClose, closable, disableAutoFocus, disablePortal, disableScrollLock, disableEnforceFocus, disableEscapeKeyDown, disableRestoreFocus, ...props }: ModalProps): import("react/jsx-runtime").JSX.Element;
11
13
  declare namespace Modal {
12
14
  var Scroll: import("@emotion/styled").StyledComponent<import("simplebar-react").Props & import("react").RefAttributes<import("simplebar-core").default | null> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
13
15
  }
@@ -0,0 +1,6 @@
1
+ interface ModalCommandsProps {
2
+ closable?: boolean;
3
+ onClose?: () => void;
4
+ }
5
+ declare function ModalCommands({ closable, onClose }: ModalCommandsProps): false | import("react/jsx-runtime").JSX.Element | undefined;
6
+ export default ModalCommands;
@@ -1,6 +1,6 @@
1
1
  export type ModalSize = 'normal' | 'small' | 'large';
2
2
  export declare const modalSizes: Record<ModalSize, number | string>;
3
- export declare const Wrapper: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<import('@mui/material').Theme> & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
+ export declare const ModalPosition: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<import('@mui/material').Theme> & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
4
4
  ref?: ((instance: HTMLDivElement | null) => void | import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import('react').RefObject<HTMLDivElement> | null | undefined;
5
5
  }, keyof import('@mui/system').BoxOwnProps<import('@mui/material').Theme>> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme> & {
6
6
  size?: ModalSize;