@boarteam/boar-pack-common-frontend 3.4.0 → 4.0.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/components/ChangesModal/ChangesModal.d.ts +37 -0
- package/dist/components/ChangesModal/ChangesModal.js +143 -0
- package/dist/components/ChangesModal/ChangesModal.js.map +1 -0
- package/dist/components/ChangesModal/ChangesTab.d.ts +7 -0
- package/dist/components/ChangesModal/ChangesTab.js +29 -0
- package/dist/components/ChangesModal/ChangesTab.js.map +1 -0
- package/dist/components/ChangesModal/ConflictsTab.d.ts +10 -0
- package/dist/components/ChangesModal/ConflictsTab.js +105 -0
- package/dist/components/ChangesModal/ConflictsTab.js.map +1 -0
- package/dist/components/ChangesModal/ErrorsTab.d.ts +5 -0
- package/dist/components/ChangesModal/ErrorsTab.js +27 -0
- package/dist/components/ChangesModal/ErrorsTab.js.map +1 -0
- package/dist/components/ChangesModal/NewRecordsTab.d.ts +12 -0
- package/dist/components/ChangesModal/NewRecordsTab.js +24 -0
- package/dist/components/ChangesModal/NewRecordsTab.js.map +1 -0
- package/dist/components/ChangesModal/ResultsTab.d.ts +8 -0
- package/dist/components/ChangesModal/ResultsTab.js +12 -0
- package/dist/components/ChangesModal/ResultsTab.js.map +1 -0
- package/dist/components/ChangesModal/index.d.ts +1 -0
- package/dist/components/ChangesModal/index.js +5 -0
- package/dist/components/ChangesModal/index.js.map +1 -0
- package/dist/components/Comment/Comment.d.ts +12 -0
- package/dist/components/Comment/Comment.js +25 -0
- package/dist/components/Comment/Comment.js.map +1 -0
- package/dist/components/Comment/CommentAvatar.d.ts +7 -0
- package/dist/components/Comment/CommentAvatar.js +22 -0
- package/dist/components/Comment/CommentAvatar.js.map +1 -0
- package/dist/components/Comment/CommentForm.d.ts +6 -0
- package/dist/components/Comment/CommentForm.js +17 -0
- package/dist/components/Comment/CommentForm.js.map +1 -0
- package/dist/components/Comment/CommentFormModal.d.ts +10 -0
- package/dist/components/Comment/CommentFormModal.js +13 -0
- package/dist/components/Comment/CommentFormModal.js.map +1 -0
- package/dist/components/Comment/index.d.ts +5 -0
- package/dist/components/Comment/index.js +11 -0
- package/dist/components/Comment/index.js.map +1 -0
- package/dist/components/Descriptions/Descriptions.d.ts +4 -0
- package/dist/components/Descriptions/Descriptions.js +218 -0
- package/dist/components/Descriptions/Descriptions.js.map +1 -0
- package/dist/components/Descriptions/DescriptionsCreateModal.d.ts +3 -0
- package/dist/components/Descriptions/DescriptionsCreateModal.js +30 -0
- package/dist/components/Descriptions/DescriptionsCreateModal.js.map +1 -0
- package/dist/components/Descriptions/descriptionTypes.d.ts +68 -0
- package/dist/components/Descriptions/descriptionTypes.js +9 -0
- package/dist/components/Descriptions/descriptionTypes.js.map +1 -0
- package/dist/components/Descriptions/index.d.ts +5 -0
- package/dist/components/Descriptions/index.js +11 -0
- package/dist/components/Descriptions/index.js.map +1 -0
- package/dist/components/Descriptions/useContentViewMode.d.ts +10 -0
- package/dist/components/Descriptions/useContentViewMode.js +19 -0
- package/dist/components/Descriptions/useContentViewMode.js.map +1 -0
- package/dist/components/Descriptions/useDescriptionColumns.d.ts +8 -0
- package/dist/components/Descriptions/useDescriptionColumns.js +27 -0
- package/dist/components/Descriptions/useDescriptionColumns.js.map +1 -0
- package/dist/components/Inputs/DateRange.d.ts +8 -0
- package/dist/components/Inputs/DateRange.js +61 -0
- package/dist/components/Inputs/DateRange.js.map +1 -0
- package/dist/components/Inputs/MultiStringSelect.d.ts +5 -0
- package/dist/components/Inputs/MultiStringSelect.js +10 -0
- package/dist/components/Inputs/MultiStringSelect.js.map +1 -0
- package/dist/components/Inputs/NumberInputHandlingNewRecord.d.ts +3 -0
- package/dist/components/Inputs/NumberInputHandlingNewRecord.js +11 -0
- package/dist/components/Inputs/NumberInputHandlingNewRecord.js.map +1 -0
- package/dist/components/Inputs/NumberSwitcher.d.ts +8 -0
- package/dist/components/Inputs/NumberSwitcher.js +13 -0
- package/dist/components/Inputs/NumberSwitcher.js.map +1 -0
- package/dist/components/Inputs/Password.d.ts +3 -0
- package/dist/components/Inputs/Password.js +18 -0
- package/dist/components/Inputs/Password.js.map +1 -0
- package/dist/components/Inputs/RelationSelect.d.ts +21 -0
- package/dist/components/Inputs/RelationSelect.js +58 -0
- package/dist/components/Inputs/RelationSelect.js.map +1 -0
- package/dist/components/Inputs/SearchSelect.d.ts +12 -0
- package/dist/components/Inputs/SearchSelect.js +40 -0
- package/dist/components/Inputs/SearchSelect.js.map +1 -0
- package/dist/components/Inputs/filterDropdowns.d.ts +11 -0
- package/dist/components/Inputs/filterDropdowns.js +56 -0
- package/dist/components/Inputs/filterDropdowns.js.map +1 -0
- package/dist/components/Inputs/index.d.ts +9 -0
- package/dist/components/Inputs/index.js +13 -0
- package/dist/components/Inputs/index.js.map +1 -0
- package/dist/components/Inputs/useCheckConnection.d.ts +13 -0
- package/dist/components/Inputs/useCheckConnection.js +53 -0
- package/dist/components/Inputs/useCheckConnection.js.map +1 -0
- package/dist/components/List/List.d.ts +3 -0
- package/dist/components/List/List.js +144 -0
- package/dist/components/List/List.js.map +1 -0
- package/dist/components/List/index.d.ts +3 -0
- package/dist/components/List/index.js +9 -0
- package/dist/components/List/index.js.map +1 -0
- package/dist/components/List/listTypes.d.ts +30 -0
- package/dist/components/List/listTypes.js +3 -0
- package/dist/components/List/listTypes.js.map +1 -0
- package/dist/components/QuestionMarkHint/QuestionMarkHint.d.ts +7 -0
- package/dist/components/QuestionMarkHint/QuestionMarkHint.js +16 -0
- package/dist/components/QuestionMarkHint/QuestionMarkHint.js.map +1 -0
- package/dist/components/QuestionMarkHint/index.d.ts +1 -0
- package/dist/components/QuestionMarkHint/index.js +5 -0
- package/dist/components/QuestionMarkHint/index.js.map +1 -0
- package/dist/components/Table/BulkDeleteButton.d.ts +8 -0
- package/dist/components/Table/BulkDeleteButton.js +27 -0
- package/dist/components/Table/BulkDeleteButton.js.map +1 -0
- package/dist/components/Table/BulkEditButton.d.ts +11 -0
- package/dist/components/Table/BulkEditButton.js +66 -0
- package/dist/components/Table/BulkEditButton.js.map +1 -0
- package/dist/components/Table/CreateEntityModal.d.ts +25 -0
- package/dist/components/Table/CreateEntityModal.js +23 -0
- package/dist/components/Table/CreateEntityModal.js.map +1 -0
- package/dist/components/Table/DeleteButton.d.ts +4 -0
- package/dist/components/Table/DeleteButton.js +28 -0
- package/dist/components/Table/DeleteButton.js.map +1 -0
- package/dist/components/Table/Table.d.ts +6 -0
- package/dist/components/Table/Table.js +154 -0
- package/dist/components/Table/Table.js.map +1 -0
- package/dist/components/Table/getTableDataQueryParams.d.ts +15 -0
- package/dist/components/Table/getTableDataQueryParams.js +37 -0
- package/dist/components/Table/getTableDataQueryParams.js.map +1 -0
- package/dist/components/Table/index.d.ts +7 -0
- package/dist/components/Table/index.js +14 -0
- package/dist/components/Table/index.js.map +1 -0
- package/dist/components/Table/tableTools.d.ts +38 -0
- package/dist/components/Table/tableTools.js +185 -0
- package/dist/components/Table/tableTools.js.map +1 -0
- package/dist/components/Table/tableTypes.d.ts +145 -0
- package/dist/components/Table/tableTypes.js +3 -0
- package/dist/components/Table/tableTypes.js.map +1 -0
- package/dist/components/Table/useBulkEditing.d.ts +30 -0
- package/dist/components/Table/useBulkEditing.js +79 -0
- package/dist/components/Table/useBulkEditing.js.map +1 -0
- package/dist/components/Table/useColumnsSets.d.ts +22 -0
- package/dist/components/Table/useColumnsSets.js +82 -0
- package/dist/components/Table/useColumnsSets.js.map +1 -0
- package/dist/components/Table/useCreation.d.ts +21 -0
- package/dist/components/Table/useCreation.js +75 -0
- package/dist/components/Table/useCreation.js.map +1 -0
- package/dist/components/Table/useEditableTable.d.ts +7 -0
- package/dist/components/Table/useEditableTable.js +63 -0
- package/dist/components/Table/useEditableTable.js.map +1 -0
- package/dist/components/Table/useImportExport.d.ts +35 -0
- package/dist/components/Table/useImportExport.js +207 -0
- package/dist/components/Table/useImportExport.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.js +10 -0
- package/dist/components/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/ApiError.d.ts +16 -0
- package/dist/tools/ApiError.js +13 -0
- package/dist/tools/ApiError.js.map +1 -0
- package/dist/tools/WebsocketClient.d.ts +38 -0
- package/dist/tools/WebsocketClient.js +114 -0
- package/dist/tools/WebsocketClient.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.js +10 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/numberTools.d.ts +1 -0
- package/dist/tools/numberTools.js +10 -0
- package/dist/tools/numberTools.js.map +1 -0
- package/dist/tools/safetyRun.d.ts +1 -0
- package/dist/tools/safetyRun.js +9 -0
- package/dist/tools/safetyRun.js.map +1 -0
- package/dist/tools/useFullscreen.d.ts +6 -0
- package/dist/tools/useFullscreen.js +56 -0
- package/dist/tools/useFullscreen.js.map +1 -0
- package/dist/tools/useTabs.d.ts +2 -0
- package/dist/tools/useTabs.js +18 -0
- package/dist/tools/useTabs.js.map +1 -0
- package/package.json +7 -4
- package/src/components/ChangesModal/ChangesModal.tsx +1 -3
- package/src/components/ChangesModal/ChangesTab.tsx +7 -7
- package/src/components/ChangesModal/ConflictsTab.tsx +3 -3
- package/src/components/Descriptions/Descriptions.tsx +13 -36
- package/src/components/Descriptions/descriptionTypes.ts +0 -1
- package/src/components/Inputs/RelationSelect.tsx +1 -1
- package/src/components/Inputs/filterDropdowns.tsx +8 -5
- package/src/components/Table/BulkEditButton.tsx +4 -4
- package/src/components/Table/Table.tsx +7 -29
- package/src/components/Table/tableTools.ts +1 -1
- package/src/components/Table/tableTypes.ts +1 -5
- package/src/components/Table/useBulkEditing.tsx +1 -1
- package/src/components/Table/useCreation.tsx +1 -1
- package/src/components/Table/useImportExport.tsx +7 -4
- package/src/tools/WebsocketClient.ts +9 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ProColumns } from "@ant-design/pro-components";
|
|
2
|
+
import { TCreatedRecordsColumnsConfig } from "./NewRecordsTab";
|
|
3
|
+
import { TDiffResult } from "../Table/useImportExport";
|
|
4
|
+
export type TServerErrorItem = {
|
|
5
|
+
field: string;
|
|
6
|
+
message: string;
|
|
7
|
+
};
|
|
8
|
+
export type TRelationalFields = Map<string, {
|
|
9
|
+
key: string;
|
|
10
|
+
data: {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
};
|
|
13
|
+
}>;
|
|
14
|
+
export type TImportConflict = {
|
|
15
|
+
id: number;
|
|
16
|
+
version: number;
|
|
17
|
+
fields: Array<{
|
|
18
|
+
field: string;
|
|
19
|
+
current_value: any;
|
|
20
|
+
imported_value: any;
|
|
21
|
+
}>;
|
|
22
|
+
};
|
|
23
|
+
export type TImportResponse = {
|
|
24
|
+
errors?: Array<TServerErrorItem>;
|
|
25
|
+
conflicts?: Array<TImportConflict>;
|
|
26
|
+
created_count: number;
|
|
27
|
+
updated_count: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function ChangesModal<Entity, ImportRequestParams>({ onClose, onCommit, changes, relationalFields, originRecordsColumnsConfig, changedRecordsColumnsConfig, createdRecordsColumnsConfig, }: {
|
|
30
|
+
onCommit: (params: ImportRequestParams) => Promise<TImportResponse>;
|
|
31
|
+
onClose: () => void;
|
|
32
|
+
changes?: TDiffResult<Entity>;
|
|
33
|
+
relationalFields?: TRelationalFields;
|
|
34
|
+
originRecordsColumnsConfig: ProColumns<Entity>[];
|
|
35
|
+
changedRecordsColumnsConfig: ProColumns<Entity>[];
|
|
36
|
+
createdRecordsColumnsConfig: TCreatedRecordsColumnsConfig<Entity>;
|
|
37
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangesModal = ChangesModal;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const antd_1 = require("antd");
|
|
7
|
+
const antd_style_1 = require("antd-style");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const ConflictsTab_1 = tslib_1.__importDefault(require("./ConflictsTab"));
|
|
10
|
+
const ErrorsTab_1 = tslib_1.__importDefault(require("./ErrorsTab"));
|
|
11
|
+
const ResultsTab_1 = tslib_1.__importDefault(require("./ResultsTab"));
|
|
12
|
+
const NewRecordsTab_1 = tslib_1.__importDefault(require("./NewRecordsTab"));
|
|
13
|
+
const ChangesTab_1 = tslib_1.__importDefault(require("./ChangesTab"));
|
|
14
|
+
var ModalTabs;
|
|
15
|
+
(function (ModalTabs) {
|
|
16
|
+
ModalTabs["changes"] = "changes";
|
|
17
|
+
ModalTabs["newRecords"] = "newRecords";
|
|
18
|
+
ModalTabs["errors"] = "errors";
|
|
19
|
+
ModalTabs["results"] = "results";
|
|
20
|
+
ModalTabs["conflicts"] = "conflicts";
|
|
21
|
+
})(ModalTabs || (ModalTabs = {}));
|
|
22
|
+
const useStyles = (0, antd_style_1.createStyles)(() => {
|
|
23
|
+
return {
|
|
24
|
+
changesModal: {
|
|
25
|
+
".ant-modal-content": {
|
|
26
|
+
width: 800,
|
|
27
|
+
},
|
|
28
|
+
".ant-table-content": {
|
|
29
|
+
overflowX: "auto",
|
|
30
|
+
},
|
|
31
|
+
"ul": {
|
|
32
|
+
maxHeight: 500,
|
|
33
|
+
overflowY: "auto",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
function ChangesModal({ onClose, onCommit, changes, relationalFields, originRecordsColumnsConfig, changedRecordsColumnsConfig, createdRecordsColumnsConfig, }) {
|
|
39
|
+
const { styles } = useStyles();
|
|
40
|
+
const [activeTab, setActiveTab] = (0, react_1.useState)(ModalTabs.changes);
|
|
41
|
+
const [isLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
42
|
+
const [importResponse, setImportResponse] = (0, react_1.useState)();
|
|
43
|
+
const [serverErrors, setServerErrors] = (0, react_1.useState)([]);
|
|
44
|
+
const [resolvedData, setResolvedData] = (0, react_1.useState)();
|
|
45
|
+
(0, react_1.useEffect)(() => {
|
|
46
|
+
if (serverErrors.length > 0) {
|
|
47
|
+
setActiveTab(ModalTabs.errors);
|
|
48
|
+
}
|
|
49
|
+
}, [serverErrors.length]);
|
|
50
|
+
if (!changes)
|
|
51
|
+
return null;
|
|
52
|
+
const { created, updated, tableData } = changes;
|
|
53
|
+
const onCancel = () => {
|
|
54
|
+
setActiveTab(ModalTabs.changes);
|
|
55
|
+
setImportResponse(undefined);
|
|
56
|
+
setServerErrors([]);
|
|
57
|
+
setResolvedData([]);
|
|
58
|
+
onClose();
|
|
59
|
+
};
|
|
60
|
+
const handleCommitClick = async () => {
|
|
61
|
+
// TODO: Client validation
|
|
62
|
+
// ...
|
|
63
|
+
setServerErrors([]);
|
|
64
|
+
setIsLoading(true);
|
|
65
|
+
const modifiedSource = (resolvedData && resolvedData.length > 0)
|
|
66
|
+
? resolvedData
|
|
67
|
+
: updated;
|
|
68
|
+
const payload = {
|
|
69
|
+
new: created,
|
|
70
|
+
modified: modifiedSource,
|
|
71
|
+
};
|
|
72
|
+
onCommit(payload).then((res) => {
|
|
73
|
+
setImportResponse(res);
|
|
74
|
+
// Check conflicts
|
|
75
|
+
if (res.conflicts?.length) {
|
|
76
|
+
setActiveTab(ModalTabs.conflicts);
|
|
77
|
+
antd_1.message.error("There are conflicts in the import. Please resolve them.");
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
setActiveTab(ModalTabs.results);
|
|
81
|
+
}).catch((err) => {
|
|
82
|
+
// TODO: Simplify
|
|
83
|
+
const status = err?.status || err?.statusCode || err?.response?.status;
|
|
84
|
+
const payload = err?.body || err?.response?.data || err?.data || err;
|
|
85
|
+
if ((status === 400 || payload?.statusCode === 400) && Array.isArray(payload?.errors)) {
|
|
86
|
+
setServerErrors(payload.errors);
|
|
87
|
+
antd_1.message.error(payload.message || "Validation error");
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
console.error("Commit failed:", err);
|
|
91
|
+
antd_1.message.error("Unexpected error while committing changes");
|
|
92
|
+
}).finally(() => {
|
|
93
|
+
setIsLoading(false);
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
const tabList = [
|
|
97
|
+
{
|
|
98
|
+
key: ModalTabs.changes,
|
|
99
|
+
tab: "Changed values",
|
|
100
|
+
disabled: tableData.length === 0,
|
|
101
|
+
label: tableData.length ? ((0, jsx_runtime_1.jsx)(antd_1.Badge, { size: "small", color: "blue", count: tableData.length, children: "Changed Values" })) : "Changed Values",
|
|
102
|
+
children: (0, jsx_runtime_1.jsx)(ChangesTab_1.default, { changedRecordsColumnsConfig: changedRecordsColumnsConfig, updated: tableData }),
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
key: ModalTabs.newRecords,
|
|
106
|
+
tab: "New records",
|
|
107
|
+
disabled: created.length === 0,
|
|
108
|
+
label: created.length ? ((0, jsx_runtime_1.jsx)(antd_1.Badge, { size: "small", color: "blue", count: created.length, children: "New Records" })) : "New Records",
|
|
109
|
+
children: (0, jsx_runtime_1.jsx)(NewRecordsTab_1.default, { createdRecordsColumnsConfig: createdRecordsColumnsConfig, created: created }),
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
key: ModalTabs.errors,
|
|
113
|
+
tab: "Import errors",
|
|
114
|
+
disabled: serverErrors.length === 0,
|
|
115
|
+
label: serverErrors.length ? ((0, jsx_runtime_1.jsx)(antd_1.Badge, { size: "small", count: serverErrors.length, children: "Errors" })) : "Errors",
|
|
116
|
+
children: (0, jsx_runtime_1.jsx)(ErrorsTab_1.default, { serverErrors: serverErrors }),
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
key: ModalTabs.conflicts,
|
|
120
|
+
tab: "Import conflicts",
|
|
121
|
+
disabled: !importResponse || importResponse.conflicts?.length === 0,
|
|
122
|
+
label: importResponse?.conflicts?.length ? ((0, jsx_runtime_1.jsx)(antd_1.Badge, { size: "small", count: importResponse.conflicts.length, children: "Conflicts" })) : "Conflicts",
|
|
123
|
+
children: (0, jsx_runtime_1.jsx)(ConflictsTab_1.default, { conflicts: importResponse?.conflicts, setResolvedData: setResolvedData, relationalFields: relationalFields, originColumns: originRecordsColumnsConfig }),
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
key: ModalTabs.results,
|
|
127
|
+
tab: "Import results",
|
|
128
|
+
disabled: !importResponse || !!importResponse.conflicts?.length,
|
|
129
|
+
label: "Results",
|
|
130
|
+
children: (0, jsx_runtime_1.jsx)(ResultsTab_1.default, { importStatistic: {
|
|
131
|
+
created: importResponse?.created_count || 0,
|
|
132
|
+
updated: importResponse?.updated_count || 0,
|
|
133
|
+
} }),
|
|
134
|
+
},
|
|
135
|
+
];
|
|
136
|
+
return ((0, jsx_runtime_1.jsx)(antd_1.Modal, { title: "Preview changes", open: true, onCancel: onCancel, footer: [
|
|
137
|
+
(0, jsx_runtime_1.jsx)(antd_1.Button, { onClick: onCancel, children: "Close" }, "close"),
|
|
138
|
+
(0, jsx_runtime_1.jsx)(antd_1.Button, { loading: isLoading, type: "primary", onClick: handleCommitClick, disabled: importResponse?.conflicts?.length === 0
|
|
139
|
+
|| serverErrors.length > 0
|
|
140
|
+
|| updated.length === 0 && created.length === 0, children: "Commit" }, "approve"),
|
|
141
|
+
], className: styles.changesModal, children: (0, jsx_runtime_1.jsx)(antd_1.Tabs, { activeKey: activeTab, onChange: setActiveTab, defaultActiveKey: "1", items: tabList }) }));
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=ChangesModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangesModal.js","sourceRoot":"","sources":["../../../src/components/ChangesModal/ChangesModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ProColumns } from "@ant-design/pro-components";
|
|
2
|
+
import { TDiffResult } from "../Table/useImportExport";
|
|
3
|
+
declare function ChangesTab<Entity>({ updated, changedRecordsColumnsConfig }: {
|
|
4
|
+
updated: TDiffResult<Entity>['tableData'];
|
|
5
|
+
changedRecordsColumnsConfig: ProColumns<Entity>[];
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
|
|
7
|
+
export default ChangesTab;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const antd_1 = require("antd");
|
|
6
|
+
const pro_table_1 = tslib_1.__importDefault(require("@ant-design/pro-table"));
|
|
7
|
+
function ChangesTab({ updated, changedRecordsColumnsConfig }) {
|
|
8
|
+
if (!updated.length) {
|
|
9
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "No changes found." });
|
|
10
|
+
}
|
|
11
|
+
const updateColumns = [
|
|
12
|
+
...changedRecordsColumnsConfig,
|
|
13
|
+
{
|
|
14
|
+
title: "Changes",
|
|
15
|
+
dataIndex: "diff",
|
|
16
|
+
key: "diff",
|
|
17
|
+
render: (_dom, entity) => ((0, jsx_runtime_1.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: entity.diff.map((change, index) => {
|
|
18
|
+
const c = change;
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: { display: "flex", alignItems: "center" }, children: [(0, jsx_runtime_1.jsx)(antd_1.Tag, { color: "blue", children: c.path?.join(".") }), c.lhs ? `${c.lhs.toString()} →` : "- →", " ", c.rhs ? c.rhs : c.rhs === false ? 'false' : '-'] }, index));
|
|
20
|
+
}) })),
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
return [
|
|
24
|
+
(0, jsx_runtime_1.jsx)("h3", { children: "Changed Values (Local Comparing)" }, 'changes-header'),
|
|
25
|
+
(0, jsx_runtime_1.jsx)(pro_table_1.default, { dataSource: updated, columns: updateColumns, rowKey: 'id', search: false, toolBarRender: false }, 'changes-data')
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
exports.default = ChangesTab;
|
|
29
|
+
//# sourceMappingURL=ChangesTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangesTab.js","sourceRoot":"","sources":["../../../src/components/ChangesModal/ChangesTab.tsx"],"names":[],"mappings":";;;;AAAA,+BAA2B;AAG3B,8EAA6C;AAE7C,SAAS,UAAU,CAAU,EAAE,OAAO,EAAE,2BAA2B,EAGlE;IACC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,iFAEJ,CAAA;IACL,CAAC;IAED,MAAM,aAAa,GAAqC;QACtD,GAAI,2BAA2E;QAC/E;YACE,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,MAAM;YACjB,GAAG,EAAE,MAAM;YACX,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CACxB,gCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,YACjE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBACjC,MAAM,CAAC,GAAG,MAAgD,CAAC;oBAC3D,OAAO,CACL,iCAAiB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aAC/D,uBAAC,UAAG,IAAC,KAAK,EAAC,MAAM,YAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAO,EAC1C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,OAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAFlF,KAAK,CAGT,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,CACP;SACF;KACF,CAAC;IAEF,OAAO;QACL,+EAAQ,gBAAgB,CAAsC;QAC9D,uBAAC,mBAAQ,IAEP,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,aAAa,EACtB,MAAM,EAAC,IAAI,EACX,MAAM,EAAE,KAAK,EACb,aAAa,EAAE,KAAK,IALhB,cAAc,CAMlB;KACH,CAAA;AACH,CAAC;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction } from "react";
|
|
2
|
+
import { TImportResponse, TRelationalFields } from "./ChangesModal";
|
|
3
|
+
import { ProColumns } from "@ant-design/pro-components";
|
|
4
|
+
declare function ConflictsTab<Entity>({ conflicts, relationalFields, setResolvedData, originColumns, }: {
|
|
5
|
+
conflicts?: TImportResponse['conflicts'];
|
|
6
|
+
relationalFields?: TRelationalFields;
|
|
7
|
+
setResolvedData?: Dispatch<SetStateAction<Entity[]>>;
|
|
8
|
+
originColumns: ProColumns<Entity>[];
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
|
|
10
|
+
export default ConflictsTab;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const index_1 = require("../../index");
|
|
5
|
+
const antd_1 = require("antd");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const lodash_1 = require("lodash");
|
|
8
|
+
const antd_style_1 = require("antd-style");
|
|
9
|
+
const icons_1 = require("@ant-design/icons");
|
|
10
|
+
const useStyles = (0, antd_style_1.createStyles)(() => {
|
|
11
|
+
return {
|
|
12
|
+
conflictsStyle: {
|
|
13
|
+
".ant-descriptions-row > *:nth-child(1), .ant-descriptions-row > *:nth-child(2)": {},
|
|
14
|
+
".ant-descriptions-row > *:nth-child(3)": {},
|
|
15
|
+
".ant-descriptions-row > *:nth-child(4)": {
|
|
16
|
+
backgroundColor: "#f0fff0 !important",
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
const getCurrentKey = (field) => {
|
|
22
|
+
return `${field}-current`;
|
|
23
|
+
};
|
|
24
|
+
const getNormalizedKey = (field) => {
|
|
25
|
+
return field.replace('_id', '');
|
|
26
|
+
};
|
|
27
|
+
function ConflictsTab({ conflicts, relationalFields, setResolvedData, originColumns, }) {
|
|
28
|
+
if (!conflicts || conflicts.length === 0) {
|
|
29
|
+
return (0, jsx_runtime_1.jsx)("p", { children: "No conflicts found." });
|
|
30
|
+
}
|
|
31
|
+
const getRelationalData = (key, value) => {
|
|
32
|
+
if (relationalFields?.has(key)) {
|
|
33
|
+
const relation = relationalFields.get(key);
|
|
34
|
+
return relation?.data[value] ?? null;
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
};
|
|
38
|
+
/*Initial value based on received conflicts
|
|
39
|
+
{
|
|
40
|
+
field: 'importing field value',
|
|
41
|
+
field-current: 'current field name from server',
|
|
42
|
+
...
|
|
43
|
+
}*/
|
|
44
|
+
const [resolvedData, setLocalResolvedData] = (0, react_1.useState)(conflicts.map(conflict => (conflict.fields.reduce((acc, currentValue) => {
|
|
45
|
+
const key = getNormalizedKey(currentValue.field);
|
|
46
|
+
acc[key] = getRelationalData(key, currentValue.imported_value);
|
|
47
|
+
acc[getCurrentKey(key)] = getRelationalData(key, currentValue.current_value);
|
|
48
|
+
return acc;
|
|
49
|
+
}, {}))));
|
|
50
|
+
(0, react_1.useEffect)(() => {
|
|
51
|
+
if (!setResolvedData)
|
|
52
|
+
return;
|
|
53
|
+
const payload = resolvedData.map((obj, i) => {
|
|
54
|
+
const data = { ...obj };
|
|
55
|
+
// Remove "current" postfix key from the resolved data
|
|
56
|
+
Object.keys(obj).forEach(key => {
|
|
57
|
+
if (key.endsWith('-current')) {
|
|
58
|
+
delete data[key];
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
id: conflicts[i].id,
|
|
63
|
+
...data,
|
|
64
|
+
version: conflicts[i].version,
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
setResolvedData(payload);
|
|
68
|
+
}, [resolvedData, conflicts, setResolvedData]);
|
|
69
|
+
const { styles } = useStyles();
|
|
70
|
+
const useCurrentValue = (conflict, field) => {
|
|
71
|
+
const key = getNormalizedKey(field);
|
|
72
|
+
// Update the resolved data for this conflict
|
|
73
|
+
setLocalResolvedData(prev => {
|
|
74
|
+
const newData = [...prev];
|
|
75
|
+
const index = conflicts.indexOf(conflict);
|
|
76
|
+
newData[index] = {
|
|
77
|
+
...newData[index],
|
|
78
|
+
[key]: newData[index][getCurrentKey(key)],
|
|
79
|
+
};
|
|
80
|
+
return newData;
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
const keyedOriginColumns = (0, lodash_1.keyBy)(originColumns, "dataIndex");
|
|
84
|
+
return conflicts.map((conflict, idx) => {
|
|
85
|
+
const conflictColumns = [];
|
|
86
|
+
conflict.fields.forEach(field => {
|
|
87
|
+
const key = getNormalizedKey(field.field);
|
|
88
|
+
const originColumn = keyedOriginColumns[key];
|
|
89
|
+
conflictColumns.push({
|
|
90
|
+
...originColumn,
|
|
91
|
+
dataIndex: getCurrentKey(key),
|
|
92
|
+
editable: false,
|
|
93
|
+
// Should override render to keep -current value
|
|
94
|
+
render: (node) => node
|
|
95
|
+
});
|
|
96
|
+
conflictColumns.push({
|
|
97
|
+
...originColumn,
|
|
98
|
+
title: ((0, jsx_runtime_1.jsx)("div", { style: { textAlign: 'center' }, children: (0, jsx_runtime_1.jsx)(antd_1.Tooltip, { title: "Use value from server", children: (0, jsx_runtime_1.jsx)(antd_1.Button, { size: "small", type: "link", icon: (0, jsx_runtime_1.jsx)(icons_1.SwapOutlined, {}), onClick: () => useCurrentValue(conflict, field.field) }) }) })),
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 15, width: "100%" }, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)(antd_1.Tag, { color: "error", children: ["ID ", conflict.id] }), (0, jsx_runtime_1.jsxs)(antd_1.Tag, { color: "blue", children: ["Server version: v", conflict.version] })] }), (0, jsx_runtime_1.jsx)("table", { children: (0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsxs)("tr", { children: [(0, jsx_runtime_1.jsx)("th", { style: { width: '50%' }, children: "Current (From Server)" }), (0, jsx_runtime_1.jsx)("th", { style: { width: '50%' }, children: "New (Importing)" })] }) }) }), (0, jsx_runtime_1.jsx)(index_1.Descriptions, { size: "small", bordered: true, entity: resolvedData[idx], columns: conflictColumns, column: 2, canEdit: true, mainTitle: null, className: styles.conflictsStyle })] }, idx));
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
exports.default = ConflictsTab;
|
|
105
|
+
//# sourceMappingURL=ConflictsTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConflictsTab.js","sourceRoot":"","sources":["../../../src/components/ChangesModal/ConflictsTab.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const antd_1 = require("antd");
|
|
5
|
+
const formatField = (field) => {
|
|
6
|
+
const parts = field.split(".");
|
|
7
|
+
if (parts[0] === "new" && parts.length >= 3) {
|
|
8
|
+
const idx = Number(parts[1]);
|
|
9
|
+
return `New #${isNaN(idx) ? parts[1] : idx + 1}: ${parts.slice(2).join(".")}`;
|
|
10
|
+
}
|
|
11
|
+
if (parts[0] === "updated" && parts.length >= 3) {
|
|
12
|
+
const id = parts[1];
|
|
13
|
+
return `Updated ${id}: ${parts.slice(2).join(".")}`;
|
|
14
|
+
}
|
|
15
|
+
return field;
|
|
16
|
+
};
|
|
17
|
+
const ErrorsTab = ({ serverErrors, }) => {
|
|
18
|
+
if (serverErrors.length === 0) {
|
|
19
|
+
return (0, jsx_runtime_1.jsx)("div", { children: "No errors" });
|
|
20
|
+
}
|
|
21
|
+
return ([
|
|
22
|
+
(0, jsx_runtime_1.jsx)("p", { children: "Please fix the following errors and repeat import" }, 'errors-header'),
|
|
23
|
+
(0, jsx_runtime_1.jsx)(antd_1.List, { size: "small", dataSource: serverErrors, renderItem: (err, idx) => ((0, jsx_runtime_1.jsx)(antd_1.List.Item, { children: (0, jsx_runtime_1.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 4, width: "100%" }, children: [err.field && (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(antd_1.Tag, { color: "error", children: formatField(err.field) }) }), (0, jsx_runtime_1.jsx)("div", { children: err.message }), err.field && (0, jsx_runtime_1.jsxs)("div", { style: { color: "#999" }, children: ["(", err.field, ")"] })] }) }, idx)) }, 'errors-list'),
|
|
24
|
+
]);
|
|
25
|
+
};
|
|
26
|
+
exports.default = ErrorsTab;
|
|
27
|
+
//# sourceMappingURL=ErrorsTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorsTab.js","sourceRoot":"","sources":["../../../src/components/ChangesModal/ErrorsTab.tsx"],"names":[],"mappings":";;;AAAA,+BAAiC;AAGjC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,WAAW,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EACE,YAAY,GAGhC,EAAE,EAAE;IACH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,wDAAoB,CAAC;IAC9B,CAAC;IAED,OAAO,CACL;QACE,+FAAO,eAAe,CAAsD;QAC5E,uBAAC,WAAI,IAEH,IAAI,EAAC,OAAO,EACZ,UAAU,EAAE,YAAY,EACxB,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CACxB,uBAAC,WAAI,CAAC,IAAI,cACR,iCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,aAC5E,GAAG,CAAC,KAAK,IAAI,0CACZ,uBAAC,UAAG,IAAC,KAAK,EAAC,OAAO,YAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAO,GAC7C,EACN,0CAAM,GAAG,CAAC,OAAO,GAAO,EACvB,GAAG,CAAC,KAAK,IAAI,iCAAK,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAI,GAAG,CAAC,KAAK,SAAQ,IAC5D,IAPQ,GAAG,CAQP,CACb,IAbG,aAAa,CAcjB;KACH,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ProColumns } from "@ant-design/pro-components";
|
|
2
|
+
import { TDiffResult } from "../Table/useImportExport";
|
|
3
|
+
import { TColumnsSet } from "../Table/useColumnsSets";
|
|
4
|
+
export type TCreatedRecordsColumnsConfig<Entity> = {
|
|
5
|
+
columnsSets?: TColumnsSet<Entity>[];
|
|
6
|
+
columns: ProColumns<Entity>[];
|
|
7
|
+
};
|
|
8
|
+
declare function NewRecordsTab<Entity>({ created, createdRecordsColumnsConfig, }: {
|
|
9
|
+
created: TDiffResult<Entity>['created'];
|
|
10
|
+
createdRecordsColumnsConfig: TCreatedRecordsColumnsConfig<Entity>;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
|
|
12
|
+
export default NewRecordsTab;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const pro_table_1 = tslib_1.__importDefault(require("@ant-design/pro-table"));
|
|
6
|
+
const useColumnsSets_1 = tslib_1.__importDefault(require("../Table/useColumnsSets"));
|
|
7
|
+
function NewRecordsTab({ created, createdRecordsColumnsConfig, }) {
|
|
8
|
+
const { columns, columnsSets } = createdRecordsColumnsConfig;
|
|
9
|
+
const { columnsSetSelect, columnsState, } = (0, useColumnsSets_1.default)({
|
|
10
|
+
columns,
|
|
11
|
+
columnsSets,
|
|
12
|
+
});
|
|
13
|
+
if (!created.length) {
|
|
14
|
+
return (0, jsx_runtime_1.jsx)("p", { children: "No new records found." });
|
|
15
|
+
}
|
|
16
|
+
return [
|
|
17
|
+
(0, jsx_runtime_1.jsx)("h3", { children: "New Records (Local Comparing)" }, 'new-records-header'),
|
|
18
|
+
(0, jsx_runtime_1.jsx)(pro_table_1.default, { dataSource: created, columns: columns, columnsState: columnsState, toolBarRender: (...args) => [
|
|
19
|
+
columnsSetSelect?.() || null,
|
|
20
|
+
], rowKey: (record, index) => index, search: false }, 'new-records-data'),
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
exports.default = NewRecordsTab;
|
|
24
|
+
//# sourceMappingURL=NewRecordsTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NewRecordsTab.js","sourceRoot":"","sources":["../../../src/components/ChangesModal/NewRecordsTab.tsx"],"names":[],"mappings":";;;;AAEA,8EAA6C;AAC7C,qFAAsE;AAOtE,SAAS,aAAa,CAAS,EACE,OAAO,EACP,2BAA2B,GAI3D;IACC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,2BAA2B,CAAC;IAE7D,MAAM,EACJ,gBAAgB,EAChB,YAAY,GACb,GAAG,IAAA,wBAAc,EAAS;QACzB,OAAO;QACP,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,kEAA4B,CAAA;IACrC,CAAC;IAED,OAAO;QACL,4EAAQ,oBAAoB,CAAmC;QAC/D,uBAAC,mBAAQ,IAEP,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;gBAC1B,gBAAgB,EAAE,EAAE,IAAI,IAAI;aAC7B,EACD,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAChC,MAAM,EAAE,KAAK,IART,kBAAkB,CAStB;KACH,CAAC;AACJ,CAAC;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const icons_1 = require("@ant-design/icons");
|
|
5
|
+
const ResultsTab = ({ importStatistic }) => {
|
|
6
|
+
return [
|
|
7
|
+
(0, jsx_runtime_1.jsx)("h3", { children: "Import Results" }, 'results-header'),
|
|
8
|
+
(0, jsx_runtime_1.jsxs)("div", { style: { display: "flex", gap: "16px", alignItems: "center" }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: "flex", alignItems: "center" }, children: [(0, jsx_runtime_1.jsx)(icons_1.CheckCircleOutlined, { style: { color: "#52c41a", marginRight: "8px" } }), (0, jsx_runtime_1.jsxs)("span", { children: ["Created: ", importStatistic.created] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: "flex", alignItems: "center" }, children: [(0, jsx_runtime_1.jsx)(icons_1.SyncOutlined, { style: { color: "#1890ff", marginRight: "8px" } }), (0, jsx_runtime_1.jsxs)("span", { children: ["Updated: ", importStatistic.updated] })] })] }, 'results-data')
|
|
9
|
+
];
|
|
10
|
+
};
|
|
11
|
+
exports.default = ResultsTab;
|
|
12
|
+
//# sourceMappingURL=ResultsTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResultsTab.js","sourceRoot":"","sources":["../../../src/components/ChangesModal/ResultsTab.tsx"],"names":[],"mappings":";;;AAAA,6CAAsE;AAOtE,MAAM,UAAU,GAAG,CAAC,EAClB,eAAe,EAGhB,EAAE,EAAE;IACH,OAAO;QACL,6DAAQ,gBAAgB,CAAoB;QAC5C,iCAAwB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aACnF,iCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aACnD,uBAAC,2BAAmB,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,GAAI,EACxE,0DAAgB,eAAe,CAAC,OAAO,IAAQ,IAC3C,EACN,iCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aACnD,uBAAC,oBAAY,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,GAAI,EACjE,0DAAgB,eAAe,CAAC,OAAO,IAAQ,IAC3C,KARC,cAAc,CASjB;KACP,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ChangesModal';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ChangesModal/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
6
|
+
const antd_style_1 = require("antd-style");
|
|
7
|
+
const CommentAvatar_1 = tslib_1.__importDefault(require("./CommentAvatar"));
|
|
8
|
+
const useStyles = (0, antd_style_1.createStyles)(() => {
|
|
9
|
+
return {
|
|
10
|
+
/**
|
|
11
|
+
* Styles for the ant-descriptions component to show edit icon on hover
|
|
12
|
+
*/
|
|
13
|
+
commentStyles: {
|
|
14
|
+
display: 'flex',
|
|
15
|
+
alignItems: 'flex-start',
|
|
16
|
+
gap: '10px'
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
const Comment = ({ content, author, date, ...rest }) => {
|
|
21
|
+
const { styles } = useStyles();
|
|
22
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: styles.commentStyles, ...rest, children: [(0, jsx_runtime_1.jsx)(CommentAvatar_1.default, { author: author }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: author.name }), (0, jsx_runtime_1.jsx)("p", { children: content }), (0, jsx_runtime_1.jsx)("small", { style: { color: '#888' }, children: (0, dayjs_1.default)(date).format('DD.MM.YYYY HH:mm') })] })] }));
|
|
23
|
+
};
|
|
24
|
+
exports.default = Comment;
|
|
25
|
+
//# sourceMappingURL=Comment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Comment.js","sourceRoot":"","sources":["../../../src/components/Comment/Comment.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,2CAA0C;AAC1C,4EAA4C;AAc5C,MAAM,SAAS,GAAG,IAAA,yBAAY,EAAC,GAAG,EAAE;IAClC,OAAO;QACL;;WAEG;QACH,aAAa,EAAE;YACb,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,YAAY;YACxB,GAAG,EAAE,MAAM;SACZ;KACF,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,OAAO,GAA2B,CAAC,EACvC,OAAO,EACP,MAAM,EACN,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAE/B,OAAO,CACL,iCACE,SAAS,EAAE,MAAM,CAAC,aAAa,KAC3B,IAAI,aAER,uBAAC,uBAAa,IAAC,MAAM,EAAE,MAAM,GAAI,EACjC,4CACE,6CAAS,MAAM,CAAC,IAAI,GAAU,EAC9B,wCAAI,OAAO,GAAK,EAChB,kCAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAG,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAS,IAC7E,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const antd_1 = require("antd");
|
|
5
|
+
const ColorList = [
|
|
6
|
+
'#f56a00',
|
|
7
|
+
'#7265e6',
|
|
8
|
+
'#ffbf00',
|
|
9
|
+
'#00a2ae',
|
|
10
|
+
'#b45d7e',
|
|
11
|
+
'#ace665',
|
|
12
|
+
'#6e3aaf',
|
|
13
|
+
'#54ae00'
|
|
14
|
+
];
|
|
15
|
+
const getColorByAuthor = (authorId) => {
|
|
16
|
+
return ColorList[parseInt(authorId, 36) % ColorList.length];
|
|
17
|
+
};
|
|
18
|
+
const CommentAvatar = ({ author, }) => {
|
|
19
|
+
return ((0, jsx_runtime_1.jsx)(antd_1.Avatar, { style: { backgroundColor: getColorByAuthor(author.id), verticalAlign: 'middle', flexShrink: 0 }, size: "large", children: author.name.slice(0, 1) }));
|
|
20
|
+
};
|
|
21
|
+
exports.default = CommentAvatar;
|
|
22
|
+
//# sourceMappingURL=CommentAvatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentAvatar.js","sourceRoot":"","sources":["../../../src/components/Comment/CommentAvatar.tsx"],"names":[],"mappings":";;;AAAA,+BAA8B;AAQ9B,MAAM,SAAS,GAAG;IAChB,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC5C,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,aAAa,GAA2B,CAAC,EAC7C,MAAM,GACP,EAAE,EAAE;IACH,OAAO,CACL,uBAAC,aAAM,IAAC,KAAK,EAAE,EAAE,eAAe,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,IAAI,EAAC,OAAO,YAClH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GACjB,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const antd_1 = require("antd");
|
|
6
|
+
const CommentForm = ({ onSubmit }) => {
|
|
7
|
+
const [content, setContent] = (0, react_1.useState)('');
|
|
8
|
+
const handleSubmit = () => {
|
|
9
|
+
if (content.trim()) {
|
|
10
|
+
onSubmit(content);
|
|
11
|
+
setContent('');
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
return ((0, jsx_runtime_1.jsxs)(antd_1.Form, { layout: "vertical", onFinish: handleSubmit, children: [(0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(antd_1.Form.Item, { label: "Leave a comment:", children: (0, jsx_runtime_1.jsx)(antd_1.Input.TextArea, { value: content, onChange: (e) => setContent(e.target.value), autoSize: { minRows: 3, maxRows: 6 } }) }) }), (0, jsx_runtime_1.jsx)(antd_1.Button, { type: "primary", htmlType: "submit", style: { width: 100 }, children: "Send" })] }));
|
|
15
|
+
};
|
|
16
|
+
exports.default = CommentForm;
|
|
17
|
+
//# sourceMappingURL=CommentForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentForm.js","sourceRoot":"","sources":["../../../src/components/Comment/CommentForm.tsx"],"names":[],"mappings":";;;AAAA,iCAAwC;AACxC,+BAA2C;AAM3C,MAAM,WAAW,GAA+B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,UAAU,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,wBAAC,WAAI,IAAC,MAAM,EAAC,UAAU,EAAC,QAAQ,EAAE,YAAY,aAC5C,0CACE,uBAAC,WAAI,CAAC,IAAI,IAAC,KAAK,EAAC,kBAAkB,YACjC,uBAAC,YAAK,CAAC,QAAQ,IACb,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3C,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GACpC,GACQ,GACR,EACN,uBAAC,aAAM,IAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,qBAErD,IACJ,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface CommentFormProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
setIsOpen: (open: boolean) => void;
|
|
5
|
+
onSubmit: (content: string) => void;
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
declare const CommentFormModal: React.FC<CommentFormProps>;
|
|
10
|
+
export default CommentFormModal;
|