react-crud-mui 0.0.1-beta.50 → 0.0.1-beta.52

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.
@@ -0,0 +1,3 @@
1
+ import { PageLayoutProps } from '../../page/components/DefaultLayout';
2
+ declare function DetailPageModalLayout({ options, content, alertsContent, footerContent, moreContent, pageHeader, panelsContent, progressContent, tabsContent, }: PageLayoutProps): import("react/jsx-runtime").JSX.Element;
3
+ export default DetailPageModalLayout;
@@ -0,0 +1,3 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ declare function TriggerValidation<TModel extends FieldValues>(): null;
3
+ export default TriggerValidation;
@@ -29,7 +29,6 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
29
29
  readonly defaultSegmentIndex?: number;
30
30
  readonly form?: import('../../form/hooks/useForm').UseFormReturn<TModel> | undefined;
31
31
  readonly schema?: import('zod').ZodType<TModel, import('zod').ZodTypeDef, TModel> | undefined;
32
- readonly defaultValues?: import('../../utils').DeepNullable<TModel> | (() => Promise<import('../../utils').DeepNullable<TModel>>) | undefined;
33
32
  readonly validationOptions?: import('../../form/hooks/useForm').ValidationOptions<TModel> | undefined;
34
33
  readonly className?: string;
35
34
  readonly style?: React.CSSProperties;
@@ -416,8 +415,10 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
416
415
  readonly useHeaderIconWrapper?: boolean;
417
416
  readonly tabs?: import('../../page/components/DefaultTabs').TabPane[];
418
417
  readonly error?: import('../../utils').ServerError;
418
+ readonly defaultValues?: import('../pages/DetailPageData').DefaultData<TModel> | undefined;
419
419
  readonly footerContent?: import('react').ReactNode;
420
420
  readonly moreContent?: import('react').ReactNode;
421
+ readonly panels?: import('../../page/components/DefaultPanels').PanelPane[];
421
422
  readonly bordered?: boolean;
422
423
  readonly commandsPosition?: import('../../page/Page').CommandsPosition;
423
424
  readonly onHeader?: (props: import('../components/DetailPageHeader').DetailPageHeaderProps) => import('react').ReactNode;
@@ -1,10 +1,13 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { UseFormReturn } from '../../form/hooks/useForm';
3
+ import { DeepNullable } from '../../utils';
3
4
  import { DetailPageContentProps, NeedDataReason } from './DetailPageContent';
4
5
  export type DataResult<TModel> = TModel | Promise<TModel | void | undefined> | undefined | void;
5
6
  export interface DataEvent<TModel extends FieldValues, TVariables> {
6
7
  (variables: TVariables, form: UseFormReturn<TModel>): DataResult<TModel>;
7
8
  }
9
+ export type DefaultDataFn<TModel extends FieldValues> = (reason: NeedDataReason, data?: TModel) => DeepNullable<TModel> | Promise<DeepNullable<TModel>>;
10
+ export type DefaultData<TModel extends FieldValues> = DeepNullable<TModel> | DefaultDataFn<TModel>;
8
11
  export type SaveMode = 'save' | 'save-close' | 'save-create';
9
12
  export interface BasePayload {
10
13
  reason: NeedDataReason;
@@ -20,6 +23,10 @@ export interface DeletePayload<TModel extends FieldValues = FieldValues> extends
20
23
  }
21
24
  export interface DetailPageDataProps<TModel extends FieldValues> extends Omit<DetailPageContentProps<TModel>, 'onSave' | 'onDelete' | 'onDiscardChanges' | 'onCopy' | 'onSaveCreate' | 'onSaveClose'> {
22
25
  form: UseFormReturn<TModel>;
26
+ /**
27
+ * Get default form values for each particular reason
28
+ */
29
+ defaultValues?: DefaultData<TModel>;
23
30
  /**
24
31
  * Save event
25
32
  * @returns if returns data,either in promise or object will bind to form data
@@ -54,5 +61,5 @@ export interface DetailPageDataProps<TModel extends FieldValues> extends Omit<De
54
61
  /**
55
62
  * Page component that all data manupulation is handled
56
63
  */
57
- declare function DetailPageData<TModel extends FieldValues>({ alerts, autoSave, data, error, form, loading, onAfterDelete, onAfterSave, onClose, onDelete, onDiscardChanges, onReasonChange, onSave, reason, showSuccessMessages, ...dpProps }: DetailPageDataProps<TModel>): import("react/jsx-runtime").JSX.Element;
64
+ declare function DetailPageData<TModel extends FieldValues>({ alerts, autoSave, data, defaultValues, error, form, loading, onAfterDelete, onAfterSave, onClose, onDelete, onDiscardChanges, onReasonChange, onSave, reason, showSuccessMessages, ...dpProps }: DetailPageDataProps<TModel>): import("react/jsx-runtime").JSX.Element;
58
65
  export default DetailPageData;
@@ -1,13 +1,11 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { z } from 'zod';
3
3
  import { UseFormReturn, ValidationOptions } from '../../form/hooks/useForm';
4
- import { DeepNullable } from '../../utils';
5
4
  import { DetailPageDataProps } from './DetailPageData';
6
- export interface DetailPageFormProps<TModel extends FieldValues> extends Omit<DetailPageDataProps<TModel>, 'form' | 'defaultValues' | 'schema'> {
5
+ export interface DetailPageFormProps<TModel extends FieldValues> extends Omit<DetailPageDataProps<TModel>, 'form' | 'schema'> {
7
6
  form?: UseFormReturn<TModel>;
8
7
  schema?: z.ZodType<TModel>;
9
- defaultValues?: DeepNullable<TModel> | (() => Promise<DeepNullable<TModel>>);
10
8
  validationOptions?: ValidationOptions<TModel>;
11
9
  }
12
- declare function DetailPageForm<TModel extends FieldValues>({ activeSegmentIndex, schema, defaultValues, validationOptions, data, ...dpProps }: DetailPageFormProps<TModel>): import("react/jsx-runtime").JSX.Element;
10
+ declare function DetailPageForm<TModel extends FieldValues>({ activeSegmentIndex, schema, defaultValues, validationOptions, data, reason, ...dpProps }: DetailPageFormProps<TModel>): import("react/jsx-runtime").JSX.Element;
13
11
  export default DetailPageForm;
@@ -1,5 +1,6 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { ModalProps } from '../../modal/Modal';
3
+ import { default as DetailPageModalLayout } from '../components/DetailPageModalLayout';
3
4
  import { UseFormPromptProps } from '../hooks/useFormPrompt';
4
5
  import { DetailPageProps } from './DetailPage';
5
6
  export interface DetailPageModalProps<TModel extends FieldValues> extends DetailPageProps<TModel> {
@@ -17,4 +18,7 @@ export interface DetailPageModalProps<TModel extends FieldValues> extends Detail
17
18
  promptOptions?: UseFormPromptProps;
18
19
  }
19
20
  declare function DetailPageModal<TModel extends FieldValues>({ modalProps, onClose, open, enableClose, promptOptions, ...rest }: DetailPageModalProps<TModel>): import("react/jsx-runtime").JSX.Element;
21
+ declare namespace DetailPageModal {
22
+ var Layout: typeof DetailPageModalLayout;
23
+ }
20
24
  export default DetailPageModal;
@@ -7,6 +7,7 @@ export type ValidationOptions<TFieldValues extends FieldValues = FieldValues> =
7
7
  alertVisibility?: ValidationVisibilityOptions;
8
8
  callOutVisibility?: CallOutVisibilityOptions;
9
9
  fields?: FieldPath<TFieldValues>[];
10
+ runValidationsOnDataChange?: boolean;
10
11
  };
11
12
  export interface UseFormOptions<TFieldValues extends FieldValues> extends UseFormProps<TFieldValues> {
12
13
  schema?: z.ZodType<Partial<TFieldValues>>;
@@ -11,3 +11,4 @@ export { default as useMountEffect } from './useMountEffect';
11
11
  export { default as useTemplate } from '../combobox/hooks/useComboboxTemplate';
12
12
  export { default as useUpdateEffect } from './useUpdateEffect';
13
13
  export { default as useZodRefine } from './useZodRefine';
14
+ export { useSpinDelay } from './useSpinDelay';
@@ -0,0 +1,31 @@
1
+ interface SpinDelayOptions {
2
+ /**
3
+ * The delay in milliseconds before the spinner is displayed.
4
+ * @default 500
5
+ */
6
+ delay?: number;
7
+ /**
8
+ * The minimum duration in milliseconds the spinner is displayed.
9
+ * @default 200
10
+ */
11
+ minDuration?: number;
12
+ maxDuration?: number;
13
+ /**
14
+ * Whether to enable the spinner on the server side. If true, `delay` will be
15
+ * ignored, and the spinner will be shown immediately if `loading` is true.
16
+ * @default true
17
+ */
18
+ ssr?: boolean;
19
+ }
20
+ type State = 'IDLE' | 'DELAY' | 'DISPLAY' | 'EXPIRE' | 'TOO_LONG';
21
+ export declare const defaultOptions: {
22
+ delay: number;
23
+ minDuration: number;
24
+ maxDuration: number;
25
+ ssr: boolean;
26
+ };
27
+ export declare function useSpinDelay(loading: boolean, options?: SpinDelayOptions): {
28
+ readonly isLoading: boolean;
29
+ readonly state: State;
30
+ };
31
+ export {};
@@ -137,6 +137,7 @@ declare const _default: {
137
137
  "no": "No",
138
138
  "nodatafound": "No item found to display",
139
139
  "pleasewait": "Please wait",
140
+ "takingtoolong": "We’re working on it,please hold on",
140
141
  "prevpage": "Previous record",
141
142
  "prevstep": "Previous Step",
142
143
  "promptunsavedchanges": "Unsaved changes detected, continue ?",
@@ -136,6 +136,7 @@ declare const _default: {
136
136
  "no": "Hayır",
137
137
  "nodatafound": "Gösterilecek kayıt bulunamadı",
138
138
  "pleasewait": "Lütfen bekleyiniz",
139
+ "takingtoolong": "İşlem biraz zaman aliyor.Lütfen bekleyiniz",
139
140
  "prevpage": "Önceki kayıt",
140
141
  "prevstep": "Önceki Adım",
141
142
  "promptunsavedchanges": "Kayıt edilmemiş değişiklikleriniz var! Devam etmek istiyormusunuz ?",
@@ -2,6 +2,7 @@ import { ReactNode } from 'react';
2
2
  import { HeaderProps } from '../header/Header';
3
3
  import { MorePanelProps } from '../more-panel/MorePanel';
4
4
  import { default as DefaultLayout, PageLayoutProps } from './components/DefaultLayout';
5
+ import { PanelPane } from './components/DefaultPanels';
5
6
  import { default as DefaultTabs, DefaultTabsProps, TabChangedPayload, TabPane } from './components/DefaultTabs';
6
7
  import { default as PageContent } from './components/PageContent';
7
8
  import { default as PageDivider } from './components/PageDivider';
@@ -33,9 +34,10 @@ export interface PageProps extends HeaderProps {
33
34
  onTabChanged?: (selected: TabChangedPayload) => void;
34
35
  onTabs?: (props: DefaultTabsProps) => ReactNode;
35
36
  bordered?: boolean;
37
+ panels?: PanelPane[];
36
38
  }
37
39
  export declare const PagePadding: Record<PaddingSize, number>;
38
- declare function Page({ alertsContent, bordered, children, commandsContent, commandsPosition, onTabs, disabled, footerContent, loading, onHeader, onLayout, moreContent, morePanelProps, showHeader, showCommands, size, style, sx, tabs, onTabChanged, selectedTabIndex, tabsPosition, rightContent, centerContent, ...headerProps }: PageProps): import("react/jsx-runtime").JSX.Element;
40
+ declare function Page({ alertsContent, bordered, children, commandsContent, commandsPosition, onTabs, disabled, footerContent, loading, onHeader, onLayout, moreContent, morePanelProps, panels, showHeader, showCommands, size, style, sx, tabs, onTabChanged, selectedTabIndex, tabsPosition, rightContent, centerContent, ...headerProps }: PageProps): import("react/jsx-runtime").JSX.Element;
39
41
  declare namespace Page {
40
42
  var Content: typeof PageContent;
41
43
  var Divider: typeof PageDivider;
@@ -16,8 +16,9 @@ export type PageLayoutProps = {
16
16
  alertsContent?: ReactNode;
17
17
  options: PageLayoutOptions;
18
18
  tabsContent?: ReactNode;
19
+ panelsContent?: ReactNode;
19
20
  progressContent?: ReactNode;
20
21
  moreContent?: ReactNode;
21
22
  };
22
- declare function DefaultLayout({ alertsContent, content, footerContent, progressContent, options, pageHeader, moreContent, tabsContent, }: PageLayoutProps): import("react/jsx-runtime").JSX.Element;
23
+ declare function DefaultLayout({ alertsContent, content, panelsContent, footerContent, progressContent, options, pageHeader, moreContent, tabsContent, }: PageLayoutProps): import("react/jsx-runtime").JSX.Element;
23
24
  export default DefaultLayout;
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ import { AccordionDetailsProps, AccordionProps } from '@mui/material';
3
+ export type PanelPane = Omit<AccordionProps, 'children' | 'key'> & {
4
+ children?: ReactNode;
5
+ label?: ReactNode;
6
+ key: string;
7
+ detailsProps?: AccordionDetailsProps;
8
+ };
9
+ export interface DefaultAccordionsProps {
10
+ panels: PanelPane[];
11
+ }
12
+ declare function DefaultPanels({ panels }: DefaultAccordionsProps): import("react/jsx-runtime").JSX.Element;
13
+ export default DefaultPanels;
@@ -0,0 +1,6 @@
1
+ import { LinearProgressProps } from '@mui/material';
2
+ declare function Progress({ loading, visible, ...rest }: LinearProgressProps & {
3
+ loading?: boolean;
4
+ visible?: boolean;
5
+ }): import("react/jsx-runtime").JSX.Element | null;
6
+ export default Progress;