@mcurros2/microm 1.1.429-0 → 1.1.431-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,16 @@ 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
+ /** `allways` skips dirty/value checks only in edit mode; add uses those checks and view is unprotected. */
397
+ export type NavigationProtectionMode = 'save' | 'confirm' | 'allways';
397
398
  export type ConfirmNavigationType = 'local' | 'remote';
398
399
  export interface UseConfirmNavigationOptions {
399
400
  mode?: NavigationProtectionMode;
400
401
  hasUnsavedChanges: () => boolean;
401
402
  onSave: (navigationType: ConfirmNavigationType) => Promise<boolean>;
403
+ onLeave?: (navigationType: ConfirmNavigationType) => Promise<boolean>;
402
404
  }
403
- export function useConfirmNavigation({ mode, hasUnsavedChanges, onSave }: UseConfirmNavigationOptions): void;
405
+ export function useConfirmNavigation({ mode, hasUnsavedChanges, onSave, onLeave }: UseConfirmNavigationOptions): void;
404
406
  export function getMantineInitialDirty(columns: ColumnsObject, exclude_system_columns: boolean): Record<string, boolean>;
405
407
  export function getMantineValuesObject(formValues: ValuesObject, columns: ColumnsObject, exclude_system_columns: boolean): ValuesObject;
406
408
  export function getMantineInitialValuesObject(columns: ColumnsObject, columnNames?: string[]): ValuesObject;
@@ -465,9 +467,8 @@ export interface UseEntityFormReturnType {
465
467
  form: UseFormReturnType<ValuesObject>;
466
468
  status: OperationStatus<DBStatusResult | ValuesObject>;
467
469
  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>;
470
+ handleCancel: (silent?: boolean, element?: HTMLElement) => Promise<boolean>;
471
+ handleSubmit: (event?: React.FormEvent<HTMLFormElement>, silent?: boolean, element?: HTMLElement, requestOptions?: MicroMRequestOptions) => Promise<boolean>;
471
472
  performGetData: () => Promise<boolean>;
472
473
  saveAndGet: (get_data_if_saved: boolean, override_values?: ValuesObject, requestOptions?: MicroMRequestOptions) => Promise<OperationStatus<DBStatusResult>>;
473
474
  configureField: (column: EntityColumn<Value>, validation?: ValidationRule) => void;
@@ -481,96 +482,11 @@ export interface UseEntityFormReturnType {
481
482
  clearAllAsyncErrors: () => void;
482
483
  isFormValid: () => boolean;
483
484
  isFormFieldValid: (column_name: string) => boolean;
485
+ activeFormActions: EntityFormActions;
484
486
  silentSave: (requestOptions?: MicroMRequestOptions) => Promise<SilentSaveResult>;
485
487
  }
486
488
  export const UseEntityFormDefaultProps: Partial<UseEntityFormOptions>;
487
489
  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
490
  export interface EntityFormProps extends PropsWithChildren {
575
491
  showOK?: boolean;
576
492
  showCancel?: boolean;
@@ -580,8 +496,6 @@ export interface EntityFormProps extends PropsWithChildren {
580
496
  OKText?: ReactNode;
581
497
  CancelText?: ReactNode;
582
498
  CloseText?: ReactNode;
583
- OKActionName?: string;
584
- CancelActionName?: string;
585
499
  formAPI: UseEntityFormReturnType;
586
500
  invalidFieldsLabel?: string;
587
501
  showHelpButton?: boolean;
@@ -840,6 +754,92 @@ export const DefaultGridProps: Partial<GridOptions>;
840
754
  export const DefaultGridColumnProps: Partial<GridColumn>;
841
755
  export const Grid: ForwardRefExoticComponent<GridOptions & RefAttributes<GridImperative>>;
842
756
  export function GridGlobalStyles(): JSX.Element;
757
+ export interface UseDataGridToolbarFiltersProps {
758
+ filterValues: ValuesObject | undefined;
759
+ setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
760
+ filtersDescription: ValuesObject | undefined;
761
+ setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
762
+ client?: MicroMClient;
763
+ parentKeys?: ValuesObject;
764
+ FiltersEntity?: EntityConstructor;
765
+ searchData: SelectItem[];
766
+ setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
767
+ setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
768
+ onRefreshClick: (searchText: string[] | undefined) => void;
769
+ onSearchTextChange?: (text: string[] | undefined) => void;
770
+ filtersFormSize: MantineNumberSize;
771
+ visibleFilters?: string[];
772
+ initialColumnFilters?: ColumnsObject;
773
+ filterInputRef: RefObject<HTMLInputElement>;
774
+ }
775
+ export function useDataGridToolbarFilters(props: UseDataGridToolbarFiltersProps): {
776
+ handleFilterButtonClick: (e: React.MouseEvent) => Promise<void>;
777
+ handleSearchFilterInputEnter: (e: React.KeyboardEvent) => void;
778
+ handleClearFiltersClick: (e: React.MouseEvent) => void;
779
+ createSearchPhrase: (filter: string) => {
780
+ value: string;
781
+ label: string;
782
+ };
783
+ queryText: string;
784
+ filtersDescription: ValuesObject | undefined;
785
+ setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
786
+ setQueryText: Dispatch<SetStateAction<string>>;
787
+ handleSearchFilterInputOnChange: (searchFilter: string[]) => void;
788
+ updateFilterValuesAndDescription: (columns: ColumnsObject) => void;
789
+ };
790
+ export type DataGridToolbarSizes = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
791
+ export interface DataGridToolbarOptions {
792
+ size?: DataGridToolbarSizes;
793
+ client?: MicroMClient;
794
+ searchPlaceholder?: string;
795
+ hideCheckboxToggle?: boolean;
796
+ onCheckboxToggle?: () => void;
797
+ onSearchTextChange?: (text: string[] | undefined) => void;
798
+ onRefreshClick: (searchText: string[] | undefined) => void;
799
+ onExportClick: () => void;
800
+ autoFocus?: boolean;
801
+ toolbarIconVariant?: ActionIconVariant;
802
+ enableExport?: boolean;
803
+ refreshTooltip?: string;
804
+ exportTooltip?: string;
805
+ selectRowsTooltip?: string;
806
+ searchText: string[] | undefined;
807
+ setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
808
+ searchData: SelectItem[];
809
+ setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
810
+ maxSearchTerms?: number;
811
+ FiltersEntity?: EntityConstructor;
812
+ filterTooltip?: string;
813
+ parentKeys?: ValuesObject;
814
+ filterValues: ValuesObject | undefined;
815
+ setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
816
+ filtersDescription: ValuesObject | undefined;
817
+ setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
818
+ clearFiltersTooltip?: string;
819
+ filtersFormSize: MantineNumberSize;
820
+ enableImport?: boolean;
821
+ importTooltip?: string;
822
+ onImportClick?: () => void;
823
+ filtersBadgeSize?: MantineSize;
824
+ filtersBadgeVariant?: BadgeVariant;
825
+ showAppliedFilters?: boolean;
826
+ showRefreshButton?: boolean;
827
+ showSelectRowsButton?: boolean;
828
+ showFiltersButton?: boolean;
829
+ showSearchInput?: boolean;
830
+ visibleFilters?: string[];
831
+ initialColumnFilters?: ColumnsObject;
832
+ filtersTitle?: string;
833
+ editFiltersLabel?: string;
834
+ clearFiltersLabel?: string;
835
+ filtersAccordionVariant?: AccordionVariant;
836
+ showColumnsConfig?: boolean;
837
+ configMenuOpened?: boolean;
838
+ setConfigMenuOpened?: Dispatch<SetStateAction<boolean>>;
839
+ configMenuDropdown?: ReactNode;
840
+ }
841
+ export const DataGridToolbarDefaultProps: Partial<DataGridToolbarOptions>;
842
+ export function DataGridToolbar(props: DataGridToolbarOptions): JSX.Element;
843
843
  export interface DataGridStateProps {
844
844
  setRefresh: React.Dispatch<React.SetStateAction<boolean>>;
845
845
  setSearchText: React.Dispatch<React.SetStateAction<string[] | undefined>>;
@@ -1171,6 +1171,17 @@ export interface EntityClientAction {
1171
1171
  showActionInViewMode?: boolean;
1172
1172
  onClick: (props: EntityClientActionOnClickProps) => Promise<boolean>;
1173
1173
  }
1174
+ export interface EntityFormClientActionOnClickProps extends EntityClientActionOnClickProps {
1175
+ silent: boolean;
1176
+ }
1177
+ export interface EntityFormClientAction extends Omit<EntityClientAction, 'onClick'> {
1178
+ onClick: (props: EntityFormClientActionOnClickProps) => Promise<boolean>;
1179
+ }
1180
+ export interface EntityFormActions {
1181
+ OK?: EntityFormClientAction;
1182
+ Cancel?: EntityFormClientAction;
1183
+ }
1184
+ export type EntityFormActionOverrides = Partial<Record<FormMode | 'Allways', EntityFormActions>>;
1174
1185
  export interface EntityProc {
1175
1186
  name: string;
1176
1187
  parms?: Record<string, Value>;
@@ -1204,6 +1215,7 @@ export class EntityDefinition {
1204
1215
  lookups: Record<string, EntityLookup>;
1205
1216
  serverActions: Record<string, EntityServerAction>;
1206
1217
  clientActions: Record<string, EntityClientAction>;
1218
+ formActionOverrides: EntityFormActionOverrides;
1207
1219
  /**
1208
1220
  * Ordered allowlist of columns available for data imports.
1209
1221
  * A null value uses the import flow's inferred destinations; an empty array exposes no destinations.
@@ -3709,12 +3721,6 @@ export function useMultiDataMapGrid({ dataMapView, viewState, selectionMode, map
3709
3721
  entity: _Entity1<_EntityDefinition1>;
3710
3722
  formMode: "view" | "add" | "edit" | undefined;
3711
3723
  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
3724
  onModalClosed: (cancelled?: boolean) => void;
3719
3725
  onModalSaved: (new_status: _OperationStatus1<_DBStatusResult1 | null>) => void;
3720
3726
  modalFormSize: string | number | undefined;
@@ -3726,6 +3732,12 @@ export function useMultiDataMapGrid({ dataMapView, viewState, selectionMode, map
3726
3732
  columnBorders: boolean;
3727
3733
  rowBorders: boolean;
3728
3734
  autoSelectFirstRow: boolean;
3735
+ onSearchTextChange: _DataViewSearchCallback1;
3736
+ visibleFilters: string[];
3737
+ maxSearchTerms: number;
3738
+ enableImport: boolean;
3739
+ showSelectRowsButton: boolean;
3740
+ limit: "0" | "50" | "100" | "500" | "1000" | "10000" | undefined;
3729
3741
  viewName: string;
3730
3742
  refreshOnInit: boolean;
3731
3743
  onDataRefresh: (result: _OperationStatus1<_DataResult1[]>) => void;