react-crud-mui 0.0.1-beta.1 → 0.0.1-beta.10

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.
Files changed (53) hide show
  1. package/dist/components/{settings-provider/SettingsProvider.d.ts → crud-mui-provider/CrudMuiProvider.d.ts} +3 -3
  2. package/dist/components/{settings-provider → crud-mui-provider}/settings.d.ts +0 -2
  3. package/dist/components/detail-page/components/DetailPageStepCommands.d.ts +2 -2
  4. package/dist/components/detail-page/components/DetailPageSteps.d.ts +1 -1
  5. package/dist/components/detail-page/hooks/useDetailPageModal.d.ts +2 -2
  6. package/dist/components/detail-page/hooks/useSegmentParams.d.ts +3 -1
  7. package/dist/components/detail-page/pages/DetailPageModal.d.ts +1 -1
  8. package/dist/components/form/Field.d.ts +2 -0
  9. package/dist/components/form/components/FieldError.d.ts +6 -0
  10. package/dist/components/form/controls/FormComboBox.d.ts +1 -1
  11. package/dist/components/form/controls/FormDatePicker.d.ts +1 -1
  12. package/dist/components/form/controls/FormInput.d.ts +1 -1
  13. package/dist/components/form/controls/FormMoneyInput.d.ts +1 -1
  14. package/dist/components/form/controls/FormNumberInput.d.ts +1 -1
  15. package/dist/components/form/controls/FormPhoneInput.d.ts +1 -1
  16. package/dist/components/form/controls/FormSearchInput.d.ts +7 -0
  17. package/dist/components/form/controls/FormSelect.d.ts +1 -1
  18. package/dist/components/i18n/hooks/useLangWatch.d.ts +5 -0
  19. package/dist/components/i18n/resources/en.json.d.ts +1 -0
  20. package/dist/components/i18n/resources/tr.json.d.ts +1 -0
  21. package/dist/components/labels/MailFormat.d.ts +7 -0
  22. package/dist/components/labels/PhoneFormat.d.ts +8 -0
  23. package/dist/components/labels/index.d.ts +4 -0
  24. package/dist/components/list-page/constants.d.ts +1 -1
  25. package/dist/components/list-page/hooks/useListPage.d.ts +1 -2
  26. package/dist/components/list-page/hooks/useURLSearchFilter.d.ts +20 -9
  27. package/dist/components/list-page/pages/ListPage.d.ts +9 -2
  28. package/dist/components/list-page/pages/ListPageContent.d.ts +6 -3
  29. package/dist/components/list-page/pages/ListPageFilter.d.ts +14 -14
  30. package/dist/components/list-page/pages/ListPageForm.d.ts +5 -2
  31. package/dist/components/list-page/pages/ListPageRoute.d.ts +6 -4
  32. package/dist/components/misc/removeFalsy.d.ts +3 -0
  33. package/dist/components/page/Page.d.ts +2 -2
  34. package/dist/components/page/components/DefaultTabs.d.ts +4 -0
  35. package/dist/components/table/Table.d.ts +1 -1
  36. package/dist/components/table/components/EmptyText.d.ts +2 -1
  37. package/dist/components/theme/index.d.ts +2 -0
  38. package/dist/components/theme/provider/ThemeProvider.d.ts +1 -1
  39. package/dist/coreui.js +12469 -12515
  40. package/dist/index.d.ts +4 -6
  41. package/dist/style.css +1 -1
  42. package/package.json +5 -7
  43. package/dist/components/query/axios/index.d.ts +0 -2
  44. package/dist/components/query/axios/paramsSerializer.d.ts +0 -3
  45. package/dist/components/query/index.d.ts +0 -4
  46. package/dist/components/query/useAppLazyQuery.d.ts +0 -85
  47. package/dist/components/query/useAppMutation.d.ts +0 -10
  48. package/dist/components/query/useAppQuery.d.ts +0 -13
  49. package/dist/components/query/useAppQueryKey.d.ts +0 -4
  50. package/dist/components/query/useCommonHeaders.d.ts +0 -3
  51. package/dist/components/query/useMakeFullURI.d.ts +0 -10
  52. /package/dist/components/{settings-provider → crud-mui-provider}/SettingsContext.d.ts +0 -0
  53. /package/dist/components/{settings-provider → crud-mui-provider}/hooks/useSettings.d.ts +0 -0
@@ -1,9 +1,9 @@
1
1
  import { PropsWithChildren } from 'react';
2
2
  import { Settings } from './settings';
3
- export type SettingsProviderProps = Partial<Settings>;
3
+ export type CrudMuiProviderProps = Partial<Settings>;
4
4
  /**
5
5
  * All Providers needed for @arkas/ui components.This is client component obviously
6
6
  * @description Respectively Antd ConfigProvider => Emotion themeProvider => App =>
7
7
  */
8
- declare function SettingsProvider({ children, validationOptions, ...rest }: PropsWithChildren<SettingsProviderProps>): import("react/jsx-runtime").JSX.Element;
9
- export default SettingsProvider;
8
+ declare function CrudMuiProvider({ children, validationOptions, ...rest }: PropsWithChildren<CrudMuiProviderProps>): import("react/jsx-runtime").JSX.Element;
9
+ export default CrudMuiProvider;
@@ -1,4 +1,3 @@
1
- import { RawAxiosRequestHeaders } from 'axios';
2
1
  import { ValidationOptions } from '../form/hooks/useForm';
3
2
  import { ThemeSettings } from '../theme';
4
3
  export interface CommonHotKeys {
@@ -25,7 +24,6 @@ export interface CommonHotKeys {
25
24
  tabchangePrev: string;
26
25
  }
27
26
  export type Settings = {
28
- requestCommonHeaders?: RawAxiosRequestHeaders;
29
27
  enableDevTool?: boolean;
30
28
  appTitle?: string;
31
29
  uniqueIdParamName: string;
@@ -27,11 +27,11 @@ export type StepCommandsLayout = {
27
27
  };
28
28
  export type StepCommandsComponentProps = StepCommandsStates & StepCommandsLayout;
29
29
  export interface DetailPageStepCommandsProps extends StepCommandsStates {
30
- commands?: React.ComponentType<StepCommandsComponentProps>;
30
+ onCommands?: (props: StepCommandsComponentProps) => ReactNode;
31
31
  }
32
32
  export declare enum DetailPageStepCommandNames {
33
33
  PREV = "prev",
34
34
  NEXT = "next"
35
35
  }
36
- declare function DetailPageStepCommands({ commands: CustomCommands, ...options }: DetailPageStepCommandsProps): import("react/jsx-runtime").JSX.Element;
36
+ declare function DetailPageStepCommands({ onCommands, ...options }: DetailPageStepCommandsProps): import("react/jsx-runtime").JSX.Element;
37
37
  export default DetailPageStepCommands;
@@ -5,7 +5,7 @@ export interface DetailPageStepsProps extends Omit<StepperProps, 'onChange'> {
5
5
  items: StepPane[];
6
6
  status?: StepStatus;
7
7
  showFinishButton?: DetailPageStepCommandsProps['options']['showFinishButton'];
8
- commands?: DetailPageStepCommandsProps['commands'];
8
+ onCommands?: DetailPageStepCommandsProps['onCommands'];
9
9
  }
10
10
  export type StepPane = Omit<StepProps & StepLabelProps, 'children' | 'key'> & {
11
11
  key: string;
@@ -25,7 +25,7 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
25
25
  readonly onNavigate: ({ direction }: Pick<NavigatePayload<TModel>, "direction">) => void;
26
26
  readonly onReasonChange: (reason: NeedDataReason) => void;
27
27
  readonly onClose: () => void;
28
- readonly modalProps?: Omit<import('../../..').ModalProps, "children">;
28
+ readonly modalProps?: Omit<import('../../..').ModalProps, "children" | "open">;
29
29
  readonly open?: boolean;
30
30
  readonly confirmDirtyChanges?: boolean;
31
31
  readonly defaultReason?: NeedDataReason;
@@ -425,7 +425,7 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
425
425
  readonly showHeader?: boolean;
426
426
  readonly disableShortCuts?: boolean;
427
427
  readonly selectedTabIndex?: number;
428
- readonly onTabChanged?: (index: number) => void;
428
+ readonly onTabChanged?: (selected: import('../../page/components/DefaultTabs').TabChangedPayload) => void;
429
429
  readonly onTabs?: (props: import('../../page/components/DefaultTabs').DefaultTabsProps) => import('react').ReactNode;
430
430
  readonly enableClose?: boolean;
431
431
  readonly enableCopy?: boolean;
@@ -6,5 +6,7 @@ export interface UseSegmentParamsOptions {
6
6
  fallbackSegmentIndex?: number;
7
7
  paths?: SegmentModel[];
8
8
  }
9
- declare function useSegmentParams({ segmentParamName: customSegmentParamName, enableNestedSegments, enableSegmentRouting, fallbackSegmentIndex, paths, }?: UseSegmentParamsOptions): readonly [number | undefined, (index: number) => void];
9
+ declare function useSegmentParams({ segmentParamName: customSegmentParamName, enableNestedSegments, enableSegmentRouting, fallbackSegmentIndex, paths, }?: UseSegmentParamsOptions): readonly [number | undefined, (index: number) => void, {
10
+ readonly segmentParamName: string;
11
+ }];
10
12
  export default useSegmentParams;
@@ -5,7 +5,7 @@ export interface DetailPageModalProps<TModel extends FieldValues> extends Detail
5
5
  /**
6
6
  * Antd modal options
7
7
  */
8
- modalProps?: Omit<ModalProps, 'children'>;
8
+ modalProps?: Omit<ModalProps, 'children' | 'open'>;
9
9
  /**
10
10
  * Shortcut to open prop of Modal
11
11
  */
@@ -12,6 +12,7 @@ import { default as FormMoneyInput } from './controls/FormMoneyInput';
12
12
  import { default as FormNumberInput } from './controls/FormNumberInput';
13
13
  import { default as FormPhoneInput } from './controls/FormPhoneInput';
14
14
  import { default as FormRadioGroup } from './controls/FormRadioGroup';
15
+ import { default as FormSearchInput } from './controls/FormSearchInput';
15
16
  import { default as FormSelect } from './controls/FormSelect';
16
17
  import { default as FormSwitch } from './controls/FormSwitch';
17
18
  export type ControlCommonProps<TFieldValues extends FieldValues = FieldValues> = {
@@ -34,6 +35,7 @@ export type FieldProps<TFieldValues extends FieldValues = FieldValues> = Omit<Us
34
35
  declare function Field<TFieldValues extends FieldValues = FieldValues>({ children, control, defaultValue, disabled: fieldDisabled, name, render, rules, shouldUnregister, formControlProps, }: FieldProps<TFieldValues>): string | number | boolean | Iterable<ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
35
36
  declare namespace Field {
36
37
  var Input: typeof FormInput;
38
+ var Search: typeof FormSearchInput;
37
39
  var NumberInput: typeof FormNumberInput;
38
40
  var MoneyInput: typeof FormMoneyInput;
39
41
  var PhoneInput: typeof FormPhoneInput;
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ interface FieldErrorProps {
3
+ message?: ReactNode;
4
+ }
5
+ declare function FieldError({ message }: FieldErrorProps): import("react/jsx-runtime").JSX.Element | null;
6
+ export default FieldError;
@@ -3,5 +3,5 @@ import { ComboBoxProps, CreatableModel } from '../../combobox/ComboBox';
3
3
  import { ControlCommonProps } from '../Field';
4
4
  export interface FormComboBoxProps<T extends CreatableModel, Creatable extends boolean = false, TFieldValues extends FieldValues = FieldValues> extends Omit<ComboBoxProps<T, Creatable>, 'name'>, ControlCommonProps<TFieldValues> {
5
5
  }
6
- declare function FormComboBox<T extends CreatableModel, Creatable extends boolean, TFieldValues extends FieldValues>({ name, fieldProps, ...comboBoxProps }: FormComboBoxProps<T, Creatable, TFieldValues>): import("react/jsx-runtime").JSX.Element;
6
+ declare function FormComboBox<T extends CreatableModel, Creatable extends boolean, TFieldValues extends FieldValues>({ name, fieldProps, disabled, ...comboBoxProps }: FormComboBoxProps<T, Creatable, TFieldValues>): import("react/jsx-runtime").JSX.Element;
7
7
  export default FormComboBox;
@@ -4,5 +4,5 @@ import { DatePickerProps as MuiDatePickerProps } from '@mui/x-date-pickers';
4
4
  import { Dayjs } from 'dayjs';
5
5
  import { ControlCommonProps } from '../Field';
6
6
  export type FormDatePickerProps<TFieldValues extends FieldValues = FieldValues> = Partial<MuiDatePickerProps<Dayjs>> & Pick<StandardTextFieldProps, 'size'> & ControlCommonProps<TFieldValues>;
7
- declare function FormDatePicker<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, slotProps, autoFocus, size, ...dateProps }: FormDatePickerProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
7
+ declare function FormDatePicker<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, slotProps, autoFocus, size, disabled, ...dateProps }: FormDatePickerProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
8
8
  export default FormDatePicker;
@@ -3,5 +3,5 @@ import { TextFieldProps } from '@mui/material';
3
3
  import { ControlCommonProps } from '../Field';
4
4
  export interface FormInputProps<TFieldValues extends FieldValues = FieldValues> extends Omit<TextFieldProps<'standard'>, 'name'>, ControlCommonProps<TFieldValues> {
5
5
  }
6
- declare function FormInput<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, ...inputProps }: FormInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
6
+ declare function FormInput<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, disabled, ...inputProps }: FormInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
7
7
  export default FormInput;
@@ -3,5 +3,5 @@ import { MoneyInputProps } from '../../money-input/MoneyInput';
3
3
  import { ControlCommonProps } from '../Field';
4
4
  export interface FormMoneyInputProps<TFieldValues extends FieldValues = FieldValues> extends Omit<MoneyInputProps, 'name'>, ControlCommonProps<TFieldValues> {
5
5
  }
6
- declare function FormMoneyInput<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, ...inputProps }: FormMoneyInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
6
+ declare function FormMoneyInput<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, disabled, ...inputProps }: FormMoneyInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
7
7
  export default FormMoneyInput;
@@ -3,5 +3,5 @@ import { NumberInputProps } from '../../number-input/NumberInput';
3
3
  import { ControlCommonProps } from '../Field';
4
4
  export interface FormNumberInputProps<TFieldValues extends FieldValues = FieldValues> extends Omit<NumberInputProps, 'name'>, ControlCommonProps<TFieldValues> {
5
5
  }
6
- declare function FormNumberInput<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, ...inputProps }: FormNumberInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
6
+ declare function FormNumberInput<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, disabled, ...inputProps }: FormNumberInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
7
7
  export default FormNumberInput;
@@ -3,5 +3,5 @@ import { PhoneInputProps } from '../../phone-input/PhoneInput';
3
3
  import { ControlCommonProps } from '../Field';
4
4
  export interface FormPhoneInputProps<TFieldValues extends FieldValues = FieldValues> extends Omit<PhoneInputProps, 'name'>, ControlCommonProps<TFieldValues> {
5
5
  }
6
- declare function FormPhoneInput<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, ...inputProps }: FormPhoneInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
6
+ declare function FormPhoneInput<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, disabled, ...inputProps }: FormPhoneInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
7
7
  export default FormPhoneInput;
@@ -0,0 +1,7 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { SearchInputProps } from '../../search-input/SearchInput';
3
+ import { ControlCommonProps } from '../Field';
4
+ export interface FormInputProps<TFieldValues extends FieldValues = FieldValues> extends Omit<SearchInputProps, 'name' | 'onSearch'>, ControlCommonProps<TFieldValues> {
5
+ }
6
+ declare function FormSearchInput<TFieldValues extends FieldValues = FieldValues>({ name, fieldProps, ...inputProps }: FormInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
7
+ export default FormSearchInput;
@@ -3,5 +3,5 @@ import { SelectProps } from '../../select/Select';
3
3
  import { ControlCommonProps } from '../Field';
4
4
  export interface FormSelectProps<T extends FieldValues, TFieldValues extends FieldValues = FieldValues> extends Omit<SelectProps<T>, 'name'>, ControlCommonProps<TFieldValues> {
5
5
  }
6
- declare function FormSelect<T extends FieldValues, TFieldValues extends FieldValues>({ name, fieldProps, ...selectProps }: FormSelectProps<T, TFieldValues>): import("react/jsx-runtime").JSX.Element;
6
+ declare function FormSelect<T extends FieldValues, TFieldValues extends FieldValues>({ name, fieldProps, disabled, ...selectProps }: FormSelectProps<T, TFieldValues>): import("react/jsx-runtime").JSX.Element;
7
7
  export default FormSelect;
@@ -0,0 +1,5 @@
1
+ interface UseLangChangeCallback {
2
+ (lng: string): void;
3
+ }
4
+ declare function useLangWatch(callBack: UseLangChangeCallback): void;
5
+ export default useLangWatch;
@@ -46,6 +46,7 @@ declare const _default: {
46
46
  "uniqueconstraint": "Unique check constraint on '{{fields}}' fields",
47
47
  "leave": "Leave",
48
48
  "finish": "Finish",
49
+ "search": "Search...",
49
50
  "listpage.createnewitem": "Create new item",
50
51
  "listpage.extrafilter.columnOptions": "Table columns options",
51
52
  "listpage.listbuttons.callout.search.title": "Search failed",
@@ -47,6 +47,7 @@ declare const _default: {
47
47
  "uniqueconstraint": "'{{fields}}' alanlarında benzersiz alan kısıtı mevcut",
48
48
  "leave": "Ayrıl",
49
49
  "finish": "Son",
50
+ "search": "Ara...",
50
51
  "listpage.createnewitem": "Yeni kayıt yarat",
51
52
  "listpage.extrafilter.columnOptions": "Liste kolon ayarları",
52
53
  "listpage.listbuttons.callout.search.title": "Arama başarısız",
@@ -0,0 +1,7 @@
1
+ import { BoxProps } from '@mui/material';
2
+ interface MailLabelProps extends BoxProps {
3
+ value?: string;
4
+ showIcon?: boolean;
5
+ }
6
+ declare function MailFormat({ value: email, showIcon, ...rest }: MailLabelProps): import("react/jsx-runtime").JSX.Element;
7
+ export default MailFormat;
@@ -0,0 +1,8 @@
1
+ import { BoxProps } from '@mui/material';
2
+ interface PhoneLabelProps extends BoxProps {
3
+ value?: string;
4
+ showIcon?: boolean;
5
+ }
6
+ export declare const formatPhoneNumber: (phoneNumber: string) => string;
7
+ declare function PhoneFormat({ value: phoneNumber, showIcon, ...rest }: PhoneLabelProps): import("react/jsx-runtime").JSX.Element | null;
8
+ export default PhoneFormat;
@@ -1,10 +1,14 @@
1
1
  import { default as CurrencyFormat } from './CurrencyFormat';
2
2
  import { default as DateFormat } from './DateFormat';
3
+ import { default as MailFormat } from './MailFormat';
3
4
  import { default as NumberFormat } from './NumberFormat';
5
+ import { default as PhoneFormat } from './PhoneFormat';
4
6
  import * as React from 'react';
5
7
  declare const Labels: React.FunctionComponent & {
6
8
  DateFormat: typeof DateFormat;
7
9
  CurrencyFormat: typeof CurrencyFormat;
8
10
  NumberFormat: typeof NumberFormat;
11
+ PhoneFormat: typeof PhoneFormat;
12
+ MailFormat: typeof MailFormat;
9
13
  };
10
14
  export default Labels;
@@ -1,6 +1,6 @@
1
1
  export declare const LISTPAGE_FORM_NAME = "listpage-filter-form";
2
2
  export declare const EXTRA_FILTER_FORM_GROUP = "extra-filter-group";
3
- export declare const INITIAL_PAGEINDEX = 0;
3
+ export declare const DEFAULT_PAGEINDEX = 0;
4
4
  export declare const DEFAULT_PAGESIZE = 25;
5
5
  export declare const MAX_PAGE_SIZE = 999;
6
6
  export declare const SCROLL_ELEMENT_NAME = "scroll-to-list";
@@ -1,9 +1,8 @@
1
1
  import { default as React } from 'react';
2
2
  import { FieldValues } from 'react-hook-form';
3
3
  import { ListPageProps } from '../pages/ListPage';
4
- import { ListPageModel } from '../pages/ListPageFilter';
5
4
  export type ListPageContextType<TModel extends FieldValues> = {
6
- data?: ListPageModel<TModel>;
5
+ data?: TModel[];
7
6
  /**
8
7
  * Clear all form controls in filter
9
8
  */
@@ -1,11 +1,22 @@
1
- export interface UseURLSearchFilterOptions<TFilter> {
2
- enableQueryStringFilter?: boolean | FilterSource<TFilter>;
3
- params?: URLSearchParams;
4
- }
5
- export type AdvancedFilterSource = {
6
- type: 'number' | 'string' | 'date';
7
- isArray?: boolean;
1
+ import { FieldValues } from 'react-hook-form';
2
+ import { ListPageMeta } from '../pages/ListPageFilter';
3
+ type UseURLSearchFilterOptions = {
4
+ defaultValues?: Record<string, unknown>;
5
+ };
6
+ declare function useURLSearchFilter<TFilter extends FieldValues>({ defaultValues, }: UseURLSearchFilterOptions): {
7
+ getFiltersInQS: () => {
8
+ filter: {
9
+ [key: string]: unknown;
10
+ };
11
+ meta: {
12
+ pagination: {
13
+ pageIndex: number;
14
+ pageSize: number;
15
+ };
16
+ sorting: unknown;
17
+ selectedTabIndex: unknown;
18
+ };
19
+ };
20
+ setFiltersInQS: (filter: TFilter, meta: ListPageMeta, extraFilter?: Record<string, unknown>) => void;
8
21
  };
9
- export type FilterSource<TFilter> = Partial<Record<keyof TFilter, boolean | AdvancedFilterSource>>;
10
- declare function useURLSearchFilter<TFilter>({ enableQueryStringFilter, params, }: UseURLSearchFilterOptions<TFilter>): () => TFilter | undefined;
11
22
  export default useURLSearchFilter;
@@ -1,5 +1,5 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
- import { ListPageFilter } from './ListPageFilter';
2
+ import { ListPageMeta } from './ListPageFilter';
3
3
  import { ListPageFormProps } from './ListPageForm';
4
4
  import { default as ListPageModal } from './ListPageModal';
5
5
  import { default as ListPageRoute } from './ListPageRoute';
@@ -8,8 +8,15 @@ export interface ListPageProps<TModel extends FieldValues, TFilter extends Field
8
8
  /**
9
9
  * Data fetcher function with given filter
10
10
  */
11
- onNeedData?: (filter: ListPageFilter<TFilter> | undefined) => void;
11
+ onNeedData?: (filter: TFilter, _meta: ListPageMeta) => void;
12
+ /**
13
+ * Remove falsy values of filter before call OnNeedData
14
+ */
15
+ removeFalsyFilterValues?: boolean;
12
16
  }
17
+ /**
18
+ * Simple list with filter and table
19
+ */
13
20
  declare function ListPage<TModel extends FieldValues, TFilter extends FieldValues = FieldValues, TDetailPageModel extends FieldValues = FieldValues>(props: ListPageProps<TModel, TFilter, TDetailPageModel>): import("react/jsx-runtime").JSX.Element;
14
21
  declare namespace ListPage {
15
22
  var Selection: typeof ListPageSelection;
@@ -9,7 +9,6 @@ import { TableColumn, TableProps } from '../../table/Table';
9
9
  import { ServerError } from '../../utils';
10
10
  import { ListPageCommandsProps } from '../components/ListPageCommands';
11
11
  import { ListPageHeaderProps } from '../components/ListPageHeader';
12
- import { ListPageModel } from './ListPageFilter';
13
12
  export type ListPageWrapperLayoutProps = {
14
13
  content: ReactNode;
15
14
  pageContent: ReactNode;
@@ -93,7 +92,11 @@ export interface ListPageContentProps<TModel extends FieldValues, TDetailPageMod
93
92
  /**
94
93
  * Datasource
95
94
  */
96
- data?: ListPageModel<TModel>;
95
+ data?: TModel[];
96
+ /**
97
+ * Total data row count of paging
98
+ */
99
+ dataCount?: number;
97
100
  /**
98
101
  * Custom list region component
99
102
  */
@@ -128,5 +131,5 @@ export interface ListPageContentProps<TModel extends FieldValues, TDetailPageMod
128
131
  */
129
132
  onDelete?: (model: TModel) => void;
130
133
  }
131
- declare function ListPageContent<TModel extends FieldValues, TDetailPageModel extends FieldValues = FieldValues>({ activeSegmentIndex, actionCommandsProps, alerts, autoSearch, columns, createCommandLabel, data, detailPage: EmbededDetailPageComponent, disabled, disableShortCuts, enableActionCommands, enableClear, enableCreateItem, enableExport, enableSearch, error, filterContent, hotkeyScopes, list: ListComponent, loading, onClear, onClose, onCommands, onCreateItem, onDelete, onExcelExport, onExtraCommands, onHeader, onSearch, onTabChanged, tableProps, onWrapperLayout, showHeader, ...pageProps }: ListPageContentProps<TModel, TDetailPageModel>): import("react/jsx-runtime").JSX.Element;
134
+ declare function ListPageContent<TModel extends FieldValues, TDetailPageModel extends FieldValues = FieldValues>({ activeSegmentIndex, actionCommandsProps, alerts, autoSearch, columns, createCommandLabel, data, dataCount, detailPage: EmbededDetailPageComponent, disabled, disableShortCuts, enableActionCommands, enableClear, enableCreateItem, enableExport, enableSearch, error, filterContent, hotkeyScopes, list: ListComponent, loading, onClear, onClose, onCommands, onCreateItem, onDelete, onExcelExport, onExtraCommands, onHeader, onSearch, onTabChanged, tableProps, onWrapperLayout, showHeader, ...pageProps }: ListPageContentProps<TModel, TDetailPageModel>): import("react/jsx-runtime").JSX.Element;
132
135
  export default ListPageContent;
@@ -1,24 +1,13 @@
1
1
  import { DeepPartial, FieldValues } from 'react-hook-form';
2
2
  import { TableState } from '@tanstack/react-table';
3
3
  import { UseFormReturn } from '../../form/hooks/useForm';
4
+ import { TabChangedPayload } from '../../page/components/DefaultTabs';
4
5
  import { TableProps } from '../../table/Table';
5
6
  import { ListPageContentProps } from './ListPageContent';
6
- export interface PagingListModel<TModel> {
7
- data: TModel[];
8
- dataCount: number;
9
- }
10
- export type ListPageModel<TModel> = PagingListModel<TModel>;
11
- export type ListPageMeta = Pick<TableState, 'pagination' | 'sorting' | 'columnFilters'> & {
12
- segmentIndex: number;
7
+ export type ListPageMeta = Pick<TableState, 'pagination' | 'sorting' | 'columnFilters'> & TabChangedPayload & {
13
8
  reason: SearchReason;
14
9
  };
15
10
  export type SearchReason = 'search' | 'sorting' | 'pagination' | 'init' | 'clear' | 'export' | 'tabChanged' | 'columnfilter';
16
- export type ListPageFilter<TFilter extends FieldValues> = TFilter & {
17
- _meta?: ListPageMeta;
18
- };
19
- export type NeedDataPayload<TFilter extends FieldValues> = {
20
- filter: ListPageFilter<TFilter>;
21
- };
22
11
  export interface ListPageFilterProps<TModel extends FieldValues, TFilter extends FieldValues = FieldValues, TDetailPageModel extends FieldValues = FieldValues> extends Omit<ListPageContentProps<TModel, TDetailPageModel>, 'onSearch' | 'onExcelExport' | 'tableProps' | 'onTabChanged'> {
23
12
  /**
24
13
  * Table states as partial for providing extra props to table
@@ -31,7 +20,7 @@ export interface ListPageFilterProps<TModel extends FieldValues, TFilter extends
31
20
  /**
32
21
  * Form filter values change event
33
22
  */
34
- onChange?: (filter: TFilter, meta?: DeepPartial<ListPageMeta>) => void;
23
+ onChange?: (filter: TFilter, meta: DeepPartial<ListPageMeta>) => void;
35
24
  /**
36
25
  * Default index of tab
37
26
  */
@@ -40,6 +29,17 @@ export interface ListPageFilterProps<TModel extends FieldValues, TFilter extends
40
29
  * Meta data of listpage
41
30
  */
42
31
  meta: ListPageMeta;
32
+ /**
33
+ * Meta data of listpage
34
+ */
35
+ defaultMeta?: DeepPartial<ListPageMeta>;
36
+ /**
37
+ * Make search on mount,default true
38
+ */
39
+ searchOnLoad?: boolean;
43
40
  }
41
+ /**
42
+ * ListPage with filtering features
43
+ */
44
44
  declare function ListPageFilter<TModel extends FieldValues, TFilter extends FieldValues = FieldValues, TDetailPageModel extends FieldValues = FieldValues>(props: ListPageFilterProps<TModel, TFilter, TDetailPageModel>): import("react/jsx-runtime").JSX.Element;
45
45
  export default ListPageFilter;
@@ -2,14 +2,14 @@ import { FieldValues } from 'react-hook-form';
2
2
  import { z } from 'zod';
3
3
  import { UseFormOptions, UseFormReturn, ValidationOptions } from '../../form/hooks/useForm';
4
4
  import { DeepNullable } from '../../utils';
5
- import { ListPageFilterProps, ListPageFilter as ListPageFilterType } from './ListPageFilter';
5
+ import { ListPageFilterProps } from './ListPageFilter';
6
6
  export interface ListPageFormProps<TModel extends FieldValues, TFilter extends FieldValues = FieldValues, TDetailPageModel extends FieldValues = FieldValues> extends Omit<ListPageFilterProps<TModel, TFilter, TDetailPageModel>, 'form'>, Partial<Pick<UseFormOptions<TFilter>, 'schema'>> {
7
7
  form?: UseFormReturn<TFilter>;
8
8
  schema?: z.ZodType<Partial<TFilter>>;
9
9
  /**
10
10
  * External filter criteries
11
11
  */
12
- defaultFilter?: ListPageFilterType<TFilter>;
12
+ defaultFilter?: Partial<TFilter>;
13
13
  /**
14
14
  * Default form fields values
15
15
  */
@@ -19,5 +19,8 @@ export interface ListPageFormProps<TModel extends FieldValues, TFilter extends F
19
19
  */
20
20
  validationOptions?: ValidationOptions<TFilter>;
21
21
  }
22
+ /**
23
+ * ListPage with form features for filter criterias
24
+ */
22
25
  declare function ListPageForm<TModel extends FieldValues, TFilter extends FieldValues = FieldValues, TDetailPageModel extends FieldValues = FieldValues>(props: ListPageFormProps<TModel, TFilter, TDetailPageModel>): import("react/jsx-runtime").JSX.Element;
23
26
  export default ListPageForm;
@@ -1,9 +1,11 @@
1
1
  import { FieldValues } from 'react-hook-form';
2
2
  import { UseSegmentParamsOptions } from '../../detail-page/hooks/useSegmentParams';
3
- import { UseURLSearchFilterOptions } from '../hooks/useURLSearchFilter';
4
3
  import { ListPageProps } from './ListPage';
5
- export interface ListPageRouteProps<TModel extends FieldValues, TFilter extends FieldValues = FieldValues, TDetailPageModel extends FieldValues = FieldValues> extends ListPageProps<TModel, TFilter, TDetailPageModel>, Omit<UseSegmentParamsOptions, 'paths' | 'enableSegmentRouting'> {
6
- enableQueryStringFilter?: UseURLSearchFilterOptions<TFilter>['enableQueryStringFilter'];
4
+ export interface ListPageRouteProps<TModel extends FieldValues, TFilter extends FieldValues = FieldValues, TDetailPageModel extends FieldValues = FieldValues> extends ListPageProps<TModel, TFilter, TDetailPageModel>, Omit<UseSegmentParamsOptions, 'paths'> {
5
+ enableQueryStringFilter?: boolean;
7
6
  }
8
- declare function ListPageRoute<TModel extends FieldValues, TFilter extends FieldValues = FieldValues, TDetailPageModel extends FieldValues = FieldValues>({ enableQueryStringFilter, enableNestedSegments, fallbackSegmentIndex, defaultFilter, tabs, onNeedData, ...listPageProps }: ListPageRouteProps<TModel, TFilter, TDetailPageModel>): import("react/jsx-runtime").JSX.Element;
7
+ /**
8
+ * ListPage with routing based on react-router
9
+ */
10
+ declare function ListPageRoute<TModel extends FieldValues, TFilter extends FieldValues = FieldValues, TDetailPageModel extends FieldValues = FieldValues>({ defaultFilter, defaultMeta, enableNestedSegments, enableQueryStringFilter, enableSegmentRouting, fallbackSegmentIndex, onNeedData, tabs, defaultValues, ...listPageProps }: ListPageRouteProps<TModel, TFilter, TDetailPageModel>): import("react/jsx-runtime").JSX.Element;
9
11
  export default ListPageRoute;
@@ -0,0 +1,3 @@
1
+ import { RecordType } from '../utils';
2
+ declare function removeFalsy<T extends RecordType>(value: T): T;
3
+ export default removeFalsy;
@@ -1,7 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { HeaderProps } from '../header/Header';
3
3
  import { default as DefaultLayout, PageLayoutProps } from './components/DefaultLayout';
4
- import { default as DefaultTabs, DefaultTabsProps, TabPane } from './components/DefaultTabs';
4
+ import { default as DefaultTabs, DefaultTabsProps, TabChangedPayload, TabPane } from './components/DefaultTabs';
5
5
  import { default as PageContent } from './components/PageContent';
6
6
  import { default as PageDivider } from './components/PageDivider';
7
7
  import { PaddingSize } from './components/PageProvider';
@@ -22,7 +22,7 @@ export interface PageProps extends Omit<HeaderProps, 'rightContent'> {
22
22
  disableShortCuts?: boolean;
23
23
  tabs?: TabPane[];
24
24
  selectedTabIndex?: number;
25
- onTabChanged?: (index: number) => void;
25
+ onTabChanged?: (selected: TabChangedPayload) => void;
26
26
  onTabs?: (props: DefaultTabsProps) => ReactNode;
27
27
  }
28
28
  export declare const PagePadding: Record<PaddingSize, number>;
@@ -7,5 +7,9 @@ export type TabPane = Omit<TabProps, 'children' | 'key'> & {
7
7
  export interface DefaultTabsProps extends TabsProps {
8
8
  tabs: TabPane[];
9
9
  }
10
+ export type TabChangedPayload = {
11
+ selectedTabIndex: number;
12
+ selectedTabValue: string;
13
+ };
10
14
  declare function DefaultTabs({ tabs, ...tabsProps }: DefaultTabsProps): import("react/jsx-runtime").JSX.Element;
11
15
  export default DefaultTabs;
@@ -28,7 +28,7 @@ export type TableColumn<D extends object = object> = {
28
28
  icon?: ReactNode;
29
29
  export?: boolean;
30
30
  } & ColumnDef<D>;
31
- export interface TableProps<TData extends FieldValues> extends Omit<TableOptions<TData>, 'getCoreRowModel' | 'columns'>, Partial<Pick<EmptyTextProps, 'emptyText' | 'showEmptyImage'>>, Pick<MuiTableProps, 'size' | 'stickyHeader' | 'sx'> {
31
+ export interface TableProps<TData extends FieldValues> extends Omit<TableOptions<TData>, 'getCoreRowModel' | 'columns'>, Partial<Pick<EmptyTextProps, 'emptyText' | 'showEmptyImage' | 'emptyImageUrl'>>, Pick<MuiTableProps, 'size' | 'stickyHeader' | 'sx'> {
32
32
  autoFocus?: boolean;
33
33
  bordered?: boolean;
34
34
  columns: TableColumn<TData>[];
@@ -3,6 +3,7 @@ import { BoxProps } from '@mui/material';
3
3
  export interface EmptyTextProps extends BoxProps {
4
4
  emptyText: React.ReactNode;
5
5
  showEmptyImage?: boolean;
6
+ emptyImageUrl?: string;
6
7
  }
7
- declare function EmptyText({ emptyText, showEmptyImage, children, ...boxProps }: PropsWithChildren<EmptyTextProps>): import("react/jsx-runtime").JSX.Element;
8
+ declare function EmptyText({ emptyText, showEmptyImage, children, emptyImageUrl, ...boxProps }: PropsWithChildren<EmptyTextProps>): import("react/jsx-runtime").JSX.Element;
8
9
  export default EmptyText;
@@ -1,6 +1,8 @@
1
+ import { ThemeOptions } from '@mui/material/styles/createTheme';
1
2
  export type ThemeSettings = {
2
3
  theme: string;
3
4
  direction: 'ltr' | 'rtl';
4
5
  responsiveFontSizes?: boolean;
6
+ themeOptions?: ThemeOptions;
5
7
  };
6
8
  export declare const createCustomTheme: (settings: ThemeSettings) => import('@mui/material').Theme;
@@ -1,4 +1,4 @@
1
1
  import { PropsWithChildren } from 'react';
2
2
  import { ThemeSettings } from '..';
3
- declare function ThemeProvider({ theme, direction, responsiveFontSizes, children, }: PropsWithChildren<ThemeSettings>): import("react/jsx-runtime").JSX.Element;
3
+ declare function ThemeProvider({ theme, themeOptions, direction, responsiveFontSizes, children, }: PropsWithChildren<ThemeSettings>): import("react/jsx-runtime").JSX.Element;
4
4
  export default ThemeProvider;