@mcurros2/microm 1.1.375-0 → 1.1.378-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 +1835 -1460
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1609 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { AlertProps, DefaultMantineColor, ProgressProps, MantineNumberSize, Variants, StepperProps, MantineTheme, TextareaProps, TextInputProps, MantineColor, PasswordInputProps, NotificationProps, CheckboxProps, ButtonProps, ActionIconProps, NumberInputProps, ImageProps, MultiSelectProps,
|
|
1
|
+
import { AlertProps, DefaultMantineColor, ProgressProps, MantineNumberSize, Variants, StepperProps, SelectItem, BadgeVariant, MantineSize, CardProps, MantineTheme, TextareaProps, TextInputProps, MantineColor, PasswordInputProps, NotificationProps, CheckboxProps, ButtonProps, ActionIconProps, NumberInputProps, ImageProps, 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
|
-
import React, { JSXElementConstructor, ReactElement, ReactNode, PropsWithChildren, RefAttributes, ForwardRefExoticComponent,
|
|
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";
|
|
5
5
|
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
|
+
import { AccordionVariant } from "@mantine/core/lib/Accordion/Accordion.types";
|
|
9
|
+
import { UseEntityFormReturnType as _UseEntityFormReturnType1, 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, DataGridLabels as _DataGridLabels1, GridRecord as _GridRecord1, GridSelectionChangedCallback as _GridSelectionChangedCallback1, GridDoubleClickCallback as _GridDoubleClickCallback1, EntityClientAction as _EntityClientAction1, GridColumn as _GridColumn1 } from "src";
|
|
8
10
|
import { PrismProps } from "@mantine/prism";
|
|
9
11
|
import { DateInputProps, TimeInputProps, CalendarProps } from "@mantine/dates";
|
|
10
12
|
import { DropzoneProps } from "@mantine/dropzone";
|
|
11
|
-
import { UseEntityFormReturnType as _UseEntityFormReturnType1, 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, DataGridLabels as _DataGridLabels1, GridColumnsOverrides as _GridColumnsOverrides1, DataGridSelectionChangedCallback as _DataGridSelectionChangedCallback1, DataViewSearchCallback as _DataViewSearchCallback1, GridRecord as _GridRecord1, GridSelectionChangedCallback as _GridSelectionChangedCallback1, GridDoubleClickCallback as _GridDoubleClickCallback1, EntityClientAction as _EntityClientAction1, GridColumn as _GridColumn1 } from "src";
|
|
12
|
-
import { AccordionVariant } from "@mantine/core/lib/Accordion/Accordion.types";
|
|
13
13
|
import { SpotlightAction } from "@mantine/spotlight";
|
|
14
14
|
import { Loader, LoaderOptions } from "@googlemaps/js-api-loader";
|
|
15
15
|
import { Cluster, ClusterStats, Marker, MarkerClustererOptions } from "@googlemaps/markerclusterer";
|
|
@@ -527,1554 +527,1645 @@ export interface EntityFormModalProps {
|
|
|
527
527
|
}
|
|
528
528
|
export const EntityFormModalDefaultProps: Partial<EntityFormModalProps>;
|
|
529
529
|
export function EntityFormModal(props: EntityFormModalProps): null;
|
|
530
|
-
export
|
|
531
|
-
export
|
|
532
|
-
|
|
533
|
-
}
|
|
534
|
-
export interface NumberIndexer {
|
|
535
|
-
[key: number]: any;
|
|
530
|
+
export declare namespace query {
|
|
531
|
+
export function html(str: any): Query | undefined;
|
|
532
|
+
import version = Query.version;
|
|
533
|
+
export { version };
|
|
536
534
|
}
|
|
537
|
-
export
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
535
|
+
export declare namespace w2locale {
|
|
536
|
+
let locale: string;
|
|
537
|
+
let dateFormat: string;
|
|
538
|
+
let timeFormat: string;
|
|
539
|
+
let datetimeFormat: string;
|
|
540
|
+
let currencyPrefix: string;
|
|
541
|
+
let currencySuffix: string;
|
|
542
|
+
let currencyPrecision: number;
|
|
543
|
+
let groupSymbol: string;
|
|
544
|
+
let decimalSymbol: string;
|
|
545
|
+
let shortmonths: string[];
|
|
546
|
+
let fullmonths: string[];
|
|
547
|
+
let shortdays: string[];
|
|
548
|
+
let fulldays: string[];
|
|
549
|
+
let weekStarts: string;
|
|
550
|
+
let phrases: {
|
|
551
|
+
'${count} letters or more...': string;
|
|
552
|
+
'Add new record': string;
|
|
553
|
+
'Add New': string;
|
|
554
|
+
'Advanced Search': string;
|
|
555
|
+
after: string;
|
|
556
|
+
'AJAX error. See console for more details.': string;
|
|
557
|
+
'All Fields': string;
|
|
558
|
+
All: string;
|
|
559
|
+
Any: string;
|
|
560
|
+
'Are you sure you want to delete ${count} ${records}?': string;
|
|
561
|
+
'Attach files by dragging and dropping or Click to Select': string;
|
|
562
|
+
before: string;
|
|
563
|
+
'begins with': string;
|
|
564
|
+
begins: string;
|
|
565
|
+
between: string;
|
|
566
|
+
buffered: string;
|
|
567
|
+
Cancel: string;
|
|
568
|
+
Close: string;
|
|
569
|
+
Column: string;
|
|
570
|
+
Confirmation: string;
|
|
571
|
+
contains: string;
|
|
572
|
+
Copied: string;
|
|
573
|
+
'Copy to clipboard': string;
|
|
574
|
+
'Current Date & Time': string;
|
|
575
|
+
'Delete selected records': string;
|
|
576
|
+
Delete: string;
|
|
577
|
+
'Do you want to delete search item "${item}"?': string;
|
|
578
|
+
'Edit selected record': string;
|
|
579
|
+
Edit: string;
|
|
580
|
+
'Empty list': string;
|
|
581
|
+
'ends with': string;
|
|
582
|
+
ends: string;
|
|
583
|
+
'Field should be at least ${count} characters.': string;
|
|
584
|
+
Hide: string;
|
|
585
|
+
in: string;
|
|
586
|
+
'is not': string;
|
|
587
|
+
is: string;
|
|
588
|
+
'less than': string;
|
|
589
|
+
'Line #': string;
|
|
590
|
+
'Load ${count} more...': string;
|
|
591
|
+
'Loading...': string;
|
|
592
|
+
'Maximum number of files is ${count}': string;
|
|
593
|
+
'Maximum total size is ${count}': string;
|
|
594
|
+
Modified: string;
|
|
595
|
+
'more than': string;
|
|
596
|
+
'Multiple Fields': string;
|
|
597
|
+
Name: string;
|
|
598
|
+
'No items found': string;
|
|
599
|
+
'No matches': string;
|
|
600
|
+
No: string;
|
|
601
|
+
none: string;
|
|
602
|
+
'Not a float': string;
|
|
603
|
+
'Not a hex number': string;
|
|
604
|
+
'Not a valid date': string;
|
|
605
|
+
'Not a valid email': string;
|
|
606
|
+
'Not alpha-numeric': string;
|
|
607
|
+
'Not an integer': string;
|
|
608
|
+
'Not in money format': string;
|
|
609
|
+
'not in': string;
|
|
610
|
+
Notification: string;
|
|
611
|
+
of: string;
|
|
612
|
+
Ok: string;
|
|
613
|
+
Opacity: string;
|
|
614
|
+
'Record ID': string;
|
|
615
|
+
record: string;
|
|
616
|
+
records: string;
|
|
617
|
+
'Refreshing...': string;
|
|
618
|
+
'Reload data in the list': string;
|
|
619
|
+
Remove: string;
|
|
620
|
+
'Remove This Field': string;
|
|
621
|
+
'Request aborted.': string;
|
|
622
|
+
'Required field': string;
|
|
623
|
+
Reset: string;
|
|
624
|
+
'Restore Default State': string;
|
|
625
|
+
'Returned data is not in valid JSON format.': string;
|
|
626
|
+
'Save changed records': string;
|
|
627
|
+
'Save Grid State': string;
|
|
628
|
+
Save: string;
|
|
629
|
+
'Saved Searches': string;
|
|
630
|
+
'Saving...': string;
|
|
631
|
+
'Search took ${count} seconds': string;
|
|
632
|
+
Search: string;
|
|
633
|
+
'Select Hour': string;
|
|
634
|
+
'Select Minute': string;
|
|
635
|
+
selected: string;
|
|
636
|
+
'Server Response ${count} seconds': string;
|
|
637
|
+
'Show/hide columns': string;
|
|
638
|
+
Show: string;
|
|
639
|
+
Size: string;
|
|
640
|
+
Skip: string;
|
|
641
|
+
'Sorting took ${count} seconds': string;
|
|
642
|
+
'Type to search...': string;
|
|
643
|
+
Type: string;
|
|
644
|
+
Yes: string;
|
|
645
|
+
Yesterday: string;
|
|
646
|
+
'Your remote data source record count has changed, reloading from the first record.': string;
|
|
647
|
+
};
|
|
544
648
|
}
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
export type ButtonVariant = 'gradient' | 'subtle' | 'default' | 'outline' | 'filled' | 'light' | 'white';
|
|
548
|
-
export type latLng = {
|
|
549
|
-
lat: number;
|
|
550
|
-
lng: number;
|
|
649
|
+
type w2record = Record<string, unknown> & {
|
|
650
|
+
recid: number;
|
|
551
651
|
};
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
652
|
+
type w2recordId = string | number;
|
|
653
|
+
type w2columnField = string;
|
|
654
|
+
export type GridSelectionMode = 'multi' | 'single';
|
|
655
|
+
export type GridColumnFormat = 'url' | 'email' | 'string' | 'check' | 'image' | 'html';
|
|
656
|
+
export type GridColumnRender = (value: unknown, cellElement?: HTMLElement, record?: GridRecord, field?: w2columnField) => ReactNode;
|
|
657
|
+
export type GridRecord = w2record;
|
|
658
|
+
export type GridSourceRecord = Record<string | number, unknown> | unknown[];
|
|
659
|
+
export type GridRecordId = w2recordId;
|
|
660
|
+
export type GridColumn = {
|
|
661
|
+
field: string;
|
|
662
|
+
text: string;
|
|
663
|
+
hidden?: boolean;
|
|
664
|
+
format?: GridColumnFormat;
|
|
665
|
+
autoSizeMax?: number;
|
|
666
|
+
render?: GridColumnRender;
|
|
667
|
+
sqlType?: SQLType;
|
|
559
668
|
};
|
|
560
|
-
export
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
export
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
669
|
+
export type GridColumnsOverrides = Record<string | number, Partial<GridColumn>>;
|
|
670
|
+
export type GridSelection = GridRecord[];
|
|
671
|
+
export type GridDoubleClickCallback = (record: GridRecord) => void;
|
|
672
|
+
export type GridSelectionChangedCallback = (selection: GridSelection) => void;
|
|
673
|
+
export type GridOptions = {
|
|
674
|
+
columns?: GridColumn[];
|
|
675
|
+
rows?: GridSourceRecord[];
|
|
676
|
+
gridHeight?: string | number | 'auto' | 'flex-grow';
|
|
677
|
+
selectionMode?: GridSelectionMode;
|
|
678
|
+
onDoubleClick?: GridDoubleClickCallback;
|
|
679
|
+
preserveSelection?: boolean;
|
|
680
|
+
autoSelectFirstRow?: boolean;
|
|
681
|
+
onSelectionChanged?: GridSelectionChangedCallback;
|
|
682
|
+
showSelectCheckbox?: boolean;
|
|
683
|
+
rowHeight?: number;
|
|
684
|
+
stripped?: boolean;
|
|
685
|
+
highlightOnHover?: boolean;
|
|
686
|
+
columnBorders?: boolean;
|
|
687
|
+
rowBorders?: boolean;
|
|
688
|
+
withBorder?: boolean;
|
|
689
|
+
autoSizeColumnsOnLoad?: boolean;
|
|
690
|
+
columnsOverrides?: GridColumnsOverrides;
|
|
691
|
+
selectedRows?: GridSelection;
|
|
692
|
+
setSelectedRows?: (rows: GridSelection) => void;
|
|
693
|
+
timeZoneOffset?: number;
|
|
694
|
+
};
|
|
695
|
+
export type GridImperative = {};
|
|
696
|
+
export const DefaultGridProps: Partial<GridOptions>;
|
|
697
|
+
export const DefaultGridColumnProps: Partial<GridColumn>;
|
|
698
|
+
export const Grid: ForwardRefExoticComponent<GridOptions & RefAttributes<GridImperative>>;
|
|
699
|
+
export function GridGlobalStyles(): JSX.Element;
|
|
700
|
+
export interface UseDataGridToolbarFiltersProps {
|
|
701
|
+
filterValues: ValuesObject | undefined;
|
|
702
|
+
setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
|
|
703
|
+
filtersDescription: ValuesObject | undefined;
|
|
704
|
+
setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
|
|
705
|
+
client?: MicroMClient;
|
|
706
|
+
parentKeys?: ValuesObject;
|
|
707
|
+
FiltersEntity?: EntityConstructor;
|
|
708
|
+
searchData: SelectItem[];
|
|
709
|
+
setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
|
|
710
|
+
setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
|
|
711
|
+
onRefreshClick: (searchText: string[] | undefined) => void;
|
|
712
|
+
onSearchTextChange?: (text: string[] | undefined) => void;
|
|
713
|
+
filtersFormSize: MantineNumberSize;
|
|
714
|
+
visibleFilters?: string[];
|
|
715
|
+
initialColumnFilters?: ColumnsObject;
|
|
716
|
+
filterInputRef: RefObject<HTMLInputElement>;
|
|
589
717
|
}
|
|
590
|
-
export
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
718
|
+
export function useDataGridToolbarFilters(props: UseDataGridToolbarFiltersProps): {
|
|
719
|
+
handleFilterButtonClick: (e: React.MouseEvent) => Promise<void>;
|
|
720
|
+
handleSearchFilterInputEnter: (e: React.KeyboardEvent) => void;
|
|
721
|
+
handleClearFiltersClick: (e: React.MouseEvent) => void;
|
|
722
|
+
createSearchPhrase: (filter: string) => {
|
|
723
|
+
value: string;
|
|
724
|
+
label: string;
|
|
725
|
+
};
|
|
726
|
+
queryText: string;
|
|
727
|
+
filtersDescription: ValuesObject | undefined;
|
|
728
|
+
setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
|
|
729
|
+
setQueryText: Dispatch<SetStateAction<string>>;
|
|
730
|
+
handleSearchFilterInputOnChange: (searchFilter: string[]) => void;
|
|
731
|
+
updateFilterValuesAndDescription: (columns: ColumnsObject) => void;
|
|
732
|
+
};
|
|
733
|
+
export type DataGridToolbarSizes = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
734
|
+
export interface DataGridToolbarOptions {
|
|
735
|
+
size?: DataGridToolbarSizes;
|
|
736
|
+
client?: MicroMClient;
|
|
737
|
+
searchPlaceholder?: string;
|
|
738
|
+
hideCheckboxToggle?: boolean;
|
|
739
|
+
onCheckboxToggle?: () => void;
|
|
740
|
+
onSearchTextChange?: (text: string[] | undefined) => void;
|
|
741
|
+
onRefreshClick: (searchText: string[] | undefined) => void;
|
|
742
|
+
onExportClick: () => void;
|
|
743
|
+
autoFocus?: boolean;
|
|
744
|
+
toolbarIconVariant?: ActionIconVariant;
|
|
745
|
+
enableExport?: boolean;
|
|
746
|
+
refreshTooltip?: string;
|
|
747
|
+
exportTooltip?: string;
|
|
748
|
+
selectRowsTooltip?: string;
|
|
749
|
+
searchText: string[] | undefined;
|
|
750
|
+
setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
|
|
751
|
+
searchData: SelectItem[];
|
|
752
|
+
setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
|
|
753
|
+
maxSearchTerms?: number;
|
|
754
|
+
FiltersEntity?: EntityConstructor;
|
|
755
|
+
filterTooltip?: string;
|
|
756
|
+
parentKeys?: ValuesObject;
|
|
757
|
+
filterValues: ValuesObject | undefined;
|
|
758
|
+
setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
|
|
759
|
+
filtersDescription: ValuesObject | undefined;
|
|
760
|
+
setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
|
|
761
|
+
clearFiltersTooltip?: string;
|
|
762
|
+
filtersFormSize: MantineNumberSize;
|
|
763
|
+
enableImport?: boolean;
|
|
764
|
+
importTooltip?: string;
|
|
765
|
+
onImportClick?: () => void;
|
|
766
|
+
filtersBadgeSize?: MantineSize;
|
|
767
|
+
filtersBadgeVariant?: BadgeVariant;
|
|
768
|
+
showAppliedFilters?: boolean;
|
|
769
|
+
showRefreshButton?: boolean;
|
|
770
|
+
showSelectRowsButton?: boolean;
|
|
771
|
+
showFiltersButton?: boolean;
|
|
772
|
+
showSearchInput?: boolean;
|
|
773
|
+
visibleFilters?: string[];
|
|
774
|
+
initialColumnFilters?: ColumnsObject;
|
|
775
|
+
filtersTitle?: string;
|
|
776
|
+
editFitersLabel?: string;
|
|
777
|
+
clearFiltersLabel?: string;
|
|
778
|
+
filtersAccordionVariant?: AccordionVariant;
|
|
779
|
+
showColumnsConfig?: boolean;
|
|
780
|
+
configMenuOpened?: boolean;
|
|
781
|
+
setConfigMenuOpened?: Dispatch<SetStateAction<boolean>>;
|
|
782
|
+
configMenuDropdown?: ReactNode;
|
|
608
783
|
}
|
|
609
|
-
export
|
|
610
|
-
|
|
611
|
-
|
|
784
|
+
export const DataGridToolbarDefaultProps: Partial<DataGridToolbarOptions>;
|
|
785
|
+
export function DataGridToolbar(props: DataGridToolbarOptions): JSX.Element;
|
|
786
|
+
export interface DataGridStateProps {
|
|
787
|
+
setRefresh: React.Dispatch<React.SetStateAction<boolean>>;
|
|
788
|
+
setSearchText: React.Dispatch<React.SetStateAction<string[] | undefined>>;
|
|
789
|
+
executeViewState: OperationStatus<DataResult[]>;
|
|
612
790
|
}
|
|
613
|
-
export interface
|
|
614
|
-
|
|
791
|
+
export interface DataGridLabels extends EntityUILabels {
|
|
792
|
+
rowsReturnedLabel: string;
|
|
793
|
+
selectedRowsLabel: string;
|
|
794
|
+
limitLabel: string;
|
|
795
|
+
rowsLabel: string;
|
|
796
|
+
unlimitedLabel: string;
|
|
615
797
|
}
|
|
616
|
-
export
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
798
|
+
export type DataGridSelectionChangedCallback = (selection: GridSelection, keys: DataGridSelectionKeys) => void;
|
|
799
|
+
export interface DataGridProps extends UseEntityUIProps {
|
|
800
|
+
viewName?: string;
|
|
801
|
+
search?: string[];
|
|
802
|
+
limit?: DataViewLimit;
|
|
803
|
+
refreshOnInit?: boolean;
|
|
804
|
+
selectionMode: GridSelectionMode;
|
|
805
|
+
preserveSelection?: boolean;
|
|
806
|
+
autoFocus?: boolean;
|
|
807
|
+
onDataRefresh?: (result: OperationStatus<DataResult[]>) => void;
|
|
808
|
+
onSearch?: DataViewSearchCallback;
|
|
809
|
+
onSearchTextChange?: DataViewSearchCallback;
|
|
810
|
+
allwaysRefreshOnEntityClose?: boolean;
|
|
811
|
+
toolbarIconVariant?: ActionIconVariant;
|
|
812
|
+
actionsButtonVariant?: ButtonVariant;
|
|
813
|
+
toolbarSize?: DataGridToolbarSizes;
|
|
814
|
+
enableAdd?: boolean;
|
|
815
|
+
enableEdit?: boolean;
|
|
816
|
+
enableDelete?: boolean;
|
|
817
|
+
enableView?: boolean;
|
|
818
|
+
enableExport?: boolean;
|
|
819
|
+
filtersFormSize?: MantineNumberSize;
|
|
820
|
+
showActions?: boolean;
|
|
821
|
+
setInitialFiltersFromColumns?: boolean;
|
|
822
|
+
visibleFilters?: string[];
|
|
823
|
+
maxSearchTerms?: number;
|
|
824
|
+
columnBorders?: boolean;
|
|
825
|
+
rowBorders?: boolean;
|
|
826
|
+
withBorder?: boolean;
|
|
827
|
+
autoSizeColumnsOnLoad?: boolean;
|
|
828
|
+
labels?: DataGridLabels;
|
|
829
|
+
columnsOverrides?: GridColumnsOverrides;
|
|
830
|
+
renderOnlyWhenVisible?: boolean;
|
|
831
|
+
showToolbar?: boolean;
|
|
832
|
+
showActionsToolbar?: boolean;
|
|
833
|
+
enableImport?: boolean;
|
|
834
|
+
gridHeight?: string | number | 'auto' | 'flex-grow';
|
|
835
|
+
minGridHeight?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'none';
|
|
836
|
+
autoSelectFirstRow?: boolean;
|
|
837
|
+
onSelectionChanged?: DataGridSelectionChangedCallback;
|
|
838
|
+
doubleClickAction?: 'edit' | 'view' | 'none' | ((record: GridRecord) => void);
|
|
839
|
+
formMode?: FormMode;
|
|
840
|
+
notExportableColumns?: number[];
|
|
841
|
+
showColumnsConfigMenu?: boolean;
|
|
842
|
+
initialHiddenColumns?: number[];
|
|
843
|
+
showSelectRowsButton?: boolean;
|
|
844
|
+
initialSelectRowsToggle?: boolean;
|
|
624
845
|
}
|
|
625
|
-
export
|
|
626
|
-
export interface
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
846
|
+
export type DataGridSelectionKeys = ValuesObject[];
|
|
847
|
+
export interface DataGridColumnsMenuProps {
|
|
848
|
+
columns?: GridColumn[];
|
|
849
|
+
setColumns: (columns: GridColumn[]) => void;
|
|
850
|
+
setOpened: (opened: boolean) => void;
|
|
630
851
|
}
|
|
631
|
-
export
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
mapSelectRecordsRenderer?: DataMapProps['selectRecordsRenderer'];
|
|
852
|
+
export function DataGridColumnsMenu(props: DataGridColumnsMenuProps): JSX.Element;
|
|
853
|
+
export const DataGridDefaultProps: Partial<DataGridProps>;
|
|
854
|
+
export function DataGrid(props: DataGridProps): JSX.Element;
|
|
855
|
+
export interface DataGridFormProps extends DataGridProps {
|
|
856
|
+
customTitle?: ReactNode;
|
|
857
|
+
title?: string;
|
|
858
|
+
icon?: ReactNode;
|
|
859
|
+
helpText?: string;
|
|
860
|
+
formMode: FormMode;
|
|
861
|
+
showTitle?: boolean;
|
|
642
862
|
}
|
|
643
|
-
export
|
|
644
|
-
|
|
863
|
+
export const DataGridFormDefaultProps: Partial<DataGridFormProps>;
|
|
864
|
+
export function DataGridForm(props: DataGridFormProps): JSX.Element;
|
|
865
|
+
export interface useDataGridFormType {
|
|
866
|
+
open: ({ entity, viewName, onClosed, selectionMode, modalProps, search, modalTitle, gridTitle }: ModalDataGridProps) => void;
|
|
867
|
+
}
|
|
868
|
+
export interface ModalDataGridProps {
|
|
869
|
+
entity: Entity<EntityDefinition>;
|
|
870
|
+
viewName: string;
|
|
871
|
+
onClosed?: () => void;
|
|
872
|
+
modalProps?: ModalSettings;
|
|
873
|
+
selectionMode?: GridSelectionMode;
|
|
874
|
+
search?: string[] | undefined;
|
|
875
|
+
modalTitle?: string;
|
|
876
|
+
gridTitle?: React.ReactNode;
|
|
877
|
+
formMode: FormMode;
|
|
878
|
+
}
|
|
879
|
+
export function useDataGridForm(): (props: ModalDataGridProps) => Promise<void>;
|
|
880
|
+
export interface DataGridPageProps extends Omit<DataGridProps, 'entity' | 'title'> {
|
|
881
|
+
title?: string;
|
|
882
|
+
icon?: ReactNode;
|
|
883
|
+
helpText?: string;
|
|
884
|
+
formMode: FormMode;
|
|
645
885
|
client: MicroMClient;
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
* Get the data for the current row and fill the columns values with it.
|
|
649
|
-
*/
|
|
650
|
-
getData(abort_signal?: AbortSignal | null): Promise<boolean>;
|
|
651
|
-
/**
|
|
652
|
-
* Add the data for the current row and fill the key columns values with the returned auto-numeric (if any).
|
|
653
|
-
*/
|
|
654
|
-
addData(abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[], ignoreRecordExists?: boolean, requestOptions?: MicroMRequestOptions): Promise<DBStatusResult>;
|
|
655
|
-
/**
|
|
656
|
-
* Edits the data for the current row.
|
|
657
|
-
*/
|
|
658
|
-
editData(abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[], requestOptions?: MicroMRequestOptions): Promise<DBStatusResult>;
|
|
659
|
-
/**
|
|
660
|
-
* Deletes the data for the current row.
|
|
661
|
-
*/
|
|
662
|
-
deleteData(recordsSelection?: ValuesObject[], abort_signal?: AbortSignal | null, parentKeys?: ValuesObject | null): Promise<DBStatusResult>;
|
|
663
|
-
/**
|
|
664
|
-
* Lookup the description for an entity.
|
|
665
|
-
*/
|
|
666
|
-
lookupData(abort_signal?: AbortSignal | null, parentKeys?: ValuesObject | null, proc_name?: string | null): Promise<string>;
|
|
667
|
-
/**
|
|
668
|
-
* Import data
|
|
669
|
-
*/
|
|
670
|
-
importData(abort_signal: (AbortSignal | null) | undefined, import_procname: (string | null) | undefined, parentKeys: (ValuesObject | null) | undefined, fileprocess_id: string): Promise<ImpDataResult>;
|
|
671
|
-
executeView(view: EntityView, view_parms?: ValuesObject, limit?: string | null, search?: string[] | null, abort_signal?: AbortSignal | null): Promise<DataResult[]>;
|
|
672
|
-
downloadBlobFile(blob: Blob, filename: string): void;
|
|
673
|
-
exportView(view: EntityView, view_parms?: ValuesObject, limit?: string | null, search?: string[] | null, abort_signal?: AbortSignal | null): Promise<Blob>;
|
|
674
|
-
exportProc(proc: EntityProc, proc_parms?: ValuesObject, abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[]): Promise<Blob>;
|
|
675
|
-
executeProc(proc: EntityProc, proc_parms?: ValuesObject, abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[]): Promise<DataResult[]>;
|
|
676
|
-
executeProcess(proc: EntityProc, proc_parms?: ValuesObject, abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[]): Promise<DBStatusResult>;
|
|
677
|
-
executeServerAction<TReturn extends Record<string, unknown>>(action: EntityServerAction, action_parms?: ValuesObject, abort_signal?: AbortSignal | null): Promise<TReturn>;
|
|
886
|
+
entityConstructor: (client: MicroMClient) => Entity<EntityDefinition>;
|
|
887
|
+
showTitle?: boolean;
|
|
678
888
|
}
|
|
679
|
-
export
|
|
680
|
-
export
|
|
681
|
-
|
|
682
|
-
get name(): string;
|
|
683
|
-
get def(): T;
|
|
684
|
-
parentKeys: ValuesObject;
|
|
685
|
-
API: EntityAPI;
|
|
686
|
-
Form: EntityFormComponentPromise | "AutoForm" | "AutoFiltersForm" | null;
|
|
687
|
-
Title: string;
|
|
688
|
-
HelpText?: string;
|
|
689
|
-
Icon?: ComponentType<IconProps>;
|
|
690
|
-
constructor(client: MicroMClient, def: T, parentKeys?: ValuesObject, setParentKeys?: boolean);
|
|
691
|
-
static clone(entity: Entity<EntityDefinition>): Entity<EntityDefinition>;
|
|
889
|
+
export const DataGridPageDefaultProps: Partial<DataGridPageProps>;
|
|
890
|
+
export function DataGridPage(props: DataGridPageProps): JSX.Element;
|
|
891
|
+
export interface UseViewFiltersProps extends Omit<UseEntityFormOptions, 'noSaveOnSubmit'> {
|
|
692
892
|
}
|
|
693
|
-
export function
|
|
694
|
-
export
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
export function
|
|
699
|
-
export
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
export function isEntityLookup(obj: unknown): obj is EntityLookup;
|
|
707
|
-
export function getRequiredColumns(entity?: Entity<EntityDefinition>): string[];
|
|
708
|
-
export interface ColumnMapRecord {
|
|
709
|
-
columnName: string;
|
|
710
|
-
propertyName: string;
|
|
711
|
-
}
|
|
712
|
-
export type ColumnMap = ColumnMapRecord[];
|
|
713
|
-
export interface ColumnsMapRecord<T extends Partial<ColumnsObject>, V> {
|
|
714
|
-
columnName: keyof T;
|
|
715
|
-
propertyName: keyof V;
|
|
893
|
+
export function useViewFiltersForm(props: UseViewFiltersProps): _UseEntityFormReturnType1;
|
|
894
|
+
export interface UseResolvedEntityBuilderResult<TResult> {
|
|
895
|
+
result: TResult | null;
|
|
896
|
+
ready: boolean;
|
|
897
|
+
}
|
|
898
|
+
export function useResolvedEntityBuilder<TResult>(client: MicroMClient, parentKeys: ValuesObject | undefined, source: EntitySource<TResult>): UseResolvedEntityBuilderResult<TResult>;
|
|
899
|
+
export type SearchCallback = (search: string[] | undefined) => void;
|
|
900
|
+
interface UseRetainedSearchOptions {
|
|
901
|
+
retainSearch?: string;
|
|
902
|
+
search?: string[];
|
|
903
|
+
refreshOnInit?: boolean;
|
|
904
|
+
onSearch?: SearchCallback;
|
|
905
|
+
onSearchTextChange?: SearchCallback;
|
|
716
906
|
}
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
*/
|
|
723
|
-
export function getDictionaryByColumnName<T extends Partial<ColumnsObject>, V>(map: ColumnsMap<T, V>): Record<keyof T, keyof V>;
|
|
724
|
-
/**
|
|
725
|
-
* Returns a dictionary of property names mapped to column names.
|
|
726
|
-
* @param map
|
|
727
|
-
* @returns
|
|
728
|
-
*/
|
|
729
|
-
export function getDictionaryByPropertyName<V, T extends Partial<ColumnsObject>>(map: ColumnsMap<T, V>): Record<keyof V, keyof T>;
|
|
730
|
-
export function mapToRecordSelection<T extends Partial<ColumnsObject>, V>(values: V[], propertiesMapDictionary: Record<keyof V, keyof T>): ValuesObject[];
|
|
731
|
-
export class ColumnsMapper<T extends Entity<EntityDefinition>, V extends ValuesObject> {
|
|
732
|
-
#private;
|
|
733
|
-
constructor(entity: T, values: V, records: ColumnMapRecord[]);
|
|
734
|
-
columnsDictionary: Record<string, string>;
|
|
735
|
-
valuesDictionary: Record<string, string>;
|
|
736
|
-
mapValuesToColumns(columns: ColumnsObject, values: V, ignoreInvalidMappings?: boolean, ignoreInexistentValues?: boolean): void;
|
|
737
|
-
mapColumnsToValues(columns: ColumnsObject, ignoreInvalidMappings?: boolean, ignoreInexistentValues?: boolean): Partial<V>;
|
|
907
|
+
interface UseRetainedSearchResult {
|
|
908
|
+
search?: string[];
|
|
909
|
+
refreshOnInit?: boolean;
|
|
910
|
+
onSearch?: SearchCallback;
|
|
911
|
+
onSearchTextChange?: SearchCallback;
|
|
738
912
|
}
|
|
739
|
-
export
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
913
|
+
export function useRetainedSearch({ retainSearch, search, refreshOnInit, onSearch, onSearchTextChange }: UseRetainedSearchOptions): UseRetainedSearchResult;
|
|
914
|
+
type DataGridPanelBaseProps = Omit<DataGridProps, "entity" | "title"> & {
|
|
915
|
+
client: MicroMClient;
|
|
916
|
+
parentKeys?: ValuesObject;
|
|
917
|
+
retainSearch?: string;
|
|
918
|
+
onSearchTextChange?: DataGridProps["onSearch"];
|
|
919
|
+
bgLight?: DefaultMantineColor;
|
|
920
|
+
bgDark?: DefaultMantineColor;
|
|
921
|
+
/** Props for the wrapping Card. Replaces the default object entirely when set per instance */
|
|
922
|
+
containerCardProps?: Omit<CardProps, 'children'>;
|
|
923
|
+
/** Component shown while the entity is being resolved */
|
|
924
|
+
loadingComponent?: ReactNode;
|
|
746
925
|
};
|
|
747
|
-
export
|
|
748
|
-
export
|
|
749
|
-
export function
|
|
750
|
-
export interface
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
926
|
+
export type DataGridPanelProps = DataGridPanelBaseProps & EntityGridSourceProps;
|
|
927
|
+
export const DataGridPanelDefaultProps: Partial<DataGridPanelProps>;
|
|
928
|
+
export function DataGridPanel(props: DataGridPanelProps): JSX.Element;
|
|
929
|
+
export interface useDataViewReturnType {
|
|
930
|
+
handleSelectionChanged: DataViewSelectionChangedHandler;
|
|
931
|
+
handleDeleteRecord: (keys: ValuesObject, element?: HTMLElement) => Promise<void>;
|
|
932
|
+
handleDeleteClick: (element?: HTMLElement) => Promise<void>;
|
|
933
|
+
handleEditClick: (keys: ValuesObject, element?: HTMLElement) => Promise<void>;
|
|
934
|
+
handleAddClick: (element?: HTMLElement) => Promise<void>;
|
|
935
|
+
handleViewClick: (keys: ValuesObject, element?: HTMLElement) => Promise<void>;
|
|
936
|
+
handleToggleSelectable: () => void;
|
|
937
|
+
handleRefresh: (searchText: string[] | undefined) => void;
|
|
938
|
+
handleExecuteAction: (action: EntityClientAction, recordIndex?: number, element?: HTMLElement) => Promise<boolean | undefined>;
|
|
939
|
+
handleExport: () => void;
|
|
940
|
+
selectedRowsCount: number;
|
|
941
|
+
limitRows: string | null;
|
|
942
|
+
setLimitRows: React.Dispatch<React.SetStateAction<string | null>>;
|
|
943
|
+
showSelectCheckbox: boolean;
|
|
944
|
+
isLoading: boolean;
|
|
945
|
+
executeViewState: OperationStatus<DataResult[]>;
|
|
946
|
+
data: DataViewRecord<ValuesObject>[];
|
|
947
|
+
handleDeselectAllRecords: () => Promise<void>;
|
|
948
|
+
handleDeselectRecord: (record_index: number) => Promise<void>;
|
|
949
|
+
handleSelectRecord: (record_index: number) => Promise<void>;
|
|
950
|
+
handleSelectAllRecords: () => Promise<void>;
|
|
951
|
+
selectedRecords: DataViewSelection;
|
|
952
|
+
toggleSelectable: boolean;
|
|
953
|
+
handleLoadMore: () => void;
|
|
954
|
+
displayedItemsCount: number;
|
|
955
|
+
recordsCount?: number;
|
|
768
956
|
}
|
|
769
|
-
export
|
|
770
|
-
export
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
validationContainer?: React.ComponentType<{
|
|
776
|
-
children: ReactNode;
|
|
777
|
-
}>;
|
|
778
|
-
autoFocus?: 'autoFocusOnAdd' | 'autoFocusOnEdit' | boolean;
|
|
779
|
-
autoMaxWidth?: {
|
|
780
|
-
columnLenghtLessThanOrEqual: number;
|
|
781
|
-
maxWidth: string;
|
|
782
|
-
};
|
|
783
|
-
maxWidth?: keyof typeof MicroMWidthSizes;
|
|
784
|
-
minWidth?: keyof typeof MicroMWidthSizes;
|
|
957
|
+
export function useDataView(props: DataViewProps, stateProps: DataGridStateProps): useDataViewReturnType;
|
|
958
|
+
export const DataViewDefaultProps: Partial<DataViewProps>;
|
|
959
|
+
export const DataView: ForwardRefExoticComponent<DataViewProps & RefAttributes<HTMLElement>>;
|
|
960
|
+
export interface DataViewCardContainerProps extends EntityCardProps<ValuesObject> {
|
|
961
|
+
EntityCard?: ComponentType<EntityCardProps<ValuesObject>>;
|
|
962
|
+
CardProps?: Omit<CardProps, 'children'>;
|
|
785
963
|
}
|
|
786
|
-
export const
|
|
787
|
-
export
|
|
788
|
-
|
|
789
|
-
|
|
964
|
+
export const DataViewCardContainerDefaultProps: Partial<DataViewCardContainerProps>;
|
|
965
|
+
export function DataViewCardContainer(props: DataViewCardContainerProps): JSX.Element;
|
|
966
|
+
export type DataViewLimit = '50' | '100' | '500' | '1000' | '10000' | '0';
|
|
967
|
+
export const DataViewLimitData: (rowsLabel: string, unlimitedLabel: string) => SelectItem[];
|
|
968
|
+
export type DataViewSelection = number[];
|
|
969
|
+
export interface DataViewRecord<T extends ValuesObject> {
|
|
970
|
+
keys: ValuesObject;
|
|
971
|
+
data: T;
|
|
790
972
|
}
|
|
791
|
-
export
|
|
792
|
-
export
|
|
793
|
-
export
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
973
|
+
export type DataViewSelectionChangedCallback = (selection: DataViewSelection, keys: ValuesObject[]) => void;
|
|
974
|
+
export type DataViewSelectionChangedHandler = (selection: DataViewSelection) => void;
|
|
975
|
+
export type DataViewSearchCallback = (search: string[] | undefined) => void;
|
|
976
|
+
export type DataViewSelectionMode = 'single' | 'multi';
|
|
977
|
+
export interface DataViewLabels extends EntityUILabels {
|
|
978
|
+
rowsReturnedLabel: string;
|
|
979
|
+
selectedRowsLabel: string;
|
|
980
|
+
limitLabel: string;
|
|
981
|
+
rowsLabel: string;
|
|
982
|
+
unlimitedLabel: string;
|
|
983
|
+
resultLimitLabel: string;
|
|
984
|
+
loadMoreLabel: string;
|
|
985
|
+
fetchingDataLabel: string;
|
|
986
|
+
noRecordsFoundLabel: string;
|
|
797
987
|
}
|
|
798
|
-
export
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
placeholder?: string;
|
|
988
|
+
export interface DataViewProps extends Omit<UseEntityUIProps, 'labels'> {
|
|
989
|
+
viewName: string;
|
|
990
|
+
search?: string[];
|
|
991
|
+
limit?: DataViewLimit;
|
|
992
|
+
refreshOnInit?: boolean;
|
|
993
|
+
selectionMode: DataViewSelectionMode;
|
|
994
|
+
preserveSelection?: boolean;
|
|
806
995
|
autoFocus?: boolean;
|
|
807
|
-
|
|
808
|
-
|
|
996
|
+
onDataRefresh?: (result: OperationStatus<DataResult[]>) => void;
|
|
997
|
+
onSearch?: DataViewSearchCallback;
|
|
998
|
+
onSearchTextChange?: DataViewSearchCallback;
|
|
999
|
+
allwaysRefreshOnEntityClose?: boolean;
|
|
1000
|
+
toolbarIconVariant?: ActionIconVariant;
|
|
1001
|
+
actionsButtonVariant?: ButtonVariant;
|
|
1002
|
+
toolbarSize?: DataGridToolbarSizes;
|
|
1003
|
+
enableAdd?: boolean;
|
|
1004
|
+
enableEdit?: boolean;
|
|
1005
|
+
enableDelete?: boolean;
|
|
1006
|
+
enableView?: boolean;
|
|
1007
|
+
enableExport?: boolean;
|
|
1008
|
+
filtersFormSize?: MantineNumberSize;
|
|
1009
|
+
setInitialFiltersFromColumns?: boolean;
|
|
1010
|
+
visibleFilters?: string[];
|
|
1011
|
+
showAppliedFilters?: boolean;
|
|
1012
|
+
showRefreshButton?: boolean;
|
|
1013
|
+
showFiltersButton?: boolean;
|
|
1014
|
+
showSearchInput?: boolean;
|
|
1015
|
+
showSelectRowsButton?: boolean;
|
|
1016
|
+
searchPlaceholder?: string;
|
|
1017
|
+
hideCheckboxToggle?: boolean;
|
|
1018
|
+
showActions?: boolean;
|
|
1019
|
+
showToolbar?: boolean;
|
|
1020
|
+
showDeleteOnlyWhenMultiselect?: boolean;
|
|
1021
|
+
CardContainer?: ComponentType<DataViewCardContainerProps>;
|
|
1022
|
+
CardRowAlign?: CSSProperties['alignItems'];
|
|
1023
|
+
cardHrefRootURL?: string;
|
|
1024
|
+
cardHrefTarget?: string;
|
|
1025
|
+
Card: ComponentType<EntityCardProps<ValuesObject>>;
|
|
1026
|
+
onSelectionChanged?: DataViewSelectionChangedCallback;
|
|
1027
|
+
notExportableColumns?: number[];
|
|
1028
|
+
labels?: DataViewLabels;
|
|
1029
|
+
itemsPerPage?: number;
|
|
1030
|
+
convertResultToLocaleString?: boolean;
|
|
1031
|
+
formMode?: FormMode;
|
|
1032
|
+
RowsContainer?: ComponentType<PropsWithChildren>;
|
|
1033
|
+
RowsContainerProps?: PropsWithChildren;
|
|
809
1034
|
}
|
|
810
|
-
export
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
1035
|
+
export interface EntityCardProps<T extends ValuesObject> {
|
|
1036
|
+
entity: Entity<EntityDefinition>;
|
|
1037
|
+
recordIndex: number;
|
|
1038
|
+
record: DataViewRecord<T>;
|
|
1039
|
+
selected?: boolean;
|
|
1040
|
+
toggleSelectable?: boolean;
|
|
1041
|
+
enableEdit?: boolean;
|
|
1042
|
+
enableDelete?: boolean;
|
|
1043
|
+
enableView?: boolean;
|
|
1044
|
+
handleEditClick?: (keys: ValuesObject, element: HTMLElement) => void;
|
|
1045
|
+
handleDeleteClick?: (keys: ValuesObject, element: HTMLElement) => void;
|
|
1046
|
+
handleViewClick?: (keys: ValuesObject, element: HTMLElement) => void;
|
|
1047
|
+
handleSelectRecord?: (record_index: number) => void;
|
|
1048
|
+
handleDeselectRecord?: (record_index: number) => void;
|
|
1049
|
+
handleExecuteAction?: (action: EntityClientAction, recordIndex?: number, element?: HTMLElement) => Promise<boolean | undefined>;
|
|
1050
|
+
handleCardClick?: (data: T) => void;
|
|
1051
|
+
refreshView?: () => void;
|
|
1052
|
+
cardHrefRootURL?: string;
|
|
1053
|
+
cardHrefTarget?: string;
|
|
825
1054
|
}
|
|
826
|
-
export
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
1055
|
+
export type EntityBuilderProps = {
|
|
1056
|
+
entity: Entity<EntityDefinition>;
|
|
1057
|
+
view: string;
|
|
1058
|
+
Card: ComponentType<EntityCardProps<ValuesObject>>;
|
|
1059
|
+
};
|
|
1060
|
+
export type EntityGridBuilderProps = Omit<EntityBuilderProps, 'Card'>;
|
|
1061
|
+
export type EntityLoader = (client: MicroMClient, parentKeys?: ValuesObject) => Promise<Entity<EntityDefinition>>;
|
|
1062
|
+
export type EntityBuilder<TEntity, TClient> = new (client: TClient, parentKeys?: ValuesObject) => TEntity;
|
|
1063
|
+
export type EntitySource<TResult> = {
|
|
1064
|
+
/** Builds the result synchronously */
|
|
1065
|
+
entityConstructor: (client: MicroMClient, parentKeys?: ValuesObject) => TResult;
|
|
1066
|
+
entityLoader?: never;
|
|
1067
|
+
} | {
|
|
1068
|
+
entityConstructor?: never;
|
|
1069
|
+
/** Loads the result asynchronously (e.g. via dynamic import) */
|
|
1070
|
+
entityLoader: (client: MicroMClient, parentKeys?: ValuesObject) => Promise<TResult>;
|
|
1071
|
+
};
|
|
1072
|
+
export type EntitySourceProps = EntitySource<Entity<EntityDefinition>>;
|
|
1073
|
+
export type EntityBuilderSourceProps = EntitySource<EntityBuilderProps>;
|
|
1074
|
+
export type EntityGridSourceProps = EntitySource<EntityGridBuilderProps>;
|
|
1075
|
+
export function importEntity<TClient, TEntity, TModule>(importModule: () => Promise<TModule>, getEntity: (module: TModule) => EntityBuilder<TEntity, TClient>): (client: TClient, parentKeys?: ValuesObject) => Promise<TEntity>;
|
|
1076
|
+
export function getEntity<TClient, TEntity, TModule, TCard>(importModule: () => Promise<TModule>, getEntity: (module: TModule) => EntityBuilder<TEntity, TClient>, getView: (entity: TEntity) => string, importCard: () => Promise<TCard>): (client: TClient, parentKeys?: ValuesObject) => Promise<EntityBuilderProps>;
|
|
1077
|
+
export function getEntity<TClient, TEntity, TModule>(importModule: () => Promise<TModule>, getEntity: (module: TModule) => EntityBuilder<TEntity, TClient>, getView: (entity: TEntity) => string): (client: TClient, parentKeys?: ValuesObject) => Promise<EntityGridBuilderProps>;
|
|
1078
|
+
export interface EntityClientActionOnClickProps {
|
|
1079
|
+
entity: Entity<any>;
|
|
1080
|
+
modal?: ModalContextType;
|
|
1081
|
+
selectedKeys?: ValuesObject[];
|
|
1082
|
+
element?: HTMLElement;
|
|
1083
|
+
onClose?: (result?: boolean) => Promise<boolean>;
|
|
832
1084
|
}
|
|
833
|
-
export interface
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
entityForm: UseEntityFormReturnType;
|
|
846
|
-
loading?: boolean;
|
|
847
|
-
disableOnLoading?: boolean;
|
|
848
|
-
validate?: PasswordFieldValidatorConfiguration;
|
|
849
|
-
requiredMessage?: ReactNode;
|
|
850
|
-
validationContainer?: React.ComponentType<{
|
|
851
|
-
children: ReactNode;
|
|
852
|
-
}>;
|
|
853
|
-
autoMaxWidth?: {
|
|
854
|
-
columnLenghtLessThanOrEqual: number;
|
|
855
|
-
maxWidth: string;
|
|
856
|
-
};
|
|
857
|
-
}
|
|
858
|
-
export function PasswordField(props: PasswordFieldProps): JSX.Element;
|
|
859
|
-
export type useExecuteServerActionReturnType<TReturn extends ValuesObject> = {
|
|
860
|
-
status: OperationStatus<TReturn>;
|
|
861
|
-
execute: (values?: ValuesObject) => Promise<OperationStatus<TReturn> | undefined>;
|
|
862
|
-
abort: () => void;
|
|
863
|
-
};
|
|
864
|
-
export function useExecuteServerAction<T extends EntityDefinition, TReturn extends ValuesObject>(entity: Entity<T>, actionName: string, doNotExecuteIfEntityValuesUnchanged?: boolean): useExecuteServerActionReturnType<TReturn>;
|
|
865
|
-
export const NotifySuccessDefaultProps: Partial<NotificationProps>;
|
|
866
|
-
export function NotifySuccess(props: NotificationProps): JSX.Element;
|
|
867
|
-
export function NotifyError(props: NotificationProps): JSX.Element;
|
|
868
|
-
export const NotifyInfoDefaultProps: Partial<NotificationProps>;
|
|
869
|
-
export function NotifyInfo(props: NotificationProps): JSX.Element;
|
|
870
|
-
export interface NotifyBitFieldProps extends NotificationProps {
|
|
871
|
-
column: EntityColumn<boolean>;
|
|
872
|
-
trueIcon?: ReactNode;
|
|
873
|
-
falseIcon?: ReactNode;
|
|
874
|
-
trueMessage: ReactNode;
|
|
875
|
-
falseMessage: ReactNode;
|
|
876
|
-
trueColor?: MantineColor;
|
|
877
|
-
falseColor?: MantineColor;
|
|
878
|
-
}
|
|
879
|
-
export const NotifyBitFieldDefaultProps: Partial<NotifyBitFieldProps>;
|
|
880
|
-
export function NotifyBitField(props: NotifyBitFieldProps): JSX.Element;
|
|
881
|
-
export interface CheckboxFieldProps extends CheckboxProps {
|
|
882
|
-
column: EntityColumn<Value>;
|
|
883
|
-
entityForm: UseEntityFormReturnType;
|
|
884
|
-
loading?: boolean;
|
|
885
|
-
disableOnLoading?: boolean;
|
|
886
|
-
requiredMessage?: ReactNode;
|
|
887
|
-
}
|
|
888
|
-
export function CheckboxField(props: CheckboxFieldProps): JSX.Element;
|
|
889
|
-
export interface UseOperationStatusCallback<T> {
|
|
890
|
-
callback: (...args: any[]) => Promise<T>;
|
|
891
|
-
operation: DataOperationType;
|
|
892
|
-
deps: React.DependencyList;
|
|
1085
|
+
export interface EntityClientAction {
|
|
1086
|
+
name: string;
|
|
1087
|
+
title: ReactNode;
|
|
1088
|
+
label: ReactNode;
|
|
1089
|
+
icon?: ReactNode;
|
|
1090
|
+
refreshOnClose?: boolean;
|
|
1091
|
+
dontRequireSelection?: boolean;
|
|
1092
|
+
minSelectedRecords?: number;
|
|
1093
|
+
maxSelectedRecords?: number;
|
|
1094
|
+
views?: string[];
|
|
1095
|
+
showActionInViewMode?: boolean;
|
|
1096
|
+
onClick: (props: EntityClientActionOnClickProps) => Promise<boolean>;
|
|
893
1097
|
}
|
|
894
|
-
export
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
};
|
|
898
|
-
export function useOperationStatusCallback<T>(props: UseOperationStatusCallback<T>): UseOperationStatusCallbackReturnType<T>;
|
|
899
|
-
export interface ConfirmPanelProps {
|
|
900
|
-
content: ReactNode;
|
|
901
|
-
loadingContent?: ReactNode;
|
|
902
|
-
operation: DataOperationType;
|
|
903
|
-
onOK: () => Promise<unknown>;
|
|
904
|
-
onCancel: () => Promise<void> | void;
|
|
905
|
-
cancelButtonText?: string;
|
|
906
|
-
okButtonText?: string;
|
|
907
|
-
okButtonProps?: ButtonProps;
|
|
908
|
-
cancelButtonProps?: ButtonProps;
|
|
909
|
-
runOnOpen?: boolean;
|
|
1098
|
+
export interface EntityProc {
|
|
1099
|
+
name: string;
|
|
1100
|
+
parms?: Record<string, Value>;
|
|
910
1101
|
}
|
|
911
|
-
export
|
|
912
|
-
|
|
913
|
-
export interface EmailFieldProps extends Omit<TextFieldProps, 'validate'> {
|
|
914
|
-
invalidMessage?: string;
|
|
1102
|
+
export interface EntityServerAction {
|
|
1103
|
+
name: string;
|
|
915
1104
|
}
|
|
916
|
-
export const
|
|
917
|
-
export
|
|
918
|
-
|
|
919
|
-
|
|
1105
|
+
export const DefaultKeySeparator = "-";
|
|
1106
|
+
export interface CompoundKeyGroup {
|
|
1107
|
+
viewIndex: number;
|
|
1108
|
+
keyMappings: Record<string, number>;
|
|
1109
|
+
keySeparator?: string;
|
|
920
1110
|
}
|
|
921
|
-
export
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
1111
|
+
export interface EntityView {
|
|
1112
|
+
name: string;
|
|
1113
|
+
keyMappings: Record<string, number>;
|
|
1114
|
+
compoundKeyGroups?: Record<string, CompoundKeyGroup>;
|
|
1115
|
+
Card?: Promise<ComponentType<EntityCardProps<ValuesObject>>> | null;
|
|
1116
|
+
FiltersEntity?: EntityConstructor;
|
|
1117
|
+
gridColumnsOverrides?: (theme: MantineTheme) => GridColumnsOverrides;
|
|
1118
|
+
mapMarkerRenderer?: DataMapProps['markerRenderer'];
|
|
1119
|
+
mapGroupMarkerRenderer?: DataMapProps['groupMarkerRenderer'];
|
|
1120
|
+
mapInfoWindowRenderer?: DataMapProps['InfoWindowRenderer'];
|
|
1121
|
+
mapSelectRecordsRenderer?: DataMapProps['selectRecordsRenderer'];
|
|
927
1122
|
}
|
|
928
|
-
export
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
1123
|
+
export class EntityDefinition {
|
|
1124
|
+
name: string;
|
|
1125
|
+
columns: ColumnsObject;
|
|
1126
|
+
procs: Record<string, EntityProc>;
|
|
1127
|
+
views: Record<string, EntityView>;
|
|
1128
|
+
lookups: Record<string, EntityLookup>;
|
|
1129
|
+
serverActions: Record<string, EntityServerAction>;
|
|
1130
|
+
clientActions: Record<string, EntityClientAction>;
|
|
1131
|
+
importColumns: string[] | null;
|
|
1132
|
+
standardView(): string | null;
|
|
1133
|
+
constructor(name: string);
|
|
1134
|
+
addCol<T extends Value>({ name, type, length, scale, value, defaultValue, flags, prompt }: EntityColumnOptions<T>): EntityColumn<T>;
|
|
1135
|
+
addView(view: EntityView): EntityView;
|
|
1136
|
+
addProc(proc: EntityProc): EntityProc;
|
|
1137
|
+
addLookup(lookup: EntityLookup): EntityLookup;
|
|
1138
|
+
addServerAction(action: EntityServerAction): EntityServerAction;
|
|
1139
|
+
addClientAction(action: EntityClientAction): EntityClientAction;
|
|
1140
|
+
static clone(entity_def: EntityDefinition): EntityDefinition;
|
|
934
1141
|
}
|
|
935
|
-
export
|
|
936
|
-
|
|
937
|
-
|
|
1142
|
+
export interface ViewMapping {
|
|
1143
|
+
keyIndex: number;
|
|
1144
|
+
descriptionIndex: number;
|
|
938
1145
|
}
|
|
939
|
-
export
|
|
940
|
-
|
|
941
|
-
export interface DateInputFieldProps extends Omit<DateInputProps, 'autoFocus'> {
|
|
942
|
-
column: EntityColumn<Value>;
|
|
943
|
-
entityForm: UseEntityFormReturnType;
|
|
944
|
-
validate?: ValidatorConfiguration;
|
|
945
|
-
requiredMessage?: ReactNode;
|
|
946
|
-
validationContainer?: React.ComponentType<{
|
|
947
|
-
children: ReactNode;
|
|
948
|
-
}>;
|
|
949
|
-
autoFocus?: 'autoFocusOnAdd' | 'autoFocusOnEdit' | boolean;
|
|
950
|
-
maxWidth?: keyof typeof MicroMWidthSizes;
|
|
951
|
-
minWidth?: keyof typeof MicroMWidthSizes;
|
|
1146
|
+
export interface EntityConstructor {
|
|
1147
|
+
(client: MicroMClient, parentKeys?: ValuesObject): Entity<EntityDefinition>;
|
|
952
1148
|
}
|
|
953
|
-
export
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
requiredMessage?: ReactNode;
|
|
962
|
-
validationContainer?: React.ComponentType<{
|
|
963
|
-
children: ReactNode;
|
|
964
|
-
}>;
|
|
965
|
-
autoFocus?: 'autoFocusOnAdd' | 'autoFocusOnEdit' | boolean;
|
|
966
|
-
maxWidth?: keyof typeof MicroMWidthSizes;
|
|
967
|
-
minWidth?: keyof typeof MicroMWidthSizes;
|
|
1149
|
+
export interface EntityLookup {
|
|
1150
|
+
name: string;
|
|
1151
|
+
entityConstructor: EntityConstructor;
|
|
1152
|
+
view?: string;
|
|
1153
|
+
proc?: string;
|
|
1154
|
+
bindingColumnKey?: string;
|
|
1155
|
+
compoundKeyGroupName?: string;
|
|
1156
|
+
viewMapping?: ViewMapping;
|
|
968
1157
|
}
|
|
969
|
-
export
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
mappedHierarchy?: string[];
|
|
1158
|
+
export interface UseResolvedEntityConstructorResult {
|
|
1159
|
+
entityConstructor: EntityConstructor | null;
|
|
1160
|
+
loading: boolean;
|
|
1161
|
+
error: unknown | null;
|
|
974
1162
|
}
|
|
975
|
-
export function
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
1163
|
+
export function useResolvedEntityConstructor(client: MicroMClient, parentKeys: ValuesObject | undefined, source: EntitySourceProps): UseResolvedEntityConstructorResult;
|
|
1164
|
+
type EntityFormPanelBaseProps = Omit<EntityFormPageProps, "entityConstructor">;
|
|
1165
|
+
export type EntityFormPanelProps = EntityFormPanelBaseProps & EntitySourceProps & {
|
|
1166
|
+
parentKeys?: ValuesObject;
|
|
1167
|
+
bgLight?: DefaultMantineColor;
|
|
1168
|
+
bgDark?: DefaultMantineColor;
|
|
1169
|
+
/** Props for the wrapping Card. Replaces the default object entirely when set per instance */
|
|
1170
|
+
containerCardProps?: Omit<CardProps, 'children'>;
|
|
1171
|
+
};
|
|
1172
|
+
export const EntityFormPanelDefaultProps: Partial<EntityFormPanelProps>;
|
|
1173
|
+
export function EntityFormPanel(props: EntityFormPanelProps): JSX.Element;
|
|
1174
|
+
export type FormMode = 'add' | 'edit' | 'view';
|
|
1175
|
+
export interface KeyStringIndexer {
|
|
1176
|
+
[key: string]: any;
|
|
980
1177
|
}
|
|
981
|
-
export
|
|
982
|
-
|
|
983
|
-
export interface CUITFieldProps extends TextFieldProps {
|
|
984
|
-
invalidMessage?: string;
|
|
1178
|
+
export interface NumberIndexer {
|
|
1179
|
+
[key: number]: any;
|
|
985
1180
|
}
|
|
986
|
-
export
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
1181
|
+
export interface FormOptions<T extends Entity<EntityDefinition>> extends Omit<EntityFormProps, 'formAPI' | 'children'> {
|
|
1182
|
+
entity: T;
|
|
1183
|
+
initialFormMode: FormMode;
|
|
1184
|
+
getDataOnInit?: boolean;
|
|
1185
|
+
onSaved?: (status: OperationStatus<DBStatusResult>) => void;
|
|
1186
|
+
onCancel?: () => void;
|
|
1187
|
+
navigationProtection?: NavigationProtectionMode;
|
|
992
1188
|
}
|
|
993
|
-
export
|
|
994
|
-
export
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1189
|
+
export type useStateReturnType<T> = [T, React.Dispatch<React.SetStateAction<T>>];
|
|
1190
|
+
export type ActionIconVariant = 'transparent' | 'subtle' | 'default' | 'outline' | 'filled' | 'light';
|
|
1191
|
+
export type ButtonVariant = 'gradient' | 'subtle' | 'default' | 'outline' | 'filled' | 'light' | 'white';
|
|
1192
|
+
export type latLng = {
|
|
1193
|
+
lat: number;
|
|
1194
|
+
lng: number;
|
|
1195
|
+
};
|
|
1196
|
+
export const MicroMWidthSizes: {
|
|
1197
|
+
xs: string;
|
|
1198
|
+
sm: string;
|
|
1199
|
+
md: string;
|
|
1200
|
+
lg: string;
|
|
1201
|
+
xl: string;
|
|
1202
|
+
auto: string;
|
|
1203
|
+
};
|
|
1204
|
+
export interface EntityError extends Error {
|
|
1205
|
+
Errors: DBStatus[];
|
|
1006
1206
|
}
|
|
1007
|
-
export
|
|
1008
|
-
|
|
1009
|
-
showPicker: () => void;
|
|
1010
|
-
}
|
|
1011
|
-
export const TimeField: ForwardRefExoticComponent<TimeFieldProps & RefAttributes<TimeFieldRef>>;
|
|
1012
|
-
export function getInitials(input: string): string;
|
|
1013
|
-
export interface useIsLoggedInProps {
|
|
1207
|
+
export class EntityAPI {
|
|
1208
|
+
#private;
|
|
1014
1209
|
client: MicroMClient;
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
};
|
|
1048
|
-
export interface ImageCropOptions {
|
|
1049
|
-
aspectRatio?: number;
|
|
1050
|
-
}
|
|
1051
|
-
export interface ImageResizeOptions {
|
|
1052
|
-
maxWidth?: number;
|
|
1053
|
-
maxHeight?: number;
|
|
1054
|
-
allowUpscale?: boolean;
|
|
1210
|
+
constructor(client: MicroMClient, name: string, columns: ColumnsObject);
|
|
1211
|
+
/**
|
|
1212
|
+
* Get the data for the current row and fill the columns values with it.
|
|
1213
|
+
*/
|
|
1214
|
+
getData(abort_signal?: AbortSignal | null): Promise<boolean>;
|
|
1215
|
+
/**
|
|
1216
|
+
* Add the data for the current row and fill the key columns values with the returned auto-numeric (if any).
|
|
1217
|
+
*/
|
|
1218
|
+
addData(abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[], ignoreRecordExists?: boolean, requestOptions?: MicroMRequestOptions): Promise<DBStatusResult>;
|
|
1219
|
+
/**
|
|
1220
|
+
* Edits the data for the current row.
|
|
1221
|
+
*/
|
|
1222
|
+
editData(abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[], requestOptions?: MicroMRequestOptions): Promise<DBStatusResult>;
|
|
1223
|
+
/**
|
|
1224
|
+
* Deletes the data for the current row.
|
|
1225
|
+
*/
|
|
1226
|
+
deleteData(recordsSelection?: ValuesObject[], abort_signal?: AbortSignal | null, parentKeys?: ValuesObject | null): Promise<DBStatusResult>;
|
|
1227
|
+
/**
|
|
1228
|
+
* Lookup the description for an entity.
|
|
1229
|
+
*/
|
|
1230
|
+
lookupData(abort_signal?: AbortSignal | null, parentKeys?: ValuesObject | null, proc_name?: string | null): Promise<string>;
|
|
1231
|
+
/**
|
|
1232
|
+
* Import data
|
|
1233
|
+
*/
|
|
1234
|
+
importData(abort_signal: (AbortSignal | null) | undefined, import_procname: (string | null) | undefined, parentKeys: (ValuesObject | null) | undefined, fileprocess_id: string): Promise<ImpDataResult>;
|
|
1235
|
+
executeView(view: EntityView, view_parms?: ValuesObject, limit?: string | null, search?: string[] | null, abort_signal?: AbortSignal | null): Promise<DataResult[]>;
|
|
1236
|
+
downloadBlobFile(blob: Blob, filename: string): void;
|
|
1237
|
+
exportView(view: EntityView, view_parms?: ValuesObject, limit?: string | null, search?: string[] | null, abort_signal?: AbortSignal | null): Promise<Blob>;
|
|
1238
|
+
exportProc(proc: EntityProc, proc_parms?: ValuesObject, abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[]): Promise<Blob>;
|
|
1239
|
+
executeProc(proc: EntityProc, proc_parms?: ValuesObject, abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[]): Promise<DataResult[]>;
|
|
1240
|
+
executeProcess(proc: EntityProc, proc_parms?: ValuesObject, abort_signal?: AbortSignal | null, recordsSelection?: ValuesObject[]): Promise<DBStatusResult>;
|
|
1241
|
+
executeServerAction<TReturn extends Record<string, unknown>>(action: EntityServerAction, action_parms?: ValuesObject, abort_signal?: AbortSignal | null): Promise<TReturn>;
|
|
1055
1242
|
}
|
|
1056
|
-
export
|
|
1057
|
-
|
|
1243
|
+
export type EntityFormComponentPromise = Promise<ComponentType<FormOptions<Entity<any>>>>;
|
|
1244
|
+
export class Entity<T extends EntityDefinition> {
|
|
1245
|
+
#private;
|
|
1246
|
+
get name(): string;
|
|
1247
|
+
get def(): T;
|
|
1248
|
+
parentKeys: ValuesObject;
|
|
1249
|
+
API: EntityAPI;
|
|
1250
|
+
Form: EntityFormComponentPromise | "AutoForm" | "AutoFiltersForm" | null;
|
|
1251
|
+
Title: string;
|
|
1252
|
+
HelpText?: string;
|
|
1253
|
+
Icon?: ComponentType<IconProps>;
|
|
1254
|
+
constructor(client: MicroMClient, def: T, parentKeys?: ValuesObject, setParentKeys?: boolean);
|
|
1255
|
+
static clone(entity: Entity<EntityDefinition>): Entity<EntityDefinition>;
|
|
1058
1256
|
}
|
|
1059
|
-
export
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1257
|
+
export function convertValueFromString(col: EntityColumn<Value>, value: string): Value;
|
|
1258
|
+
export type MappingBehavior = 'lax' | 'enforceObject' | 'enforceDataResult' | 'exactMatch';
|
|
1259
|
+
export function toCamelCase(str: string): string;
|
|
1260
|
+
/** function to convert a record array to a values object */
|
|
1261
|
+
export function convertRecordToValuesObject(record: ValuesRecord, headers: string[], typeInfo: SQLType[], formatToString?: (value: Value, sqlType: SQLType) => string): ValuesObject;
|
|
1262
|
+
export function convertRecordsToArrayOfValuesObject(dataResult: DataResult, nameTransformFunction?: ((name: string) => string) | null, formatToString?: (value: Value) => string): ValuesObject[];
|
|
1263
|
+
export function mapRecordToType<T extends ValuesObject>(record: ValuesRecord, headers: string[], enforceObjectKeys: Set<string>, mapping_behavior: MappingBehavior, map_properties?: Record<string, keyof T> | null, skipUndefinedOrNull?: boolean): T;
|
|
1264
|
+
export function mapDataResultToType<T extends ValuesObject>(dataResult: DataResult, mapping_behavior: MappingBehavior, nameTransformFunction?: ((name: string) => string) | null, map_properties?: Record<string, keyof T> | null, skipUndefinedOrNull?: boolean): T[];
|
|
1265
|
+
export function exportToCSV(viewResult: DataResult, notExportableColumns?: number[]): void;
|
|
1266
|
+
export function exportToExcel(data: DataResult[], notExportableColumns?: number[], sheetNames?: string[]): Promise<void>;
|
|
1267
|
+
export function extractArrayFromSelectedRecords<T>(selectedKeys: ValuesObject[], property: keyof ValuesObject): T[];
|
|
1268
|
+
export function isInstanceOfEntityColumn<T extends Value>(obj: unknown): obj is EntityColumn<T>;
|
|
1269
|
+
export function isViewMapping(obj: unknown): obj is ViewMapping;
|
|
1270
|
+
export function isEntityLookup(obj: unknown): obj is EntityLookup;
|
|
1271
|
+
export function getRequiredColumns(entity?: Entity<EntityDefinition>): string[];
|
|
1272
|
+
export interface ColumnMapRecord {
|
|
1273
|
+
columnName: string;
|
|
1274
|
+
propertyName: string;
|
|
1063
1275
|
}
|
|
1064
|
-
export
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
manualRotation?: boolean | ImageManualRotationOptions;
|
|
1069
|
-
compression?: boolean | ImageCompressionOptions;
|
|
1070
|
-
outputFormat?: string;
|
|
1071
|
-
jpegBackgroundColor?: string;
|
|
1276
|
+
export type ColumnMap = ColumnMapRecord[];
|
|
1277
|
+
export interface ColumnsMapRecord<T extends Partial<ColumnsObject>, V> {
|
|
1278
|
+
columnName: keyof T;
|
|
1279
|
+
propertyName: keyof V;
|
|
1072
1280
|
}
|
|
1073
|
-
export
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1281
|
+
export type ColumnsMap<T extends Partial<ColumnsObject>, V> = ColumnsMapRecord<T, V>[];
|
|
1282
|
+
/**
|
|
1283
|
+
* Returns a dictionary of column names mapped to property names.
|
|
1284
|
+
* @param map
|
|
1285
|
+
* @returns
|
|
1286
|
+
*/
|
|
1287
|
+
export function getDictionaryByColumnName<T extends Partial<ColumnsObject>, V>(map: ColumnsMap<T, V>): Record<keyof T, keyof V>;
|
|
1288
|
+
/**
|
|
1289
|
+
* Returns a dictionary of property names mapped to column names.
|
|
1290
|
+
* @param map
|
|
1291
|
+
* @returns
|
|
1292
|
+
*/
|
|
1293
|
+
export function getDictionaryByPropertyName<V, T extends Partial<ColumnsObject>>(map: ColumnsMap<T, V>): Record<keyof V, keyof T>;
|
|
1294
|
+
export function mapToRecordSelection<T extends Partial<ColumnsObject>, V>(values: V[], propertiesMapDictionary: Record<keyof V, keyof T>): ValuesObject[];
|
|
1295
|
+
export class ColumnsMapper<T extends Entity<EntityDefinition>, V extends ValuesObject> {
|
|
1296
|
+
#private;
|
|
1297
|
+
constructor(entity: T, values: V, records: ColumnMapRecord[]);
|
|
1298
|
+
columnsDictionary: Record<string, string>;
|
|
1299
|
+
valuesDictionary: Record<string, string>;
|
|
1300
|
+
mapValuesToColumns(columns: ColumnsObject, values: V, ignoreInvalidMappings?: boolean, ignoreInexistentValues?: boolean): void;
|
|
1301
|
+
mapColumnsToValues(columns: ColumnsObject, ignoreInvalidMappings?: boolean, ignoreInexistentValues?: boolean): Partial<V>;
|
|
1081
1302
|
}
|
|
1082
|
-
export const
|
|
1083
|
-
export
|
|
1084
|
-
export function
|
|
1085
|
-
export function
|
|
1086
|
-
export function
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
shouldCompress: boolean;
|
|
1090
|
-
quality: number | undefined;
|
|
1303
|
+
export const MaxCompoundKeyValues = 10;
|
|
1304
|
+
export type OrderedCompoundKeyMapping = readonly [columnName: string, position: number];
|
|
1305
|
+
export function getOrderedCompoundKeyMappings(group: CompoundKeyGroup): OrderedCompoundKeyMapping[];
|
|
1306
|
+
export function resolveCompoundKeyGroup(view: EntityView, groupName: string): CompoundKeyGroup;
|
|
1307
|
+
export function splitCompoundKey(rawValue: string, group: CompoundKeyGroup): {
|
|
1308
|
+
values: string[];
|
|
1309
|
+
complete: boolean;
|
|
1091
1310
|
};
|
|
1092
|
-
export function
|
|
1093
|
-
export function
|
|
1094
|
-
export
|
|
1095
|
-
export
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
filePreviewError?: string;
|
|
1311
|
+
export function composeCompoundKey(values: readonly Value[], group: CompoundKeyGroup): string;
|
|
1312
|
+
export function extractCompoundKeyValues(keys: ValuesObject, group: CompoundKeyGroup): Value[] | undefined;
|
|
1313
|
+
export function extractCompoundRecordKeys(record: object, group: CompoundKeyGroup): ValuesObject | undefined;
|
|
1314
|
+
export interface useTextTransformProps {
|
|
1315
|
+
entityForm: UseEntityFormReturnType;
|
|
1316
|
+
column: EntityColumn<Value>;
|
|
1317
|
+
transform?: "uppercase" | "lowercase" | "capitalize" | "titlecase";
|
|
1318
|
+
autoTrim?: boolean;
|
|
1101
1319
|
}
|
|
1102
|
-
export function
|
|
1103
|
-
|
|
1104
|
-
export
|
|
1105
|
-
export
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
};
|
|
1129
|
-
};
|
|
1320
|
+
export function useTextTransform(props: useTextTransformProps): (text: string) => void;
|
|
1321
|
+
type TextAreaFieldAllowedValidators = 'regex' | 'length' | 'field' | 'required';
|
|
1322
|
+
export type TextAreaFieldValidatorConfiguration = Partial<Record<TextAreaFieldAllowedValidators, ValidatorConfigurationParms>>;
|
|
1323
|
+
export interface TextAreaFieldProps extends Omit<TextareaProps, 'autoFocus'>, Omit<useTextTransformProps, 'entityForm' | 'column' | 'onBlur' | 'mantineOnBlur'> {
|
|
1324
|
+
column: EntityColumn<Value>;
|
|
1325
|
+
entityForm: UseEntityFormReturnType;
|
|
1326
|
+
validate?: TextAreaFieldValidatorConfiguration;
|
|
1327
|
+
requiredMessage?: ReactNode;
|
|
1328
|
+
validationContainer?: React.ComponentType<{
|
|
1329
|
+
children: ReactNode;
|
|
1330
|
+
}>;
|
|
1331
|
+
autoFocus?: 'autoFocusOnAdd' | 'autoFocusOnEdit' | boolean;
|
|
1332
|
+
}
|
|
1333
|
+
export const TextAreaField: ForwardRefExoticComponent<TextAreaFieldProps & RefAttributes<HTMLTextAreaElement>>;
|
|
1334
|
+
export interface TextFieldProps extends Omit<TextInputProps, 'autoFocus'>, Omit<useTextTransformProps, 'entityForm' | 'column'> {
|
|
1335
|
+
column: EntityColumn<Value>;
|
|
1336
|
+
entityForm: UseEntityFormReturnType;
|
|
1337
|
+
validate?: ValidatorConfiguration;
|
|
1338
|
+
requiredMessage?: ReactNode;
|
|
1339
|
+
validationContainer?: React.ComponentType<{
|
|
1340
|
+
children: ReactNode;
|
|
1341
|
+
}>;
|
|
1342
|
+
autoFocus?: 'autoFocusOnAdd' | 'autoFocusOnEdit' | boolean;
|
|
1343
|
+
autoMaxWidth?: {
|
|
1344
|
+
columnLenghtLessThanOrEqual: number;
|
|
1345
|
+
maxWidth: string;
|
|
1130
1346
|
};
|
|
1131
|
-
|
|
1347
|
+
maxWidth?: keyof typeof MicroMWidthSizes;
|
|
1348
|
+
minWidth?: keyof typeof MicroMWidthSizes;
|
|
1132
1349
|
}
|
|
1133
|
-
export
|
|
1134
|
-
|
|
1350
|
+
export const TextField: ForwardRefExoticComponent<TextFieldProps & RefAttributes<HTMLInputElement>>;
|
|
1351
|
+
export interface AutoFormFieldsProps<T extends Entity<EntityDefinition>> {
|
|
1352
|
+
entity: T;
|
|
1353
|
+
entityForm: UseEntityFormReturnType;
|
|
1135
1354
|
}
|
|
1136
|
-
export
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
vc_insuser: EntityColumn<string>;
|
|
1143
|
-
vc_luuser: EntityColumn<string>;
|
|
1144
|
-
c_fileprocess_id: EntityColumn<string>;
|
|
1145
|
-
};
|
|
1146
|
-
views: {
|
|
1147
|
-
fsp_brwStandard: {
|
|
1148
|
-
name: string;
|
|
1149
|
-
keyMappings: {
|
|
1150
|
-
c_fileprocess_id: number;
|
|
1151
|
-
};
|
|
1152
|
-
};
|
|
1153
|
-
};
|
|
1154
|
-
constructor();
|
|
1155
|
-
}
|
|
1156
|
-
export class FileStoreProcess extends Entity<FileStoreProcessDef> {
|
|
1157
|
-
constructor(client: MicroMClient, parentKeys?: {});
|
|
1355
|
+
export function AutoFormFields(props: AutoFormFieldsProps<Entity<EntityDefinition>>): (ReactElement<any, string | JSXElementConstructor<any>> | undefined)[];
|
|
1356
|
+
export function AutoForm(props: FormOptions<Entity<EntityDefinition>>): JSX.Element;
|
|
1357
|
+
export interface ModalFormOptions {
|
|
1358
|
+
entity: Entity<EntityDefinition>;
|
|
1359
|
+
onSaved: (entity: Entity<EntityDefinition>) => void;
|
|
1360
|
+
onCancel: (entity: Entity<EntityDefinition>) => void;
|
|
1158
1361
|
}
|
|
1159
|
-
export
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1362
|
+
export function ModalForm({ entity, onSaved, onCancel }: ModalFormOptions): JSX.Element;
|
|
1363
|
+
export interface SearchInputProps extends TextInputProps {
|
|
1364
|
+
onSearchClick: React.MouseEventHandler;
|
|
1365
|
+
size: string;
|
|
1366
|
+
iconsSize: string;
|
|
1367
|
+
value: string;
|
|
1368
|
+
onChange: React.ChangeEventHandler<HTMLInputElement>;
|
|
1369
|
+
placeholder?: string;
|
|
1370
|
+
autoFocus?: boolean;
|
|
1371
|
+
iconVariant?: ActionIconVariant;
|
|
1372
|
+
[x: string]: any;
|
|
1163
1373
|
}
|
|
1164
|
-
export
|
|
1165
|
-
export
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1374
|
+
export const SearchInputDefaultProps: Partial<SearchInputProps>;
|
|
1375
|
+
export function SearchInput(props: SearchInputProps): JSX.Element;
|
|
1376
|
+
export interface ToggleActionIconOptions {
|
|
1377
|
+
hidden: boolean;
|
|
1378
|
+
size: string;
|
|
1379
|
+
onColor: MantineColor;
|
|
1380
|
+
offColor: MantineColor;
|
|
1381
|
+
onVariant?: ActionIconVariant;
|
|
1382
|
+
offVariant?: ActionIconVariant;
|
|
1383
|
+
onIcon: ReactNode;
|
|
1384
|
+
offIcon: ReactNode;
|
|
1385
|
+
initialStatus?: 'on' | 'off';
|
|
1386
|
+
onClick?: () => void;
|
|
1387
|
+
radius?: MantineNumberSize;
|
|
1388
|
+
title?: string;
|
|
1178
1389
|
}
|
|
1179
|
-
export
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
outputType?: 'image/jpeg' | 'image/png' | 'image/webp';
|
|
1186
|
-
outputQuality?: number;
|
|
1390
|
+
export const ToggleActionIcon: ForwardRefExoticComponent<ToggleActionIconOptions & RefAttributes<HTMLButtonElement>>;
|
|
1391
|
+
export function useExecuteView(entity?: Entity<EntityDefinition>, values?: ValuesObject, viewName?: string, search?: string[] | undefined, limit?: string | null, refresh?: boolean, filters?: ValuesObject, enabled?: boolean): OperationStatus<DataResult[]>;
|
|
1392
|
+
export function useDebugProps<T>(propsObject: T, dependencies: any[], componentName: string): void;
|
|
1393
|
+
export function useEnterAsTab<T extends HTMLElement>(): MutableRefObject<T | null>;
|
|
1394
|
+
export interface useLoginType {
|
|
1395
|
+
login: () => void;
|
|
1187
1396
|
}
|
|
1188
|
-
export
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
options: ResolvedBrowserImageProcessingOptions;
|
|
1194
|
-
onSave: (file: File) => Promise<void> | void;
|
|
1195
|
-
onBeforeSave?: (file: File) => boolean | Promise<boolean>;
|
|
1196
|
-
onCancel: () => Promise<void> | void;
|
|
1197
|
-
initiallyDirty?: boolean;
|
|
1198
|
-
saveLabel?: string;
|
|
1199
|
-
cancelLabel?: string;
|
|
1200
|
-
rotateClockwiseLabel?: string;
|
|
1201
|
-
rotateCounterClockwiseLabel?: string;
|
|
1202
|
-
takePhotoLabel?: string;
|
|
1203
|
-
camera?: boolean | ImageEditorCameraConfiguration;
|
|
1397
|
+
export interface useLoginOptions {
|
|
1398
|
+
client: MicroMClient;
|
|
1399
|
+
modalProps?: ModalSettings;
|
|
1400
|
+
onClose?: () => void;
|
|
1401
|
+
title?: string;
|
|
1204
1402
|
}
|
|
1205
|
-
export const
|
|
1206
|
-
export
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1403
|
+
export const UseLoginDefaultProps: Partial<useLoginOptions>;
|
|
1404
|
+
export function useLogin(props: useLoginOptions): () => Promise<void>;
|
|
1405
|
+
type PasswordFieldAllowedValidators = 'regex' | 'length' | 'field' | 'required';
|
|
1406
|
+
export type PasswordFieldValidatorConfiguration = Partial<Record<PasswordFieldAllowedValidators, ValidatorConfigurationParms>>;
|
|
1407
|
+
export interface PasswordFieldProps extends PasswordInputProps {
|
|
1408
|
+
column: EntityColumn<string>;
|
|
1409
|
+
entityForm: UseEntityFormReturnType;
|
|
1410
|
+
loading?: boolean;
|
|
1411
|
+
disableOnLoading?: boolean;
|
|
1412
|
+
validate?: PasswordFieldValidatorConfiguration;
|
|
1413
|
+
requiredMessage?: ReactNode;
|
|
1414
|
+
validationContainer?: React.ComponentType<{
|
|
1415
|
+
children: ReactNode;
|
|
1416
|
+
}>;
|
|
1417
|
+
autoMaxWidth?: {
|
|
1418
|
+
columnLenghtLessThanOrEqual: number;
|
|
1419
|
+
maxWidth: string;
|
|
1420
|
+
};
|
|
1218
1421
|
}
|
|
1219
|
-
export
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1422
|
+
export function PasswordField(props: PasswordFieldProps): JSX.Element;
|
|
1423
|
+
export type useExecuteServerActionReturnType<TReturn extends ValuesObject> = {
|
|
1424
|
+
status: OperationStatus<TReturn>;
|
|
1425
|
+
execute: (values?: ValuesObject) => Promise<OperationStatus<TReturn> | undefined>;
|
|
1426
|
+
abort: () => void;
|
|
1427
|
+
};
|
|
1428
|
+
export function useExecuteServerAction<T extends EntityDefinition, TReturn extends ValuesObject>(entity: Entity<T>, actionName: string, doNotExecuteIfEntityValuesUnchanged?: boolean): useExecuteServerActionReturnType<TReturn>;
|
|
1429
|
+
export const NotifySuccessDefaultProps: Partial<NotificationProps>;
|
|
1430
|
+
export function NotifySuccess(props: NotificationProps): JSX.Element;
|
|
1431
|
+
export function NotifyError(props: NotificationProps): JSX.Element;
|
|
1432
|
+
export const NotifyInfoDefaultProps: Partial<NotificationProps>;
|
|
1433
|
+
export function NotifyInfo(props: NotificationProps): JSX.Element;
|
|
1434
|
+
export interface NotifyBitFieldProps extends NotificationProps {
|
|
1435
|
+
column: EntityColumn<boolean>;
|
|
1436
|
+
trueIcon?: ReactNode;
|
|
1437
|
+
falseIcon?: ReactNode;
|
|
1438
|
+
trueMessage: ReactNode;
|
|
1439
|
+
falseMessage: ReactNode;
|
|
1440
|
+
trueColor?: MantineColor;
|
|
1441
|
+
falseColor?: MantineColor;
|
|
1231
1442
|
}
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
deleteFile: (fileGUID: string) => Promise<DBStatusResult>;
|
|
1241
|
-
downloadFile: (fileUrl: string, fileName?: string) => Promise<void>;
|
|
1242
|
-
clearNotifications: () => void;
|
|
1243
|
-
cancelUpload: () => void;
|
|
1443
|
+
export const NotifyBitFieldDefaultProps: Partial<NotifyBitFieldProps>;
|
|
1444
|
+
export function NotifyBitField(props: NotifyBitFieldProps): JSX.Element;
|
|
1445
|
+
export interface CheckboxFieldProps extends CheckboxProps {
|
|
1446
|
+
column: EntityColumn<Value>;
|
|
1447
|
+
entityForm: UseEntityFormReturnType;
|
|
1448
|
+
loading?: boolean;
|
|
1449
|
+
disableOnLoading?: boolean;
|
|
1450
|
+
requiredMessage?: ReactNode;
|
|
1244
1451
|
}
|
|
1245
|
-
export
|
|
1246
|
-
|
|
1247
|
-
|
|
1452
|
+
export function CheckboxField(props: CheckboxFieldProps): JSX.Element;
|
|
1453
|
+
export interface UseOperationStatusCallback<T> {
|
|
1454
|
+
callback: (...args: any[]) => Promise<T>;
|
|
1455
|
+
operation: DataOperationType;
|
|
1456
|
+
deps: React.DependencyList;
|
|
1248
1457
|
}
|
|
1249
|
-
export
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
message?: string;
|
|
1458
|
+
export type UseOperationStatusCallbackReturnType<T> = {
|
|
1459
|
+
operationCallback: (...args: any[]) => Promise<OperationStatus<T>>;
|
|
1460
|
+
status: OperationStatus<T>;
|
|
1253
1461
|
};
|
|
1254
|
-
export
|
|
1255
|
-
export
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1462
|
+
export function useOperationStatusCallback<T>(props: UseOperationStatusCallback<T>): UseOperationStatusCallbackReturnType<T>;
|
|
1463
|
+
export interface ConfirmPanelProps {
|
|
1464
|
+
content: ReactNode;
|
|
1465
|
+
loadingContent?: ReactNode;
|
|
1466
|
+
operation: DataOperationType;
|
|
1467
|
+
onOK: () => Promise<unknown>;
|
|
1468
|
+
onCancel: () => Promise<void> | void;
|
|
1469
|
+
cancelButtonText?: string;
|
|
1470
|
+
okButtonText?: string;
|
|
1471
|
+
okButtonProps?: ButtonProps;
|
|
1472
|
+
cancelButtonProps?: ButtonProps;
|
|
1473
|
+
runOnOpen?: boolean;
|
|
1259
1474
|
}
|
|
1260
|
-
export
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
maxTotalFilesSize?: number;
|
|
1265
|
-
maxFilesCount?: number;
|
|
1266
|
-
youCanUploadAMaximumOfText?: string;
|
|
1267
|
-
filesText?: string;
|
|
1268
|
-
exceedMaximumIndividualSizeText?: string;
|
|
1269
|
-
unspecifiedErrorWhenUploadingFileText?: string;
|
|
1270
|
-
totalUploadExceedsMaximumSizeText?: string;
|
|
1271
|
-
onCancel?: () => void;
|
|
1272
|
-
editor?: boolean;
|
|
1273
|
-
imageProcessing?: BrowserImageProcessingOptions;
|
|
1274
|
-
imageEditorTitle?: ReactNode;
|
|
1275
|
-
imageEditorProps?: ImageEditorConfigurationProps;
|
|
1276
|
-
imageEditorModalProps?: MicroMModalSettings;
|
|
1277
|
-
onValidateFile?: (file: File) => Promise<ValidateFileReturnType>;
|
|
1278
|
-
onProcessFile?: (file: File) => Promise<File | null>;
|
|
1279
|
-
onBeforeUpload?: (file: File) => Promise<boolean>;
|
|
1280
|
-
onBeforeReplace?: (currentFile: UploadProgressReport, replacementFile?: File) => Promise<boolean>;
|
|
1281
|
-
onUploadComplete?: (report: UploadProgressReport) => Promise<UploadCompletionResult | void>;
|
|
1282
|
-
onDeleteComplete?: (fileGUID: string) => Promise<void> | void;
|
|
1283
|
-
thumbnailMaxSize?: number;
|
|
1284
|
-
thumbnailQuality?: number;
|
|
1285
|
-
loadFilesOnMount?: boolean;
|
|
1475
|
+
export const ConfirmAndExecutePanelDefaultProps: Partial<ConfirmPanelProps>;
|
|
1476
|
+
export function ConfirmAndExecutePanel(props: ConfirmPanelProps): JSX.Element;
|
|
1477
|
+
export interface EmailFieldProps extends Omit<TextFieldProps, 'validate'> {
|
|
1478
|
+
invalidMessage?: string;
|
|
1286
1479
|
}
|
|
1287
|
-
export const
|
|
1288
|
-
export
|
|
1289
|
-
export
|
|
1290
|
-
|
|
1291
|
-
IdleIcon?: (props: IconProps) => ReactNode;
|
|
1292
|
-
UploadText?: string;
|
|
1293
|
-
AttachUpToText?: string;
|
|
1294
|
-
FilesText?: string;
|
|
1295
|
-
EachFileShouldNotExceedText?: string;
|
|
1296
|
-
uploadAPI: UseFileUploadReturnType;
|
|
1297
|
-
onDelete?: (fileGUID: string) => boolean | Promise<boolean>;
|
|
1298
|
-
imageProps?: ImageProps;
|
|
1299
|
-
closeText?: string;
|
|
1300
|
-
cancelledText?: string;
|
|
1301
|
-
operationCancelledText?: string;
|
|
1302
|
-
pdfCannotBeViewedText?: string;
|
|
1303
|
-
showCancelButton?: boolean;
|
|
1304
|
-
cancelLabel?: string;
|
|
1305
|
-
parentFormAPI?: UseEntityFormReturnType;
|
|
1306
|
-
editor?: boolean;
|
|
1307
|
-
editImageLabel?: string;
|
|
1308
|
-
replaceFileGUID?: string;
|
|
1309
|
-
replaceExistingFile?: boolean;
|
|
1310
|
-
}
|
|
1311
|
-
export const FileUploaderDefaultProps: Partial<FileUploaderProps>;
|
|
1312
|
-
export function FileUploader(props: FileUploaderProps): JSX.Element;
|
|
1313
|
-
export interface FilesUploadFormProps extends UseFileUploadProps {
|
|
1314
|
-
fileProcessColumn: EntityColumn<string>;
|
|
1315
|
-
onOK?: (fileprocess_id: string, files: readonly UploadProgressReport[]) => void;
|
|
1316
|
-
onDelete?: (fileGUID: string) => boolean | Promise<boolean>;
|
|
1317
|
-
helpMessage?: string;
|
|
1318
|
-
uploaderProps?: Omit<FileUploaderProps, 'uploadAPI' | 'editor'>;
|
|
1319
|
-
okLabel?: string;
|
|
1320
|
-
showOKButton?: boolean;
|
|
1321
|
-
uploadAPI?: UseFileUploadReturnType;
|
|
1322
|
-
}
|
|
1323
|
-
export const FilesUploadFormDefaultProps: Partial<FilesUploadFormProps>;
|
|
1324
|
-
export function FilesUploadForm(props: FilesUploadFormProps): JSX.Element;
|
|
1325
|
-
export interface ModalFileUploadProps {
|
|
1326
|
-
client: MicroMClient;
|
|
1327
|
-
fileProcessColumn: EntityColumn<string>;
|
|
1328
|
-
onOK?: (fileprocess_id: string, files: readonly UploadProgressReport[]) => void;
|
|
1329
|
-
onCancel?: () => void;
|
|
1330
|
-
onClosed?: () => void;
|
|
1331
|
-
modalProps?: ModalSettings;
|
|
1332
|
-
modalTitle?: string;
|
|
1333
|
-
uploadAPI?: UseFileUploadReturnType;
|
|
1334
|
-
filesUploadFormProps: Omit<FilesUploadFormProps, 'fileProcessColumn' | 'uploaderProps' | 'client' | 'onOK' | 'onCancel' | 'uploadAPI'>;
|
|
1335
|
-
uploaderProps?: Omit<FileUploaderProps, 'uploadAPI' | 'editor'>;
|
|
1480
|
+
export const EmailFieldDefaultProps: Partial<EmailFieldProps>;
|
|
1481
|
+
export function EmailField(props: EmailFieldProps): JSX.Element;
|
|
1482
|
+
export interface UrlFieldProps extends Omit<TextFieldProps, 'validate'> {
|
|
1483
|
+
invalidMessage?: string;
|
|
1336
1484
|
}
|
|
1337
|
-
export const
|
|
1338
|
-
export function
|
|
1339
|
-
export interface
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1485
|
+
export const UrlFieldDefaultProps: Partial<UrlFieldProps>;
|
|
1486
|
+
export function UrlField(props: UrlFieldProps): JSX.Element;
|
|
1487
|
+
export interface UseDynamicContentProps {
|
|
1488
|
+
contentState: ReturnType<typeof useState<ReactNode>>;
|
|
1489
|
+
dynamicContent: Promise<ReactNode>;
|
|
1490
|
+
loading?: ReactNode;
|
|
1343
1491
|
}
|
|
1344
|
-
export function
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
export function useImportData(importEntity?: Entity<EntityDefinition>): {
|
|
1351
|
-
execute: (fileprocess_id: string) => Promise<OperationStatus<ImpDataResult> | undefined>;
|
|
1352
|
-
importStatus: OperationStatus<ImpDataResult>;
|
|
1353
|
-
cancellation: AbortController;
|
|
1354
|
-
};
|
|
1355
|
-
export interface MicroMClientClaimTypes {
|
|
1356
|
-
username: string;
|
|
1357
|
-
useremail?: string;
|
|
1358
|
-
userinitials?: string;
|
|
1359
|
-
[k: string]: unknown;
|
|
1492
|
+
export function useDynamicContent(props: UseDynamicContentProps): void;
|
|
1493
|
+
export interface CopyToClipboardProps extends ActionIconProps {
|
|
1494
|
+
valueToCopy: unknown;
|
|
1495
|
+
timeout?: number;
|
|
1496
|
+
copiedColor?: MantineColor;
|
|
1497
|
+
iconSize?: string | number;
|
|
1360
1498
|
}
|
|
1361
|
-
export
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
access_token: string;
|
|
1365
|
-
refresh_token: string;
|
|
1366
|
-
token_type: string;
|
|
1367
|
-
claims: Partial<MicroMClientClaimTypes>;
|
|
1368
|
-
constructor(access_token?: string, expires_in?: number, refresh_token?: string, token_type?: string, claims?: {});
|
|
1369
|
-
className(): string;
|
|
1499
|
+
export function CopyToClipboard(props: CopyToClipboardProps): JSX.Element;
|
|
1500
|
+
export interface CodeBlockProps extends Omit<PrismProps, 'children'> {
|
|
1501
|
+
codeText: string;
|
|
1370
1502
|
}
|
|
1371
|
-
export
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1503
|
+
export const CodeBlockDefaultProps: Partial<CodeBlockProps>;
|
|
1504
|
+
export function CodeBlock(props: CodeBlockProps): JSX.Element;
|
|
1505
|
+
export interface DateInputFieldProps extends Omit<DateInputProps, 'autoFocus'> {
|
|
1506
|
+
column: EntityColumn<Value>;
|
|
1507
|
+
entityForm: UseEntityFormReturnType;
|
|
1508
|
+
validate?: ValidatorConfiguration;
|
|
1509
|
+
requiredMessage?: ReactNode;
|
|
1510
|
+
validationContainer?: React.ComponentType<{
|
|
1511
|
+
children: ReactNode;
|
|
1512
|
+
}>;
|
|
1513
|
+
autoFocus?: 'autoFocusOnAdd' | 'autoFocusOnEdit' | boolean;
|
|
1514
|
+
maxWidth?: keyof typeof MicroMWidthSizes;
|
|
1515
|
+
minWidth?: keyof typeof MicroMWidthSizes;
|
|
1381
1516
|
}
|
|
1382
|
-
export
|
|
1383
|
-
export
|
|
1517
|
+
export const DateInputFieldDefaultProps: Partial<DateInputFieldProps>;
|
|
1518
|
+
export const DateInputField: ForwardRefExoticComponent<DateInputFieldProps & RefAttributes<HTMLInputElement>>;
|
|
1519
|
+
export interface NumberFieldProps extends Omit<NumberInputProps, 'autoFocus'> {
|
|
1520
|
+
column: EntityColumn<Value>;
|
|
1521
|
+
entityForm: UseEntityFormReturnType;
|
|
1384
1522
|
loading?: boolean;
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1523
|
+
disableOnLoading?: boolean;
|
|
1524
|
+
validate?: ValidatorConfiguration;
|
|
1525
|
+
requiredMessage?: ReactNode;
|
|
1526
|
+
validationContainer?: React.ComponentType<{
|
|
1527
|
+
children: ReactNode;
|
|
1528
|
+
}>;
|
|
1529
|
+
autoFocus?: 'autoFocusOnAdd' | 'autoFocusOnEdit' | boolean;
|
|
1530
|
+
maxWidth?: keyof typeof MicroMWidthSizes;
|
|
1531
|
+
minWidth?: keyof typeof MicroMWidthSizes;
|
|
1388
1532
|
}
|
|
1389
|
-
export
|
|
1390
|
-
export
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
vc_webinsuser: EntityColumn<string>;
|
|
1395
|
-
vc_webluuser: EntityColumn<string>;
|
|
1396
|
-
vc_insuser: EntityColumn<string>;
|
|
1397
|
-
vc_luuser: EntityColumn<string>;
|
|
1398
|
-
c_fileprocess_id: EntityColumn<string>;
|
|
1399
|
-
};
|
|
1400
|
-
views: {
|
|
1401
|
-
ipr_brwStandard: {
|
|
1402
|
-
name: string;
|
|
1403
|
-
keyMappings: {
|
|
1404
|
-
c_import_process: number;
|
|
1405
|
-
};
|
|
1406
|
-
};
|
|
1407
|
-
};
|
|
1408
|
-
lookups: {
|
|
1409
|
-
FileStoreProcess: {
|
|
1410
|
-
name: string;
|
|
1411
|
-
viewMapping: {
|
|
1412
|
-
keyIndex: number;
|
|
1413
|
-
descriptionIndex: number;
|
|
1414
|
-
};
|
|
1415
|
-
entityConstructor: (client: MicroMClient, parentKeys?: ValuesObject) => FileStoreProcess;
|
|
1416
|
-
};
|
|
1417
|
-
};
|
|
1418
|
-
constructor();
|
|
1533
|
+
export const NumberField: ForwardRefExoticComponent<NumberFieldProps & RefAttributes<HTMLInputElement>>;
|
|
1534
|
+
export interface UseHierarchyKeysProps {
|
|
1535
|
+
formAPI: UseEntityFormReturnType;
|
|
1536
|
+
hierarchy: string[];
|
|
1537
|
+
mappedHierarchy?: string[];
|
|
1419
1538
|
}
|
|
1420
|
-
export
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
icon: ReactNode;
|
|
1426
|
-
mr?: string;
|
|
1539
|
+
export function useHierarchyKeys(props: UseHierarchyKeysProps): Record<string, Value>[];
|
|
1540
|
+
export interface PhoneFieldProps extends Omit<TextFieldProps, 'validate'> {
|
|
1541
|
+
invalidMessage?: string;
|
|
1542
|
+
showCallIcon?: boolean;
|
|
1543
|
+
showWhatsappIcon?: boolean;
|
|
1427
1544
|
}
|
|
1428
|
-
export const
|
|
1429
|
-
export
|
|
1430
|
-
export interface
|
|
1431
|
-
|
|
1432
|
-
importInfoLabel?: string;
|
|
1433
|
-
csvInstructionsLabel?: string;
|
|
1434
|
-
columnHeaderLabel?: string;
|
|
1435
|
-
dataNameLabel?: string;
|
|
1436
|
-
contentLabel?: string;
|
|
1437
|
-
dataTypeLabel?: string;
|
|
1438
|
-
errorReadingFileLabel?: string;
|
|
1439
|
-
emptyCSVFileLabel?: string;
|
|
1440
|
-
missingColumnsLabel?: string;
|
|
1441
|
-
dateFormatLabel?: string;
|
|
1442
|
-
numberFormatLabel?: string;
|
|
1443
|
-
downloadSampleLabel?: string;
|
|
1444
|
-
importButtonLabel?: string;
|
|
1445
|
-
importHelpAndInstructionsLabel?: string;
|
|
1446
|
-
recordsImportedSusccessfullyLabel?: string;
|
|
1447
|
-
recordsNotImportedDueToErrorsLabel?: string;
|
|
1448
|
-
importTheCSVFileLabel?: string;
|
|
1449
|
-
importedFileLabel?: string;
|
|
1450
|
-
errorColumnTitle?: string;
|
|
1451
|
-
rowColumnTitle?: string;
|
|
1545
|
+
export const PhoneFieldDefaultProps: Partial<PhoneFieldProps>;
|
|
1546
|
+
export function PhoneField(props: PhoneFieldProps): JSX.Element;
|
|
1547
|
+
export interface CUITFieldProps extends TextFieldProps {
|
|
1548
|
+
invalidMessage?: string;
|
|
1452
1549
|
}
|
|
1453
|
-
export const
|
|
1454
|
-
export function
|
|
1455
|
-
export interface
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1550
|
+
export const CUITFieldDefaultProps: Partial<CUITFieldProps>;
|
|
1551
|
+
export function CUITField(props: CUITFieldProps): JSX.Element;
|
|
1552
|
+
export interface UseParentKeysProps {
|
|
1553
|
+
formAPI: UseEntityFormReturnType;
|
|
1554
|
+
columnNames: string[];
|
|
1555
|
+
entity: Entity<EntityDefinition>;
|
|
1459
1556
|
}
|
|
1460
|
-
export
|
|
1461
|
-
export
|
|
1462
|
-
|
|
1557
|
+
export function useParentKeys(props: UseParentKeysProps): ValuesObject;
|
|
1558
|
+
export interface TimeFieldProps extends Omit<TimeInputProps, 'validate' | 'autoFocus'> {
|
|
1559
|
+
column: EntityColumn<Value>;
|
|
1560
|
+
entityForm: UseEntityFormReturnType;
|
|
1561
|
+
validate?: ValidatorConfiguration;
|
|
1562
|
+
requiredMessage?: React.ReactNode;
|
|
1563
|
+
validationContainer?: React.ComponentType<{
|
|
1564
|
+
children: ReactNode;
|
|
1565
|
+
}>;
|
|
1566
|
+
autoFocus?: 'autoFocusOnAdd' | 'autoFocusOnEdit' | boolean;
|
|
1567
|
+
showTimePicker?: boolean;
|
|
1568
|
+
maxWidth?: keyof typeof MicroMWidthSizes;
|
|
1569
|
+
minWidth?: keyof typeof MicroMWidthSizes;
|
|
1463
1570
|
}
|
|
1464
|
-
export
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
element?: HTMLElement;
|
|
1468
|
-
getDataOnInit?: boolean;
|
|
1469
|
-
modalFormSize?: MicroMModalSize;
|
|
1470
|
-
handleModalSaved: (newStatus: OperationStatus<DBStatusResult | null>) => Promise<void>;
|
|
1471
|
-
handleModalCancel: () => Promise<void>;
|
|
1472
|
-
handleModalClosed?: () => void;
|
|
1571
|
+
export const TimeFieldDefaultProps: Partial<TimeFieldProps>;
|
|
1572
|
+
interface TimeFieldRef {
|
|
1573
|
+
showPicker: () => void;
|
|
1473
1574
|
}
|
|
1474
|
-
export
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
notExportableColumns?: number[];
|
|
1575
|
+
export const TimeField: ForwardRefExoticComponent<TimeFieldProps & RefAttributes<TimeFieldRef>>;
|
|
1576
|
+
export function getInitials(input: string): string;
|
|
1577
|
+
export interface useIsLoggedInProps {
|
|
1578
|
+
client: MicroMClient;
|
|
1579
|
+
useLocalLoggedInCheck?: boolean;
|
|
1580
|
+
userInitialsClientClaimsNames?: string[];
|
|
1481
1581
|
}
|
|
1482
|
-
export
|
|
1483
|
-
|
|
1582
|
+
export type useIsLoggedInReturnType = {
|
|
1583
|
+
isLoggedIn: boolean | undefined;
|
|
1584
|
+
setIsLoggedIn: Dispatch<SetStateAction<boolean | undefined>>;
|
|
1585
|
+
checkIsLoggedIn: () => Promise<void>;
|
|
1586
|
+
loggedInInfo: Partial<MicroMClientClaimTypes>;
|
|
1484
1587
|
};
|
|
1485
|
-
export
|
|
1588
|
+
export function useIsLoggedIn({ client, useLocalLoggedInCheck, userInitialsClientClaimsNames }: useIsLoggedInProps): useIsLoggedInReturnType;
|
|
1589
|
+
export const usePreventEnterSubmission: () => (event: KeyboardEvent) => void;
|
|
1590
|
+
export function formatDate(value: Value, locale?: string, dateOptions?: Intl.DateTimeFormatOptions): string;
|
|
1591
|
+
export function formatTime(value: Value, locale?: string, dateOptions?: Intl.DateTimeFormatOptions): string;
|
|
1592
|
+
export function formatNumber(value: Value, locale?: string): string;
|
|
1593
|
+
export function convertDateToNative(value: string, serverTimeZoneOffset: number): Date;
|
|
1594
|
+
export function formatSQLValue(value: Value, sqlType: SQLType, locale?: string): string;
|
|
1595
|
+
export function convertToNativeValue(value: Value, sqlType: SQLType, serverTimezoneOffset: number): Value;
|
|
1596
|
+
export interface UseLocaleFormatProps {
|
|
1597
|
+
timeZoneOffset: number;
|
|
1598
|
+
initialLocale?: string;
|
|
1486
1599
|
}
|
|
1487
|
-
export
|
|
1488
|
-
export
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1600
|
+
export const UseLocaleFormatDefaultProps: Partial<UseLocaleFormatProps>;
|
|
1601
|
+
export function useLocaleFormat(props: UseLocaleFormatProps): {
|
|
1602
|
+
locale: string | undefined;
|
|
1603
|
+
setLocale: Dispatch<SetStateAction<string | undefined>>;
|
|
1604
|
+
formatValue: (value: Value, sqlType: SQLType) => string;
|
|
1605
|
+
getNativeValue: (value: Value, sqlType: SQLType) => Value;
|
|
1606
|
+
formatColumnValue: (col: EntityColumn<Value>) => string;
|
|
1607
|
+
};
|
|
1608
|
+
export const UseImportDataDefaultProps: {
|
|
1609
|
+
noFileProcessLabel: string;
|
|
1610
|
+
errorImportingDataLabel: string;
|
|
1611
|
+
};
|
|
1612
|
+
export interface ImageCropOptions {
|
|
1613
|
+
aspectRatio?: number;
|
|
1501
1614
|
}
|
|
1502
|
-
export
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
deleteLabel: string;
|
|
1507
|
-
viewLabel: string;
|
|
1508
|
-
YouWillDeleteLabel: string;
|
|
1509
|
-
recordsLabel: string;
|
|
1510
|
-
recordLabel: string;
|
|
1511
|
-
AreYouSureLabel: string;
|
|
1512
|
-
warningLabel: string;
|
|
1513
|
-
YouMustSelectOneOrMoreRecordsToDelete: string;
|
|
1514
|
-
closeLabel: string;
|
|
1515
|
-
YouMustSelectOneOrMoreRecordsToExecuteAction: string;
|
|
1516
|
-
YouMustSelect: string;
|
|
1517
|
-
YouMustSelectBetween: string;
|
|
1518
|
-
YouMustSelectAtLeast: string;
|
|
1519
|
-
YouMustSelectMaximum: string;
|
|
1615
|
+
export interface ImageResizeOptions {
|
|
1616
|
+
maxWidth?: number;
|
|
1617
|
+
maxHeight?: number;
|
|
1618
|
+
allowUpscale?: boolean;
|
|
1520
1619
|
}
|
|
1521
|
-
export interface
|
|
1522
|
-
|
|
1523
|
-
parentKeys?: ValuesObject;
|
|
1524
|
-
modalFormSize?: MicroMModalSize;
|
|
1525
|
-
withModalFullscreenButton?: boolean;
|
|
1526
|
-
parentFormAPI?: UseEntityFormReturnType;
|
|
1527
|
-
saveFormBeforeAdd?: boolean;
|
|
1528
|
-
onModalSaved?: (new_status: OperationStatus<DBStatusResult | null>) => void;
|
|
1529
|
-
onModalCancelled?: () => void;
|
|
1530
|
-
onRecordsDeleted?: () => void;
|
|
1531
|
-
onActionRefreshOnClose?: () => void;
|
|
1532
|
-
labels?: EntityUILabels;
|
|
1533
|
-
onAddClick?: (gridAddClick: (element?: HTMLElement) => void, element?: HTMLElement) => void;
|
|
1534
|
-
onEditClick?: (keys: ValuesObject, element?: HTMLElement) => void;
|
|
1535
|
-
onDeleteClick?: (keys: ValuesObject[], element?: HTMLElement) => void;
|
|
1536
|
-
onActionExecuted?: (actionName: string, result?: boolean) => void;
|
|
1537
|
-
onModalClosed?: (cancelled?: boolean) => void;
|
|
1620
|
+
export interface ImageManualRotationOptions {
|
|
1621
|
+
stepDegrees?: 90 | -90;
|
|
1538
1622
|
}
|
|
1539
|
-
export
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1623
|
+
export interface ImageCompressionOptions {
|
|
1624
|
+
thresholdBytes?: number;
|
|
1625
|
+
quality?: number;
|
|
1626
|
+
fallbackFormat?: string;
|
|
1627
|
+
}
|
|
1628
|
+
export interface BrowserImageProcessingOptions {
|
|
1629
|
+
exifOrientation?: boolean;
|
|
1630
|
+
crop?: boolean | ImageCropOptions;
|
|
1631
|
+
resize?: boolean | ImageResizeOptions;
|
|
1632
|
+
manualRotation?: boolean | ImageManualRotationOptions;
|
|
1633
|
+
compression?: boolean | ImageCompressionOptions;
|
|
1634
|
+
outputFormat?: string;
|
|
1635
|
+
jpegBackgroundColor?: string;
|
|
1636
|
+
}
|
|
1637
|
+
export interface ResolvedBrowserImageProcessingOptions {
|
|
1638
|
+
exifOrientation: boolean;
|
|
1639
|
+
crop: false | Required<ImageCropOptions>;
|
|
1640
|
+
resize: false | Required<ImageResizeOptions>;
|
|
1641
|
+
manualRotation: false | Required<ImageManualRotationOptions>;
|
|
1642
|
+
compression: false | Required<ImageCompressionOptions>;
|
|
1643
|
+
outputFormat?: string;
|
|
1644
|
+
jpegBackgroundColor: string;
|
|
1645
|
+
}
|
|
1646
|
+
export const BrowserImageProcessingDefaults: ResolvedBrowserImageProcessingOptions;
|
|
1647
|
+
export function resolveImageProcessingOptions(options?: BrowserImageProcessingOptions): ResolvedBrowserImageProcessingOptions;
|
|
1648
|
+
export function getSupportedImageMimeType(fileName: string, declaredType?: string): string | undefined;
|
|
1649
|
+
export function isSupportedImageFile(fileName: string, declaredType?: string): boolean;
|
|
1650
|
+
export function getImageOutputSettings(file: File, options: ResolvedBrowserImageProcessingOptions): {
|
|
1651
|
+
sourceFormat: string;
|
|
1652
|
+
outputFormat: string;
|
|
1653
|
+
shouldCompress: boolean;
|
|
1654
|
+
quality: number | undefined;
|
|
1552
1655
|
};
|
|
1553
|
-
export
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1656
|
+
export function canvasToProcessedFile(canvas: HTMLCanvasElement, source: File, options: ResolvedBrowserImageProcessingOptions): Promise<File>;
|
|
1657
|
+
export function processImageFileAutomatically(file: File, options: ResolvedBrowserImageProcessingOptions): Promise<File>;
|
|
1658
|
+
export type PreviewFileTypes = 'image' | 'pdf' | 'other';
|
|
1659
|
+
export const getFileType: (file_name: string) => PreviewFileTypes;
|
|
1660
|
+
export interface FilePreviewProps {
|
|
1661
|
+
documentURL: string;
|
|
1662
|
+
onClose: () => void;
|
|
1663
|
+
closeText: string;
|
|
1664
|
+
filePreviewError?: string;
|
|
1562
1665
|
}
|
|
1563
|
-
export
|
|
1564
|
-
export const
|
|
1565
|
-
export function
|
|
1566
|
-
export
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1666
|
+
export function ImagePreview({ documentURL, onClose, closeText }: FilePreviewProps): JSX.Element;
|
|
1667
|
+
export const PDFPreviewDefaultProps: Partial<FilePreviewProps>;
|
|
1668
|
+
export function PDFPreview(props: FilePreviewProps): JSX.Element;
|
|
1669
|
+
export class FileStoreClientDef extends EntityDefinition {
|
|
1670
|
+
columns: {
|
|
1671
|
+
dt_inserttime: EntityColumn<Date>;
|
|
1672
|
+
dt_lu: EntityColumn<Date>;
|
|
1673
|
+
vc_webinsuser: EntityColumn<string>;
|
|
1674
|
+
vc_webluuser: EntityColumn<string>;
|
|
1675
|
+
vc_insuser: EntityColumn<string>;
|
|
1676
|
+
vc_luuser: EntityColumn<string>;
|
|
1677
|
+
vc_fileguid: EntityColumn<string>;
|
|
1678
|
+
c_fileprocess_id: EntityColumn<string>;
|
|
1679
|
+
vc_filename: EntityColumn<string>;
|
|
1680
|
+
vc_filefolder: EntityColumn<string>;
|
|
1681
|
+
bi_filesize: EntityColumn<number>;
|
|
1682
|
+
vc_file_tag: EntityColumn<string>;
|
|
1683
|
+
c_fileuploadstatus_id: EntityColumn<string>;
|
|
1684
|
+
c_filestoragetype_id: EntityColumn<string>;
|
|
1685
|
+
};
|
|
1686
|
+
views: {
|
|
1687
|
+
fcc_brwFiles: {
|
|
1688
|
+
name: string;
|
|
1689
|
+
keyMappings: {
|
|
1690
|
+
vc_fileguid: number;
|
|
1691
|
+
c_fileprocess_id: number;
|
|
1692
|
+
};
|
|
1693
|
+
};
|
|
1694
|
+
};
|
|
1695
|
+
constructor();
|
|
1584
1696
|
}
|
|
1585
|
-
export
|
|
1586
|
-
|
|
1587
|
-
export function html(str: any): Query | undefined;
|
|
1588
|
-
import version = Query.version;
|
|
1589
|
-
export { version };
|
|
1697
|
+
export class FileStoreClient extends Entity<FileStoreClientDef> {
|
|
1698
|
+
constructor(client: MicroMClient, parentKeys?: {});
|
|
1590
1699
|
}
|
|
1591
|
-
export
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
let decimalSymbol: string;
|
|
1601
|
-
let shortmonths: string[];
|
|
1602
|
-
let fullmonths: string[];
|
|
1603
|
-
let shortdays: string[];
|
|
1604
|
-
let fulldays: string[];
|
|
1605
|
-
let weekStarts: string;
|
|
1606
|
-
let phrases: {
|
|
1607
|
-
'${count} letters or more...': string;
|
|
1608
|
-
'Add new record': string;
|
|
1609
|
-
'Add New': string;
|
|
1610
|
-
'Advanced Search': string;
|
|
1611
|
-
after: string;
|
|
1612
|
-
'AJAX error. See console for more details.': string;
|
|
1613
|
-
'All Fields': string;
|
|
1614
|
-
All: string;
|
|
1615
|
-
Any: string;
|
|
1616
|
-
'Are you sure you want to delete ${count} ${records}?': string;
|
|
1617
|
-
'Attach files by dragging and dropping or Click to Select': string;
|
|
1618
|
-
before: string;
|
|
1619
|
-
'begins with': string;
|
|
1620
|
-
begins: string;
|
|
1621
|
-
between: string;
|
|
1622
|
-
buffered: string;
|
|
1623
|
-
Cancel: string;
|
|
1624
|
-
Close: string;
|
|
1625
|
-
Column: string;
|
|
1626
|
-
Confirmation: string;
|
|
1627
|
-
contains: string;
|
|
1628
|
-
Copied: string;
|
|
1629
|
-
'Copy to clipboard': string;
|
|
1630
|
-
'Current Date & Time': string;
|
|
1631
|
-
'Delete selected records': string;
|
|
1632
|
-
Delete: string;
|
|
1633
|
-
'Do you want to delete search item "${item}"?': string;
|
|
1634
|
-
'Edit selected record': string;
|
|
1635
|
-
Edit: string;
|
|
1636
|
-
'Empty list': string;
|
|
1637
|
-
'ends with': string;
|
|
1638
|
-
ends: string;
|
|
1639
|
-
'Field should be at least ${count} characters.': string;
|
|
1640
|
-
Hide: string;
|
|
1641
|
-
in: string;
|
|
1642
|
-
'is not': string;
|
|
1643
|
-
is: string;
|
|
1644
|
-
'less than': string;
|
|
1645
|
-
'Line #': string;
|
|
1646
|
-
'Load ${count} more...': string;
|
|
1647
|
-
'Loading...': string;
|
|
1648
|
-
'Maximum number of files is ${count}': string;
|
|
1649
|
-
'Maximum total size is ${count}': string;
|
|
1650
|
-
Modified: string;
|
|
1651
|
-
'more than': string;
|
|
1652
|
-
'Multiple Fields': string;
|
|
1653
|
-
Name: string;
|
|
1654
|
-
'No items found': string;
|
|
1655
|
-
'No matches': string;
|
|
1656
|
-
No: string;
|
|
1657
|
-
none: string;
|
|
1658
|
-
'Not a float': string;
|
|
1659
|
-
'Not a hex number': string;
|
|
1660
|
-
'Not a valid date': string;
|
|
1661
|
-
'Not a valid email': string;
|
|
1662
|
-
'Not alpha-numeric': string;
|
|
1663
|
-
'Not an integer': string;
|
|
1664
|
-
'Not in money format': string;
|
|
1665
|
-
'not in': string;
|
|
1666
|
-
Notification: string;
|
|
1667
|
-
of: string;
|
|
1668
|
-
Ok: string;
|
|
1669
|
-
Opacity: string;
|
|
1670
|
-
'Record ID': string;
|
|
1671
|
-
record: string;
|
|
1672
|
-
records: string;
|
|
1673
|
-
'Refreshing...': string;
|
|
1674
|
-
'Reload data in the list': string;
|
|
1675
|
-
Remove: string;
|
|
1676
|
-
'Remove This Field': string;
|
|
1677
|
-
'Request aborted.': string;
|
|
1678
|
-
'Required field': string;
|
|
1679
|
-
Reset: string;
|
|
1680
|
-
'Restore Default State': string;
|
|
1681
|
-
'Returned data is not in valid JSON format.': string;
|
|
1682
|
-
'Save changed records': string;
|
|
1683
|
-
'Save Grid State': string;
|
|
1684
|
-
Save: string;
|
|
1685
|
-
'Saved Searches': string;
|
|
1686
|
-
'Saving...': string;
|
|
1687
|
-
'Search took ${count} seconds': string;
|
|
1688
|
-
Search: string;
|
|
1689
|
-
'Select Hour': string;
|
|
1690
|
-
'Select Minute': string;
|
|
1691
|
-
selected: string;
|
|
1692
|
-
'Server Response ${count} seconds': string;
|
|
1693
|
-
'Show/hide columns': string;
|
|
1694
|
-
Show: string;
|
|
1695
|
-
Size: string;
|
|
1696
|
-
Skip: string;
|
|
1697
|
-
'Sorting took ${count} seconds': string;
|
|
1698
|
-
'Type to search...': string;
|
|
1699
|
-
Type: string;
|
|
1700
|
-
Yes: string;
|
|
1701
|
-
Yesterday: string;
|
|
1702
|
-
'Your remote data source record count has changed, reloading from the first record.': string;
|
|
1700
|
+
export class FileStoreProcessDef extends EntityDefinition {
|
|
1701
|
+
columns: {
|
|
1702
|
+
dt_inserttime: EntityColumn<Date>;
|
|
1703
|
+
dt_lu: EntityColumn<Date>;
|
|
1704
|
+
vc_webinsuser: EntityColumn<string>;
|
|
1705
|
+
vc_webluuser: EntityColumn<string>;
|
|
1706
|
+
vc_insuser: EntityColumn<string>;
|
|
1707
|
+
vc_luuser: EntityColumn<string>;
|
|
1708
|
+
c_fileprocess_id: EntityColumn<string>;
|
|
1703
1709
|
};
|
|
1710
|
+
views: {
|
|
1711
|
+
fsp_brwStandard: {
|
|
1712
|
+
name: string;
|
|
1713
|
+
keyMappings: {
|
|
1714
|
+
c_fileprocess_id: number;
|
|
1715
|
+
};
|
|
1716
|
+
};
|
|
1717
|
+
};
|
|
1718
|
+
constructor();
|
|
1704
1719
|
}
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
};
|
|
1708
|
-
type w2recordId = string | number;
|
|
1709
|
-
type w2columnField = string;
|
|
1710
|
-
export type GridSelectionMode = 'multi' | 'single';
|
|
1711
|
-
export type GridColumnFormat = 'url' | 'email' | 'string' | 'check' | 'image' | 'html';
|
|
1712
|
-
export type GridColumnRender = (value: unknown, cellElement?: HTMLElement, record?: GridRecord, field?: w2columnField) => ReactNode;
|
|
1713
|
-
export type GridRecord = w2record;
|
|
1714
|
-
export type GridSourceRecord = Record<string | number, unknown> | unknown[];
|
|
1715
|
-
export type GridRecordId = w2recordId;
|
|
1716
|
-
export type GridColumn = {
|
|
1717
|
-
field: string;
|
|
1718
|
-
text: string;
|
|
1719
|
-
hidden?: boolean;
|
|
1720
|
-
format?: GridColumnFormat;
|
|
1721
|
-
autoSizeMax?: number;
|
|
1722
|
-
render?: GridColumnRender;
|
|
1723
|
-
sqlType?: SQLType;
|
|
1724
|
-
};
|
|
1725
|
-
export type GridColumnsOverrides = Record<string | number, Partial<GridColumn>>;
|
|
1726
|
-
export type GridSelection = GridRecord[];
|
|
1727
|
-
export type GridDoubleClickCallback = (record: GridRecord) => void;
|
|
1728
|
-
export type GridSelectionChangedCallback = (selection: GridSelection) => void;
|
|
1729
|
-
export type GridOptions = {
|
|
1730
|
-
columns?: GridColumn[];
|
|
1731
|
-
rows?: GridSourceRecord[];
|
|
1732
|
-
gridHeight?: string | number | 'auto' | 'flex-grow';
|
|
1733
|
-
selectionMode?: GridSelectionMode;
|
|
1734
|
-
onDoubleClick?: GridDoubleClickCallback;
|
|
1735
|
-
preserveSelection?: boolean;
|
|
1736
|
-
autoSelectFirstRow?: boolean;
|
|
1737
|
-
onSelectionChanged?: GridSelectionChangedCallback;
|
|
1738
|
-
showSelectCheckbox?: boolean;
|
|
1739
|
-
rowHeight?: number;
|
|
1740
|
-
stripped?: boolean;
|
|
1741
|
-
highlightOnHover?: boolean;
|
|
1742
|
-
columnBorders?: boolean;
|
|
1743
|
-
rowBorders?: boolean;
|
|
1744
|
-
withBorder?: boolean;
|
|
1745
|
-
autoSizeColumnsOnLoad?: boolean;
|
|
1746
|
-
columnsOverrides?: GridColumnsOverrides;
|
|
1747
|
-
selectedRows?: GridSelection;
|
|
1748
|
-
setSelectedRows?: (rows: GridSelection) => void;
|
|
1749
|
-
timeZoneOffset?: number;
|
|
1750
|
-
};
|
|
1751
|
-
export type GridImperative = {};
|
|
1752
|
-
export const DefaultGridProps: Partial<GridOptions>;
|
|
1753
|
-
export const DefaultGridColumnProps: Partial<GridColumn>;
|
|
1754
|
-
export const Grid: ForwardRefExoticComponent<GridOptions & RefAttributes<GridImperative>>;
|
|
1755
|
-
export function GridGlobalStyles(): JSX.Element;
|
|
1756
|
-
export interface UseDataGridToolbarFiltersProps {
|
|
1757
|
-
filterValues: ValuesObject | undefined;
|
|
1758
|
-
setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
|
|
1759
|
-
filtersDescription: ValuesObject | undefined;
|
|
1760
|
-
setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
|
|
1761
|
-
client?: MicroMClient;
|
|
1762
|
-
parentKeys?: ValuesObject;
|
|
1763
|
-
FiltersEntity?: EntityConstructor;
|
|
1764
|
-
searchData: SelectItem[];
|
|
1765
|
-
setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
|
|
1766
|
-
setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
|
|
1767
|
-
onRefreshClick: (searchText: string[] | undefined) => void;
|
|
1768
|
-
onSearchTextChange?: (text: string[] | undefined) => void;
|
|
1769
|
-
filtersFormSize: MantineNumberSize;
|
|
1770
|
-
visibleFilters?: string[];
|
|
1771
|
-
initialColumnFilters?: ColumnsObject;
|
|
1772
|
-
filterInputRef: RefObject<HTMLInputElement>;
|
|
1720
|
+
export class FileStoreProcess extends Entity<FileStoreProcessDef> {
|
|
1721
|
+
constructor(client: MicroMClient, parentKeys?: {});
|
|
1773
1722
|
}
|
|
1774
|
-
export
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1723
|
+
export interface FullImagePreviewProps {
|
|
1724
|
+
source: HTMLCanvasElement;
|
|
1725
|
+
rotation: number;
|
|
1726
|
+
label: string;
|
|
1727
|
+
}
|
|
1728
|
+
export function FullImagePreview({ source, rotation, label }: FullImagePreviewProps): JSX.Element;
|
|
1729
|
+
export interface WebcamCaptureLabels {
|
|
1730
|
+
permissionMessage?: string;
|
|
1731
|
+
enableCameraLabel?: string;
|
|
1732
|
+
cameraLabel?: string;
|
|
1733
|
+
captureLabel?: string;
|
|
1734
|
+
retakeLabel?: string;
|
|
1735
|
+
usePhotoLabel?: string;
|
|
1736
|
+
cancelLabel?: string;
|
|
1737
|
+
unsupportedMessage?: string;
|
|
1738
|
+
insecureContextMessage?: string;
|
|
1739
|
+
permissionDeniedMessage?: string;
|
|
1740
|
+
noCameraMessage?: string;
|
|
1741
|
+
cameraUnavailableMessage?: string;
|
|
1742
|
+
}
|
|
1743
|
+
export interface WebcamCaptureProps {
|
|
1744
|
+
onCapture: (file: File) => Promise<void> | void;
|
|
1745
|
+
onCancel: () => Promise<void> | void;
|
|
1746
|
+
labels?: WebcamCaptureLabels;
|
|
1747
|
+
videoConstraints?: MediaTrackConstraints;
|
|
1748
|
+
fileName?: string;
|
|
1749
|
+
outputType?: 'image/jpeg' | 'image/png' | 'image/webp';
|
|
1750
|
+
outputQuality?: number;
|
|
1751
|
+
}
|
|
1752
|
+
export const WebcamCaptureDefaultProps: Partial<WebcamCaptureProps>;
|
|
1753
|
+
export function WebcamCapture(props: WebcamCaptureProps): JSX.Element;
|
|
1754
|
+
export type ImageEditorCameraConfiguration = Omit<WebcamCaptureProps, 'onCapture' | 'onCancel'>;
|
|
1755
|
+
export interface ImageEditorProps {
|
|
1756
|
+
sourceFile?: File;
|
|
1757
|
+
options: ResolvedBrowserImageProcessingOptions;
|
|
1758
|
+
onSave: (file: File) => Promise<void> | void;
|
|
1759
|
+
onBeforeSave?: (file: File) => boolean | Promise<boolean>;
|
|
1760
|
+
onCancel: () => Promise<void> | void;
|
|
1761
|
+
initiallyDirty?: boolean;
|
|
1762
|
+
saveLabel?: string;
|
|
1763
|
+
cancelLabel?: string;
|
|
1764
|
+
rotateClockwiseLabel?: string;
|
|
1765
|
+
rotateCounterClockwiseLabel?: string;
|
|
1766
|
+
takePhotoLabel?: string;
|
|
1767
|
+
camera?: boolean | ImageEditorCameraConfiguration;
|
|
1768
|
+
}
|
|
1769
|
+
export const ImageEditorDefaultProps: Partial<ImageEditorProps>;
|
|
1770
|
+
export const ImageEditor: (props: ImageEditorProps) => JSX.Element;
|
|
1771
|
+
export interface UploadProgressReport {
|
|
1772
|
+
errorMessage?: string;
|
|
1773
|
+
status_id: string;
|
|
1774
|
+
progress: number;
|
|
1775
|
+
done?: boolean;
|
|
1776
|
+
cancelled?: boolean;
|
|
1777
|
+
documentURL?: string;
|
|
1778
|
+
file_name: string;
|
|
1779
|
+
file_size: number;
|
|
1780
|
+
vc_fileguid?: string;
|
|
1781
|
+
thumbnailURL?: string;
|
|
1782
|
+
}
|
|
1783
|
+
export interface UseFileUploadSnapshot {
|
|
1784
|
+
files: readonly UploadProgressReport[];
|
|
1785
|
+
fileProcessID: string;
|
|
1786
|
+
maxIndividualFileSize?: number;
|
|
1787
|
+
maxTotalFilesSize?: number;
|
|
1788
|
+
maxFilesCount?: number;
|
|
1789
|
+
errorNotification?: string;
|
|
1790
|
+
cancelledNotification?: boolean;
|
|
1791
|
+
uploadingNotification?: boolean;
|
|
1792
|
+
loadingNotification?: boolean;
|
|
1793
|
+
processing: boolean;
|
|
1794
|
+
editorEnabled: boolean;
|
|
1795
|
+
}
|
|
1796
|
+
interface UseFileUploadActions {
|
|
1797
|
+
uploadFiles: (selectedFiles: File[]) => Promise<UploadProgressReport[]>;
|
|
1798
|
+
replaceFile: (fileGUID: string, replacementFile: File) => Promise<UploadProgressReport | null>;
|
|
1799
|
+
editImage: (file: string | UploadProgressReport) => Promise<UploadProgressReport | null>;
|
|
1800
|
+
openImageEditor: (file?: File, options?: OpenImageEditorOptions) => Promise<File | null>;
|
|
1801
|
+
captureImage: () => Promise<UploadProgressReport | null>;
|
|
1802
|
+
canEditImage: (file: string | UploadProgressReport) => boolean;
|
|
1803
|
+
refreshFiles: () => Promise<Record<string, UploadProgressReport>>;
|
|
1804
|
+
deleteFile: (fileGUID: string) => Promise<DBStatusResult>;
|
|
1805
|
+
downloadFile: (fileUrl: string, fileName?: string) => Promise<void>;
|
|
1806
|
+
clearNotifications: () => void;
|
|
1807
|
+
cancelUpload: () => void;
|
|
1808
|
+
}
|
|
1809
|
+
export interface UseFileUploadReturnType extends UseFileUploadSnapshot, UseFileUploadActions {
|
|
1810
|
+
subscribe: (listener: () => void) => () => void;
|
|
1811
|
+
getSnapshot: () => UseFileUploadSnapshot;
|
|
1812
|
+
}
|
|
1813
|
+
export function useFileUploadSnapshot(uploadAPI: UseFileUploadReturnType): UseFileUploadSnapshot;
|
|
1814
|
+
export type ValidateFileReturnType = {
|
|
1815
|
+
error: boolean;
|
|
1816
|
+
message?: string;
|
|
1788
1817
|
};
|
|
1789
|
-
export type
|
|
1790
|
-
export
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
hideCheckboxToggle?: boolean;
|
|
1795
|
-
onCheckboxToggle?: () => void;
|
|
1796
|
-
onSearchTextChange?: (text: string[] | undefined) => void;
|
|
1797
|
-
onRefreshClick: (searchText: string[] | undefined) => void;
|
|
1798
|
-
onExportClick: () => void;
|
|
1799
|
-
autoFocus?: boolean;
|
|
1800
|
-
toolbarIconVariant?: ActionIconVariant;
|
|
1801
|
-
enableExport?: boolean;
|
|
1802
|
-
refreshTooltip?: string;
|
|
1803
|
-
exportTooltip?: string;
|
|
1804
|
-
selectRowsTooltip?: string;
|
|
1805
|
-
searchText: string[] | undefined;
|
|
1806
|
-
setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
|
|
1807
|
-
searchData: SelectItem[];
|
|
1808
|
-
setSearchData: Dispatch<SetStateAction<SelectItem[]>>;
|
|
1809
|
-
maxSearchTerms?: number;
|
|
1810
|
-
FiltersEntity?: EntityConstructor;
|
|
1811
|
-
filterTooltip?: string;
|
|
1812
|
-
parentKeys?: ValuesObject;
|
|
1813
|
-
filterValues: ValuesObject | undefined;
|
|
1814
|
-
setFilterValues: Dispatch<SetStateAction<ValuesObject | undefined>>;
|
|
1815
|
-
filtersDescription: ValuesObject | undefined;
|
|
1816
|
-
setFiltersDescription: Dispatch<SetStateAction<ValuesObject | undefined>>;
|
|
1817
|
-
clearFiltersTooltip?: string;
|
|
1818
|
-
filtersFormSize: MantineNumberSize;
|
|
1819
|
-
enableImport?: boolean;
|
|
1820
|
-
importTooltip?: string;
|
|
1821
|
-
onImportClick?: () => void;
|
|
1822
|
-
filtersBadgeSize?: MantineSize;
|
|
1823
|
-
filtersBadgeVariant?: BadgeVariant;
|
|
1824
|
-
showAppliedFilters?: boolean;
|
|
1825
|
-
showRefreshButton?: boolean;
|
|
1826
|
-
showSelectRowsButton?: boolean;
|
|
1827
|
-
showFiltersButton?: boolean;
|
|
1828
|
-
showSearchInput?: boolean;
|
|
1829
|
-
visibleFilters?: string[];
|
|
1830
|
-
initialColumnFilters?: ColumnsObject;
|
|
1831
|
-
filtersTitle?: string;
|
|
1832
|
-
editFitersLabel?: string;
|
|
1833
|
-
clearFiltersLabel?: string;
|
|
1834
|
-
filtersAccordionVariant?: AccordionVariant;
|
|
1835
|
-
showColumnsConfig?: boolean;
|
|
1836
|
-
configMenuOpened?: boolean;
|
|
1837
|
-
setConfigMenuOpened?: Dispatch<SetStateAction<boolean>>;
|
|
1838
|
-
configMenuDropdown?: ReactNode;
|
|
1818
|
+
export type UploadCompletionResult = ValidateFileReturnType;
|
|
1819
|
+
export type ImageEditorConfigurationProps = Partial<Pick<ImageEditorProps, 'saveLabel' | 'cancelLabel' | 'rotateClockwiseLabel' | 'rotateCounterClockwiseLabel' | 'takePhotoLabel' | 'camera'>>;
|
|
1820
|
+
export interface OpenImageEditorOptions {
|
|
1821
|
+
initiallyDirty?: boolean;
|
|
1822
|
+
onBeforeSave?: NonNullable<ImageEditorProps['onBeforeSave']>;
|
|
1839
1823
|
}
|
|
1840
|
-
export
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1824
|
+
export interface UseFileUploadProps {
|
|
1825
|
+
client: MicroMClient;
|
|
1826
|
+
fileProcessColumn: EntityColumn<string>;
|
|
1827
|
+
maxIndividualFileSize?: number;
|
|
1828
|
+
maxTotalFilesSize?: number;
|
|
1829
|
+
maxFilesCount?: number;
|
|
1830
|
+
youCanUploadAMaximumOfText?: string;
|
|
1831
|
+
filesText?: string;
|
|
1832
|
+
exceedMaximumIndividualSizeText?: string;
|
|
1833
|
+
unspecifiedErrorWhenUploadingFileText?: string;
|
|
1834
|
+
totalUploadExceedsMaximumSizeText?: string;
|
|
1835
|
+
onCancel?: () => void;
|
|
1836
|
+
editor?: boolean;
|
|
1837
|
+
imageProcessing?: BrowserImageProcessingOptions;
|
|
1838
|
+
imageEditorTitle?: ReactNode;
|
|
1839
|
+
imageEditorProps?: ImageEditorConfigurationProps;
|
|
1840
|
+
imageEditorModalProps?: MicroMModalSettings;
|
|
1841
|
+
onValidateFile?: (file: File) => Promise<ValidateFileReturnType>;
|
|
1842
|
+
onProcessFile?: (file: File) => Promise<File | null>;
|
|
1843
|
+
onBeforeUpload?: (file: File) => Promise<boolean>;
|
|
1844
|
+
onBeforeReplace?: (currentFile: UploadProgressReport, replacementFile?: File) => Promise<boolean>;
|
|
1845
|
+
onUploadComplete?: (report: UploadProgressReport) => Promise<UploadCompletionResult | void>;
|
|
1846
|
+
onDeleteComplete?: (fileGUID: string) => Promise<void> | void;
|
|
1847
|
+
thumbnailMaxSize?: number;
|
|
1848
|
+
thumbnailQuality?: number;
|
|
1849
|
+
loadFilesOnMount?: boolean;
|
|
1850
|
+
}
|
|
1851
|
+
export const UseFileUploadDefaultProps: Partial<UseFileUploadProps>;
|
|
1852
|
+
export type UploadStatus = 'Pending' | 'Uploading' | 'Uploaded' | 'Failed' | 'Cancelled';
|
|
1853
|
+
export function useFileUpload(props: UseFileUploadProps): UseFileUploadReturnType;
|
|
1854
|
+
export interface FileUploaderProps extends Omit<DropzoneProps, 'children' | 'onDrop' | 'maxSize' | 'maxFiles'> {
|
|
1855
|
+
IdleIcon?: (props: IconProps) => ReactNode;
|
|
1856
|
+
UploadText?: string;
|
|
1857
|
+
AttachUpToText?: string;
|
|
1858
|
+
FilesText?: string;
|
|
1859
|
+
EachFileShouldNotExceedText?: string;
|
|
1860
|
+
uploadAPI: UseFileUploadReturnType;
|
|
1861
|
+
onDelete?: (fileGUID: string) => boolean | Promise<boolean>;
|
|
1862
|
+
imageProps?: ImageProps;
|
|
1863
|
+
closeText?: string;
|
|
1864
|
+
cancelledText?: string;
|
|
1865
|
+
operationCancelledText?: string;
|
|
1866
|
+
pdfCannotBeViewedText?: string;
|
|
1867
|
+
showCancelButton?: boolean;
|
|
1868
|
+
cancelLabel?: string;
|
|
1869
|
+
parentFormAPI?: UseEntityFormReturnType;
|
|
1870
|
+
editor?: boolean;
|
|
1871
|
+
editImageLabel?: string;
|
|
1872
|
+
replaceFileGUID?: string;
|
|
1873
|
+
replaceExistingFile?: boolean;
|
|
1874
|
+
}
|
|
1875
|
+
export const FileUploaderDefaultProps: Partial<FileUploaderProps>;
|
|
1876
|
+
export function FileUploader(props: FileUploaderProps): JSX.Element;
|
|
1877
|
+
export interface FilesUploadFormProps extends UseFileUploadProps {
|
|
1878
|
+
fileProcessColumn: EntityColumn<string>;
|
|
1879
|
+
onOK?: (fileprocess_id: string, files: readonly UploadProgressReport[]) => void;
|
|
1880
|
+
onDelete?: (fileGUID: string) => boolean | Promise<boolean>;
|
|
1881
|
+
helpMessage?: string;
|
|
1882
|
+
uploaderProps?: Omit<FileUploaderProps, 'uploadAPI' | 'editor'>;
|
|
1883
|
+
okLabel?: string;
|
|
1884
|
+
showOKButton?: boolean;
|
|
1885
|
+
uploadAPI?: UseFileUploadReturnType;
|
|
1886
|
+
}
|
|
1887
|
+
export const FilesUploadFormDefaultProps: Partial<FilesUploadFormProps>;
|
|
1888
|
+
export function FilesUploadForm(props: FilesUploadFormProps): JSX.Element;
|
|
1889
|
+
export interface ModalFileUploadProps {
|
|
1890
|
+
client: MicroMClient;
|
|
1891
|
+
fileProcessColumn: EntityColumn<string>;
|
|
1892
|
+
onOK?: (fileprocess_id: string, files: readonly UploadProgressReport[]) => void;
|
|
1893
|
+
onCancel?: () => void;
|
|
1894
|
+
onClosed?: () => void;
|
|
1895
|
+
modalProps?: ModalSettings;
|
|
1896
|
+
modalTitle?: string;
|
|
1897
|
+
uploadAPI?: UseFileUploadReturnType;
|
|
1898
|
+
filesUploadFormProps: Omit<FilesUploadFormProps, 'fileProcessColumn' | 'uploaderProps' | 'client' | 'onOK' | 'onCancel' | 'uploadAPI'>;
|
|
1899
|
+
uploaderProps?: Omit<FileUploaderProps, 'uploadAPI' | 'editor'>;
|
|
1900
|
+
}
|
|
1901
|
+
export const UseFileUploadFormOpenDefaultProps: Partial<ModalFileUploadProps>;
|
|
1902
|
+
export function useFilesUploadForm(): (props: ModalFileUploadProps) => Promise<void>;
|
|
1903
|
+
export interface useEntityCSVImportValidationProps {
|
|
1904
|
+
errorReadingFileLabel?: string;
|
|
1905
|
+
emptyCSVFileLabel?: string;
|
|
1906
|
+
missingColumnsLabel?: string;
|
|
1907
|
+
}
|
|
1908
|
+
export function useEntityCSVImportValidation({ errorReadingFileLabel, emptyCSVFileLabel, missingColumnsLabel }: useEntityCSVImportValidationProps): {
|
|
1909
|
+
validateEntityImportCSVFile: (props: {
|
|
1910
|
+
file: File;
|
|
1911
|
+
requiredColumns: string[];
|
|
1912
|
+
}) => Promise<ValidateFileReturnType>;
|
|
1913
|
+
};
|
|
1914
|
+
export function useImportData(importEntity?: Entity<EntityDefinition>): {
|
|
1915
|
+
execute: (fileprocess_id: string) => Promise<OperationStatus<ImpDataResult> | undefined>;
|
|
1916
|
+
importStatus: OperationStatus<ImpDataResult>;
|
|
1917
|
+
cancellation: AbortController;
|
|
1918
|
+
};
|
|
1919
|
+
export interface MicroMClientClaimTypes {
|
|
1920
|
+
username: string;
|
|
1921
|
+
useremail?: string;
|
|
1922
|
+
userinitials?: string;
|
|
1923
|
+
[k: string]: unknown;
|
|
1846
1924
|
}
|
|
1847
|
-
export
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
showTitle?: boolean;
|
|
1925
|
+
export class MicroMToken {
|
|
1926
|
+
expiration: string;
|
|
1927
|
+
expires_in: number;
|
|
1928
|
+
access_token: string;
|
|
1929
|
+
refresh_token: string;
|
|
1930
|
+
token_type: string;
|
|
1931
|
+
claims: Partial<MicroMClientClaimTypes>;
|
|
1932
|
+
constructor(access_token?: string, expires_in?: number, refresh_token?: string, token_type?: string, claims?: {});
|
|
1933
|
+
className(): string;
|
|
1857
1934
|
}
|
|
1858
|
-
export
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1935
|
+
export interface TwoFactorLoginResult {
|
|
1936
|
+
requires_two_factor: true;
|
|
1937
|
+
two_factor_challenge_id: string;
|
|
1938
|
+
two_factor_provider?: string;
|
|
1939
|
+
two_factor_flow?: "authenticator" | "email_setup" | "email_recovery" | "support_required" | "sql_admin_setup" | "sql_admin_authenticator";
|
|
1940
|
+
two_factor_setup_required?: boolean;
|
|
1941
|
+
authenticator_management_required?: boolean;
|
|
1942
|
+
qr_code_data_url?: string;
|
|
1943
|
+
username: string;
|
|
1944
|
+
email?: string;
|
|
1862
1945
|
}
|
|
1863
|
-
export
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
search?: string[] | undefined;
|
|
1870
|
-
modalTitle?: string;
|
|
1871
|
-
gridTitle?: React.ReactNode;
|
|
1872
|
-
formMode: FormMode;
|
|
1946
|
+
export type DataOperationType = "add" | "edit" | "delete" | "get" | "lookup" | "view" | "action" | "login" | "refresh" | "proc" | "import" | "export" | "other";
|
|
1947
|
+
export interface OperationStatus<T> {
|
|
1948
|
+
loading?: boolean;
|
|
1949
|
+
error?: MicroMError;
|
|
1950
|
+
operationType?: DataOperationType;
|
|
1951
|
+
data?: T;
|
|
1873
1952
|
}
|
|
1874
|
-
export
|
|
1875
|
-
export
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1953
|
+
export type StatusCompletedHandler<T extends MicroMToken | TwoFactorLoginResult | DBStatusResult | DataResult | ValuesObject | null> = (status: OperationStatus<T>) => void;
|
|
1954
|
+
export class ImportEntityDataDef extends EntityDefinition {
|
|
1955
|
+
columns: {
|
|
1956
|
+
dt_inserttime: EntityColumn<Date>;
|
|
1957
|
+
dt_lu: EntityColumn<Date>;
|
|
1958
|
+
vc_webinsuser: EntityColumn<string>;
|
|
1959
|
+
vc_webluuser: EntityColumn<string>;
|
|
1960
|
+
vc_insuser: EntityColumn<string>;
|
|
1961
|
+
vc_luuser: EntityColumn<string>;
|
|
1962
|
+
c_fileprocess_id: EntityColumn<string>;
|
|
1963
|
+
};
|
|
1964
|
+
views: {
|
|
1965
|
+
ipr_brwStandard: {
|
|
1966
|
+
name: string;
|
|
1967
|
+
keyMappings: {
|
|
1968
|
+
c_import_process: number;
|
|
1969
|
+
};
|
|
1970
|
+
};
|
|
1971
|
+
};
|
|
1972
|
+
lookups: {
|
|
1973
|
+
FileStoreProcess: {
|
|
1974
|
+
name: string;
|
|
1975
|
+
viewMapping: {
|
|
1976
|
+
keyIndex: number;
|
|
1977
|
+
descriptionIndex: number;
|
|
1978
|
+
};
|
|
1979
|
+
entityConstructor: (client: MicroMClient, parentKeys?: ValuesObject) => FileStoreProcess;
|
|
1980
|
+
};
|
|
1981
|
+
};
|
|
1982
|
+
constructor();
|
|
1883
1983
|
}
|
|
1884
|
-
export
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
toggleSelectable?: boolean;
|
|
1892
|
-
enableEdit?: boolean;
|
|
1893
|
-
enableDelete?: boolean;
|
|
1894
|
-
enableView?: boolean;
|
|
1895
|
-
handleEditClick?: (keys: ValuesObject, element: HTMLElement) => void;
|
|
1896
|
-
handleDeleteClick?: (keys: ValuesObject, element: HTMLElement) => void;
|
|
1897
|
-
handleViewClick?: (keys: ValuesObject, element: HTMLElement) => void;
|
|
1898
|
-
handleSelectRecord?: (record_index: number) => void;
|
|
1899
|
-
handleDeselectRecord?: (record_index: number) => void;
|
|
1900
|
-
handleExecuteAction?: (action: EntityClientAction, recordIndex?: number, element?: HTMLElement) => Promise<boolean | undefined>;
|
|
1901
|
-
handleCardClick?: (data: T) => void;
|
|
1902
|
-
refreshView?: () => void;
|
|
1903
|
-
cardHrefRootURL?: string;
|
|
1904
|
-
cardHrefTarget?: string;
|
|
1984
|
+
export interface CircleFilledIconProps {
|
|
1985
|
+
backColor?: MantineColor;
|
|
1986
|
+
color?: MantineColor;
|
|
1987
|
+
width?: string | number;
|
|
1988
|
+
minWidth?: string | number;
|
|
1989
|
+
icon: ReactNode;
|
|
1990
|
+
mr?: string;
|
|
1905
1991
|
}
|
|
1906
|
-
export const
|
|
1907
|
-
export const
|
|
1908
|
-
export interface
|
|
1909
|
-
|
|
1910
|
-
|
|
1992
|
+
export const CircleFilledIconDefaultProps: Partial<CircleFilledIconProps>;
|
|
1993
|
+
export const CircleFilledIcon: ForwardRefExoticComponent<CircleFilledIconProps & RefAttributes<HTMLInputElement>>;
|
|
1994
|
+
export interface ImportEntityDataFormProps extends FormOptions<ImportEntityData> {
|
|
1995
|
+
importEntity?: Entity<EntityDefinition>;
|
|
1996
|
+
importInfoLabel?: string;
|
|
1997
|
+
csvInstructionsLabel?: string;
|
|
1998
|
+
columnHeaderLabel?: string;
|
|
1999
|
+
dataNameLabel?: string;
|
|
2000
|
+
contentLabel?: string;
|
|
2001
|
+
dataTypeLabel?: string;
|
|
2002
|
+
errorReadingFileLabel?: string;
|
|
2003
|
+
emptyCSVFileLabel?: string;
|
|
2004
|
+
missingColumnsLabel?: string;
|
|
2005
|
+
dateFormatLabel?: string;
|
|
2006
|
+
numberFormatLabel?: string;
|
|
2007
|
+
downloadSampleLabel?: string;
|
|
2008
|
+
importButtonLabel?: string;
|
|
2009
|
+
importHelpAndInstructionsLabel?: string;
|
|
2010
|
+
recordsImportedSusccessfullyLabel?: string;
|
|
2011
|
+
recordsNotImportedDueToErrorsLabel?: string;
|
|
2012
|
+
importTheCSVFileLabel?: string;
|
|
2013
|
+
importedFileLabel?: string;
|
|
2014
|
+
errorColumnTitle?: string;
|
|
2015
|
+
rowColumnTitle?: string;
|
|
1911
2016
|
}
|
|
1912
|
-
export const
|
|
1913
|
-
export function
|
|
1914
|
-
export
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
keys: ValuesObject;
|
|
1919
|
-
data: T;
|
|
2017
|
+
export const ImportEntityDataFormDefaultProps: Partial<ImportEntityDataFormProps>;
|
|
2018
|
+
export function ImportEntityDataForm(props: ImportEntityDataFormProps): JSX.Element;
|
|
2019
|
+
export interface ImportEntityDataLabels {
|
|
2020
|
+
Icon?: (props: IconProps) => ReactNode;
|
|
2021
|
+
Title?: string;
|
|
2022
|
+
HelpText?: string;
|
|
1920
2023
|
}
|
|
1921
|
-
export
|
|
1922
|
-
export
|
|
1923
|
-
|
|
1924
|
-
export type DataViewSelectionMode = 'single' | 'multi';
|
|
1925
|
-
export interface DataViewLabels extends EntityUILabels {
|
|
1926
|
-
rowsReturnedLabel: string;
|
|
1927
|
-
selectedRowsLabel: string;
|
|
1928
|
-
limitLabel: string;
|
|
1929
|
-
rowsLabel: string;
|
|
1930
|
-
unlimitedLabel: string;
|
|
1931
|
-
resultLimitLabel: string;
|
|
1932
|
-
loadMoreLabel: string;
|
|
1933
|
-
fetchingDataLabel: string;
|
|
1934
|
-
noRecordsFoundLabel: string;
|
|
2024
|
+
export const ImportEntityDataLabels: Partial<ImportEntityDataLabels>;
|
|
2025
|
+
export class ImportEntityData extends Entity<ImportEntityDataDef> {
|
|
2026
|
+
constructor(client: MicroMClient, parentKeys?: {});
|
|
1935
2027
|
}
|
|
1936
|
-
export interface
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
enableEdit?: boolean;
|
|
1953
|
-
enableDelete?: boolean;
|
|
1954
|
-
enableView?: boolean;
|
|
1955
|
-
enableExport?: boolean;
|
|
1956
|
-
filtersFormSize?: MantineNumberSize;
|
|
1957
|
-
setInitialFiltersFromColumns?: boolean;
|
|
1958
|
-
visibleFilters?: string[];
|
|
1959
|
-
showAppliedFilters?: boolean;
|
|
1960
|
-
showRefreshButton?: boolean;
|
|
1961
|
-
showFiltersButton?: boolean;
|
|
1962
|
-
showSearchInput?: boolean;
|
|
1963
|
-
showSelectRowsButton?: boolean;
|
|
1964
|
-
searchPlaceholder?: string;
|
|
1965
|
-
hideCheckboxToggle?: boolean;
|
|
1966
|
-
showActions?: boolean;
|
|
1967
|
-
showToolbar?: boolean;
|
|
1968
|
-
showDeleteOnlyWhenMultiselect?: boolean;
|
|
1969
|
-
CardContainer?: ComponentType<DataViewCardContainerProps>;
|
|
1970
|
-
CardRowAlign?: CSSProperties['alignItems'];
|
|
1971
|
-
cardHrefRootURL?: string;
|
|
1972
|
-
cardHrefTarget?: string;
|
|
1973
|
-
Card: ComponentType<EntityCardProps<ValuesObject>>;
|
|
1974
|
-
onSelectionChanged?: DataViewSelectionChangedCallback;
|
|
2028
|
+
export interface UseImportDataProps {
|
|
2029
|
+
initialFormMode: FormMode;
|
|
2030
|
+
title?: string;
|
|
2031
|
+
element?: HTMLElement;
|
|
2032
|
+
getDataOnInit?: boolean;
|
|
2033
|
+
modalFormSize?: MicroMModalSize;
|
|
2034
|
+
handleModalSaved: (newStatus: OperationStatus<DBStatusResult | null>) => Promise<void>;
|
|
2035
|
+
handleModalCancel: () => Promise<void>;
|
|
2036
|
+
handleModalClosed?: () => void;
|
|
2037
|
+
}
|
|
2038
|
+
export function useImportDataForm({ initialFormMode, title, element, getDataOnInit, modalFormSize, handleModalCancel, handleModalClosed, handleModalSaved }: UseImportDataProps): {
|
|
2039
|
+
openImportDataForm: (importEntity: Entity<EntityDefinition>) => Promise<void>;
|
|
2040
|
+
};
|
|
2041
|
+
export interface UseExportToExcelProps {
|
|
2042
|
+
data: DataResult[];
|
|
2043
|
+
dataResultNames?: string[];
|
|
1975
2044
|
notExportableColumns?: number[];
|
|
1976
|
-
labels?: DataViewLabels;
|
|
1977
|
-
itemsPerPage?: number;
|
|
1978
|
-
convertResultToLocaleString?: boolean;
|
|
1979
|
-
formMode?: FormMode;
|
|
1980
|
-
RowsContainer?: ComponentType<PropsWithChildren>;
|
|
1981
|
-
RowsContainerProps?: PropsWithChildren;
|
|
1982
2045
|
}
|
|
1983
|
-
export
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
2046
|
+
export function useExportToExcel(props: UseExportToExcelProps): {
|
|
2047
|
+
exportToExcel: () => Promise<void>;
|
|
2048
|
+
};
|
|
2049
|
+
export const ApplyFiltersDefaultLabel = "Apply Filters";
|
|
2050
|
+
export function AutoFiltersForm(props: FormOptions<Entity<EntityDefinition>>): JSX.Element;
|
|
2051
|
+
export function createEntityForm<T extends FormOptions<Entity<EntityDefinition>>>(props: T): Promise<ReactNode>;
|
|
2052
|
+
export interface openEntityFormProps<T extends FormOptions<Entity<EntityDefinition>>> {
|
|
2053
|
+
modals: ModalContextType;
|
|
2054
|
+
title?: string;
|
|
2055
|
+
element?: HTMLElement;
|
|
2056
|
+
handleModalSaved: (newStatus: OperationStatus<DBStatusResult | null>) => Promise<void>;
|
|
2057
|
+
handleModalCancel: () => Promise<void>;
|
|
2058
|
+
handleModalClosed?: () => void;
|
|
2059
|
+
modalFormSize?: MicroMModalSize;
|
|
2060
|
+
withModalFullscreenButton?: boolean;
|
|
2061
|
+
formProps: T;
|
|
2062
|
+
}
|
|
2063
|
+
export function openEntityForm<T extends FormOptions<Entity<EntityDefinition>>>({ modals, title, element, handleModalCancel, handleModalSaved, modalFormSize, formProps, handleModalClosed, withModalFullscreenButton }: openEntityFormProps<T>): Promise<void>;
|
|
2064
|
+
export interface EntityUILabels {
|
|
2065
|
+
addLabel: string;
|
|
2066
|
+
editLabel: string;
|
|
2067
|
+
deleteLabel: string;
|
|
2068
|
+
viewLabel: string;
|
|
2069
|
+
YouWillDeleteLabel: string;
|
|
2070
|
+
recordsLabel: string;
|
|
2071
|
+
recordLabel: string;
|
|
2072
|
+
AreYouSureLabel: string;
|
|
2073
|
+
warningLabel: string;
|
|
2074
|
+
YouMustSelectOneOrMoreRecordsToDelete: string;
|
|
2075
|
+
closeLabel: string;
|
|
2076
|
+
YouMustSelectOneOrMoreRecordsToExecuteAction: string;
|
|
2077
|
+
YouMustSelect: string;
|
|
2078
|
+
YouMustSelectBetween: string;
|
|
2079
|
+
YouMustSelectAtLeast: string;
|
|
2080
|
+
YouMustSelectMaximum: string;
|
|
1987
2081
|
}
|
|
1988
|
-
export interface
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
2082
|
+
export interface UseEntityUIProps {
|
|
2083
|
+
entity?: Entity<EntityDefinition>;
|
|
2084
|
+
parentKeys?: ValuesObject;
|
|
2085
|
+
modalFormSize?: MicroMModalSize;
|
|
2086
|
+
withModalFullscreenButton?: boolean;
|
|
2087
|
+
parentFormAPI?: UseEntityFormReturnType;
|
|
2088
|
+
saveFormBeforeAdd?: boolean;
|
|
2089
|
+
onModalSaved?: (new_status: OperationStatus<DBStatusResult | null>) => void;
|
|
2090
|
+
onModalCancelled?: () => void;
|
|
2091
|
+
onRecordsDeleted?: () => void;
|
|
2092
|
+
onActionRefreshOnClose?: () => void;
|
|
2093
|
+
labels?: EntityUILabels;
|
|
2094
|
+
onAddClick?: (gridAddClick: (element?: HTMLElement) => void, element?: HTMLElement) => void;
|
|
2095
|
+
onEditClick?: (keys: ValuesObject, element?: HTMLElement) => void;
|
|
2096
|
+
onDeleteClick?: (keys: ValuesObject[], element?: HTMLElement) => void;
|
|
2097
|
+
onActionExecuted?: (actionName: string, result?: boolean) => void;
|
|
2098
|
+
onModalClosed?: (cancelled?: boolean) => void;
|
|
1994
2099
|
}
|
|
1995
|
-
export
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2100
|
+
export function useEntityUI(props: UseEntityUIProps): {
|
|
2101
|
+
handleAddClick: (element?: HTMLElement, onClosed?: (cancelled?: boolean) => void) => Promise<void>;
|
|
2102
|
+
handleEditClick: (keys: ValuesObject, element?: HTMLElement, onClosed?: (cancelled?: boolean) => void) => Promise<void>;
|
|
2103
|
+
handleViewClick: (keys: ValuesObject, element?: HTMLElement, onClosed?: (cancelled?: boolean) => void) => Promise<void>;
|
|
2104
|
+
handleDeleteClick: (keys: ValuesObject[], element?: HTMLElement) => Promise<void>;
|
|
2105
|
+
handleExecuteAction: (action: EntityClientAction, keys: ValuesObject[], element?: HTMLElement) => Promise<boolean | undefined>;
|
|
2106
|
+
handleDeleteRecord: (keys: ValuesObject, element?: HTMLElement) => Promise<void>;
|
|
2107
|
+
handleImportDataClick: () => Promise<void>;
|
|
2108
|
+
};
|
|
2109
|
+
export function useExecuteProc(entity: Entity<EntityDefinition>, proc: EntityProc): {
|
|
2110
|
+
execute: (values?: ValuesObject, force_refresh?: boolean) => Promise<OperationStatus<DataResult[]> | undefined>;
|
|
2111
|
+
status: OperationStatus<DataResult[]>;
|
|
2112
|
+
abort: () => void;
|
|
2113
|
+
};
|
|
2114
|
+
export interface SearchFilterInputProps extends MultiSelectProps {
|
|
2115
|
+
onSearchClick: React.MouseEventHandler;
|
|
2116
|
+
size: string;
|
|
2117
|
+
iconsSize: string;
|
|
2118
|
+
placeholder?: string;
|
|
2003
2119
|
autoFocus?: boolean;
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
allwaysRefreshOnEntityClose?: boolean;
|
|
2008
|
-
toolbarIconVariant?: ActionIconVariant;
|
|
2009
|
-
actionsButtonVariant?: ButtonVariant;
|
|
2010
|
-
toolbarSize?: DataGridToolbarSizes;
|
|
2011
|
-
enableAdd?: boolean;
|
|
2012
|
-
enableEdit?: boolean;
|
|
2013
|
-
enableDelete?: boolean;
|
|
2014
|
-
enableView?: boolean;
|
|
2015
|
-
enableExport?: boolean;
|
|
2016
|
-
filtersFormSize?: MantineNumberSize;
|
|
2017
|
-
showActions?: boolean;
|
|
2018
|
-
setInitialFiltersFromColumns?: boolean;
|
|
2019
|
-
visibleFilters?: string[];
|
|
2020
|
-
maxSearchTerms?: number;
|
|
2021
|
-
columnBorders?: boolean;
|
|
2022
|
-
rowBorders?: boolean;
|
|
2023
|
-
withBorder?: boolean;
|
|
2024
|
-
autoSizeColumnsOnLoad?: boolean;
|
|
2025
|
-
labels?: DataGridLabels;
|
|
2026
|
-
columnsOverrides?: GridColumnsOverrides;
|
|
2027
|
-
renderOnlyWhenVisible?: boolean;
|
|
2028
|
-
showToolbar?: boolean;
|
|
2029
|
-
showActionsToolbar?: boolean;
|
|
2030
|
-
enableImport?: boolean;
|
|
2031
|
-
gridHeight?: string | number | 'auto' | 'flex-grow';
|
|
2032
|
-
minGridHeight?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'none';
|
|
2033
|
-
autoSelectFirstRow?: boolean;
|
|
2034
|
-
onSelectionChanged?: DataGridSelectionChangedCallback;
|
|
2035
|
-
doubleClickAction?: 'edit' | 'view' | 'none' | ((record: GridRecord) => void);
|
|
2036
|
-
formMode?: FormMode;
|
|
2037
|
-
notExportableColumns?: number[];
|
|
2038
|
-
showColumnsConfigMenu?: boolean;
|
|
2039
|
-
initialHiddenColumns?: number[];
|
|
2040
|
-
showSelectRowsButton?: boolean;
|
|
2041
|
-
initialSelectRowsToggle?: boolean;
|
|
2120
|
+
addFilterLabel?: string;
|
|
2121
|
+
iconVariant?: ActionIconVariant;
|
|
2122
|
+
[x: string]: any;
|
|
2042
2123
|
}
|
|
2043
|
-
export
|
|
2044
|
-
export
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
handleSelectRecord: (record_index: number) => Promise<void>;
|
|
2065
|
-
handleSelectAllRecords: () => Promise<void>;
|
|
2066
|
-
selectedRecords: DataViewSelection;
|
|
2067
|
-
toggleSelectable: boolean;
|
|
2068
|
-
handleLoadMore: () => void;
|
|
2069
|
-
displayedItemsCount: number;
|
|
2070
|
-
recordsCount?: number;
|
|
2124
|
+
export const SearchFilterInputDefaultProps: Partial<SearchFilterInputProps>;
|
|
2125
|
+
export const SearchFilterInput: ForwardRefExoticComponent<Omit<SearchFilterInputProps, "ref"> & RefAttributes<HTMLInputElement>>;
|
|
2126
|
+
export function useFirstVisible(ref: React.RefObject<HTMLElement>, options?: IntersectionObserverInit): boolean;
|
|
2127
|
+
export interface OpenFormProps {
|
|
2128
|
+
entity: Entity<EntityDefinition>;
|
|
2129
|
+
initialFormMode: FormMode;
|
|
2130
|
+
title?: string;
|
|
2131
|
+
element?: HTMLElement;
|
|
2132
|
+
getDataOnInit?: boolean;
|
|
2133
|
+
onModalSaved?: (new_status: OperationStatus<DBStatusResult | null>) => void;
|
|
2134
|
+
onModalCancelled?: () => void;
|
|
2135
|
+
onModalClosed?: () => void;
|
|
2136
|
+
modalFormSize?: MicroMModalSize;
|
|
2137
|
+
OKText?: string;
|
|
2138
|
+
CancelText?: string;
|
|
2139
|
+
showCancel?: boolean;
|
|
2140
|
+
otherFormProps?: any;
|
|
2141
|
+
dontAddEntityTitle?: boolean;
|
|
2142
|
+
withFullscreenButton?: boolean;
|
|
2143
|
+
closeOnEscape?: boolean;
|
|
2144
|
+
closeOnClickOutside?: boolean;
|
|
2071
2145
|
}
|
|
2072
|
-
export function
|
|
2146
|
+
export function useOpenForm(): (props: OpenFormProps) => Promise<void>;
|
|
2073
2147
|
export interface DataViewPageProps extends Omit<DataViewProps, 'entity'> {
|
|
2074
2148
|
client: MicroMClient;
|
|
2075
2149
|
entityConstructor: (client: MicroMClient) => Entity<EntityDefinition>;
|
|
2076
2150
|
}
|
|
2077
2151
|
export function DataViewPage(props: DataViewPageProps): JSX.Element;
|
|
2152
|
+
type DataViewPanelBaseProps = Omit<DataViewProps, "entity" | "title" | "viewName" | "Card" | "RowsContainer" | "RowsContainerProps"> & {
|
|
2153
|
+
client: MicroMClient;
|
|
2154
|
+
parentKeys?: ValuesObject;
|
|
2155
|
+
Card?: DataViewProps["Card"];
|
|
2156
|
+
retainSearch?: string;
|
|
2157
|
+
onSearchTextChange?: DataViewProps["onSearch"];
|
|
2158
|
+
bgLight?: DefaultMantineColor;
|
|
2159
|
+
bgDark?: DefaultMantineColor;
|
|
2160
|
+
rowsContainerProps?: SimpleGridProps;
|
|
2161
|
+
/** Props for the wrapping Card. Replaces the default object entirely when set per instance */
|
|
2162
|
+
containerCardProps?: Omit<CardProps, 'children'>;
|
|
2163
|
+
/** Component shown while the entity is being resolved */
|
|
2164
|
+
loadingComponent?: ReactNode;
|
|
2165
|
+
};
|
|
2166
|
+
export type DataViewPanelProps = DataViewPanelBaseProps & EntityBuilderSourceProps;
|
|
2167
|
+
export const DataViewPanelDefaultProps: Partial<DataViewPanelProps>;
|
|
2168
|
+
export function DataViewPanel(props: DataViewPanelProps): JSX.Element;
|
|
2078
2169
|
export function useViewState(search?: string[], limit?: DataViewLimit): {
|
|
2079
2170
|
searchText: string[] | undefined;
|
|
2080
2171
|
setSearchText: Dispatch<SetStateAction<string[] | undefined>>;
|
|
@@ -2678,6 +2769,7 @@ export function useMenuContent(props: UseMenuContentProps): UseMenuContentResult
|
|
|
2678
2769
|
export type UseMenuContentReturnType = UseMenuContentResult;
|
|
2679
2770
|
export function normalizeTextToLowercaseWithoutAccents(value: string): string;
|
|
2680
2771
|
export function caseInsensitveAccentInsensitiveFilter(query: string, actions: SpotlightAction[]): SpotlightAction[];
|
|
2772
|
+
export function getMainMenuId(menuConfig: Record<string, MenuConfigItem>): string;
|
|
2681
2773
|
export type AvatarImageProcessingOptions = BrowserImageProcessingOptions;
|
|
2682
2774
|
export interface useAvatarUploaderProps {
|
|
2683
2775
|
client: MicroMClient;
|
|
@@ -3311,16 +3403,6 @@ export function useMultiDataMapGrid({ dataMapView, viewState, selectionMode, map
|
|
|
3311
3403
|
onModalSaved: (new_status: _OperationStatus1<_DBStatusResult1 | null>) => void;
|
|
3312
3404
|
modalFormSize: string | number | undefined;
|
|
3313
3405
|
onModalCancelled: () => void;
|
|
3314
|
-
labels: _DataGridLabels1;
|
|
3315
|
-
notExportableColumns: number[];
|
|
3316
|
-
withModalFullscreenButton: boolean;
|
|
3317
|
-
saveFormBeforeAdd: boolean;
|
|
3318
|
-
onRecordsDeleted: () => void;
|
|
3319
|
-
onActionRefreshOnClose: () => void;
|
|
3320
|
-
onAddClick: (gridAddClick: (element?: HTMLElement) => void, element?: HTMLElement) => void;
|
|
3321
|
-
onEditClick: (keys: _ValuesObject1, element?: HTMLElement) => void;
|
|
3322
|
-
onDeleteClick: (keys: _ValuesObject1[], element?: HTMLElement) => void;
|
|
3323
|
-
limit: "0" | "10000" | "50" | "100" | "500" | "1000" | undefined;
|
|
3324
3406
|
columnsOverrides: _GridColumnsOverrides1;
|
|
3325
3407
|
autoSizeColumnsOnLoad: boolean;
|
|
3326
3408
|
preserveSelection: boolean;
|
|
@@ -3333,26 +3415,36 @@ export function useMultiDataMapGrid({ dataMapView, viewState, selectionMode, map
|
|
|
3333
3415
|
maxSearchTerms: number;
|
|
3334
3416
|
enableImport: boolean;
|
|
3335
3417
|
showSelectRowsButton: boolean;
|
|
3418
|
+
limit: "0" | "50" | "100" | "500" | "1000" | "10000" | undefined;
|
|
3336
3419
|
viewName: string;
|
|
3420
|
+
refreshOnInit: boolean;
|
|
3421
|
+
onDataRefresh: (result: _OperationStatus1<_DataResult1[]>) => void;
|
|
3422
|
+
onSearch: _DataViewSearchCallback1;
|
|
3423
|
+
allwaysRefreshOnEntityClose: boolean;
|
|
3424
|
+
actionsButtonVariant: "white" | "filled" | "outline" | "light" | "default" | "gradient" | "subtle" | undefined;
|
|
3337
3425
|
enableAdd: boolean;
|
|
3338
3426
|
enableEdit: boolean;
|
|
3339
3427
|
enableDelete: boolean;
|
|
3340
3428
|
enableView: boolean;
|
|
3341
3429
|
showActions: boolean;
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3430
|
+
setInitialFiltersFromColumns: boolean;
|
|
3431
|
+
onAddClick: (gridAddClick: (element?: HTMLElement) => void, element?: HTMLElement) => void;
|
|
3432
|
+
onEditClick: (keys: _ValuesObject1, element?: HTMLElement) => void;
|
|
3433
|
+
onDeleteClick: (keys: _ValuesObject1[], element?: HTMLElement) => void;
|
|
3434
|
+
labels: _DataGridLabels1;
|
|
3435
|
+
saveFormBeforeAdd: boolean;
|
|
3345
3436
|
doubleClickAction: (("view" | "none" | "edit" | ((record: _GridRecord1) => void)) & NonNullable<"view" | "none" | "edit" | ((record: _GridRecord1) => void) | undefined>) | undefined;
|
|
3437
|
+
notExportableColumns: number[];
|
|
3438
|
+
withModalFullscreenButton: boolean;
|
|
3346
3439
|
initialHiddenColumns: number[];
|
|
3347
3440
|
initialSelectRowsToggle: boolean;
|
|
3348
|
-
refreshOnInit: boolean;
|
|
3349
|
-
onSearch: _DataViewSearchCallback1;
|
|
3350
|
-
setInitialFiltersFromColumns: boolean;
|
|
3351
3441
|
renderOnlyWhenVisible: boolean;
|
|
3352
3442
|
showToolbar: boolean;
|
|
3353
3443
|
showActionsToolbar: boolean;
|
|
3354
3444
|
minGridHeight: "xs" | "sm" | "md" | "lg" | "xl" | "none";
|
|
3355
3445
|
showColumnsConfigMenu: boolean;
|
|
3446
|
+
onRecordsDeleted: () => void;
|
|
3447
|
+
onActionRefreshOnClose: () => void;
|
|
3356
3448
|
};
|
|
3357
3449
|
viewState: {
|
|
3358
3450
|
searchText: string[] | undefined;
|
|
@@ -4035,16 +4127,299 @@ export class MicromEntitiesTypesDef extends EntityDefinition {
|
|
|
4035
4127
|
};
|
|
4036
4128
|
constructor();
|
|
4037
4129
|
}
|
|
4038
|
-
export interface DeveloperToolsPanelProps extends Omit<
|
|
4039
|
-
client: MicroMClient;
|
|
4130
|
+
export interface DeveloperToolsPanelProps extends Omit<DataGridPanelProps, 'parentKeys'> {
|
|
4040
4131
|
}
|
|
4041
|
-
export
|
|
4132
|
+
export const DeveloperToolsPanelDefaultProps: Partial<DeveloperToolsPanelProps>;
|
|
4133
|
+
export function DeveloperToolsPanel(props: DeveloperToolsPanelProps): JSX.Element;
|
|
4042
4134
|
export interface CustomWindowEventDefinition {
|
|
4043
4135
|
eventName: string;
|
|
4044
4136
|
payload: ValuesObject;
|
|
4045
4137
|
}
|
|
4046
4138
|
export type CustomWindowEvent<T extends CustomWindowEventDefinition> = T;
|
|
4047
4139
|
export function triggerCustomWindowEvent<T extends CustomWindowEventDefinition>(eventName: T["eventName"], payload: T["payload"]): void;
|
|
4140
|
+
export interface MenuHostProps {
|
|
4141
|
+
client: MicroMClient;
|
|
4142
|
+
mainMenuId: string;
|
|
4143
|
+
menuId: string;
|
|
4144
|
+
menu: MenuContentResult;
|
|
4145
|
+
menus: Record<string, MenuContentResult>;
|
|
4146
|
+
emptyNodeMessage?: ReactNode;
|
|
4147
|
+
defaultLoadingComponent?: ReactNode;
|
|
4148
|
+
}
|
|
4149
|
+
export interface APPMenuConfigProps extends MenuConfigItem {
|
|
4150
|
+
hostPanel?: ComponentType<MenuHostProps>;
|
|
4151
|
+
}
|
|
4152
|
+
interface MenuCardBreadcrumbsProps extends Omit<BreadcrumbsProps, 'children'> {
|
|
4153
|
+
items: {
|
|
4154
|
+
title: string;
|
|
4155
|
+
path: string;
|
|
4156
|
+
}[];
|
|
4157
|
+
menuID: string;
|
|
4158
|
+
maxItems?: number;
|
|
4159
|
+
titleSize?: TitleOrder;
|
|
4160
|
+
textColor?: DefaultMantineColor | 'dimmed';
|
|
4161
|
+
/** Node shown in place of the collapsed items */
|
|
4162
|
+
collapsedIndicator?: ReactNode;
|
|
4163
|
+
/** Props for the dropdown menu that lists the collapsed items. Replaces the default object entirely when set per instance */
|
|
4164
|
+
collapsedMenuProps?: Partial<Omit<_MenuProps1, 'children'>>;
|
|
4165
|
+
}
|
|
4166
|
+
export interface MenuCardItemProps extends Omit<CardProps, 'children'> {
|
|
4167
|
+
item: MenuItem;
|
|
4168
|
+
routeBuilder?: (path: string) => string;
|
|
4169
|
+
/** Styles applied to the card on hover */
|
|
4170
|
+
hoverStyles?: CSSObject;
|
|
4171
|
+
/** Heading order for the item title */
|
|
4172
|
+
titleOrder?: TitleOrder;
|
|
4173
|
+
/** Title color in light color scheme */
|
|
4174
|
+
titleColorLight?: DefaultMantineColor;
|
|
4175
|
+
/** Title color in dark color scheme */
|
|
4176
|
+
titleColorDark?: DefaultMantineColor;
|
|
4177
|
+
/** Spacing between the icon and the title */
|
|
4178
|
+
headerSpacing?: MantineNumberSize;
|
|
4179
|
+
/** Spacing between shortcut links */
|
|
4180
|
+
shortcutSpacing?: MantineNumberSize;
|
|
4181
|
+
/** Font size of shortcut links */
|
|
4182
|
+
shortcutSize?: MantineSize;
|
|
4183
|
+
/** Node rendered between shortcut links */
|
|
4184
|
+
shortcutSeparator?: ReactNode;
|
|
4185
|
+
/** Left indent applied to shortcuts when the item has no icon */
|
|
4186
|
+
noIconIndent?: MantineNumberSize;
|
|
4187
|
+
}
|
|
4188
|
+
export const MenuCardItemDefaultProps: Partial<MenuCardItemProps>;
|
|
4189
|
+
export function MenuCardItem(props: MenuCardItemProps): JSX.Element;
|
|
4190
|
+
export interface MenuCardGridProps extends Omit<SimpleGridProps, 'children'> {
|
|
4191
|
+
items: MenuItem[];
|
|
4192
|
+
routeBuilder?: (path: string) => string;
|
|
4193
|
+
}
|
|
4194
|
+
export const MenuCardGridDefaultProps: Partial<MenuCardGridProps>;
|
|
4195
|
+
export function MenuCardGrid(props: MenuCardGridProps): JSX.Element;
|
|
4196
|
+
export interface MenuCardRootProps extends Omit<StackProps, 'children'> {
|
|
4197
|
+
items: MenuItem[];
|
|
4198
|
+
breadcrumbs: MenuCardBreadcrumbsProps['items'];
|
|
4199
|
+
rootID: string;
|
|
4200
|
+
renderBreadcrumbs?: boolean;
|
|
4201
|
+
routeBuilder?: (path: string) => string;
|
|
4202
|
+
}
|
|
4203
|
+
export const MenuCardRootDefaultProps: Partial<MenuCardRootProps>;
|
|
4204
|
+
export function MenuCardRoot(props: MenuCardRootProps): JSX.Element | null;
|
|
4205
|
+
export interface MenuCardPanelProps {
|
|
4206
|
+
menuId: string;
|
|
4207
|
+
menu: MenuContentResult;
|
|
4208
|
+
breadcrumbsPrefix?: MenuCardBreadcrumbsProps["items"];
|
|
4209
|
+
renderBreadcrumbs?: boolean;
|
|
4210
|
+
emptyNodeMessage?: ReactNode;
|
|
4211
|
+
defaultLoadingComponent?: ReactNode;
|
|
4212
|
+
}
|
|
4213
|
+
export const MenuCardPanelDefaultProps: Partial<MenuCardPanelProps>;
|
|
4214
|
+
export function MenuCardPanel(props: MenuCardPanelProps): JSX.Element;
|
|
4215
|
+
export interface GestionarPanelProps extends MenuHostProps, Omit<StackProps, 'children'> {
|
|
4216
|
+
header?: ReactNode;
|
|
4217
|
+
homeLabel?: string;
|
|
4218
|
+
}
|
|
4219
|
+
export const GestionarPanelDefaultProps: Partial<GestionarPanelProps>;
|
|
4220
|
+
export function ContextualMenuPanel(props: GestionarPanelProps): JSX.Element;
|
|
4221
|
+
/**
|
|
4222
|
+
* Shades and scales used by the navbar style functions. To override only some
|
|
4223
|
+
* values, spread the defaults: `{ ...NavBarVariantStylesDefaults, hoverScale: 1.5 }`.
|
|
4224
|
+
*/
|
|
4225
|
+
export interface NavBarVariantStyles {
|
|
4226
|
+
/** Color shade (0-9) for the navbar background in light color scheme */
|
|
4227
|
+
backgroundShade: number;
|
|
4228
|
+
/** Focus ring width */
|
|
4229
|
+
focusOutlineWidth: string;
|
|
4230
|
+
/** Color shade (0-9) for the focus ring */
|
|
4231
|
+
focusOutlineShade: number;
|
|
4232
|
+
/** Focus ring offset */
|
|
4233
|
+
focusOutlineOffset: string;
|
|
4234
|
+
/** Scale applied to an item on hover (icons mode) */
|
|
4235
|
+
hoverScale: number;
|
|
4236
|
+
/** Scale applied to the active item */
|
|
4237
|
+
activeScale: number;
|
|
4238
|
+
/** Color shade (0-9) for the active item background */
|
|
4239
|
+
activeBackgroundShade: number;
|
|
4240
|
+
/** Scale applied to the item icon on hover (text mode) */
|
|
4241
|
+
hoverIconScale: number;
|
|
4242
|
+
/** Color shade (0-9) for the icon background on hover (text mode) */
|
|
4243
|
+
hoverIconBackgroundShade: number;
|
|
4244
|
+
/** Color shade (0-9) for the row background on hover/active (text mode) */
|
|
4245
|
+
hoverBackgroundShade: number;
|
|
4246
|
+
/** Color shade (0-9) for the item label and icon color */
|
|
4247
|
+
labelShade: number;
|
|
4248
|
+
}
|
|
4249
|
+
export const NavBarVariantStylesDefaults: NavBarVariantStyles;
|
|
4250
|
+
export function getNavBarButtonsColor(theme: MantineTheme, brandColor?: DefaultMantineColor): DefaultMantineColor;
|
|
4251
|
+
export function getNavBarBackgroundColor(theme: MantineTheme, brandColor?: DefaultMantineColor, styles?: NavBarVariantStyles): string | undefined;
|
|
4252
|
+
export function getNavBarItemActiveStyles(theme: MantineTheme, active: boolean, brandColor?: DefaultMantineColor, styles?: NavBarVariantStyles): {
|
|
4253
|
+
transform?: undefined;
|
|
4254
|
+
backgroundColor?: undefined;
|
|
4255
|
+
'&:hover'?: undefined;
|
|
4256
|
+
} | {
|
|
4257
|
+
transform: string;
|
|
4258
|
+
backgroundColor: string;
|
|
4259
|
+
'&:hover': {
|
|
4260
|
+
backgroundColor: string;
|
|
4261
|
+
};
|
|
4262
|
+
};
|
|
4263
|
+
export function getNavBarIconItemStyles(theme: MantineTheme, active: boolean, brandColor?: DefaultMantineColor, styles?: NavBarVariantStyles): {
|
|
4264
|
+
transform?: undefined;
|
|
4265
|
+
backgroundColor?: undefined;
|
|
4266
|
+
'&:hover': {
|
|
4267
|
+
transform: string;
|
|
4268
|
+
};
|
|
4269
|
+
'&:focus-visible': {
|
|
4270
|
+
outline: string;
|
|
4271
|
+
outlineOffset: string;
|
|
4272
|
+
};
|
|
4273
|
+
'&:focus:not(:focus-visible)': {
|
|
4274
|
+
outline: string;
|
|
4275
|
+
};
|
|
4276
|
+
} | {
|
|
4277
|
+
transform: string;
|
|
4278
|
+
backgroundColor: string;
|
|
4279
|
+
'&:hover': {
|
|
4280
|
+
backgroundColor: string;
|
|
4281
|
+
};
|
|
4282
|
+
'&:focus-visible': {
|
|
4283
|
+
outline: string;
|
|
4284
|
+
outlineOffset: string;
|
|
4285
|
+
};
|
|
4286
|
+
'&:focus:not(:focus-visible)': {
|
|
4287
|
+
outline: string;
|
|
4288
|
+
};
|
|
4289
|
+
};
|
|
4290
|
+
export function getNavBarTextItemStyles(theme: MantineTheme, active: boolean, brandColor?: DefaultMantineColor, styles?: NavBarVariantStyles): {
|
|
4291
|
+
'&:focus-visible': {
|
|
4292
|
+
outline: string;
|
|
4293
|
+
outlineOffset: string;
|
|
4294
|
+
};
|
|
4295
|
+
'&:focus:not(:focus-visible)': {
|
|
4296
|
+
outline: string;
|
|
4297
|
+
};
|
|
4298
|
+
backgroundColor?: string | undefined;
|
|
4299
|
+
'&:hover .menu-card-navbar-item-icon': {
|
|
4300
|
+
transform: string;
|
|
4301
|
+
backgroundColor: string;
|
|
4302
|
+
};
|
|
4303
|
+
'&:hover': {
|
|
4304
|
+
backgroundColor: string;
|
|
4305
|
+
};
|
|
4306
|
+
};
|
|
4307
|
+
/**
|
|
4308
|
+
* Style functions used by the navbar components. Provide your own implementations
|
|
4309
|
+
* to fully replace the styling logic. To replace only some functions, spread the
|
|
4310
|
+
* defaults: `{ ...NavBarThemeFunctionsDefaults, getNavBarBackgroundColor: mine }`.
|
|
4311
|
+
* The `styles` argument arrives already resolved (a complete NavBarVariantStyles).
|
|
4312
|
+
* Note: the composite functions (getNavBarIconItemStyles / getNavBarTextItemStyles)
|
|
4313
|
+
* are self-contained — overriding getNavBarItemActiveStyles does not change what
|
|
4314
|
+
* the default composites produce.
|
|
4315
|
+
*/
|
|
4316
|
+
export interface NavBarThemeFunctions {
|
|
4317
|
+
/** Resolves the base color used by the navbar buttons */
|
|
4318
|
+
getNavBarButtonsColor: (theme: MantineTheme, brandColor?: DefaultMantineColor) => DefaultMantineColor;
|
|
4319
|
+
/** Navbar background color; return undefined to keep the color scheme default */
|
|
4320
|
+
getNavBarBackgroundColor: (theme: MantineTheme, brandColor?: DefaultMantineColor, styles?: NavBarVariantStyles) => DefaultMantineColor | undefined;
|
|
4321
|
+
/** Styles applied to the active item icon */
|
|
4322
|
+
getNavBarItemActiveStyles: (theme: MantineTheme, active: boolean, brandColor?: DefaultMantineColor, styles?: NavBarVariantStyles) => CSSObject;
|
|
4323
|
+
/** Styles for an item in icons mode (focus + hover + active) */
|
|
4324
|
+
getNavBarIconItemStyles: (theme: MantineTheme, active: boolean, brandColor?: DefaultMantineColor, styles?: NavBarVariantStyles) => CSSObject;
|
|
4325
|
+
/** Styles for an item row in text mode (hover + active + focus) */
|
|
4326
|
+
getNavBarTextItemStyles: (theme: MantineTheme, active: boolean, brandColor?: DefaultMantineColor, styles?: NavBarVariantStyles) => CSSObject;
|
|
4327
|
+
}
|
|
4328
|
+
export const NavBarThemeFunctionsDefaults: NavBarThemeFunctions;
|
|
4329
|
+
export type NavBarMode = 'icons' | 'text';
|
|
4330
|
+
export type MenuMode = NavBarMode | 'collapsed';
|
|
4331
|
+
type NavBarItemOverrides = Partial<Pick<MenuCardNavBarItemProps, 'iconSize' | 'tooltipProps' | 'radius' | 'textColor' | 'mb'>>;
|
|
4332
|
+
export interface MenuCardNavBarPanelProps extends Omit<NavbarProps, 'children' | 'width'> {
|
|
4333
|
+
isLoggedIn?: boolean;
|
|
4334
|
+
rootItems: MenuItem[];
|
|
4335
|
+
Logo?: ReactNode;
|
|
4336
|
+
logoTooltip?: string;
|
|
4337
|
+
mode: NavBarMode;
|
|
4338
|
+
homeMenuId: string;
|
|
4339
|
+
homeLabel?: string;
|
|
4340
|
+
searchLabel?: string;
|
|
4341
|
+
brandColor?: DefaultMantineColor;
|
|
4342
|
+
/** Navbar width in icons mode */
|
|
4343
|
+
widthIcons?: number;
|
|
4344
|
+
/** Navbar width in text mode */
|
|
4345
|
+
widthText?: number;
|
|
4346
|
+
/** Icon for the home item */
|
|
4347
|
+
homeIcon?: ReactNode;
|
|
4348
|
+
/** Icon for the search item */
|
|
4349
|
+
searchIcon?: ReactNode;
|
|
4350
|
+
/** Shades and scales used to style the navbar and its items. Replaces the default object entirely — spread NavBarVariantStylesDefaults to override selectively */
|
|
4351
|
+
variantStyles?: NavBarVariantStyles;
|
|
4352
|
+
/** Style functions for the navbar and its items. Replaces the default object entirely — spread NavBarThemeFunctionsDefaults to override selectively */
|
|
4353
|
+
themeFunctions?: NavBarThemeFunctions;
|
|
4354
|
+
/** Overrides applied to every navbar item. Replaces the default object entirely when set per instance */
|
|
4355
|
+
itemProps?: NavBarItemOverrides;
|
|
4356
|
+
/** Overrides applied to the search item only, after itemProps. Replaces the default object entirely when set per instance */
|
|
4357
|
+
searchItemProps?: NavBarItemOverrides;
|
|
4358
|
+
}
|
|
4359
|
+
export const MenuCardNavBarPanelDefaultProps: Partial<MenuCardNavBarPanelProps>;
|
|
4360
|
+
export function MenuCardNavBarPanel(props: MenuCardNavBarPanelProps): JSX.Element;
|
|
4361
|
+
export interface MenuCardNavBarItemProps {
|
|
4362
|
+
icon: ReactNode;
|
|
4363
|
+
label: string;
|
|
4364
|
+
active: boolean;
|
|
4365
|
+
mode: NavBarMode;
|
|
4366
|
+
href?: string;
|
|
4367
|
+
onClick?: () => void;
|
|
4368
|
+
radius?: MantineNumberSize;
|
|
4369
|
+
mb?: MantineNumberSize;
|
|
4370
|
+
brandColor?: DefaultMantineColor;
|
|
4371
|
+
textColor?: DefaultMantineColor;
|
|
4372
|
+
/** Size of the icon container */
|
|
4373
|
+
iconSize?: MantineNumberSize;
|
|
4374
|
+
/** Props for the tooltip shown in icons mode. Replaces the default object entirely when set per instance */
|
|
4375
|
+
tooltipProps?: Omit<TooltipProps, 'label' | 'children'>;
|
|
4376
|
+
/** Shades and scales used to style the item. Replaces the default object entirely — spread NavBarVariantStylesDefaults to override selectively */
|
|
4377
|
+
variantStyles?: NavBarVariantStyles;
|
|
4378
|
+
/** Style functions for the item. Replaces the default object entirely — spread NavBarThemeFunctionsDefaults to override selectively */
|
|
4379
|
+
themeFunctions?: NavBarThemeFunctions;
|
|
4380
|
+
}
|
|
4381
|
+
export const MenuCardNavBarItemDefaultProps: Partial<MenuCardNavBarItemProps>;
|
|
4382
|
+
export function MenuCardNavBarItem(props: MenuCardNavBarItemProps): JSX.Element;
|
|
4383
|
+
export type MenuModalCloseBehavior = {
|
|
4384
|
+
route?: string;
|
|
4385
|
+
onClosed?: () => void;
|
|
4386
|
+
lastLevel?: boolean;
|
|
4387
|
+
};
|
|
4388
|
+
export function useMenuModalCloseNavigator(closeBehavior?: MenuModalCloseBehavior): () => void;
|
|
4389
|
+
export type MenuEntityActionModalProps = EntitySourceProps & {
|
|
4390
|
+
client: MicroMClient;
|
|
4391
|
+
parentKeys?: ValuesObject;
|
|
4392
|
+
actionName: string;
|
|
4393
|
+
selectedKeys?: ValuesObject[];
|
|
4394
|
+
closeBehavior?: MenuModalCloseBehavior;
|
|
4395
|
+
errorComponent?: (error: unknown, close: () => void) => ReactNode;
|
|
4396
|
+
errorTitle?: string;
|
|
4397
|
+
backLabel?: string;
|
|
4398
|
+
actionNotFoundLabel?: string;
|
|
4399
|
+
selectionRequiredLabel?: string;
|
|
4400
|
+
};
|
|
4401
|
+
export const MenuEntityActionModalDefaultProps: Partial<MenuEntityActionModalProps>;
|
|
4402
|
+
export function MenuEntityActionModal(props: MenuEntityActionModalProps): JSX.Element | null;
|
|
4403
|
+
type PassthroughProps = Omit<EntityFormModalProps, "entityConstructor" | "openState" | "setOpenState" | "onModalClosed" | "client">;
|
|
4404
|
+
export type MenuEntityFormModalProps = PassthroughProps & EntitySourceProps & {
|
|
4405
|
+
client: MicroMClient;
|
|
4406
|
+
parentKeys?: ValuesObject;
|
|
4407
|
+
closeBehavior?: MenuModalCloseBehavior;
|
|
4408
|
+
errorComponent?: (error: unknown, close: () => void) => ReactNode;
|
|
4409
|
+
errorTitle?: string;
|
|
4410
|
+
backLabel?: string;
|
|
4411
|
+
};
|
|
4412
|
+
export const MenuEntityFormModalDefaultProps: Partial<MenuEntityFormModalProps>;
|
|
4413
|
+
export function MenuEntityFormModal(props: MenuEntityFormModalProps): JSX.Element | null;
|
|
4414
|
+
export interface MenuRouteHostProps {
|
|
4415
|
+
client: MicroMClient;
|
|
4416
|
+
menuConfig: Record<string, APPMenuConfigProps>;
|
|
4417
|
+
menus: Record<string, MenuContentResult>;
|
|
4418
|
+
emptyNodeMessage?: ReactNode;
|
|
4419
|
+
defaultLoadingComponent?: ReactNode;
|
|
4420
|
+
}
|
|
4421
|
+
export const MenuRouteHostDefaultProps: Partial<MenuRouteHostProps>;
|
|
4422
|
+
export function MenuRouteHost(props: MenuRouteHostProps): JSX.Element | null;
|
|
4048
4423
|
export interface MicroMError extends Error {
|
|
4049
4424
|
status: number;
|
|
4050
4425
|
message: string;
|