@mcurros2/microm 1.1.428-0 → 1.1.430-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/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AlertProps, DefaultMantineColor, ProgressProps, MantineNumberSize, ButtonProps, SelectItem, BadgeVariant, MantineSize, Variants, StepperProps, CardProps, MantineTheme, ImageProps, MantineColor, TextareaProps, TextInputProps, PasswordInputProps, NotificationProps, CheckboxProps, ActionIconProps, NumberInputProps, MultiSelectProps, SimpleGridProps, OverlayProps, TransitionProps, AccordionProps, PinInputProps, SwitchProps, Radio, SelectProps, GroupProps, AvatarProps, AnchorProps, AutocompleteItem, AutocompleteProps, DefaultProps, BadgeProps, BreadcrumbsProps, MenuProps as _MenuProps1, TitleOrder, CSSObject, StackProps, NavbarProps, TooltipProps } from "@mantine/core";
1
+ import { AlertProps, DefaultMantineColor, ProgressProps, MantineNumberSize, ButtonProps, Variants, StepperProps, SelectItem, BadgeVariant, MantineSize, CardProps, MantineTheme, ImageProps, MantineColor, TextareaProps, TextInputProps, PasswordInputProps, NotificationProps, CheckboxProps, ActionIconProps, NumberInputProps, MultiSelectProps, SimpleGridProps, OverlayProps, TransitionProps, AccordionProps, PinInputProps, SwitchProps, Radio, SelectProps, GroupProps, AvatarProps, AnchorProps, AutocompleteItem, AutocompleteProps, DefaultProps, BadgeProps, BreadcrumbsProps, MenuProps as _MenuProps1, TitleOrder, CSSObject, StackProps, NavbarProps, TooltipProps } from "@mantine/core";
2
2
  import { JSX } from "react/jsx-runtime";
3
3
  import React, { JSXElementConstructor, ReactElement, ReactNode, PropsWithChildren, RefAttributes, ForwardRefExoticComponent, Dispatch, RefObject, SetStateAction, ComponentType, CSSProperties, MutableRefObject, useState, KeyboardEvent, ComponentPropsWithoutRef, Context, ReactPortal } from "react";
4
4
  import { hasLength, isNotEmpty, matches, UseFormReturnType } from "@mantine/form";
@@ -6,7 +6,7 @@ import { ModalSettings } from "@mantine/modals/lib/context";
6
6
  import { IconProps, Icon } from "@tabler/icons-react";
7
7
  import { LooseKeys } from "@mantine/form/lib/types";
8
8
  import { AccordionVariant } from "@mantine/core/lib/Accordion/Accordion.types";
9
- import { UseEntityFormReturnType as _UseEntityFormReturnType1, EntityClientAction as _EntityClientAction1, DataResult as _DataResult1, OperationStatus as _OperationStatus1, DataMapInfoWindowRenderer as _DataMapInfoWindowRenderer1, DataMapSelectRecordsRenderer as _DataMapSelectRecordsRenderer1, DataMapMarkerRenderer as _DataMapMarkerRenderer1, DataMapGroupMarkerRenderer as _DataMapGroupMarkerRenderer1, EntityDefinition as _EntityDefinition1, Entity as _Entity1, ValuesObject as _ValuesObject1, DataViewSearchCallback as _DataViewSearchCallback1, DBStatusResult as _DBStatusResult1, GridColumnsOverrides as _GridColumnsOverrides1, DataGridSelectionChangedCallback as _DataGridSelectionChangedCallback1, EntityUIAddClick as _EntityUIAddClick1, EntityUIActionClosedCallback as _EntityUIActionClosedCallback1, DataGridLabels as _DataGridLabels1, GridRecord as _GridRecord1, GridSelectionChangedCallback as _GridSelectionChangedCallback1, GridDoubleClickCallback as _GridDoubleClickCallback1, GridColumn as _GridColumn1 } from "src";
9
+ import { UseEntityFormReturnType as _UseEntityFormReturnType1, EntityClientAction as _EntityClientAction1, DataResult as _DataResult1, OperationStatus as _OperationStatus1, DataMapInfoWindowRenderer as _DataMapInfoWindowRenderer1, DataMapSelectRecordsRenderer as _DataMapSelectRecordsRenderer1, DataMapMarkerRenderer as _DataMapMarkerRenderer1, DataMapGroupMarkerRenderer as _DataMapGroupMarkerRenderer1, EntityDefinition as _EntityDefinition1, Entity as _Entity1, ValuesObject as _ValuesObject1, DBStatusResult as _DBStatusResult1, GridColumnsOverrides as _GridColumnsOverrides1, DataGridSelectionChangedCallback as _DataGridSelectionChangedCallback1, DataViewSearchCallback as _DataViewSearchCallback1, EntityUIAddClick as _EntityUIAddClick1, EntityUIActionClosedCallback as _EntityUIActionClosedCallback1, DataGridLabels as _DataGridLabels1, GridRecord as _GridRecord1, GridSelectionChangedCallback as _GridSelectionChangedCallback1, GridDoubleClickCallback as _GridDoubleClickCallback1, GridColumn as _GridColumn1 } from "src";
10
10
  import { DropzoneProps } from "@mantine/dropzone";
11
11
  import { PrismProps } from "@mantine/prism";
12
12
  import { DateInputProps, TimeInputProps, CalendarProps } from "@mantine/dates";
@@ -393,14 +393,15 @@ export interface ConfirmLeaveStaySaveProps {
393
393
  }
394
394
  export const ConfirmLeaveStaySaveDefaultProps: Partial<ConfirmLeaveStaySaveProps>;
395
395
  export function ConfirmLeaveStaySave(props: ConfirmLeaveStaySaveProps): JSX.Element;
396
- export type NavigationProtectionMode = 'save' | 'confirm';
396
+ export type NavigationProtectionMode = 'save' | 'confirm' | 'allways';
397
397
  export type ConfirmNavigationType = 'local' | 'remote';
398
398
  export interface UseConfirmNavigationOptions {
399
399
  mode?: NavigationProtectionMode;
400
400
  hasUnsavedChanges: () => boolean;
401
401
  onSave: (navigationType: ConfirmNavigationType) => Promise<boolean>;
402
+ onLeave?: (navigationType: ConfirmNavigationType) => Promise<boolean>;
402
403
  }
403
- export function useConfirmNavigation({ mode, hasUnsavedChanges, onSave }: UseConfirmNavigationOptions): void;
404
+ export function useConfirmNavigation({ mode, hasUnsavedChanges, onSave, onLeave }: UseConfirmNavigationOptions): void;
404
405
  export function getMantineInitialDirty(columns: ColumnsObject, exclude_system_columns: boolean): Record<string, boolean>;
405
406
  export function getMantineValuesObject(formValues: ValuesObject, columns: ColumnsObject, exclude_system_columns: boolean): ValuesObject;
406
407
  export function getMantineInitialValuesObject(columns: ColumnsObject, columnNames?: string[]): ValuesObject;
@@ -465,9 +466,8 @@ export interface UseEntityFormReturnType {
465
466
  form: UseFormReturnType<ValuesObject>;
466
467
  status: OperationStatus<DBStatusResult | ValuesObject>;
467
468
  formMode: FormMode;
468
- handleCancel: () => Promise<void> | void;
469
- handleSubmit: (event?: React.FormEvent<HTMLFormElement>) => Promise<void>;
470
- handleExecuteMappedAction: (buttonName: 'OK' | 'Cancel', actionName: string, requireValidation: boolean, element?: HTMLElement) => Promise<void>;
469
+ handleCancel: (silent?: boolean, element?: HTMLElement) => Promise<boolean>;
470
+ handleSubmit: (event?: React.FormEvent<HTMLFormElement>, silent?: boolean, element?: HTMLElement, requestOptions?: MicroMRequestOptions) => Promise<boolean>;
471
471
  performGetData: () => Promise<boolean>;
472
472
  saveAndGet: (get_data_if_saved: boolean, override_values?: ValuesObject, requestOptions?: MicroMRequestOptions) => Promise<OperationStatus<DBStatusResult>>;
473
473
  configureField: (column: EntityColumn<Value>, validation?: ValidationRule) => void;
@@ -481,96 +481,11 @@ export interface UseEntityFormReturnType {
481
481
  clearAllAsyncErrors: () => void;
482
482
  isFormValid: () => boolean;
483
483
  isFormFieldValid: (column_name: string) => boolean;
484
+ activeFormActions: EntityFormActions;
484
485
  silentSave: (requestOptions?: MicroMRequestOptions) => Promise<SilentSaveResult>;
485
486
  }
486
487
  export const UseEntityFormDefaultProps: Partial<UseEntityFormOptions>;
487
488
  export function useEntityForm(props: UseEntityFormOptions): UseEntityFormReturnType;
488
- export interface UseDataGridToolbarFiltersProps {
489
- filterValues: ValuesObject | undefined;
490
- setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
491
- filtersDescription: ValuesObject | undefined;
492
- setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
493
- client?: MicroMClient;
494
- parentKeys?: ValuesObject;
495
- FiltersEntity?: EntityConstructor;
496
- searchData: SelectItem[];
497
- setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
498
- setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
499
- onRefreshClick: (searchText: string[] | undefined) => void;
500
- onSearchTextChange?: (text: string[] | undefined) => void;
501
- filtersFormSize: MantineNumberSize;
502
- visibleFilters?: string[];
503
- initialColumnFilters?: ColumnsObject;
504
- filterInputRef: RefObject<HTMLInputElement>;
505
- }
506
- export function useDataGridToolbarFilters(props: UseDataGridToolbarFiltersProps): {
507
- handleFilterButtonClick: (e: React.MouseEvent) => Promise<void>;
508
- handleSearchFilterInputEnter: (e: React.KeyboardEvent) => void;
509
- handleClearFiltersClick: (e: React.MouseEvent) => void;
510
- createSearchPhrase: (filter: string) => {
511
- value: string;
512
- label: string;
513
- };
514
- queryText: string;
515
- filtersDescription: ValuesObject | undefined;
516
- setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
517
- setQueryText: Dispatch<SetStateAction<string>>;
518
- handleSearchFilterInputOnChange: (searchFilter: string[]) => void;
519
- updateFilterValuesAndDescription: (columns: ColumnsObject) => void;
520
- };
521
- export type DataGridToolbarSizes = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
522
- export interface DataGridToolbarOptions {
523
- size?: DataGridToolbarSizes;
524
- client?: MicroMClient;
525
- searchPlaceholder?: string;
526
- hideCheckboxToggle?: boolean;
527
- onCheckboxToggle?: () => void;
528
- onSearchTextChange?: (text: string[] | undefined) => void;
529
- onRefreshClick: (searchText: string[] | undefined) => void;
530
- onExportClick: () => void;
531
- autoFocus?: boolean;
532
- toolbarIconVariant?: ActionIconVariant;
533
- enableExport?: boolean;
534
- refreshTooltip?: string;
535
- exportTooltip?: string;
536
- selectRowsTooltip?: string;
537
- searchText: string[] | undefined;
538
- setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
539
- searchData: SelectItem[];
540
- setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
541
- maxSearchTerms?: number;
542
- FiltersEntity?: EntityConstructor;
543
- filterTooltip?: string;
544
- parentKeys?: ValuesObject;
545
- filterValues: ValuesObject | undefined;
546
- setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
547
- filtersDescription: ValuesObject | undefined;
548
- setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
549
- clearFiltersTooltip?: string;
550
- filtersFormSize: MantineNumberSize;
551
- enableImport?: boolean;
552
- importTooltip?: string;
553
- onImportClick?: () => void;
554
- filtersBadgeSize?: MantineSize;
555
- filtersBadgeVariant?: BadgeVariant;
556
- showAppliedFilters?: boolean;
557
- showRefreshButton?: boolean;
558
- showSelectRowsButton?: boolean;
559
- showFiltersButton?: boolean;
560
- showSearchInput?: boolean;
561
- visibleFilters?: string[];
562
- initialColumnFilters?: ColumnsObject;
563
- filtersTitle?: string;
564
- editFiltersLabel?: string;
565
- clearFiltersLabel?: string;
566
- filtersAccordionVariant?: AccordionVariant;
567
- showColumnsConfig?: boolean;
568
- configMenuOpened?: boolean;
569
- setConfigMenuOpened?: Dispatch<SetStateAction<boolean>>;
570
- configMenuDropdown?: ReactNode;
571
- }
572
- export const DataGridToolbarDefaultProps: Partial<DataGridToolbarOptions>;
573
- export function DataGridToolbar(props: DataGridToolbarOptions): JSX.Element;
574
489
  export interface EntityFormProps extends PropsWithChildren {
575
490
  showOK?: boolean;
576
491
  showCancel?: boolean;
@@ -580,8 +495,6 @@ export interface EntityFormProps extends PropsWithChildren {
580
495
  OKText?: ReactNode;
581
496
  CancelText?: ReactNode;
582
497
  CloseText?: ReactNode;
583
- OKActionName?: string;
584
- CancelActionName?: string;
585
498
  formAPI: UseEntityFormReturnType;
586
499
  invalidFieldsLabel?: string;
587
500
  showHelpButton?: boolean;
@@ -840,6 +753,92 @@ export const DefaultGridProps: Partial<GridOptions>;
840
753
  export const DefaultGridColumnProps: Partial<GridColumn>;
841
754
  export const Grid: ForwardRefExoticComponent<GridOptions & RefAttributes<GridImperative>>;
842
755
  export function GridGlobalStyles(): JSX.Element;
756
+ export interface UseDataGridToolbarFiltersProps {
757
+ filterValues: ValuesObject | undefined;
758
+ setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
759
+ filtersDescription: ValuesObject | undefined;
760
+ setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
761
+ client?: MicroMClient;
762
+ parentKeys?: ValuesObject;
763
+ FiltersEntity?: EntityConstructor;
764
+ searchData: SelectItem[];
765
+ setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
766
+ setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
767
+ onRefreshClick: (searchText: string[] | undefined) => void;
768
+ onSearchTextChange?: (text: string[] | undefined) => void;
769
+ filtersFormSize: MantineNumberSize;
770
+ visibleFilters?: string[];
771
+ initialColumnFilters?: ColumnsObject;
772
+ filterInputRef: RefObject<HTMLInputElement>;
773
+ }
774
+ export function useDataGridToolbarFilters(props: UseDataGridToolbarFiltersProps): {
775
+ handleFilterButtonClick: (e: React.MouseEvent) => Promise<void>;
776
+ handleSearchFilterInputEnter: (e: React.KeyboardEvent) => void;
777
+ handleClearFiltersClick: (e: React.MouseEvent) => void;
778
+ createSearchPhrase: (filter: string) => {
779
+ value: string;
780
+ label: string;
781
+ };
782
+ queryText: string;
783
+ filtersDescription: ValuesObject | undefined;
784
+ setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
785
+ setQueryText: Dispatch<SetStateAction<string>>;
786
+ handleSearchFilterInputOnChange: (searchFilter: string[]) => void;
787
+ updateFilterValuesAndDescription: (columns: ColumnsObject) => void;
788
+ };
789
+ export type DataGridToolbarSizes = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
790
+ export interface DataGridToolbarOptions {
791
+ size?: DataGridToolbarSizes;
792
+ client?: MicroMClient;
793
+ searchPlaceholder?: string;
794
+ hideCheckboxToggle?: boolean;
795
+ onCheckboxToggle?: () => void;
796
+ onSearchTextChange?: (text: string[] | undefined) => void;
797
+ onRefreshClick: (searchText: string[] | undefined) => void;
798
+ onExportClick: () => void;
799
+ autoFocus?: boolean;
800
+ toolbarIconVariant?: ActionIconVariant;
801
+ enableExport?: boolean;
802
+ refreshTooltip?: string;
803
+ exportTooltip?: string;
804
+ selectRowsTooltip?: string;
805
+ searchText: string[] | undefined;
806
+ setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
807
+ searchData: SelectItem[];
808
+ setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
809
+ maxSearchTerms?: number;
810
+ FiltersEntity?: EntityConstructor;
811
+ filterTooltip?: string;
812
+ parentKeys?: ValuesObject;
813
+ filterValues: ValuesObject | undefined;
814
+ setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
815
+ filtersDescription: ValuesObject | undefined;
816
+ setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
817
+ clearFiltersTooltip?: string;
818
+ filtersFormSize: MantineNumberSize;
819
+ enableImport?: boolean;
820
+ importTooltip?: string;
821
+ onImportClick?: () => void;
822
+ filtersBadgeSize?: MantineSize;
823
+ filtersBadgeVariant?: BadgeVariant;
824
+ showAppliedFilters?: boolean;
825
+ showRefreshButton?: boolean;
826
+ showSelectRowsButton?: boolean;
827
+ showFiltersButton?: boolean;
828
+ showSearchInput?: boolean;
829
+ visibleFilters?: string[];
830
+ initialColumnFilters?: ColumnsObject;
831
+ filtersTitle?: string;
832
+ editFiltersLabel?: string;
833
+ clearFiltersLabel?: string;
834
+ filtersAccordionVariant?: AccordionVariant;
835
+ showColumnsConfig?: boolean;
836
+ configMenuOpened?: boolean;
837
+ setConfigMenuOpened?: Dispatch<SetStateAction<boolean>>;
838
+ configMenuDropdown?: ReactNode;
839
+ }
840
+ export const DataGridToolbarDefaultProps: Partial<DataGridToolbarOptions>;
841
+ export function DataGridToolbar(props: DataGridToolbarOptions): JSX.Element;
843
842
  export interface DataGridStateProps {
844
843
  setRefresh: React.Dispatch<React.SetStateAction<boolean>>;
845
844
  setSearchText: React.Dispatch<React.SetStateAction<string[] | undefined>>;
@@ -1156,7 +1155,7 @@ export interface EntityClientActionOnClickProps {
1156
1155
  modal?: ModalContextType;
1157
1156
  selectedKeys?: ValuesObject[];
1158
1157
  element?: HTMLElement;
1159
- onClose?: (result?: boolean) => Promise<boolean>;
1158
+ onClose?: (result?: boolean, status?: OperationStatus<DBStatusResult>) => Promise<boolean>;
1160
1159
  }
1161
1160
  export interface EntityClientAction {
1162
1161
  name: string;
@@ -1171,6 +1170,17 @@ export interface EntityClientAction {
1171
1170
  showActionInViewMode?: boolean;
1172
1171
  onClick: (props: EntityClientActionOnClickProps) => Promise<boolean>;
1173
1172
  }
1173
+ export interface EntityFormClientActionOnClickProps extends EntityClientActionOnClickProps {
1174
+ silent: boolean;
1175
+ }
1176
+ export interface EntityFormClientAction extends Omit<EntityClientAction, 'onClick'> {
1177
+ onClick: (props: EntityFormClientActionOnClickProps) => Promise<boolean>;
1178
+ }
1179
+ export interface EntityFormActions {
1180
+ OK?: EntityFormClientAction;
1181
+ Cancel?: EntityFormClientAction;
1182
+ }
1183
+ export type EntityFormActionOverrides = Partial<Record<FormMode | 'Allways', EntityFormActions>>;
1174
1184
  export interface EntityProc {
1175
1185
  name: string;
1176
1186
  parms?: Record<string, Value>;
@@ -1204,6 +1214,7 @@ export class EntityDefinition {
1204
1214
  lookups: Record<string, EntityLookup>;
1205
1215
  serverActions: Record<string, EntityServerAction>;
1206
1216
  clientActions: Record<string, EntityClientAction>;
1217
+ formActionOverrides: EntityFormActionOverrides;
1207
1218
  /**
1208
1219
  * Ordered allowlist of columns available for data imports.
1209
1220
  * A null value uses the import flow's inferred destinations; an empty array exposes no destinations.
@@ -3709,12 +3720,6 @@ export function useMultiDataMapGrid({ dataMapView, viewState, selectionMode, map
3709
3720
  entity: _Entity1<_EntityDefinition1>;
3710
3721
  formMode: "view" | "add" | "edit" | undefined;
3711
3722
  parentKeys: _ValuesObject1;
3712
- onSearchTextChange: _DataViewSearchCallback1;
3713
- visibleFilters: string[];
3714
- maxSearchTerms: number;
3715
- enableImport: boolean;
3716
- showSelectRowsButton: boolean;
3717
- limit: "0" | "50" | "100" | "500" | "1000" | "10000" | undefined;
3718
3723
  onModalClosed: (cancelled?: boolean) => void;
3719
3724
  onModalSaved: (new_status: _OperationStatus1<_DBStatusResult1 | null>) => void;
3720
3725
  modalFormSize: string | number | undefined;
@@ -3726,6 +3731,12 @@ export function useMultiDataMapGrid({ dataMapView, viewState, selectionMode, map
3726
3731
  columnBorders: boolean;
3727
3732
  rowBorders: boolean;
3728
3733
  autoSelectFirstRow: boolean;
3734
+ onSearchTextChange: _DataViewSearchCallback1;
3735
+ visibleFilters: string[];
3736
+ maxSearchTerms: number;
3737
+ enableImport: boolean;
3738
+ showSelectRowsButton: boolean;
3739
+ limit: "0" | "50" | "100" | "500" | "1000" | "10000" | undefined;
3729
3740
  viewName: string;
3730
3741
  refreshOnInit: boolean;
3731
3742
  onDataRefresh: (result: _OperationStatus1<_DataResult1[]>) => void;