fuse-importer 0.27.1 → 0.30.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/lib/esm/Importer/ImporterWithContext.d.ts +2 -0
- package/lib/esm/Importer/ImporterWithContext.js +51 -13
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +2 -2
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +4 -3
- package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +14 -9
- package/lib/esm/Importer/Matcher/index.js +0 -11
- package/lib/esm/Importer/PreviewFirstTime.js +1 -1
- package/lib/esm/Importer/Review/AppResponseModal.js +2 -2
- package/lib/esm/Importer/Review/ReviewContextProvider.d.ts +8 -6
- package/lib/esm/Importer/Review/ReviewContextProvider.js +72 -195
- package/lib/esm/Importer/Review/ReviewWithContext.js +2 -2
- package/lib/esm/Importer/Stepper/StepperSubmitModal.d.ts +2 -1
- package/lib/esm/Importer/Stepper/StepperSubmitModal.js +4 -2
- package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.js +1 -1
- package/lib/esm/Importer/Stepper/index.js +36 -13
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.d.ts +2 -1
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +15 -79
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +2 -2
- package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +11 -3
- package/lib/esm/Importer/Uploader/HeadersPreview.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/DataSetContextProvider/index.d.ts +16 -0
- package/lib/esm/Importer/common/Spreadsheet/DataSetContextProvider/index.js +63 -0
- package/lib/esm/Importer/common/Spreadsheet/DuplicateDataContextProvider/index.d.ts +19 -0
- package/lib/esm/Importer/common/Spreadsheet/DuplicateDataContextProvider/index.js +155 -0
- package/lib/esm/Importer/common/Spreadsheet/FilteredDataContextProvider/index.d.ts +29 -0
- package/lib/esm/Importer/common/Spreadsheet/FilteredDataContextProvider/index.js +150 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.d.ts +6 -4
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.js +38 -45
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/hashCalculators.d.ts +7 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/hashCalculators.js +152 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.d.ts +7 -30
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +10 -141
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useBatchProcessing.d.ts +5 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useBatchProcessing.js +81 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.d.ts +5 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.js +119 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.d.ts +1 -1
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.d.ts +1 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.js +8 -0
- package/lib/esm/Importer/common/Spreadsheet/ValidationContextProvider/index.d.ts +31 -0
- package/lib/esm/Importer/common/Spreadsheet/ValidationContextProvider/index.js +324 -0
- package/lib/esm/Importer/common/Spreadsheet/common/index.js +18 -9
- package/lib/esm/Importer/common/Spreadsheet/common/types.d.ts +2 -3
- package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.d.ts +0 -2
- package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.js +26 -11
- package/lib/esm/Importer/common/Spreadsheet/components/FindAndReplace/index.d.ts +6 -0
- package/lib/esm/Importer/common/Spreadsheet/components/FindAndReplace/index.js +88 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +25 -17
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +48 -47
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowNumbers.js +3 -3
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.d.ts +1 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +7 -3
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.d.ts +3 -1
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +45 -11
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.d.ts +12 -5
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +81 -26
- package/lib/esm/Importer/common/Spreadsheet/components/fields/utils.d.ts +11 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/utils.js +29 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.js +1 -2
- package/lib/esm/Importer/common/Spreadsheet/index.d.ts +0 -1
- package/lib/esm/Importer/common/Spreadsheet/index.js +1 -84
- package/lib/esm/Importer/common/Spreadsheet/styles.d.ts +1 -2
- package/lib/esm/Importer/common/Spreadsheet/styles.js +13 -1
- package/lib/esm/Importer/common/Spreadsheet/transformation/index.d.ts +2 -2
- package/lib/esm/Importer/common/Spreadsheet/transformation/index.js +35 -13
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators/dateTimeAutoformatUtils.d.ts +5 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators/dateTimeAutoformatUtils.js +231 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators/index.d.ts +18 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators/index.js +179 -0
- package/lib/esm/Importer/common/Spreadsheet/useFieldSorting.d.ts +5 -0
- package/lib/esm/Importer/common/Spreadsheet/useFieldSorting.js +81 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/index.d.ts +5 -3
- package/lib/esm/Importer/common/Spreadsheet/validation/index.js +13 -17
- package/lib/esm/Importer/common/Spreadsheet/validation/validators.d.ts +3 -2
- package/lib/esm/Importer/common/Spreadsheet/validation/validators.js +23 -7
- package/lib/esm/Importer/common/theme.d.ts +1 -0
- package/lib/esm/Importer/contexts/ImporterContextProvider.d.ts +13 -4
- package/lib/esm/Importer/contexts/ImporterContextProvider.js +150 -21
- package/lib/esm/Importer/data/index.d.ts +7 -3
- package/lib/esm/Importer/data/index.js +49 -20
- package/lib/esm/Importer/hooks/useExportDataToFile.d.ts +5 -0
- package/lib/esm/Importer/hooks/useExportDataToFile.js +54 -0
- package/lib/esm/Importer/hooks/useSubmitToServer.d.ts +7 -0
- package/lib/esm/Importer/hooks/useSubmitToServer.js +214 -0
- package/lib/esm/Importer/index.d.ts +4 -3
- package/lib/esm/Importer/index.js +2 -2
- package/lib/esm/common/CircleSpinner.d.ts +1 -0
- package/lib/esm/common/CircleSpinner.js +13 -0
- package/lib/esm/common/ConfirmationModal.js +1 -1
- package/lib/esm/common/EventManagerContextProvider/index.d.ts +22 -0
- package/lib/esm/common/EventManagerContextProvider/index.js +38 -0
- package/lib/esm/common/FileUploadDropzone/ImporterDropzone.d.ts +16 -0
- package/lib/esm/common/FileUploadDropzone/ImporterDropzone.js +143 -0
- package/lib/esm/common/FileUploadDropzone/index.d.ts +1 -0
- package/lib/esm/common/FileUploadDropzone/index.js +1 -0
- package/lib/esm/common/Modal.js +2 -2
- package/lib/esm/common/Table/TableActions/CustomActions/CustomActions.d.ts +1 -0
- package/lib/esm/common/Table/TableActions/CustomActions/CustomActions.js +150 -0
- package/lib/esm/common/Table/TableActions/CustomActions/index.d.ts +1 -0
- package/lib/esm/common/Table/TableActions/CustomActions/index.js +1 -0
- package/lib/esm/common/Table/TableActions/DeleteSelectedRows.js +25 -8
- package/lib/esm/common/Table/TableActions/ExportData.js +5 -3
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +41 -10
- package/lib/esm/common/Table/TableActions/RowFilters.js +63 -11
- package/lib/esm/common/Table/TableActions/SearchRows.js +28 -17
- package/lib/esm/common/Table/TableActions/TableActions.js +15 -4
- package/lib/esm/common/Table/TableActions/TableActions.styles.d.ts +1 -0
- package/lib/esm/common/Table/TableActions/TableActions.styles.js +4 -3
- package/lib/esm/common/Table/TableActions/TransformedRecordsCount.d.ts +6 -0
- package/lib/esm/common/Table/TableActions/TransformedRecordsCount.js +71 -0
- package/lib/esm/common/Table/TableActions/ValidationProgress.d.ts +2 -0
- package/lib/esm/common/Table/TableActions/ValidationProgress.js +22 -0
- package/lib/esm/common/Table/TableActions/icons.d.ts +3 -0
- package/lib/esm/common/Table/TableActions/icons.js +3 -0
- package/lib/esm/common/Table/TableActions/useFindAndReplace.d.ts +5 -0
- package/lib/esm/common/Table/TableActions/useFindAndReplace.js +45 -0
- package/lib/esm/common/Table/TableView/TableRows/TableRow.d.ts +1 -1
- package/lib/esm/common/Table/TableView/TableRows/TableRow.js +3 -3
- package/lib/esm/common/Table/TableView/TableRows/index.js +21 -6
- package/lib/esm/common/Table/TableView/index.d.ts +1 -1
- package/lib/esm/common/Table/TableView/index.js +7 -16
- package/lib/esm/common/Table/TableView/types.d.ts +9 -9
- package/lib/esm/common/Table/index.d.ts +2 -1
- package/lib/esm/common/Table/index.js +2 -2
- package/lib/esm/common/Toast.d.ts +42 -3
- package/lib/esm/common/Toast.js +56 -18
- package/lib/esm/common/TooltipProvider.d.ts +2 -0
- package/lib/esm/common/TooltipProvider.js +12 -9
- package/lib/esm/common/buttons.d.ts +5 -1
- package/lib/esm/common/buttons.js +19 -13
- package/lib/esm/common/columnsTransformations.d.ts +1 -0
- package/lib/esm/common/columnsTransformations.js +10 -16
- package/lib/esm/common/columnsValidations.d.ts +0 -26
- package/lib/esm/common/columnsValidations.js +1 -31
- package/lib/esm/common/datePatterns.d.ts +26 -0
- package/lib/esm/common/datePatterns.js +327 -0
- package/lib/esm/common/icons/index.d.ts +4 -0
- package/lib/esm/common/icons/index.js +6 -2
- package/lib/esm/common/index.d.ts +2 -0
- package/lib/esm/common/index.js +2 -0
- package/lib/esm/common/inputs/Autocomplete.js +2 -2
- package/lib/esm/common/inputs/Checkbox.d.ts +2 -1
- package/lib/esm/common/inputs/Checkbox.js +9 -7
- package/lib/esm/common/inputs/SelectMenu.d.ts +2 -1
- package/lib/esm/common/inputs/SelectMenu.js +14 -3
- package/lib/esm/common/inputs/TextInput.js +1 -1
- package/lib/esm/index.d.ts +3 -1
- package/lib/esm/index.js +9 -2
- package/lib/esm/locales/de.d.ts +13 -1
- package/lib/esm/locales/de.js +13 -1
- package/lib/esm/locales/en.d.ts +26 -1
- package/lib/esm/locales/en.js +29 -4
- package/lib/esm/locales/es.d.ts +13 -1
- package/lib/esm/locales/es.js +13 -1
- package/lib/esm/locales/fr.d.ts +13 -1
- package/lib/esm/locales/fr.js +13 -1
- package/lib/esm/styled/theme/colorPalette.d.ts +2 -0
- package/lib/esm/styled/theme/colorPalette.js +1 -0
- package/lib/esm/styled/theme/index.d.ts +1 -0
- package/lib/esm/styled/theme/textCss.js +1 -1
- package/lib/esm/types.d.ts +48 -5
- package/lib/esm/types.js +0 -1
- package/lib/esm/utils/index.d.ts +1 -0
- package/lib/esm/utils/index.js +4 -0
- package/lib/main.js +24 -24
- package/package.json +7 -6
- package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.d.ts +0 -8
- package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.js +0 -33
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.d.ts +0 -5
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +0 -19
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.d.ts +0 -3
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.js +0 -14
- package/lib/esm/Importer/common/Spreadsheet/hooks.d.ts +0 -34
- package/lib/esm/Importer/common/Spreadsheet/hooks.js +0 -254
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.d.ts +0 -8
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.js +0 -106
- package/lib/esm/common/Table/TableActions/FilterByErrors/functions.d.ts +0 -11
- package/lib/esm/common/Table/TableActions/FilterByErrors/functions.js +0 -35
- package/lib/esm/common/Table/TableActions/hooks.d.ts +0 -18
- package/lib/esm/common/Table/TableActions/hooks.js +0 -41
- package/lib/esm/common/Table/TableView/CustomScrollbar.d.ts +0 -2
- package/lib/esm/common/Table/TableView/CustomScrollbar.js +0 -34
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { FieldTypes } from "../../../../../types";
|
|
2
|
+
export var AVERAGE_CHAR_SIZE = 11;
|
|
3
|
+
var isFullUppercase = /^[A-Z]*$/;
|
|
4
|
+
export var getFieldContentWidth = function (_a) {
|
|
5
|
+
var _b, _c, _d, _e;
|
|
6
|
+
var record = _a.record, fieldType = _a.fieldType, isTooltipOpened = _a.isTooltipOpened, name = _a.name, _f = _a.avgCharSize, avgCharSize = _f === void 0 ? AVERAGE_CHAR_SIZE : _f;
|
|
7
|
+
var additionalWidth = 5;
|
|
8
|
+
if (fieldType === FieldTypes.url) {
|
|
9
|
+
// assuming 90px as an average size of the url prefix
|
|
10
|
+
// 'https://' have around 50px, but assuming more to prevent some issues
|
|
11
|
+
additionalWidth += 90;
|
|
12
|
+
}
|
|
13
|
+
var transformedRow = (_c = (_b = record._meta) === null || _b === void 0 ? void 0 : _b.transformedRow) === null || _c === void 0 ? void 0 : _c[name];
|
|
14
|
+
var transformedLength = (_d = String(transformedRow === null || transformedRow === void 0 ? void 0 : transformedRow.transformed)) === null || _d === void 0 ? void 0 : _d.length;
|
|
15
|
+
var originalLength = (_e = String(transformedRow === null || transformedRow === void 0 ? void 0 : transformedRow.original)) === null || _e === void 0 ? void 0 : _e.length;
|
|
16
|
+
var transformedHasHigherLength = transformedLength >= originalLength;
|
|
17
|
+
var transformedIsUppercase = isFullUppercase.test(transformedRow === null || transformedRow === void 0 ? void 0 : transformedRow.transformed);
|
|
18
|
+
var originalIsUppercase = isFullUppercase.test(transformedRow === null || transformedRow === void 0 ? void 0 : transformedRow.original);
|
|
19
|
+
if (transformedHasHigherLength) {
|
|
20
|
+
additionalWidth += transformedIsUppercase ? transformedLength : 0;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
additionalWidth += originalIsUppercase ? originalLength : 0;
|
|
24
|
+
}
|
|
25
|
+
return isTooltipOpened
|
|
26
|
+
? Math.max(transformedLength, originalLength) * avgCharSize +
|
|
27
|
+
additionalWidth
|
|
28
|
+
: 0 || 0;
|
|
29
|
+
};
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
var _a;
|
|
2
2
|
import { FieldTypes } from "../../../../../types";
|
|
3
3
|
import { BooleanInput } from "./Boolean";
|
|
4
|
-
import { EmailInput } from "./EmailInput";
|
|
5
4
|
import { EnumInput } from "./EnumInput";
|
|
6
5
|
import { FloatInput } from "./FloatInput";
|
|
7
6
|
import { IntegerInput } from "./IntegerInput";
|
|
8
7
|
import { StringInput } from "./StringInput";
|
|
9
8
|
export var inputTypes = (_a = {},
|
|
10
9
|
_a[FieldTypes.boolean] = BooleanInput,
|
|
11
|
-
_a[FieldTypes.email] =
|
|
10
|
+
_a[FieldTypes.email] = StringInput,
|
|
12
11
|
_a[FieldTypes.enum] = EnumInput,
|
|
13
12
|
_a[FieldTypes.float] = FloatInput,
|
|
14
13
|
_a[FieldTypes.integer] = IntegerInput,
|
|
@@ -3,4 +3,3 @@ import { SpreadsheetProps } from "./common/types";
|
|
|
3
3
|
declare const _default: React.MemoExoticComponent<({ initialDataSet, initialDataSetUpdatedAt, ...props }: SpreadsheetProps) => JSX.Element>;
|
|
4
4
|
export default _default;
|
|
5
5
|
export * from "./SpreadsheetContextProvider";
|
|
6
|
-
export * from "./hooks";
|
|
@@ -21,99 +21,16 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
23
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
24
|
-
import { get } from "lodash";
|
|
25
|
-
import { DateTime } from "luxon";
|
|
26
24
|
import React from "react";
|
|
27
25
|
import { areEqual } from "react-window";
|
|
28
|
-
import { useImporterContext } from "../../contexts/ImporterContextProvider";
|
|
29
26
|
import { SpreadsheetContextProvider } from "./SpreadsheetContextProvider";
|
|
30
27
|
import SpreadsheetData from "./components/SpreadsheetData";
|
|
31
|
-
var useFieldSorting = function () {
|
|
32
|
-
var templateHeaders = useImporterContext().templateHeaders;
|
|
33
|
-
var getDefaultSortCompareFn = function (sortBy) {
|
|
34
|
-
return function (a, b) {
|
|
35
|
-
var aField = get(a, sortBy.field);
|
|
36
|
-
var bField = get(b, sortBy.field);
|
|
37
|
-
var fieldTypes = templateHeaders.reduce(function (acc, header) {
|
|
38
|
-
var type = header.column_type;
|
|
39
|
-
var pattern = header.pattern || null;
|
|
40
|
-
acc[header.internal_key] = { type: type, pattern: pattern };
|
|
41
|
-
return acc;
|
|
42
|
-
}, {});
|
|
43
|
-
var fieldType = fieldTypes[sortBy.field];
|
|
44
|
-
var isAEmpty = aField === undefined || aField === null || aField === "";
|
|
45
|
-
var isBEmpty = bField === undefined || bField === null || bField === "";
|
|
46
|
-
// sort empty values to the end
|
|
47
|
-
if (isAEmpty && isBEmpty) {
|
|
48
|
-
if (a._meta.rowIndex === b._meta.rowIndex)
|
|
49
|
-
return 0;
|
|
50
|
-
return a._meta.rowIndex < b._meta.rowIndex ? -1 : 1;
|
|
51
|
-
}
|
|
52
|
-
if (isAEmpty)
|
|
53
|
-
return 1;
|
|
54
|
-
if (isBEmpty)
|
|
55
|
-
return -1;
|
|
56
|
-
if (fieldType && fieldType.type === "boolean") {
|
|
57
|
-
var aString = aField ? "true" : "false";
|
|
58
|
-
var bString = bField ? "true" : "false";
|
|
59
|
-
if (aString === bString) {
|
|
60
|
-
if (a._meta.rowIndex === b._meta.rowIndex)
|
|
61
|
-
return 0;
|
|
62
|
-
return a._meta.rowIndex < b._meta.rowIndex ? -1 : 1;
|
|
63
|
-
}
|
|
64
|
-
if (aString === "true")
|
|
65
|
-
return sortBy.direction === "asc" ? -1 : 1;
|
|
66
|
-
if (bString === "true")
|
|
67
|
-
return sortBy.direction === "asc" ? 1 : -1;
|
|
68
|
-
}
|
|
69
|
-
else if (fieldType &&
|
|
70
|
-
(fieldType.type === "date" ||
|
|
71
|
-
fieldType.type === "datetime" ||
|
|
72
|
-
fieldType.type === "time")) {
|
|
73
|
-
var aDateTime = aField
|
|
74
|
-
? DateTime.fromFormat(aField, fieldType.pattern)
|
|
75
|
-
: null;
|
|
76
|
-
var bDateTime = bField
|
|
77
|
-
? DateTime.fromFormat(bField, fieldType.pattern)
|
|
78
|
-
: null;
|
|
79
|
-
// sort invalid date values to the end before empty values
|
|
80
|
-
if (aDateTime && !aDateTime.isValid)
|
|
81
|
-
return 1;
|
|
82
|
-
if (bDateTime && !bDateTime.isValid)
|
|
83
|
-
return -1;
|
|
84
|
-
if (aDateTime && bDateTime && aDateTime.equals(bDateTime)) {
|
|
85
|
-
if (a._meta.rowIndex === b._meta.rowIndex)
|
|
86
|
-
return 0;
|
|
87
|
-
return a._meta.rowIndex < b._meta.rowIndex ? -1 : 1;
|
|
88
|
-
}
|
|
89
|
-
if (sortBy.direction === "asc") {
|
|
90
|
-
return (aDateTime === null || aDateTime === void 0 ? void 0 : aDateTime.valueOf()) - (bDateTime === null || bDateTime === void 0 ? void 0 : bDateTime.valueOf());
|
|
91
|
-
}
|
|
92
|
-
return (bDateTime === null || bDateTime === void 0 ? void 0 : bDateTime.valueOf()) - (aDateTime === null || aDateTime === void 0 ? void 0 : aDateTime.valueOf());
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
if (aField === bField) {
|
|
96
|
-
if (a._meta.rowIndex === b._meta.rowIndex)
|
|
97
|
-
return 0;
|
|
98
|
-
return a._meta.rowIndex < b._meta.rowIndex ? -1 : 1;
|
|
99
|
-
}
|
|
100
|
-
if (sortBy.direction === "asc") {
|
|
101
|
-
return aField > bField ? 1 : -1;
|
|
102
|
-
}
|
|
103
|
-
return aField < bField ? 1 : -1;
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
};
|
|
107
|
-
return { getDefaultSortCompareFn: getDefaultSortCompareFn };
|
|
108
|
-
};
|
|
109
28
|
var SpreadsheetWrapper = function (_a) {
|
|
110
29
|
var initialDataSet = _a.initialDataSet, initialDataSetUpdatedAt = _a.initialDataSetUpdatedAt, props = __rest(_a, ["initialDataSet", "initialDataSetUpdatedAt"]);
|
|
111
30
|
return (_jsx(_Fragment, { children: initialDataSet && (_jsx(Spreadsheet, __assign({ initialDataSet: initialDataSet }, props), initialDataSetUpdatedAt || 0)) }));
|
|
112
31
|
};
|
|
113
32
|
var Spreadsheet = function (props) {
|
|
114
|
-
|
|
115
|
-
return (_jsx(SpreadsheetContextProvider, __assign({}, props, { getSortCompareFn: getDefaultSortCompareFn }, { children: _jsx(SpreadsheetData, { className: props.className }) })));
|
|
33
|
+
return (_jsx(SpreadsheetContextProvider, __assign({}, props, { children: _jsx(SpreadsheetData, { className: props.className }) })));
|
|
116
34
|
};
|
|
117
35
|
export default React.memo(SpreadsheetWrapper, areEqual);
|
|
118
36
|
export * from "./SpreadsheetContextProvider";
|
|
119
|
-
export * from "./hooks";
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
interface SpreadSheetWrapperProps {
|
|
3
2
|
canShowCheckboxOnHover?: boolean;
|
|
4
3
|
shouldShowOnlyCheckbox?: boolean;
|
|
@@ -6,5 +5,5 @@ interface SpreadSheetWrapperProps {
|
|
|
6
5
|
export declare const SpreadSheetData: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps, never>;
|
|
7
6
|
export declare const SpreadSheetWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps & SpreadSheetWrapperProps, never>;
|
|
8
7
|
export declare const SpreadSheetContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps, never>;
|
|
9
|
-
export declare const TableView: import("styled-components").StyledComponent<
|
|
8
|
+
export declare const TableView: import("styled-components").StyledComponent<(props: any) => JSX.Element, import("styled-components").DefaultTheme, {}, never>;
|
|
10
9
|
export {};
|
|
@@ -2,6 +2,18 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
|
|
|
2
2
|
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
3
|
return cooked;
|
|
4
4
|
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
17
|
import styled, { css } from "styled-components";
|
|
6
18
|
import { TableView as TableViewBase, TableViewCellContainer, TableViewRow, } from "../../../common/Table/TableView";
|
|
7
19
|
import { Div } from "../../../styled/utils";
|
|
@@ -12,5 +24,5 @@ export var SpreadSheetWrapper = styled(Div)(templateObject_5 || (templateObject_
|
|
|
12
24
|
canShowCheckboxOnHover && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n &:hover {\n .row-numbers-cell {\n visibility: hidden;\n }\n\n .checkbox-cell {\n visibility: visible;\n }\n }\n "], ["\n &:hover {\n .row-numbers-cell {\n visibility: hidden;\n }\n\n .checkbox-cell {\n visibility: visible;\n }\n }\n "]))));
|
|
13
25
|
});
|
|
14
26
|
export var SpreadSheetContainer = styled(Div)(templateObject_6 || (templateObject_6 = __makeTemplateObject([""], [""])));
|
|
15
|
-
export var TableView = styled(TableViewBase)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n width: 100%;\n border: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n overflow: hidden;\n background-color: ", ";\n ", " {\n border-bottom: none;\n height: 40px;\n }\n ", " {\n padding: 0 !important;\n box-shadow: inset 0 -1px 0 ", ",\n inset -1px 0 0 ", ";\n &.last-column {\n box-shadow: inset 0 -1px 0 ", ",\n inset 1px 0 0 transparent, inset -1px 0 0 transparent !important;\n }\n }\n"], ["\n width: 100%;\n border: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n overflow: hidden;\n background-color: ", ";\n ", " {\n border-bottom: none;\n height: 40px;\n }\n ", " {\n padding: 0 !important;\n box-shadow: inset 0 -1px 0 ", ",\n inset -1px 0 0 ", ";\n &.last-column {\n box-shadow: inset 0 -1px 0 ", ",\n inset 1px 0 0 transparent, inset -1px 0 0 transparent !important;\n }\n }\n"])), function (p) { return p.theme.colors.gray50; }, TableViewRow, TableViewCellContainer, function (p) { return p.theme.colors.gray300; }, function (p) { return p.theme.colors.gray300; }, function (p) { return p.theme.colors.gray300; });
|
|
27
|
+
export var TableView = styled(function (props) { return _jsx(TableViewBase, __assign({}, props)); })(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n width: 100%;\n border: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n overflow: hidden;\n background-color: ", ";\n ", " {\n border-bottom: none;\n height: 40px;\n }\n ", " {\n padding: 0 !important;\n box-shadow: inset 0 -1px 0 ", ",\n inset -1px 0 0 ", ";\n &.last-column {\n box-shadow: inset 0 -1px 0 ", ",\n inset 1px 0 0 transparent, inset -1px 0 0 transparent !important;\n }\n }\n"], ["\n width: 100%;\n border: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n overflow: hidden;\n background-color: ", ";\n ", " {\n border-bottom: none;\n height: 40px;\n }\n ", " {\n padding: 0 !important;\n box-shadow: inset 0 -1px 0 ", ",\n inset -1px 0 0 ", ";\n &.last-column {\n box-shadow: inset 0 -1px 0 ", ",\n inset 1px 0 0 transparent, inset -1px 0 0 transparent !important;\n }\n }\n"])), function (p) { return p.theme.colors.gray50; }, TableViewRow, TableViewCellContainer, function (p) { return p.theme.colors.gray300; }, function (p) { return p.theme.colors.gray300; }, function (p) { return p.theme.colors.gray300; });
|
|
16
28
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Field, Record } from "../../../../types";
|
|
1
|
+
import { Field, Record, TransformedRecord } from "../../../../types";
|
|
2
2
|
type TransformRecordArgs = {
|
|
3
3
|
record: Record;
|
|
4
4
|
fields: Field[];
|
|
5
5
|
};
|
|
6
|
-
export declare
|
|
6
|
+
export declare const transformRecord: ({ record, fields }: TransformRecordArgs) => TransformedRecord;
|
|
7
7
|
export {};
|
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
import { fieldTransformations } from "./transformators";
|
|
2
|
-
var runTransformation = function (
|
|
2
|
+
var runTransformation = function (fieldValue, transformation, field) {
|
|
3
3
|
var transformationType = transformation.transformation_type;
|
|
4
4
|
var transformerFunction = fieldTransformations[transformationType];
|
|
5
|
-
return transformerFunction(
|
|
5
|
+
return transformerFunction(fieldValue, transformation, field);
|
|
6
6
|
};
|
|
7
|
-
export function
|
|
7
|
+
export var transformRecord = function (_a) {
|
|
8
8
|
var record = _a.record, fields = _a.fields;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
var
|
|
9
|
+
var transformedRecords = {};
|
|
10
|
+
for (var _i = 0, fields_1 = fields; _i < fields_1.length; _i++) {
|
|
11
|
+
var currentField = fields_1[_i];
|
|
12
|
+
var fieldTransformations_1 = currentField.transformations;
|
|
13
|
+
var fieldToBeTransformed = record[currentField.name];
|
|
13
14
|
if (!fieldTransformations_1 ||
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
fieldTransformations_1.length === 0 ||
|
|
16
|
+
fieldToBeTransformed === undefined) {
|
|
16
17
|
continue;
|
|
17
18
|
}
|
|
18
|
-
var transformedField =
|
|
19
|
+
var transformedField = {
|
|
20
|
+
original: fieldToBeTransformed,
|
|
21
|
+
transformed: fieldToBeTransformed,
|
|
22
|
+
};
|
|
23
|
+
var fieldWasTransformed = false;
|
|
19
24
|
for (var i = 0; i < fieldTransformations_1.length; i++) {
|
|
20
25
|
var currentTransformation = fieldTransformations_1[i];
|
|
21
|
-
|
|
26
|
+
var transformed = runTransformation(transformedField.transformed, currentTransformation, currentField);
|
|
27
|
+
if (transformed.transformationWasNeeded) {
|
|
28
|
+
fieldWasTransformed = true;
|
|
29
|
+
transformedField = {
|
|
30
|
+
original: transformedField.original,
|
|
31
|
+
transformed: transformed.transformed,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
22
34
|
}
|
|
23
|
-
|
|
35
|
+
if (!fieldWasTransformed) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// the data have changed
|
|
39
|
+
record[currentField.name] = transformedField.transformed;
|
|
40
|
+
transformedRecords[currentField.name] = {
|
|
41
|
+
original: transformedField.original,
|
|
42
|
+
transformed: transformedField.transformed,
|
|
43
|
+
};
|
|
24
44
|
}
|
|
25
|
-
|
|
45
|
+
var isTransformedRecordsEmpty = Object.keys(transformedRecords).length === 0;
|
|
46
|
+
return isTransformedRecordsEmpty ? {} : transformedRecords;
|
|
47
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DateTime } from "luxon";
|
|
2
|
+
export declare const parseDateFromUserInput: (userInput: string) => DateTime | null;
|
|
3
|
+
export declare const parseTimeFromUserInput: (input: any) => DateTime;
|
|
4
|
+
export declare const parseTimeFromDateTimeorTimeInput: (userInput: any) => DateTime;
|
|
5
|
+
export declare const parseDateTimeFromUserInput: (userInput: any) => DateTime;
|
package/lib/esm/Importer/common/Spreadsheet/transformation/transformators/dateTimeAutoformatUtils.js
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { DateTime } from "luxon";
|
|
2
|
+
var MONTH_NAMES = [
|
|
3
|
+
"january",
|
|
4
|
+
"february",
|
|
5
|
+
"march",
|
|
6
|
+
"april",
|
|
7
|
+
"may",
|
|
8
|
+
"june",
|
|
9
|
+
"july",
|
|
10
|
+
"august",
|
|
11
|
+
"september",
|
|
12
|
+
"october",
|
|
13
|
+
"november",
|
|
14
|
+
"december",
|
|
15
|
+
];
|
|
16
|
+
var MONTH_ABBREVIATIONS = [
|
|
17
|
+
"jan",
|
|
18
|
+
"feb",
|
|
19
|
+
"mar",
|
|
20
|
+
"apr",
|
|
21
|
+
"may",
|
|
22
|
+
"jun",
|
|
23
|
+
"jul",
|
|
24
|
+
"aug",
|
|
25
|
+
"sep",
|
|
26
|
+
"oct",
|
|
27
|
+
"nov",
|
|
28
|
+
"dec",
|
|
29
|
+
];
|
|
30
|
+
var DAY_NAMES = [
|
|
31
|
+
"sunday",
|
|
32
|
+
"monday",
|
|
33
|
+
"tuesday",
|
|
34
|
+
"wednesday",
|
|
35
|
+
"thursday",
|
|
36
|
+
"friday",
|
|
37
|
+
"saturday",
|
|
38
|
+
];
|
|
39
|
+
var DAY_ABBREVIATIONS = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
|
|
40
|
+
var tryParseCommonDateFormats = function (input) {
|
|
41
|
+
var _a, _b, _c;
|
|
42
|
+
var trimmedInput = input.trim();
|
|
43
|
+
var len = trimmedInput.length;
|
|
44
|
+
if (len < 6 || len > 10)
|
|
45
|
+
return null;
|
|
46
|
+
var parts = input.split(/[-/.]/);
|
|
47
|
+
if (parts.length !== 3)
|
|
48
|
+
return null;
|
|
49
|
+
var _d = parts.map(Number), first = _d[0], second = _d[1], third = _d[2];
|
|
50
|
+
var year, month, day;
|
|
51
|
+
if (parts[2].length === 4) {
|
|
52
|
+
_a = [first, second, third], month = _a[0], day = _a[1], year = _a[2];
|
|
53
|
+
}
|
|
54
|
+
else if (parts[0].length === 4) {
|
|
55
|
+
_b = [first, second, third], year = _b[0], month = _b[1], day = _b[2];
|
|
56
|
+
}
|
|
57
|
+
else if (parts[2].length === 2) {
|
|
58
|
+
// Handles the case where year is two digits
|
|
59
|
+
_c = [first, second, third], month = _c[0], day = _c[1], year = _c[2];
|
|
60
|
+
year += year < 50 ? 2000 : 1900; // Convert to 4 digits
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return null; // Unknown format
|
|
64
|
+
}
|
|
65
|
+
if (year >= 0 && month >= 1 && month <= 12 && day >= 1 && day <= 31) {
|
|
66
|
+
var dt = DateTime.fromObject({ day: day, month: month, year: year });
|
|
67
|
+
return dt.isValid ? dt : null;
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
};
|
|
71
|
+
export var parseDateFromUserInput = function (userInput) {
|
|
72
|
+
var datePart = userInput;
|
|
73
|
+
var hasTimePart = userInput.indexOf(":") !== -1 && userInput.split(":").length > 1;
|
|
74
|
+
if (hasTimePart) {
|
|
75
|
+
var parts = userInput.trim().split(" ");
|
|
76
|
+
datePart =
|
|
77
|
+
parts.length === 2
|
|
78
|
+
? parts[0].indexOf(":") !== -1
|
|
79
|
+
? parts[1]
|
|
80
|
+
: parts[0]
|
|
81
|
+
: userInput;
|
|
82
|
+
}
|
|
83
|
+
var commonFormatResult = tryParseCommonDateFormats(datePart);
|
|
84
|
+
if (commonFormatResult)
|
|
85
|
+
return commonFormatResult;
|
|
86
|
+
var cleanedInput = datePart
|
|
87
|
+
.trim()
|
|
88
|
+
.split(/[\s;|:.\/-]+/)
|
|
89
|
+
.filter(Boolean)
|
|
90
|
+
.map(function (word) { return word.toLowerCase(); });
|
|
91
|
+
var possibleDay = null, possibleMonth = null, possibleYear = null;
|
|
92
|
+
for (var _i = 0, cleanedInput_1 = cleanedInput; _i < cleanedInput_1.length; _i++) {
|
|
93
|
+
var word = cleanedInput_1[_i];
|
|
94
|
+
if (DAY_NAMES.includes(word) || DAY_ABBREVIATIONS.includes(word))
|
|
95
|
+
continue;
|
|
96
|
+
var num = parseInt(word, 10);
|
|
97
|
+
if (!possibleDay && num > 0 && num <= 31) {
|
|
98
|
+
possibleDay = num;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (!possibleMonth) {
|
|
102
|
+
var monthIndex = MONTH_NAMES.indexOf(word);
|
|
103
|
+
if (monthIndex === -1)
|
|
104
|
+
monthIndex = MONTH_ABBREVIATIONS.indexOf(word);
|
|
105
|
+
if (monthIndex !== -1) {
|
|
106
|
+
possibleMonth = monthIndex + 1;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
else if (num > 0 && num <= 12) {
|
|
110
|
+
possibleMonth = num;
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (!possibleYear && num >= 0) {
|
|
115
|
+
possibleYear = num < 100 ? num + (num < 50 ? 2000 : 1900) : num;
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (possibleDay && possibleMonth && possibleYear) {
|
|
120
|
+
return DateTime.fromObject({
|
|
121
|
+
day: possibleDay,
|
|
122
|
+
month: possibleMonth,
|
|
123
|
+
year: possibleYear,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return null;
|
|
127
|
+
};
|
|
128
|
+
export var parseTimeFromUserInput = function (input) {
|
|
129
|
+
var cleanedInput = input
|
|
130
|
+
.trim()
|
|
131
|
+
.replace(/\s*:\s*/g, ":")
|
|
132
|
+
.replace(/\s+(AM|PM|am|pm)\s*$/, " $1");
|
|
133
|
+
var len = cleanedInput.length;
|
|
134
|
+
if (len < 4 || len > 16)
|
|
135
|
+
return null;
|
|
136
|
+
var hour = 0, minute = 0, second = 0, millisecond = 0;
|
|
137
|
+
var meridiem = null;
|
|
138
|
+
var parts = cleanedInput.split(" ");
|
|
139
|
+
if (parts.length > 2)
|
|
140
|
+
return null;
|
|
141
|
+
if (parts.length === 2) {
|
|
142
|
+
meridiem = parts[1].toUpperCase();
|
|
143
|
+
if (meridiem !== "AM" && meridiem !== "PM")
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
var timeParts = parts[0].split(":");
|
|
147
|
+
if (timeParts.length < 2 || timeParts.length > 3)
|
|
148
|
+
return null;
|
|
149
|
+
hour = parseInt(timeParts[0], 10);
|
|
150
|
+
minute = parseInt(timeParts[1], 10);
|
|
151
|
+
if (isNaN(hour) || isNaN(minute))
|
|
152
|
+
return null;
|
|
153
|
+
if (timeParts.length === 3) {
|
|
154
|
+
var secondParts = timeParts[2].split("."); // Split to consider milliseconds
|
|
155
|
+
second = parseInt(secondParts[0], 10);
|
|
156
|
+
if (secondParts.length === 2) {
|
|
157
|
+
millisecond = parseInt(secondParts[1], 10);
|
|
158
|
+
}
|
|
159
|
+
if (isNaN(second) || isNaN(millisecond))
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
if (hour < 0 ||
|
|
163
|
+
hour > 23 ||
|
|
164
|
+
minute < 0 ||
|
|
165
|
+
minute > 59 ||
|
|
166
|
+
second < 0 ||
|
|
167
|
+
second > 59 ||
|
|
168
|
+
millisecond < 0 ||
|
|
169
|
+
millisecond > 999)
|
|
170
|
+
return null;
|
|
171
|
+
if (meridiem === "PM" && hour < 12) {
|
|
172
|
+
hour += 12;
|
|
173
|
+
}
|
|
174
|
+
else if (meridiem === "AM" && hour === 12) {
|
|
175
|
+
hour = 0;
|
|
176
|
+
}
|
|
177
|
+
var dateTime = DateTime.fromObject({ hour: hour, minute: minute, second: second, millisecond: millisecond });
|
|
178
|
+
return dateTime.isValid ? dateTime : null;
|
|
179
|
+
};
|
|
180
|
+
export var parseTimeFromDateTimeorTimeInput = function (userInput) {
|
|
181
|
+
var res1 = parseTimeFromUserInput(userInput);
|
|
182
|
+
if (res1)
|
|
183
|
+
return res1;
|
|
184
|
+
var res2 = parseDateTimeFromUserInput(userInput);
|
|
185
|
+
if (res2)
|
|
186
|
+
return res2;
|
|
187
|
+
return null;
|
|
188
|
+
};
|
|
189
|
+
export var parseDateTimeFromUserInput = function (userInput) {
|
|
190
|
+
var fromISO = DateTime.fromISO(userInput);
|
|
191
|
+
if (fromISO.isValid && userInput.includes("T"))
|
|
192
|
+
return fromISO;
|
|
193
|
+
var cleanedInput = userInput.trim().replace(/\s+/g, " ").toLowerCase();
|
|
194
|
+
var words = cleanedInput.split(" ");
|
|
195
|
+
var datePart = "";
|
|
196
|
+
var timePart = "";
|
|
197
|
+
var meridiem = "";
|
|
198
|
+
for (var _i = 0, words_1 = words; _i < words_1.length; _i++) {
|
|
199
|
+
var word = words_1[_i];
|
|
200
|
+
if (word === "am" || word === "pm") {
|
|
201
|
+
meridiem = word.toUpperCase();
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
if (word.includes(":")) {
|
|
205
|
+
timePart = word;
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
datePart = "".concat(datePart, " ").concat(word);
|
|
209
|
+
}
|
|
210
|
+
if (meridiem) {
|
|
211
|
+
timePart = "".concat(timePart, " ").concat(meridiem);
|
|
212
|
+
}
|
|
213
|
+
var dateObject = parseDateFromUserInput(datePart.trim());
|
|
214
|
+
if (!dateObject || !dateObject.isValid)
|
|
215
|
+
return null;
|
|
216
|
+
var timeObject = parseTimeFromUserInput(timePart.trim());
|
|
217
|
+
if (!timeObject || !timeObject.isValid)
|
|
218
|
+
return null;
|
|
219
|
+
if (!timeObject || !timeObject.isValid)
|
|
220
|
+
return null;
|
|
221
|
+
var combinedDateTime = DateTime.fromObject({
|
|
222
|
+
year: dateObject.year,
|
|
223
|
+
month: dateObject.month,
|
|
224
|
+
day: dateObject.day,
|
|
225
|
+
hour: timeObject.hour,
|
|
226
|
+
minute: timeObject.minute,
|
|
227
|
+
second: timeObject.second,
|
|
228
|
+
millisecond: timeObject.millisecond,
|
|
229
|
+
});
|
|
230
|
+
return combinedDateTime.isValid ? combinedDateTime : null;
|
|
231
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Field, FieldTransformation } from "../../../../../types";
|
|
2
|
+
export type FieldTransformator = (fieldValue: any, transformation?: FieldTransformation, fieldOptions?: Field) => {
|
|
3
|
+
transformationWasNeeded: boolean;
|
|
4
|
+
original: any;
|
|
5
|
+
transformed: any;
|
|
6
|
+
};
|
|
7
|
+
export type FieldTransformations = Partial<{
|
|
8
|
+
[key: string]: FieldTransformator;
|
|
9
|
+
}>;
|
|
10
|
+
export declare const isTransformationNeeded: (fieldValue: any, transformedValue: any) => {
|
|
11
|
+
transformationWasNeeded: boolean;
|
|
12
|
+
original: any;
|
|
13
|
+
transformed: any;
|
|
14
|
+
};
|
|
15
|
+
export declare const datesDateTimesAndTimesTransformations: FieldTransformations;
|
|
16
|
+
export declare const fieldTransformations: {
|
|
17
|
+
[x: string]: FieldTransformator;
|
|
18
|
+
};
|