@imtf/dms-core 1.1.0-beta.5 → 6.5.7-natwest.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/apps/folder-manager/routes/InodeCollection/hooks/useRemoveInodesFromUrl.d.ts +0 -4
- package/core/components/JsonForm/widgets/widgetHOC.d.ts +29 -0
- package/core/components/TreeView/types.d.ts +17 -0
- package/core/components/TreeViewCell/constants.d.ts +25 -0
- package/core/constants/apps.d.ts +5 -0
- package/core/containers/DropZone/selectors.d.ts +125 -0
- package/core/containers/PDFComposer/actions.d.ts +2 -2
- package/core/containers/TreeView/actions.d.ts +197 -0
- package/core/containers/TreeView/constants.d.ts +36 -0
- package/core/containers/TreeView/types.d.ts +46 -0
- package/core/providers/Actions/types.d.ts +7 -1
- package/core/providers/App/actions.d.ts +17 -8
- package/core/providers/App/constants.d.ts +3 -0
- package/core/providers/App/hooks/useApplicationSettings.d.ts +2 -3
- package/core/providers/App/hooks/useSettings.d.ts +8 -4
- package/core/providers/App/hooks/useUserSetting.d.ts +1 -9
- package/core/providers/App/hooks/useUserStorage.d.ts +2 -2
- package/core/providers/App/messages.d.ts +0 -8
- package/core/providers/App/reducer.d.ts +1 -1
- package/core/providers/App/types.d.ts +2 -8
- package/core/providers/App/utils/convertOldUserSettings.d.ts +1 -1
- package/core/providers/App/utils/isSupportedItem.d.ts +2 -0
- package/core/providers/Authentication/types.d.ts +1 -1
- package/core/providers/Cases/actions.d.ts +3 -15
- package/core/providers/Cases/hooks/useCaseDocumentTypes.d.ts +3 -3
- package/core/providers/Cases/reducer.d.ts +18 -0
- package/core/providers/Cases/selectors.d.ts +64 -0
- package/core/providers/Cases/utils/common.d.ts +0 -2
- package/core/providers/Ccm/types.d.ts +0 -1
- package/core/providers/Definitions/types.d.ts +1 -1
- package/core/providers/Inodes/actions.d.ts +442 -13
- package/core/providers/Inodes/constants.d.ts +44 -0
- package/core/providers/Inodes/messages.d.ts +0 -8
- package/core/providers/Inodes/selectors.d.ts +55 -0
- package/core/providers/Inodes/service.d.ts +3 -4
- package/core/providers/Inodes/types.d.ts +8 -20
- package/core/providers/Inodes/utils/is.d.ts +3 -2
- package/core/providers/Inspectors/Context.d.ts +0 -2
- package/core/providers/MdmGraph/actions.d.ts +0 -8
- package/core/providers/MdmGraph/constants.d.ts +4 -4
- package/core/providers/MdmGraph/types.d.ts +0 -2
- package/core/providers/MdmGraph/utils/misc.d.ts +13 -0
- package/core/providers/Modal/slice.d.ts +0 -6
- package/core/providers/Modal/types.d.ts +0 -2
- package/core/providers/Plugins/hooks/inodes/useActions.d.ts +2 -10
- package/core/providers/Plugins/hooks/inodes/useInodesByOids.d.ts +6 -0
- package/core/providers/Plugins/hooks/tasks/useActions.d.ts +1 -1
- package/core/providers/Plugins/pluginRegistry.d.ts +43 -61
- package/core/providers/Plugins/types/componentPlugins.d.ts +0 -9
- package/core/providers/Search/reducer.d.ts +4 -7
- package/core/providers/Search/selectors.d.ts +262 -48
- package/core/providers/Search/types.d.ts +5 -26
- package/core/providers/Search/utils/createQuery.d.ts +5 -5
- package/core/providers/SystemNotification/slice.d.ts +1 -1
- package/core/providers/Tasks/hooks/useEntityDelete.d.ts +1 -1
- package/core/providers/Tasks/hooks/useEntityMutate.d.ts +1 -1
- package/core/providers/Tasks/hooks/useTaskData.d.ts +2 -2
- package/core/providers/Tasks/service.d.ts +0 -3
- package/core/providers/Tasks/types.d.ts +1 -1
- package/core/providers/Uploader/Context.d.ts +9 -9
- package/core/utils/action.d.ts +2 -2
- package/core/utils/htmlElements.d.ts +1 -0
- package/core/utils/requestMiddleware.d.ts +1 -0
- package/package.json +1 -1
- package/store.d.ts +16 -21
- package/vendor/@imtf/react-components/components/Chip/utils.d.ts +2 -2
- package/vendor/@imtf/react-components/components/ViewMoreCard/ViewMoreCard.d.ts +2 -1
- package/vendor/@imtf/react-components/utils/constants.d.ts +20 -0
- package/core/components/ActionMenu/Menu.d.ts +0 -19
- package/core/components/ActionMenu/Trigger.d.ts +0 -8
- package/core/components/ActionMenu/index.d.ts +0 -1
- package/core/components/ActionMenu/styles.d.ts +0 -4
- package/core/components/Chip/Chip.d.ts +0 -8
- package/core/components/Chip/index.d.ts +0 -1
- package/core/components/CloseModalButton/CloseModalButton.d.ts +0 -10
- package/core/components/CloseModalButton/index.d.ts +0 -1
- package/core/components/DatePicker/DatePicker.d.ts +0 -6
- package/core/components/DatePicker/index.d.ts +0 -1
- package/core/components/Error/index.d.ts +0 -7
- package/core/components/FormattedNumberTextfield/FormattedNumberTextfield.d.ts +0 -3
- package/core/components/FormattedNumberTextfield/index.d.ts +0 -1
- package/core/components/ItemIcon/TaskIcon.d.ts +0 -5
- package/core/components/ItemIcon/index.d.ts +0 -19
- package/core/components/Select/ListboxComponent.d.ts +0 -5
- package/core/components/Select/Select.d.ts +0 -20
- package/core/components/Select/index.d.ts +0 -1
- package/core/components/dms-ui/DatasourceAutocomplete.d.ts +0 -14
- package/core/components/dms-ui/ImmutableComposer.d.ts +0 -15
- package/core/components/dms-ui/immutableDefault/DatasourceAutocomplete.d.ts +0 -19
- package/core/components/dms-ui/immutableDefault/DatePicker.d.ts +0 -15
- package/core/components/dms-ui/immutableDefault/Group.d.ts +0 -16
- package/core/components/dms-ui/immutableDefault/NumberFormattedTexfield.d.ts +0 -14
- package/core/components/dms-ui/immutableDefault/NumberTextfield.d.ts +0 -2
- package/core/components/dms-ui/immutableDefault/RadioButton.d.ts +0 -19
- package/core/components/dms-ui/immutableDefault/Select.d.ts +0 -19
- package/core/components/dms-ui/immutableDefault/Switch.d.ts +0 -19
- package/core/components/dms-ui/immutableDefault/Textfield.d.ts +0 -21
- package/core/components/dms-ui/immutableDefault/index.d.ts +0 -10
- package/core/components/dms-ui/immutableFacet/DatasourceAutocomplete.d.ts +0 -13
- package/core/components/dms-ui/immutableFacet/DateRangeSearcher.d.ts +0 -14
- package/core/components/dms-ui/immutableFacet/Facet.d.ts +0 -23
- package/core/components/dms-ui/immutableFacet/NumericRangePicker.d.ts +0 -14
- package/core/components/dms-ui/immutableFacet/Select.d.ts +0 -13
- package/core/components/dms-ui/immutableFacet/Textfield.d.ts +0 -13
- package/core/components/dms-ui/immutableFacet/TypePicker.d.ts +0 -13
- package/core/components/dms-ui/immutableFacet/index.d.ts +0 -7
- package/core/components/dms-ui/immutableFacet/styles.d.ts +0 -5
- package/core/components/dms-ui/messages.d.ts +0 -27
- package/core/components/dms-ui/utils/getImmutableComponent.d.ts +0 -19
- package/core/components/dms-ui/utils/removeLabelFromValues.d.ts +0 -1
- package/core/components/dms-ui/utils/utils.d.ts +0 -3
- package/core/constants/dragTypes.d.ts +0 -2
- package/core/containers/DataGrid/constants.d.ts +0 -26
- package/core/containers/DataGrid/types.d.ts +0 -38
- package/core/containers/DataGrid/utils/handleWidth.d.ts +0 -18
- package/core/containers/EntityDocuments/EntityDocumentsComponent.d.ts +0 -30
- package/core/containers/EntityDocuments/components/Accordion.d.ts +0 -12
- package/core/containers/EntityDocuments/components/Document.d.ts +0 -11
- package/core/containers/EntityDocuments/components/DocumentLabel.d.ts +0 -7
- package/core/containers/EntityDocuments/components/DocumentList.d.ts +0 -19
- package/core/containers/EntityDocuments/components/DocumentListTitle.d.ts +0 -7
- package/core/containers/EntityDocuments/constants.d.ts +0 -1
- package/core/containers/EntityDocuments/styles.d.ts +0 -10
- package/core/containers/EntityDocuments/types.d.ts +0 -7
- package/core/containers/SearchDataGrid/types.d.ts +0 -16
- package/core/hooks/useCollator.d.ts +0 -2
- package/core/providers/App/hooks/useDownload.d.ts +0 -23
- package/core/providers/App/hooks/useTriggerItems.d.ts +0 -11
- package/core/providers/App/utils/convertTreeviewFields.d.ts +0 -70
- package/core/providers/App/utils/sortListByWeightAndName.d.ts +0 -8
- package/core/providers/DataGrid/Context.d.ts +0 -47
- package/core/providers/Definitions/hooks/useTaskDefinition.d.ts +0 -1
- package/core/providers/Definitions/hooks/useTaskDefinitions.d.ts +0 -4
- package/core/providers/Definitions/utils/typesToTypeRefs.d.ts +0 -5
- package/core/providers/DropZone/Context.d.ts +0 -12
- package/core/providers/Inodes/hooks/useInodeByOid.d.ts +0 -5
- package/core/providers/Inodes/hooks/useInodeTypeAssignment.d.ts +0 -4
- package/core/providers/Inodes/hooks/useInodesByOids.d.ts +0 -7
- package/core/providers/Inodes/hooks/usePropertiesType.d.ts +0 -14
- package/core/providers/Inodes/hooks/usePropertyComponents.d.ts +0 -11
- package/core/providers/Inodes/hooks/useRestore.d.ts +0 -22
- package/core/providers/Inodes/hooks/useSortedTypes.d.ts +0 -5
- package/core/providers/Inodes/hooks/useTypes.d.ts +0 -10
- package/core/providers/Inodes/hooks/useUpdateInodes.d.ts +0 -35
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/AccordionItem.d.ts +0 -29
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/BarcodeLoading.d.ts +0 -5
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/ModalContent.d.ts +0 -35
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/index.d.ts +0 -12
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/messages.d.ts +0 -59
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/types.d.ts +0 -43
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/utils/addInodeOidToName.d.ts +0 -22
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/utils/createBarcodeProcessingFormData.d.ts +0 -5
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/utils/findMostUsedValue.d.ts +0 -18
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/utils/getInodesRequiredFieldNames.d.ts +0 -10
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/utils/getInvalidInodeOids.d.ts +0 -10
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/utils/replaceComponentsWithConfig.d.ts +0 -10
- package/core/providers/Inodes/modals/AssignTypeAndPropertiesModal/utils/resolveStatusIconAndColor.d.ts +0 -5
- package/core/providers/Inodes/modals/AssignTypeModal.d.ts +0 -9
- package/core/providers/Inodes/utils/getAssignableTypesFromInode.d.ts +0 -2
- package/core/providers/Inodes/utils/getBulkUrl.d.ts +0 -1
- package/core/providers/Inodes/utils/isInodeType.d.ts +0 -3
- package/core/providers/Inodes/utils/isInodeTypeRef.d.ts +0 -3
- package/core/providers/Inodes/utils/mutateInodes.d.ts +0 -7
- package/core/providers/Inodes/utils/replacePropertiesWithConfig.d.ts +0 -10
- package/core/providers/Inodes/utils/resolveInodeTypes.d.ts +0 -183
- package/core/providers/Localization/Context.d.ts +0 -7
- package/core/providers/Localization/hooks/useLocale.d.ts +0 -3
- package/core/providers/Modal/hooks/useModal.d.ts +0 -44
- package/core/providers/Plugins/ComponentPluginContext.d.ts +0 -14
- package/core/providers/Plugins/withComponentPlugin.d.ts +0 -27
- package/core/providers/Tasks/utils/mutateTaskData.d.ts +0 -6
- package/core/theme/theme.base.d.ts +0 -32
- package/core/theme/theme.lightMode.d.ts +0 -206
- package/core/utils/date/getUTCDateInCurrentTimezone.d.ts +0 -11
- package/core/utils/hasValidKind.d.ts +0 -2
- package/core/utils/immutable.d.ts +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { List, MapOf } from "immutable";
|
|
2
|
-
import { COMMENT, DENIED_INODE, DOSSIER, DOSSIER_TYPE, FILE, FOLDER, INODE_LIST, INODE_REF, INODE_REF_LIST, PROPERTY, PROPERTY_LIST, STATE_MACHINE_APPLY_ACTION, TAG, TAGLIST, TEMPLATE, TEMPLATE_REF, TERM_REF } from "../../../core/constants/kinds";
|
|
2
|
+
import { COMMENT, DENIED_INODE, DOSSIER, DOSSIER_TYPE, FILE, FOLDER, INODE_LIST, INODE_REF, INODE_REF_LIST, PROPERTY, PROPERTY_LIST, STACK, STATE_MACHINE_APPLY_ACTION, TAG, TAGLIST, TEMPLATE, TEMPLATE_REF, TERM_REF } from "../../../core/constants/kinds";
|
|
3
3
|
import { SUPPORTED_MIME_TYPES } from "../../containers/PDFTronViewer/constants";
|
|
4
4
|
import { TimelineEvent } from "../App/types";
|
|
5
5
|
import { Case, CaseRef } from "../Cases/types";
|
|
@@ -92,6 +92,11 @@ export type Inode<Kind extends typeof FILE | typeof FOLDER | typeof DOSSIER | ty
|
|
|
92
92
|
*/
|
|
93
93
|
transientFileId?: string;
|
|
94
94
|
};
|
|
95
|
+
export type InodeStack = {
|
|
96
|
+
kind: typeof STACK;
|
|
97
|
+
oid: number;
|
|
98
|
+
items: Inode[];
|
|
99
|
+
};
|
|
95
100
|
type Ancestor = {
|
|
96
101
|
kind: typeof INODE_REF;
|
|
97
102
|
name: Inode["name"];
|
|
@@ -134,10 +139,6 @@ export interface TemplateInode extends Inode {
|
|
|
134
139
|
export type Tag = {
|
|
135
140
|
kind: typeof TAG;
|
|
136
141
|
name: string;
|
|
137
|
-
label: string;
|
|
138
|
-
creationDate: string;
|
|
139
|
-
modificationDate: string;
|
|
140
|
-
oid: string;
|
|
141
142
|
};
|
|
142
143
|
export type TagList = {
|
|
143
144
|
kind: typeof TAGLIST;
|
|
@@ -205,7 +206,7 @@ export type InodeType = {
|
|
|
205
206
|
name: string;
|
|
206
207
|
label: string;
|
|
207
208
|
orderingWeight?: number;
|
|
208
|
-
colour
|
|
209
|
+
colour: string;
|
|
209
210
|
oid?: string;
|
|
210
211
|
creationDate?: string;
|
|
211
212
|
modificationDate?: string;
|
|
@@ -321,28 +322,15 @@ export type InodeEventList = {
|
|
|
321
322
|
items: TimelineEvent[];
|
|
322
323
|
};
|
|
323
324
|
export type TopPanels = {
|
|
324
|
-
html?: string;
|
|
325
325
|
kind: "dms-core.ui.TopPanels";
|
|
326
326
|
name: string;
|
|
327
|
-
template
|
|
327
|
+
template: {
|
|
328
328
|
properties: {
|
|
329
329
|
key: string;
|
|
330
330
|
label: string;
|
|
331
331
|
}[];
|
|
332
332
|
};
|
|
333
333
|
};
|
|
334
|
-
export type UploadResultList = {
|
|
335
|
-
kind: "dms-core.ResultListResource";
|
|
336
|
-
items: UploadResult[];
|
|
337
|
-
};
|
|
338
|
-
export type UploadResult = {
|
|
339
|
-
kind: "dms-core.InodeResultResource";
|
|
340
|
-
name: Inode["name"];
|
|
341
|
-
inode: Inode;
|
|
342
|
-
errorResource?: ErrorResource;
|
|
343
|
-
status: number;
|
|
344
|
-
validationResults: ValidationResult[];
|
|
345
|
-
};
|
|
346
334
|
/** Documentation : https://imtf.atlassian.net/wiki/spaces/FM/pages/530186290 */
|
|
347
335
|
export type InodeChangeStatus =
|
|
348
336
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DOSSIER, FILE, FOLDER, TEMPLATE } from "../../../../core/constants/kinds";
|
|
2
|
-
import { Inode } from "../types";
|
|
2
|
+
import { Inode, InodeStack } from "../types";
|
|
3
3
|
export declare function isInodeKind(kind: string | undefined): boolean;
|
|
4
4
|
export declare function isInode(inode: unknown): inode is Inode;
|
|
5
5
|
export declare function isFolder(inode: unknown): inode is Inode<typeof FOLDER>;
|
|
@@ -22,9 +22,10 @@ export declare function isJSON(inode: unknown): inode is Inode<typeof FILE> & {
|
|
|
22
22
|
export declare function isText(inode: unknown): inode is Inode<typeof FILE> & {
|
|
23
23
|
mimeType: "text/plain";
|
|
24
24
|
};
|
|
25
|
+
export declare function isInodeStack(inode: unknown): inode is InodeStack;
|
|
25
26
|
export declare function isNotArchive(inode: unknown): inode is Inode & {
|
|
26
27
|
kind: typeof FILE;
|
|
27
|
-
uri:
|
|
28
|
+
uri: `${"neo4j"}${string}`;
|
|
28
29
|
};
|
|
29
30
|
declare const OFFICE_DOCUMENTS: string[];
|
|
30
31
|
export declare function isAnOfficeDocument(inode: unknown): inode is Inode & {
|
|
@@ -6,8 +6,6 @@ type InspectorContextType = {
|
|
|
6
6
|
registerInspectors: (inspectors: InspectorModuleDefinition[]) => void;
|
|
7
7
|
activeTabName: string | undefined;
|
|
8
8
|
setActiveTabName: (name: string | undefined) => void;
|
|
9
|
-
items: SupportedItem[] | undefined;
|
|
10
|
-
setItems: (items: SupportedItem[] | undefined) => void;
|
|
11
9
|
};
|
|
12
10
|
declare const InspectorsContext: import("react").Context<InspectorContextType>;
|
|
13
11
|
export default InspectorsContext;
|
|
@@ -9,8 +9,6 @@ export function editEntityModal(taskOid: any, props: any): {
|
|
|
9
9
|
fullWidth: boolean;
|
|
10
10
|
maxWidth: import("@mui/material").DialogProps["maxWidth"];
|
|
11
11
|
blocker: boolean;
|
|
12
|
-
onConfirm: (...args: any[]) => void;
|
|
13
|
-
onCancel: () => void;
|
|
14
12
|
onClose: () => void;
|
|
15
13
|
}> | undefined;
|
|
16
14
|
};
|
|
@@ -108,8 +106,6 @@ export function showFieldHistory(fieldHistory: any, fieldLabel: any, entity: any
|
|
|
108
106
|
fullWidth: boolean;
|
|
109
107
|
maxWidth: import("@mui/material").DialogProps["maxWidth"];
|
|
110
108
|
blocker: boolean;
|
|
111
|
-
onConfirm: (...args: any[]) => void;
|
|
112
|
-
onCancel: () => void;
|
|
113
109
|
onClose: () => void;
|
|
114
110
|
}> | undefined;
|
|
115
111
|
};
|
|
@@ -126,8 +122,6 @@ export function showFieldComments(taskOid: any, entityOid: any, fieldName: any,
|
|
|
126
122
|
fullWidth: boolean;
|
|
127
123
|
maxWidth: import("@mui/material").DialogProps["maxWidth"];
|
|
128
124
|
blocker: boolean;
|
|
129
|
-
onConfirm: (...args: any[]) => void;
|
|
130
|
-
onCancel: () => void;
|
|
131
125
|
onClose: () => void;
|
|
132
126
|
}> | undefined;
|
|
133
127
|
};
|
|
@@ -144,8 +138,6 @@ export function generateEntityReportModal(entity: any): {
|
|
|
144
138
|
fullWidth: boolean;
|
|
145
139
|
maxWidth: import("@mui/material").DialogProps["maxWidth"];
|
|
146
140
|
blocker: boolean;
|
|
147
|
-
onConfirm: (...args: any[]) => void;
|
|
148
|
-
onCancel: () => void;
|
|
149
141
|
onClose: () => void;
|
|
150
142
|
}> | undefined;
|
|
151
143
|
};
|
|
@@ -8,10 +8,10 @@ export declare const ATTACH_FILES = "imtf/MdmGraph/ATTACH_FILES";
|
|
|
8
8
|
export declare const ATTACH_FILES_SUCCESS = "imtf/MdmGraph/ATTACH_FILES_SUCCESS";
|
|
9
9
|
export declare const ATTACH_FILES_ERROR = "imtf/MdmGraph/ATTACH_FILES_ERROR";
|
|
10
10
|
export declare const MODAL_TYPES: {
|
|
11
|
-
EDIT_ENTITY:
|
|
12
|
-
FIELD_HISTORY:
|
|
13
|
-
FIELD_COMMENTS:
|
|
14
|
-
GENERATE_ENTITY_REPORT:
|
|
11
|
+
readonly EDIT_ENTITY: "imtf/MdmGraph/modal/EDIT_ENTITY";
|
|
12
|
+
readonly FIELD_HISTORY: "imtf/MdmGraph/modal/FIELD_HISTORY";
|
|
13
|
+
readonly FIELD_COMMENTS: "imtf/MdmGraph/modal/FIELD_COMMENTS";
|
|
14
|
+
readonly GENERATE_ENTITY_REPORT: "imtf/MdmGraph/modal/GENERATE_ENTITY_REPORT";
|
|
15
15
|
};
|
|
16
16
|
export declare const NEW_ENTITY_KEY = "__NEW__";
|
|
17
17
|
export declare const RELATION_DIRECTIONS: {
|
|
@@ -30,8 +30,6 @@ export type Entity<Type extends string = string, Data extends EntityData = Entit
|
|
|
30
30
|
canDelete: boolean;
|
|
31
31
|
canEdit: boolean;
|
|
32
32
|
canCommentEntityField: boolean;
|
|
33
|
-
canGenerateReport: boolean;
|
|
34
|
-
canImportSearchResult?: boolean;
|
|
35
33
|
} & Capabilities;
|
|
36
34
|
creationDate: string;
|
|
37
35
|
modificationDate: string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Entity, MdmValue } from "../types";
|
|
2
|
+
export declare function isVirtualEntity(entity: unknown): boolean;
|
|
3
|
+
export declare function getValueFormatted(formatter: (data: MdmValue, displayData: MdmValue, extra: Record<string, unknown>) => string, mapWithDisplayData: {
|
|
4
|
+
data: Entity["data"];
|
|
5
|
+
displayData: Entity["displayData"];
|
|
6
|
+
}, property: string): string;
|
|
7
|
+
export declare const can: Readonly<{
|
|
8
|
+
edit(entity: unknown): boolean;
|
|
9
|
+
delete(entity: unknown): boolean;
|
|
10
|
+
commentOnFields(entity: unknown): boolean;
|
|
11
|
+
editField(entityField: unknown): boolean;
|
|
12
|
+
generateReport(entity: unknown): boolean;
|
|
13
|
+
}>;
|
|
@@ -14,8 +14,6 @@ export declare const showModal: import("@reduxjs/toolkit").ActionCreatorWithPrep
|
|
|
14
14
|
fullWidth: boolean;
|
|
15
15
|
maxWidth: import("@mui/material").DialogProps["maxWidth"];
|
|
16
16
|
blocker: boolean;
|
|
17
|
-
onConfirm: (...args: any[]) => void;
|
|
18
|
-
onCancel: () => void;
|
|
19
17
|
onClose: () => void;
|
|
20
18
|
}> | undefined], {
|
|
21
19
|
type: string;
|
|
@@ -27,8 +25,6 @@ export declare const showModal: import("@reduxjs/toolkit").ActionCreatorWithPrep
|
|
|
27
25
|
fullWidth: boolean;
|
|
28
26
|
maxWidth: import("@mui/material").DialogProps["maxWidth"];
|
|
29
27
|
blocker: boolean;
|
|
30
|
-
onConfirm: (...args: any[]) => void;
|
|
31
|
-
onCancel: () => void;
|
|
32
28
|
onClose: () => void;
|
|
33
29
|
}> | undefined;
|
|
34
30
|
}, "modal/showModal", never, never>, updateModalProps: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<Partial<{
|
|
@@ -39,8 +35,6 @@ export declare const showModal: import("@reduxjs/toolkit").ActionCreatorWithPrep
|
|
|
39
35
|
fullWidth: boolean;
|
|
40
36
|
maxWidth: import("@mui/material").DialogProps["maxWidth"];
|
|
41
37
|
blocker: boolean;
|
|
42
|
-
onConfirm: (...args: any[]) => void;
|
|
43
|
-
onCancel: () => void;
|
|
44
38
|
onClose: () => void;
|
|
45
39
|
}> | undefined, "modal/updateModalProps">, closeModal: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
46
40
|
type?: string;
|
|
@@ -8,16 +8,8 @@ declare function useInodeActions(): {
|
|
|
8
8
|
} & {
|
|
9
9
|
result: import("../../../Inodes/types").InodeList | undefined;
|
|
10
10
|
}>;
|
|
11
|
-
update: (inodes: any) =>
|
|
12
|
-
inodes: import("../../../Inodes/types").Inode[];
|
|
13
|
-
targetInode?: import("../../../Inodes/types").Inode;
|
|
14
|
-
originalInodes?: import("../../../Inodes/types").Inode[];
|
|
15
|
-
mergeOnNameConflict?: boolean;
|
|
16
|
-
moveMode?: "FORCE_MOVE";
|
|
17
|
-
} & {
|
|
18
|
-
newInodes: import("../../../Inodes/types").Inode[];
|
|
19
|
-
}) | undefined>;
|
|
20
|
-
checkAndGetWithType: (inodes: any, targetTypes: any, forceChildrenWithType: any) => Promise<import("../../../Inodes/types").Inode[] | null>;
|
|
11
|
+
update: (inodes: any) => void;
|
|
21
12
|
stateAction: (inodes: any, action: any) => void;
|
|
22
13
|
updateProperties: (newProperties: any, oid: any) => void;
|
|
14
|
+
checkAndGetWithType: (inodes: any, targetTypes: any, forceChildrenWithType: any, sort: any) => Promise<any>;
|
|
23
15
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ListmakerFormatter } from "@imtf/panache";
|
|
2
|
+
import { NoContent, ViewMoreCard } from "../../../vendor/@imtf/react-components";
|
|
2
3
|
import { OperatorEvaluator } from "json-rules-engine";
|
|
3
4
|
import React, { ElementType } from "react";
|
|
4
5
|
import { useIntl } from "react-intl";
|
|
5
|
-
import { useSWRConfig } from "swr";
|
|
6
6
|
import { Action, ActionDefinition } from "../Actions/types";
|
|
7
7
|
import useReloader from "../Search/hooks/useReloader";
|
|
8
8
|
import { Action as FormAction } from "../../../core/components/JsonForm/types";
|
|
@@ -10,21 +10,18 @@ import { api } from "../../../core/services/settings";
|
|
|
10
10
|
import { TRIGGER_TARGET } from "../Actions/constants";
|
|
11
11
|
import { SupportedItem } from "../App/types";
|
|
12
12
|
import { Case } from "../Cases/types";
|
|
13
|
-
import { useInodesByOids } from "../Inodes/hooks/useInodesByOids";
|
|
14
13
|
import { Inode } from "../Inodes/types";
|
|
15
14
|
import { InspectorProps } from "../Inspectors/types";
|
|
16
15
|
import { Task } from "../Tasks/types";
|
|
17
16
|
import { TYPES } from "./constants";
|
|
17
|
+
import useInodesByOids from "./hooks/inodes/useInodesByOids";
|
|
18
18
|
import { useTaskCompletionDisabling } from "./hooks/tasks/useTaskCompletionDisabling";
|
|
19
|
-
import { CategoryFilterProps, EntitiesWrapperProps,
|
|
19
|
+
import { CategoryFilterProps, EntitiesWrapperProps, EntityDocumentsDocumentLabelProps, EntityDocumentsDocumentProps, EntityDocumentsTypeLabelProps, EntityEditModalEditForm, MdmEditorEntityRowActionsProps } from "./types/componentPlugins";
|
|
20
20
|
type PLUGIN_TYPES = (typeof TYPES)[keyof typeof TYPES];
|
|
21
21
|
declare const plugins: {
|
|
22
22
|
[key in Exclude<PLUGIN_TYPES, "INSPECTOR" | "CONTEXT_MENU_ACTION">]: Record<string, Record<string, any>>;
|
|
23
23
|
};
|
|
24
24
|
declare class PluginRegistry {
|
|
25
|
-
private getActions;
|
|
26
|
-
private triggerItems;
|
|
27
|
-
private _uploadFiles;
|
|
28
25
|
TYPES: Readonly<{
|
|
29
26
|
QUESTIONNAIRE_PART: "QUESTIONNAIRE_PART";
|
|
30
27
|
FORM_WIDGET: "FORM_WIDGET";
|
|
@@ -60,6 +57,8 @@ declare class PluginRegistry {
|
|
|
60
57
|
inode: Inode;
|
|
61
58
|
}) => import("react/jsx-runtime").JSX.Element>;
|
|
62
59
|
CountryFlag: any;
|
|
60
|
+
ViewMoreCard: typeof ViewMoreCard;
|
|
61
|
+
NoContent: typeof NoContent;
|
|
63
62
|
};
|
|
64
63
|
hooks: {
|
|
65
64
|
app: {
|
|
@@ -74,14 +73,14 @@ declare class PluginRegistry {
|
|
|
74
73
|
notify: (message: import("react-toastify").ToastContent, options: import("react-toastify").ToastOptions) => import("react-toastify").Id;
|
|
75
74
|
updateNotification: (tastId: import("react-toastify").Id, options: import("react-toastify").UpdateOptions) => void;
|
|
76
75
|
};
|
|
77
|
-
useParameter: <T>(key: "translations" | "language" | "
|
|
78
|
-
/**
|
|
76
|
+
useParameter: <T>(key: "translations" | "language" | "contentType" | "locales" | "enableCaseCreation" | "shouldReloadResults" | "reloadResultsIntervals" | "userInactivitySessionTimeout" | "showDropzone" | "theme" | "productNameInSidebar" | "disableTaskAutoClaim" | "useRelativeDateWheneverPossible" | "customerRelatedEntitiesTemplates" | "documentTaskSearchContextName" | "canOpenRelatedAlertFromInspector" | "propertyPanelOverrides" | "additionalTransactionsColumns" | "millisecondsToHideUploadProgress" | "inodeTimelineExportLimit" | "searchExportLimit" | "customStamps" | "openEachInodeInNewTabOrWindowLimit" | "useSolrDocumentIcons" | "loadFirstFromQuickSearch" | "enableDossierCreation" | "enableBarcodeProcessing" | "enablePropertiesUpload" | "navigateOnCaseCreation" | "navigateOnTaskCompletion" | "authenticationWorkflow" | "hitListLimit" | "inodeListLimit" | "appBarColor" | "displayEnvironmentName" | "autosaveDebounce" | "displayFullnameInDocuments" | "enableDigitalSignatureVerification" | "certificateRevocationListProxyServerUrl" | "companionScanDPIResolution", defaultValue?: T) => T | undefined; /**
|
|
79
77
|
* @deprecated
|
|
80
78
|
*/
|
|
81
79
|
useReloader: typeof useReloader;
|
|
82
80
|
useSWR: import("swr").SWRHook;
|
|
83
81
|
useSWRImmutable: import("swr").SWRHook;
|
|
84
|
-
|
|
82
|
+
useSWRMutation: import("swr/mutation").SWRMutationHook;
|
|
83
|
+
useSWRConfig: () => import("swr/_internal").FullConfiguration;
|
|
85
84
|
useUserDetails: () => import("../User/types").User | undefined;
|
|
86
85
|
};
|
|
87
86
|
case: {
|
|
@@ -89,6 +88,10 @@ declare class PluginRegistry {
|
|
|
89
88
|
createFiles: (entityOid: any, inodes: any) => void;
|
|
90
89
|
};
|
|
91
90
|
useCase: (item: Case) => import("swr").SWRResponse<Case, any, any>;
|
|
91
|
+
usePayload: (item: unknown) => import("swr").SWRResponse<{
|
|
92
|
+
kind: "acm.CasePayload";
|
|
93
|
+
payload: import("../Cases/types").CasePayload;
|
|
94
|
+
}, any, any>;
|
|
92
95
|
useData: <E = import("../Ccm/types").EntityType>(params: {
|
|
93
96
|
caseOid: string | undefined;
|
|
94
97
|
entitiesSelector?: {
|
|
@@ -105,10 +108,6 @@ declare class PluginRegistry {
|
|
|
105
108
|
mutate: () => void;
|
|
106
109
|
};
|
|
107
110
|
useDocumentTypes: (item: string | Case | Task) => import("swr").SWRResponse<import("../Cases/hooks/useCaseDocumentTypes").CaseDocumentType[], any, any>;
|
|
108
|
-
usePayload: (item: unknown) => import("swr").SWRResponse<{
|
|
109
|
-
kind: "acm.CasePayload";
|
|
110
|
-
payload: import("../Cases/types").CasePayload;
|
|
111
|
-
}, any, any>;
|
|
112
111
|
};
|
|
113
112
|
task: {
|
|
114
113
|
useActions: (taskOid: any) => {
|
|
@@ -125,7 +124,7 @@ declare class PluginRegistry {
|
|
|
125
124
|
};
|
|
126
125
|
};
|
|
127
126
|
reloadQuestionnaire: () => Promise<any>;
|
|
128
|
-
reloadData: () => Promise<any
|
|
127
|
+
reloadData: () => Promise<any>;
|
|
129
128
|
};
|
|
130
129
|
useData: <EntityType extends import("../MdmGraph/types").Entity>(taskOid: string | undefined, config?: import("swr").SWRConfiguration) => import("swr").SWRResponse<import("../Tasks/types").TaskData<EntityType>, any, import("swr").SWRConfiguration<import("../Tasks/types").TaskData<EntityType>, any, import("swr").BareFetcher<import("../Tasks/types").TaskData<EntityType>>> | undefined>;
|
|
131
130
|
useEntitiesMutate: (taskOid: string) => import("swr/mutation").SWRMutationResponse<{
|
|
@@ -139,6 +138,7 @@ declare class PluginRegistry {
|
|
|
139
138
|
trigger: (entity: import("../MdmGraph/types").Entity, patchData?: import("../MdmGraph/types").EntityData, params?: import("../Tasks/hooks/useEntityMutate").Params) => Promise<void>;
|
|
140
139
|
isMutating: boolean;
|
|
141
140
|
reset: () => void;
|
|
141
|
+
error: import("axios").AxiosError<unknown, any> | undefined;
|
|
142
142
|
data: {
|
|
143
143
|
entity?: import("../MdmGraph/types").Entity & {
|
|
144
144
|
__creationOid?: string;
|
|
@@ -146,7 +146,6 @@ declare class PluginRegistry {
|
|
|
146
146
|
relation?: import("../MdmGraph/types").Relation;
|
|
147
147
|
params?: import("../Tasks/hooks/useEntityMutate").Params | undefined;
|
|
148
148
|
} | undefined;
|
|
149
|
-
error: import("axios").AxiosError<unknown, any> | undefined;
|
|
150
149
|
};
|
|
151
150
|
useEntityDelete: (taskOid: string) => {
|
|
152
151
|
deleteEntity: (entityOid: string, params: Omit<{
|
|
@@ -163,8 +162,8 @@ declare class PluginRegistry {
|
|
|
163
162
|
entityOid: string;
|
|
164
163
|
}>;
|
|
165
164
|
reset: () => void;
|
|
166
|
-
data: string | undefined;
|
|
167
165
|
error: import("axios").AxiosError<unknown, any> | undefined;
|
|
166
|
+
data: string | undefined;
|
|
168
167
|
};
|
|
169
168
|
useTask: (taskOid: string | undefined) => import("swr").SWRResponse<Task, any, any>;
|
|
170
169
|
useTaskCompletionDisabling: typeof useTaskCompletionDisabling;
|
|
@@ -186,26 +185,42 @@ declare class PluginRegistry {
|
|
|
186
185
|
} & {
|
|
187
186
|
result: import("../Inodes/types").InodeList | undefined;
|
|
188
187
|
}>;
|
|
189
|
-
update: (inodes: any) =>
|
|
190
|
-
inodes: Inode[];
|
|
191
|
-
targetInode?: Inode;
|
|
192
|
-
originalInodes?: Inode[];
|
|
193
|
-
mergeOnNameConflict?: boolean;
|
|
194
|
-
moveMode?: "FORCE_MOVE";
|
|
195
|
-
} & {
|
|
196
|
-
newInodes: Inode[];
|
|
197
|
-
}) | undefined>;
|
|
198
|
-
checkAndGetWithType: (inodes: any, targetTypes: any, forceChildrenWithType: any) => Promise<Inode[] | null>;
|
|
188
|
+
update: (inodes: any) => void;
|
|
199
189
|
stateAction: (inodes: any, action: any) => void;
|
|
200
190
|
updateProperties: (newProperties: any, oid: any) => void;
|
|
191
|
+
checkAndGetWithType: (inodes: any, targetTypes: any, forceChildrenWithType: any, sort: any) => Promise<any>;
|
|
201
192
|
};
|
|
202
193
|
useInodesByOids: typeof useInodesByOids;
|
|
203
194
|
};
|
|
204
195
|
};
|
|
196
|
+
private triggerItems;
|
|
197
|
+
private uploadFiles;
|
|
198
|
+
upload: {
|
|
199
|
+
promptIcosUpload: (params: {
|
|
200
|
+
multiple?: boolean;
|
|
201
|
+
accept?: string;
|
|
202
|
+
caseOid?: string;
|
|
203
|
+
taskOid?: string;
|
|
204
|
+
entityOid?: string;
|
|
205
|
+
type?: import("../Inodes/types").InodeType;
|
|
206
|
+
properties?: any;
|
|
207
|
+
types?: import("../Inodes/types").InodeType[];
|
|
208
|
+
}) => Promise<null>;
|
|
209
|
+
uploadIcosFiles: (params: {
|
|
210
|
+
files: File[];
|
|
211
|
+
caseOid?: string;
|
|
212
|
+
taskOid?: string;
|
|
213
|
+
entityOid?: string;
|
|
214
|
+
fileProps?: Record<string, any>;
|
|
215
|
+
fileInodes?: Inode[];
|
|
216
|
+
types: import("../Inodes/types").InodeType[];
|
|
217
|
+
}) => Promise<null>;
|
|
218
|
+
updateBinary: (inodeOid: string, file: File, getUpdatedItem?: (file: File) => File) => Promise<null>;
|
|
219
|
+
};
|
|
205
220
|
setDeps({ getActions, triggerItems, upload, }: {
|
|
206
221
|
getActions: typeof PluginRegistry.prototype.getActions;
|
|
207
222
|
triggerItems: typeof PluginRegistry.prototype.triggerItems;
|
|
208
|
-
upload: typeof PluginRegistry.prototype.
|
|
223
|
+
upload: typeof PluginRegistry.prototype.uploadFiles;
|
|
209
224
|
}): void;
|
|
210
225
|
register(type: typeof TYPES.FORM_WIDGET | typeof TYPES.FORM_FIELD | typeof TYPES.RENDERER | typeof TYPES.CONTEXT_MENU_ACTION | typeof TYPES.EXTERNAL_MODULE | typeof TYPES.QUESTIONNAIRE_PART | typeof TYPES.PROVIDER, name: string, plugin: (...args: any[]) => React.ReactNode, options?: {
|
|
211
226
|
condition?: (item: unknown) => boolean;
|
|
@@ -229,9 +244,6 @@ declare class PluginRegistry {
|
|
|
229
244
|
register(type: typeof TYPES.COMPONENT, name: "documentUpload/Filters", plugin: React.FC<CategoryFilterProps>, params?: {
|
|
230
245
|
condition?: (props: CategoryFilterProps) => boolean;
|
|
231
246
|
}): void;
|
|
232
|
-
register(type: typeof TYPES.COMPONENT, name: "entityDocuments/Section", plugin: React.FC<EntityDocumentsComponentProps>, params?: {
|
|
233
|
-
condition?: (props: EntityDocumentsComponentProps) => boolean;
|
|
234
|
-
}): void;
|
|
235
247
|
register(type: typeof TYPES.COMPONENT, name: "entityDocuments/TypeLabel", plugin: React.FC<EntityDocumentsTypeLabelProps>, params?: {
|
|
236
248
|
condition?: (props: EntityDocumentsTypeLabelProps) => boolean;
|
|
237
249
|
}): void;
|
|
@@ -247,37 +259,7 @@ declare class PluginRegistry {
|
|
|
247
259
|
object: ElementType;
|
|
248
260
|
} | undefined;
|
|
249
261
|
getAll(type: keyof typeof plugins): Record<string, Record<string, any>>;
|
|
250
|
-
|
|
251
|
-
promptIcosUpload: (params: {
|
|
252
|
-
multiple?: boolean;
|
|
253
|
-
accept?: string;
|
|
254
|
-
caseOid?: string;
|
|
255
|
-
taskOid?: string;
|
|
256
|
-
entityOid?: string;
|
|
257
|
-
type?: import("../Inodes/types").InodeType;
|
|
258
|
-
properties?: any;
|
|
259
|
-
types?: import("../Inodes/types").InodeType[];
|
|
260
|
-
}) => Promise<import("../Inodes/types").UploadResult[]>;
|
|
261
|
-
promptUpdateBinary: (params: {
|
|
262
|
-
accept?: string;
|
|
263
|
-
target: string;
|
|
264
|
-
updateInodeName?: boolean;
|
|
265
|
-
}) => Promise<import("../Inodes/types").UploadResult[]>;
|
|
266
|
-
uploadIcosFiles: (params: {
|
|
267
|
-
files: File[];
|
|
268
|
-
caseOid?: string;
|
|
269
|
-
taskOid?: string;
|
|
270
|
-
entityOid?: string;
|
|
271
|
-
fileProps?: Record<string, any>;
|
|
272
|
-
fileInodes?: Inode[];
|
|
273
|
-
types: import("../Inodes/types").InodeType[];
|
|
274
|
-
}) => Promise<import("../Inodes/types").UploadResult[]>;
|
|
275
|
-
updateBinary: (inodeOid: string, file: File, updateInodeName?: boolean | undefined) => Promise<import("../Inodes/types").UploadResult[]>;
|
|
276
|
-
};
|
|
277
|
-
/**
|
|
278
|
-
* As `getActions` and `triggerItems` as redefined after class instantiation,
|
|
279
|
-
* we need to expose them as a function to be able to use them in the actions object.
|
|
280
|
-
*/
|
|
262
|
+
private getActions;
|
|
281
263
|
actions: {
|
|
282
264
|
getActions: (items: SupportedItem[], extraActions?: ActionDefinition[], extraActionParams?: Record<string, any>) => Action[];
|
|
283
265
|
triggerItems: (items: SupportedItem[], target?: keyof typeof TRIGGER_TARGET) => void;
|
|
@@ -2,7 +2,6 @@ import { ReactNode } from "react";
|
|
|
2
2
|
import { FormDefinition, MdmEditorDefinition } from "../../Definitions/types";
|
|
3
3
|
import { Inode } from "../../Inodes/types";
|
|
4
4
|
import { Entity } from "../../MdmGraph/types";
|
|
5
|
-
import type { EntityDocumentsComponentProps as EntityDocumentsComponentCoreProps } from "../../../../core/containers/EntityDocuments/EntityDocumentsComponent";
|
|
6
5
|
export type ComponentPluginProps<P> = P & {
|
|
7
6
|
defaultRender: (props?: Partial<P>) => JSX.Element;
|
|
8
7
|
};
|
|
@@ -19,12 +18,6 @@ export type EntityEditModalEditForm = ComponentPluginProps<{
|
|
|
19
18
|
entity: Entity;
|
|
20
19
|
children: ReactNode;
|
|
21
20
|
}>;
|
|
22
|
-
export type EntityDocumentsComponentProps = ComponentPluginProps<Pick<EntityDocumentsComponentCoreProps, "entity" | "canDrop" | "onDrop" | "documentsByType" | "typesFromDefinition" | "documentUploadButton" | "disabled"> & {
|
|
23
|
-
identifier?: string;
|
|
24
|
-
taskOid?: string;
|
|
25
|
-
caseOid?: string;
|
|
26
|
-
entityOid?: string;
|
|
27
|
-
}>;
|
|
28
21
|
export type EntityDocumentsDocumentProps = ComponentPluginProps<{
|
|
29
22
|
document: Inode<"dms-core.File">;
|
|
30
23
|
disabled: boolean;
|
|
@@ -54,8 +47,6 @@ export type EntityDocumentsTypeLabelProps = ComponentPluginProps<{
|
|
|
54
47
|
label: string;
|
|
55
48
|
disabled: boolean;
|
|
56
49
|
isRequired: boolean;
|
|
57
|
-
canAddFile: boolean;
|
|
58
|
-
canAddFileWithoutBinary: boolean;
|
|
59
50
|
identifier?: string;
|
|
60
51
|
taskOid?: string;
|
|
61
52
|
caseOid?: string;
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import { AnyAction } from "@reduxjs/toolkit";
|
|
2
|
-
import {
|
|
3
|
-
import { TableRow } from "../../../core/containers/SearchDataGrid/types";
|
|
2
|
+
import { TableRow, TreeViewField } from "../../../core/containers/TreeView/types";
|
|
4
3
|
import { SearchMask } from "../Definitions/types";
|
|
5
|
-
import {
|
|
4
|
+
import { SearchResultCapabilities } from "./types";
|
|
6
5
|
export type SearchState = {
|
|
7
6
|
loading: boolean;
|
|
8
7
|
error: any;
|
|
9
8
|
results: {
|
|
10
9
|
contextName: string | undefined;
|
|
11
10
|
count: number | null;
|
|
12
|
-
head:
|
|
11
|
+
head: TreeViewField[];
|
|
13
12
|
mask: SearchMask | null;
|
|
14
13
|
rows: TableRow[];
|
|
15
14
|
hasUnknowCount: boolean;
|
|
16
15
|
timestamp: number | undefined;
|
|
17
16
|
capabilities: SearchResultCapabilities;
|
|
18
|
-
alerts?: SearchResultAlert[];
|
|
19
17
|
};
|
|
20
18
|
};
|
|
21
19
|
export default function searchReducer(state: SearchState | undefined, action: AnyAction): {
|
|
@@ -24,12 +22,11 @@ export default function searchReducer(state: SearchState | undefined, action: An
|
|
|
24
22
|
results: {
|
|
25
23
|
contextName: string | undefined;
|
|
26
24
|
count: number | null;
|
|
27
|
-
head:
|
|
25
|
+
head: TreeViewField[];
|
|
28
26
|
mask: SearchMask | null;
|
|
29
27
|
rows: TableRow[];
|
|
30
28
|
hasUnknowCount: boolean;
|
|
31
29
|
timestamp: number | undefined;
|
|
32
30
|
capabilities: SearchResultCapabilities;
|
|
33
|
-
alerts?: SearchResultAlert[];
|
|
34
31
|
};
|
|
35
32
|
};
|