fuse-importer 0.17.0 → 0.22.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/Footer.js +2 -2
- package/lib/esm/Importer/ImporterContextProvider.d.ts +35 -5
- package/lib/esm/Importer/ImporterContextProvider.js +43 -24
- package/lib/esm/Importer/ImporterFonts.js +1 -1
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +1 -1
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.js +3 -3
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcherContext.js +1 -1
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +3 -3
- package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +2 -2
- package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.js +3 -3
- package/lib/esm/Importer/Matcher/common/icons/index.js +2 -2
- package/lib/esm/Importer/Matcher/common/index.js +4 -4
- package/lib/esm/Importer/Matcher/index.js +6 -5
- package/lib/esm/Importer/PreviewModeBanner.d.ts +2 -0
- package/lib/esm/Importer/PreviewModeBanner.js +20 -0
- package/lib/esm/Importer/Review/AppResponseModal.js +1 -1
- package/lib/esm/Importer/Review/index.js +18 -22
- package/lib/esm/Importer/SpreadsheetReviewContextProvider.js +2 -2
- package/lib/esm/Importer/Stepper.js +24 -17
- package/lib/esm/Importer/TrialModeBanner.js +3 -3
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +7 -4
- package/lib/esm/Importer/Uploader/DragAndDropImporter/backgrounds.js +2 -2
- package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +9 -9
- package/lib/esm/Importer/Uploader/HeadersPreview.js +21 -19
- package/lib/esm/Importer/Uploader/UploaderContextProvider.js +1 -1
- package/lib/esm/Importer/Uploader/index.js +2 -2
- package/lib/esm/Importer/common/AppLoading.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider.js +8 -6
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetRowNumbers.js +2 -2
- package/lib/esm/Importer/common/Spreadsheet/common/FieldHeader.d.ts +7 -0
- package/lib/esm/Importer/common/Spreadsheet/common/FieldHeader.js +31 -0
- package/lib/esm/Importer/common/Spreadsheet/common/fields/SpeadsheetAutocomplete.d.ts +11 -6
- package/lib/esm/Importer/common/Spreadsheet/common/fields/SpeadsheetAutocomplete.js +7 -8
- package/lib/esm/Importer/common/Spreadsheet/common/fields/SpreadsheetInput.d.ts +4 -4
- package/lib/esm/Importer/common/Spreadsheet/common/fields/SpreadsheetInput.js +5 -6
- package/lib/esm/Importer/common/Spreadsheet/common/fields/index.d.ts +6 -5
- package/lib/esm/Importer/common/Spreadsheet/common/fields/index.js +15 -7
- package/lib/esm/Importer/common/Spreadsheet/common/index.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/common/index.js +53 -9
- package/lib/esm/Importer/common/Spreadsheet/index.js +32 -61
- package/lib/esm/Importer/common/Spreadsheet/inputs/Boolean.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/Boolean.js +18 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/EmailInput.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/EmailInput.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/EnumInput.d.ts +6 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/EnumInput.js +30 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/FloatInput.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/FloatInput.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/IntegerInput.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/IntegerInput.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/StringInput.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/StringInput.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/index.d.ts +13 -0
- package/lib/esm/Importer/common/Spreadsheet/inputs/index.js +20 -0
- package/lib/esm/Importer/common/icons/index.js +3 -3
- package/lib/esm/Importer/common/index.d.ts +2 -2
- package/lib/esm/Importer/common/index.js +2 -2
- package/lib/esm/Importer/index.d.ts +4 -2
- package/lib/esm/Importer/index.js +10 -10
- package/lib/esm/Importer/theme.d.ts +225 -0
- package/lib/esm/Importer/theme.js +18 -0
- package/lib/esm/common/Modal.js +1 -1
- package/lib/esm/common/Spinner.js +1 -1
- package/lib/esm/common/Table/Pagination/icons.js +5 -5
- package/lib/esm/common/Table/Pagination/index.js +2 -2
- package/lib/esm/common/Table/TableDataProvider.js +1 -1
- package/lib/esm/common/Table/TableView/TableHeaders.js +2 -2
- package/lib/esm/common/Table/TableView/TableRow.js +3 -3
- package/lib/esm/common/Table/TableView/index.js +5 -5
- package/lib/esm/common/Table/icons.js +2 -2
- package/lib/esm/common/Table/index.js +2 -2
- package/lib/esm/common/Toast.js +4 -3
- package/lib/esm/common/TooltipProvider.js +1 -1
- package/lib/esm/common/buttons.d.ts +15 -5
- package/lib/esm/common/buttons.js +13 -11
- package/lib/esm/common/icons/index.js +11 -11
- package/lib/esm/common/index.js +2 -2
- package/lib/esm/common/inputs/Autocomplete.d.ts +2 -2
- package/lib/esm/common/inputs/Autocomplete.js +4 -4
- package/lib/esm/common/inputs/SelectMenu.js +1 -1
- package/lib/esm/common/inputs/TextInput.js +13 -6
- package/lib/esm/common/logo.js +1 -1
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +1 -0
- package/lib/esm/styled/theme/dimensionsCss.js +1 -1
- package/lib/esm/styled/theme/fontCss.d.ts +0 -1
- package/lib/esm/styled/theme/fontCss.js +10 -11
- package/lib/esm/styled/theme/index.d.ts +0 -2
- package/lib/esm/styled/themeType.d.ts +1 -1
- package/lib/esm/styled/utils.d.ts +3 -0
- package/lib/esm/styled/utils.js +4 -3
- package/lib/esm/types.d.ts +8 -2
- package/lib/esm/types.js +4 -1
- package/lib/main.js +1 -1
- package/package.json +2 -1
- package/lib/esm/Importer/useCustomImporter.d.ts +0 -4
- package/lib/esm/Importer/useCustomImporter.js +0 -80
|
@@ -61,11 +61,19 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
61
61
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
62
62
|
import { useEffect, useRef, useState } from "react";
|
|
63
63
|
import styled, { css } from "styled-components";
|
|
64
|
-
import { getRecordErrors, getRenderedRecordWithErrors } from "..";
|
|
64
|
+
import { getRecordErrors, getRenderedRecordWithErrors, isFloat, isInteger, } from "..";
|
|
65
65
|
import { TooltipProvider } from "../../../../../common/TooltipProvider";
|
|
66
66
|
import { Div } from "../../../../../styled/utils";
|
|
67
|
+
import { FieldTypes } from "../../../../../types";
|
|
67
68
|
import { useSpreadsheetReviewContext } from "../../../../SpreadsheetReviewContextProvider";
|
|
68
69
|
import { useSpreadsheetContext } from "../../SpreadsheetContextProvider";
|
|
70
|
+
export var parseValue = function (fieldType, value) {
|
|
71
|
+
if (fieldType === FieldTypes.float)
|
|
72
|
+
return isFloat(value) ? parseFloat(value) : value;
|
|
73
|
+
if (fieldType === FieldTypes.integer)
|
|
74
|
+
return isInteger(value) ? parseInt(value) : value;
|
|
75
|
+
return value;
|
|
76
|
+
};
|
|
69
77
|
export var useValidationError = function (fieldName, record) {
|
|
70
78
|
var isSubmitting = useSpreadsheetReviewContext().isSubmitting;
|
|
71
79
|
var _a = useSpreadsheetContext(), fields = _a.fields, submittedData = _a.submittedData, batchValidationErrors = _a.batchValidationErrors;
|
|
@@ -81,9 +89,10 @@ export var useValidationError = function (fieldName, record) {
|
|
|
81
89
|
}
|
|
82
90
|
return { validationError: validationError };
|
|
83
91
|
};
|
|
84
|
-
export var useSpreadsheetField = function (name, record) {
|
|
92
|
+
export var useSpreadsheetField = function (name, record, fieldType) {
|
|
85
93
|
var _a = useSpreadsheetContext(), data = _a.data, setData = _a.setData, onValidateRecord = _a.onValidateRecord;
|
|
86
94
|
var _b = useState(record[name]), value = _b[0], setValue = _b[1];
|
|
95
|
+
var validationError = useValidationError(name, record).validationError;
|
|
87
96
|
// used for debouncing validations
|
|
88
97
|
var timeoutIdRef = useRef(null);
|
|
89
98
|
// used for getting updated data in setTimeout
|
|
@@ -110,7 +119,7 @@ export var useSpreadsheetField = function (name, record) {
|
|
|
110
119
|
switch (_f.label) {
|
|
111
120
|
case 0:
|
|
112
121
|
newData = __spreadArray([], dataRef.current, true);
|
|
113
|
-
newRecord = __assign(__assign({}, recordRef.current), (_d = {}, _d[name] = value, _d));
|
|
122
|
+
newRecord = __assign(__assign({}, recordRef.current), (_d = {}, _d[name] = parseValue(fieldType, value), _d));
|
|
114
123
|
rowIndex = newData.findIndex(function (r) { return r._meta.id === record._meta.id; });
|
|
115
124
|
_a = newData;
|
|
116
125
|
_b = rowIndex;
|
|
@@ -128,7 +137,7 @@ export var useSpreadsheetField = function (name, record) {
|
|
|
128
137
|
});
|
|
129
138
|
}); }, 300);
|
|
130
139
|
}, [value]);
|
|
131
|
-
return { value: value, setValue: setValue };
|
|
140
|
+
return { value: value, setValue: setValue, validationError: validationError };
|
|
132
141
|
};
|
|
133
142
|
var ContentContainer = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n height: calc(100% - 1px);\n width: 100%;\n ", ";\n ", "\n ", "\n"], ["\n height: calc(100% - 1px);\n width: 100%;\n ", ";\n ", "\n ", "\n"])), function (p) { return p.theme.css.alignCenter; }, function (p) {
|
|
134
143
|
return p.hasError && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "], ["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "])), function (p) { return p.theme.colors.error; }, function (p) { return p.theme.colors.red100; }, function (p) { return p.theme.colors.error; });
|
|
@@ -140,9 +149,8 @@ var Wrapper = styled(Div)(function (_a) {
|
|
|
140
149
|
return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n ", "\n "], ["\n ", "\n "])), isLoading && css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n pointer-events: none;\n "], ["\n pointer-events: none;\n "]))));
|
|
141
150
|
});
|
|
142
151
|
export var SpreadsheetField = function (_a) {
|
|
143
|
-
var
|
|
152
|
+
var validationError = _a.validationError, children = _a.children;
|
|
144
153
|
var _b = useSpreadsheetContext(), isReadOnly = _b.isReadOnly, isLoading = _b.isLoading;
|
|
145
|
-
|
|
146
|
-
return (_jsx(Wrapper, __assign({ dim: "100%", isLoading: isLoading }, { children: _jsx(TooltipProvider, __assign({ tooltip: validationError }, { children: _jsx(Div, __assign({ dim: "100%" }, { children: _jsx(ContentContainer, __assign({ hasError: !!validationError, isReadOnly: isReadOnly }, { children: children }), void 0) }), void 0) }), void 0) }), void 0));
|
|
154
|
+
return (_jsx(Wrapper, __assign({ dim: "100%", isLoading: isLoading }, { children: _jsx(TooltipProvider, __assign({ tooltip: validationError }, { children: _jsx(Div, __assign({ dim: "100%" }, { children: _jsx(ContentContainer, __assign({ hasError: !!validationError, isReadOnly: isReadOnly }, { children: children })) })) })) })));
|
|
147
155
|
};
|
|
148
156
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Field, Record, BatchValidationErrors } from "../../../../types";
|
|
2
2
|
export declare const spreadsheetRowHeightPx = 40;
|
|
3
3
|
export declare const spreadsheetHeaderHeightPx = 40;
|
|
4
|
+
export declare const isTrue: (value: string) => boolean;
|
|
5
|
+
export declare const isInteger: (value: string) => boolean;
|
|
6
|
+
export declare const isFloat: (value: string) => boolean;
|
|
4
7
|
export declare const recordIsEmpty: (record: any, fields: any) => any;
|
|
5
8
|
export declare const getRenderedRecordWithErrors: ({ record, validationErrors, }: {
|
|
6
9
|
record: any;
|
|
@@ -9,7 +9,9 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
+
var _a;
|
|
12
13
|
import { FieldTypes, } from "../../../../types";
|
|
14
|
+
import { DateTime } from "luxon";
|
|
13
15
|
export var spreadsheetRowHeightPx = 40;
|
|
14
16
|
export var spreadsheetHeaderHeightPx = 40;
|
|
15
17
|
var isEmpty = function (value) {
|
|
@@ -18,6 +20,22 @@ var isEmpty = function (value) {
|
|
|
18
20
|
(typeof value === "object" && Object.keys(value).length === 0) ||
|
|
19
21
|
(typeof value === "string" && value.trim().length === 0));
|
|
20
22
|
};
|
|
23
|
+
var isEmail = function (value) {
|
|
24
|
+
var emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
25
|
+
return emailRegex.test(value);
|
|
26
|
+
};
|
|
27
|
+
var isUrl = function (value) {
|
|
28
|
+
var urlRegex = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/g;
|
|
29
|
+
return urlRegex.test(value);
|
|
30
|
+
};
|
|
31
|
+
export var isTrue = function (value) {
|
|
32
|
+
var _value = (value || "").toString().toLowerCase();
|
|
33
|
+
return ["true", "yes", "1", "y", "on", "t"].includes(_value);
|
|
34
|
+
};
|
|
35
|
+
export var isInteger = function (value) { return /^-?[0-9]+$/.test(value + ""); };
|
|
36
|
+
export var isFloat = function (value) {
|
|
37
|
+
return /^-?[0-9]+(?:\.[0-9]+)?$/.test(value + "");
|
|
38
|
+
};
|
|
21
39
|
export var recordIsEmpty = function (record, fields) {
|
|
22
40
|
return fields.reduce(function (isEmptyRecord, f) { return isEmptyRecord && isEmpty(record[f.name]); }, true);
|
|
23
41
|
};
|
|
@@ -25,24 +43,50 @@ export var getRenderedRecordWithErrors = function (_a) {
|
|
|
25
43
|
var record = _a.record, validationErrors = _a.validationErrors;
|
|
26
44
|
return (__assign(__assign({}, record), { _meta: __assign(__assign({}, (record._meta || {})), { localValidationErrors: validationErrors, wasSeen: true }) }));
|
|
27
45
|
};
|
|
46
|
+
var validateDatePattern = function (field, fieldValue) {
|
|
47
|
+
var date = DateTime.fromFormat(fieldValue, field.pattern);
|
|
48
|
+
if (!date.isValid) {
|
|
49
|
+
return "".concat(field.label, " must match the pattern ").concat(field.pattern);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var validations = (_a = {},
|
|
53
|
+
_a[FieldTypes.email] = function (field, fieldValue) {
|
|
54
|
+
if (!isEmail(fieldValue)) {
|
|
55
|
+
return "".concat(field.label, " is not a valid email");
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
_a[FieldTypes.url] = function (field, fieldValue) {
|
|
59
|
+
if (!isUrl(fieldValue)) {
|
|
60
|
+
return "".concat(field.label, " is not a valid url");
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
_a[FieldTypes.integer] = function (field, fieldValue) {
|
|
64
|
+
if (!isInteger(fieldValue)) {
|
|
65
|
+
return "".concat(field.label, " is not a valid integer");
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
_a[FieldTypes.float] = function (field, fieldValue) {
|
|
69
|
+
if (!isFloat(fieldValue)) {
|
|
70
|
+
return "".concat(field.label, " is not a valid float");
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
_a[FieldTypes.date] = validateDatePattern,
|
|
74
|
+
_a[FieldTypes.time] = validateDatePattern,
|
|
75
|
+
_a[FieldTypes.datetime] = validateDatePattern,
|
|
76
|
+
_a);
|
|
28
77
|
export var getRecordErrors = function (_a) {
|
|
29
78
|
var record = _a.record, fields = _a.fields, batchValidationErrors = _a.batchValidationErrors, submittedData = _a.submittedData;
|
|
30
79
|
var submittedRecord = submittedData === null || submittedData === void 0 ? void 0 : submittedData.find(function (r) { return r._meta.id === record._meta.id; });
|
|
31
|
-
var isEmail = function (value) {
|
|
32
|
-
var emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
33
|
-
return emailRegex.test(value);
|
|
34
|
-
};
|
|
35
80
|
var recordHasData = !recordIsEmpty(record, fields);
|
|
36
81
|
if (recordHasData) {
|
|
37
82
|
var recordTemplateValidationErrors = fields.reduce(function (errors, field) {
|
|
38
83
|
var newErrors = __assign({}, errors);
|
|
39
84
|
var fieldValue = record[field.name];
|
|
40
|
-
if (isEmpty(fieldValue)) {
|
|
41
|
-
|
|
42
|
-
newErrors[field.name] = "".concat(field.label, " is required");
|
|
85
|
+
if (isEmpty(fieldValue) && field.isRequired) {
|
|
86
|
+
newErrors[field.name] = "".concat(field.label, " is required");
|
|
43
87
|
}
|
|
44
|
-
else if (field.type
|
|
45
|
-
newErrors[field.name] =
|
|
88
|
+
else if (validations[field.type]) {
|
|
89
|
+
newErrors[field.name] = validations[field.type](field, fieldValue);
|
|
46
90
|
}
|
|
47
91
|
return newErrors;
|
|
48
92
|
}, {});
|
|
@@ -49,29 +49,34 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
49
49
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
53
|
+
var t = {};
|
|
54
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
55
|
+
t[p] = s[p];
|
|
56
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
57
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
58
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
59
|
+
t[p[i]] = s[p[i]];
|
|
60
|
+
}
|
|
61
|
+
return t;
|
|
62
|
+
};
|
|
52
63
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
53
|
-
import { useEffect, useMemo, useRef, useState } from "react";
|
|
54
|
-
import styled
|
|
64
|
+
import { useEffect, useMemo, useRef, useState, useCallback, } from "react";
|
|
65
|
+
import styled from "styled-components";
|
|
55
66
|
import { getTableHeight } from "..";
|
|
56
|
-
import { TooltipProvider } from "../../../common";
|
|
57
67
|
import { TableView as TableViewBase, TableViewCellContainer, TableViewRow, } from "../../../common/Table/TableView";
|
|
58
68
|
import { colors } from "../../../styled/theme/colorPalette";
|
|
59
69
|
import { Div } from "../../../styled/utils";
|
|
60
|
-
import { FieldTypes, } from "../../../types";
|
|
61
70
|
import { useSpreadsheetReviewContext } from "../../SpreadsheetReviewContextProvider";
|
|
62
71
|
import { getUnsubmittedData } from "../utils";
|
|
63
72
|
import { spreadsheetHeaderHeightPx, spreadsheetRowHeightPx } from "./common";
|
|
64
|
-
import {
|
|
65
|
-
import { SpreadsheetInput } from "./common/fields/SpreadsheetInput";
|
|
73
|
+
import { FieldHeader } from "./common/FieldHeader";
|
|
66
74
|
import GlobalStyle from "./GlobalStyle";
|
|
67
75
|
import { SpreadsheetContextProvider, useSpreadsheetContext, } from "./SpreadsheetContextProvider";
|
|
68
76
|
import { SpreadsheetRowNumbers } from "./SpreadsheetRowNumbers";
|
|
77
|
+
import { inputTypes } from "./inputs";
|
|
69
78
|
var SpreadSheetWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: solid 1px ", ";\n border-radius: 8px;\n background: ", ";\n overflow: hidden !important;\n"], ["\n border: solid 1px ", ";\n border-radius: 8px;\n background: ", ";\n overflow: hidden !important;\n"])), function (p) { return p.theme.colors.gray300; }, function (p) { return p.theme.colors.white; });
|
|
70
79
|
var TableView = styled(TableViewBase)(templateObject_2 || (templateObject_2 = __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;\n border-right: 1px solid ", ";\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;\n border-right: 1px solid ", ";\n }\n"])), function (p) { return p.theme.colors.gray50; }, TableViewRow, TableViewCellContainer, function (p) { return p.theme.colors.gray300; });
|
|
71
|
-
var ErrorCount = styled(Div)(function (_a) {
|
|
72
|
-
var _b = _a.theme, colors = _b.colors, c = _b.css;
|
|
73
|
-
return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n color: ", ";\n background: ", ";\n border: solid 1px ", ";\n padding: 4px 7px;\n border-radius: 56px;\n min-width: 24px;\n ", ";\n "], ["\n color: ", ";\n background: ", ";\n border: solid 1px ", ";\n padding: 4px 7px;\n border-radius: 56px;\n min-width: 24px;\n ", ";\n "])), colors.error, colors.red100, colors.error, c.centered);
|
|
74
|
-
});
|
|
75
80
|
var Spreadsheet = function (_a) {
|
|
76
81
|
var isReadOnly = _a.isReadOnly, initialData = _a.initialData, rowWidth = _a.rowWidth, fields = _a.fields, appResponse = _a.appResponse, options = _a.options, _b = _a.onValidateRecord, onValidateRecord = _b === void 0 ? null : _b, submittedData = _a.submittedData, setReviewedData = _a.setReviewedData, _c = _a.onValidateBatch, onValidateBatch = _c === void 0 ? null : _c, _d = _a.highlightFirstRow, highlightFirstRow = _d === void 0 ? false : _d;
|
|
77
82
|
return (_jsx(SpreadsheetContextProvider, __assign({}, {
|
|
@@ -86,19 +91,15 @@ var Spreadsheet = function (_a) {
|
|
|
86
91
|
onValidateBatch: onValidateBatch,
|
|
87
92
|
highlightFirstRow: highlightFirstRow,
|
|
88
93
|
options: options,
|
|
89
|
-
}, { children: _jsx(SpreadSheetWithContext, {}
|
|
94
|
+
}, { children: _jsx(SpreadSheetWithContext, {}) })));
|
|
90
95
|
};
|
|
91
96
|
var SpreadSheetWithContext = function () {
|
|
92
97
|
var _a = useSpreadsheetContext(), isReadOnly = _a.isReadOnly, totalErrors = _a.totalErrors, batchValidationPercentage = _a.batchValidationPercentage;
|
|
93
|
-
var batchValidationProgressUI = (_jsxs(Div, __assign({ body1: true, dflex: true, mb: 22 }, { children: ["Calculating Data...", _jsxs(Div, __assign({ bold: true, ml: 5 }, { children: [batchValidationPercentage, "%"] })
|
|
98
|
+
var batchValidationProgressUI = (_jsxs(Div, __assign({ body1: true, dflex: true, mb: 22 }, { children: ["Calculating Data...", _jsxs(Div, __assign({ bold: true, ml: 5 }, { children: [batchValidationPercentage, "%"] })), _jsxs(Div, __assign({ bold: true, c: colors.error, ml: 5 }, { children: ["(", totalErrors, " errors)"] }))] })));
|
|
94
99
|
return (_jsxs(Div, { children: [_jsx(Div, __assign({ h: 32 }, { children: !isReadOnly &&
|
|
95
100
|
batchValidationPercentage < 100 &&
|
|
96
|
-
batchValidationProgressUI })
|
|
101
|
+
batchValidationProgressUI })), _jsx(SpreadsheetData, {})] }));
|
|
97
102
|
};
|
|
98
|
-
var booleanOptions = [
|
|
99
|
-
{ label: "True", value: true },
|
|
100
|
-
{ label: "False", value: false },
|
|
101
|
-
];
|
|
102
103
|
var SpreadsheetData = function () {
|
|
103
104
|
var _a = useSpreadsheetReviewContext(), appResponse = _a.appResponse, isSubmitting = _a.isSubmitting;
|
|
104
105
|
var _b = useSpreadsheetContext(), fields = _b.fields, data = _b.data, isLoading = _b.isLoading, isReadOnly = _b.isReadOnly, rowWidth = _b.rowWidth, sortByFieldErrors = _b.sortByFieldErrors, setSortByFieldErrors = _b.setSortByFieldErrors, validateRenderedRecords = _b.validateRenderedRecords, setIsLoading = _b.setIsLoading;
|
|
@@ -112,7 +113,7 @@ var SpreadsheetData = function () {
|
|
|
112
113
|
setSortByFieldErrors(null);
|
|
113
114
|
}, 10);
|
|
114
115
|
}, [sortByFieldErrors]);
|
|
115
|
-
var onSectionRendered = function (_a) {
|
|
116
|
+
var onSectionRendered = useCallback(function (_a) {
|
|
116
117
|
var data = _a.data;
|
|
117
118
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
118
119
|
return __generator(this, function (_b) {
|
|
@@ -128,59 +129,29 @@ var SpreadsheetData = function () {
|
|
|
128
129
|
return [2 /*return*/];
|
|
129
130
|
});
|
|
130
131
|
});
|
|
131
|
-
};
|
|
132
|
+
}, [isSortingTableData]);
|
|
132
133
|
var columns = useMemo(function () {
|
|
133
|
-
return fields.map(function (
|
|
134
|
-
Header: function () {
|
|
135
|
-
var columnErrorCounts = useSpreadsheetContext().columnErrorCounts;
|
|
136
|
-
var fieldErrorCount = columnErrorCounts[f.name];
|
|
137
|
-
return (_jsxs(Div, __assign({ p: "0 16px", spaceBetween: true, w100: true, alignCenter: true }, { children: [_jsxs(Div, __assign({ truncateText: true }, { children: [f.label, f.isRequired && "*"] }), void 0), fieldErrorCount && (_jsx(TooltipProvider, __assign({ mr: 3, w: 35, tooltip: "Sort by ".concat(f.label, " errors") }, { children: _jsx(ErrorCount, __assign({ onClick: function () { return setSortByFieldErrors(f.name); } }, { children: _jsx(Div, __assign({ centered: true }, { children: _jsx(Div, __assign({ w: 35, textAlignCenter: true, label3: true, truncateText: true }, { children: fieldErrorCount }), void 0) }), void 0) }), void 0) }), void 0))] }), void 0));
|
|
138
|
-
},
|
|
134
|
+
return fields.map(function (field) { return ({
|
|
135
|
+
Header: function () { return (_jsx(FieldHeader, { field: field, sortByFieldErrors: setSortByFieldErrors })); },
|
|
139
136
|
Content: function (record) {
|
|
140
|
-
var
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
var res = __assign({}, record);
|
|
144
|
-
delete res.rowIndex;
|
|
145
|
-
return res;
|
|
146
|
-
})(),
|
|
147
|
-
};
|
|
148
|
-
switch (f.type) {
|
|
149
|
-
case FieldTypes.boolean:
|
|
150
|
-
return (_jsx(SpreadsheetAutocomplete, __assign({ isInputDisabled: true }, props, { options: booleanOptions }), void 0));
|
|
151
|
-
case FieldTypes.enum:
|
|
152
|
-
return (_jsx(SpreadsheetAutocomplete, __assign({}, props, { options: f === null || f === void 0 ? void 0 : f.options.map(function (o) { return ({ label: o, value: o }); }) }), void 0));
|
|
153
|
-
case FieldTypes.integer:
|
|
154
|
-
return (_jsx(SpreadsheetInput, __assign({}, props, { type: "number", step: "1", onKeyDown: function (event) {
|
|
155
|
-
if (event.key === "." ||
|
|
156
|
-
event.key === "," ||
|
|
157
|
-
event.key === "e") {
|
|
158
|
-
event.preventDefault();
|
|
159
|
-
}
|
|
160
|
-
} }), void 0));
|
|
161
|
-
case FieldTypes.float:
|
|
162
|
-
return (_jsx(SpreadsheetInput, __assign({}, props, { type: "number", onKeyDown: function (event) {
|
|
163
|
-
if (event.key === "e") {
|
|
164
|
-
event.preventDefault();
|
|
165
|
-
}
|
|
166
|
-
} }), void 0));
|
|
167
|
-
case FieldTypes.string:
|
|
168
|
-
return _jsx(SpreadsheetInput, __assign({}, props, { type: "email" }), void 0);
|
|
169
|
-
case FieldTypes.email:
|
|
170
|
-
return _jsx(SpreadsheetInput, __assign({}, props, { type: "text" }), void 0);
|
|
171
|
-
}
|
|
137
|
+
var Input = inputTypes[field.type];
|
|
138
|
+
var rowIndex = record.rowIndex, recordProp = __rest(record, ["rowIndex"]);
|
|
139
|
+
return (_jsx(Input, { fieldType: field.type, name: field.name, options: field.options, record: recordProp }));
|
|
172
140
|
},
|
|
173
141
|
}); });
|
|
174
142
|
}, [fields]);
|
|
175
|
-
var unsubmittedData = getUnsubmittedData(data, appResponse);
|
|
143
|
+
var unsubmittedData = useMemo(function () { return getUnsubmittedData(data, appResponse); }, [
|
|
144
|
+
data,
|
|
145
|
+
appResponse,
|
|
146
|
+
]);
|
|
176
147
|
var spreadsheetHeight = getTableHeight({
|
|
177
148
|
headerHeight: spreadsheetHeaderHeightPx,
|
|
178
149
|
rowHeight: spreadsheetRowHeightPx,
|
|
179
150
|
dataCount: unsubmittedData.length,
|
|
180
|
-
|
|
151
|
+
minimumTableHeight: 450,
|
|
181
152
|
maxVisibleRows: 12,
|
|
182
153
|
});
|
|
183
|
-
return (_jsxs(_Fragment, { children: [_jsx(GlobalStyle, {}
|
|
154
|
+
return (_jsxs(_Fragment, { children: [_jsx(GlobalStyle, {}), !isSortingTableData && !isSubmitting && (_jsxs(SpreadSheetWrapper, __assign({ h: spreadsheetHeight, dflex: true, w: 1400 }, { children: [_jsx(SpreadsheetRowNumbers, { spreadsheetHasXScroll: rowWidth > 1, scrollTop: scrollTop, height: spreadsheetHeight }), _jsx(TableView, { tableHeadersHeight: spreadsheetHeaderHeightPx, highlightFirstRow: isReadOnly, rowHeight: spreadsheetRowHeightPx, onSectionRendered: onSectionRendered, onTableScroll: function (_scrollTop) { return setScrollTop(_scrollTop); }, h: spreadsheetHeight, rowWidth: rowWidth, data: unsubmittedData, columns: columns, isLoading: isLoading })] })))] }));
|
|
184
155
|
};
|
|
185
156
|
export { Spreadsheet };
|
|
186
|
-
var templateObject_1, templateObject_2
|
|
157
|
+
var templateObject_1, templateObject_2;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { SpreadsheetAutocomplete, } from "../common/fields/SpeadsheetAutocomplete";
|
|
14
|
+
var booleanOptions = [
|
|
15
|
+
{ label: "True", value: true },
|
|
16
|
+
{ label: "False", value: false },
|
|
17
|
+
];
|
|
18
|
+
export var BooleanInput = function (props) { return (_jsx(SpreadsheetAutocomplete, __assign({ isInputDisabled: true }, props, { options: booleanOptions }))); };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { SpreadsheetInput, } from "../common/fields/SpreadsheetInput";
|
|
14
|
+
export var EmailInput = function (props) { return (_jsx(SpreadsheetInput, __assign({}, props, { type: "email" }))); };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { SpreadsheetAutocompleteProps } from "../common/fields/SpeadsheetAutocomplete";
|
|
3
|
+
export declare type EnumInputProps = {
|
|
4
|
+
options: any;
|
|
5
|
+
} & SpreadsheetAutocompleteProps;
|
|
6
|
+
export declare const EnumInput: React.FC<EnumInputProps>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import { useMemo } from "react";
|
|
25
|
+
import { SpreadsheetAutocomplete, } from "../common/fields/SpeadsheetAutocomplete";
|
|
26
|
+
export var EnumInput = function (_a) {
|
|
27
|
+
var options = _a.options, props = __rest(_a, ["options"]);
|
|
28
|
+
var mapped = useMemo(function () { return options === null || options === void 0 ? void 0 : options.map(function (o) { return ({ label: o, value: o }); }); }, [options]);
|
|
29
|
+
return _jsx(SpreadsheetAutocomplete, __assign({}, props, { options: mapped }));
|
|
30
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { SpreadsheetInput, } from "../common/fields/SpreadsheetInput";
|
|
14
|
+
export var FloatInput = function (props) {
|
|
15
|
+
return _jsx(SpreadsheetInput, __assign({}, props, { type: "text" }));
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { SpreadsheetInput, } from "../common/fields/SpreadsheetInput";
|
|
14
|
+
export var IntegerInput = function (props) {
|
|
15
|
+
return _jsx(SpreadsheetInput, __assign({}, props, { type: "text", step: "1" }));
|
|
16
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { SpreadsheetInput, } from "../common/fields/SpreadsheetInput";
|
|
14
|
+
export var StringInput = function (props) { return (_jsx(SpreadsheetInput, __assign({}, props, { type: "text" }))); };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const inputTypes: {
|
|
3
|
+
boolean: import("react").FC<import("../common/fields/SpeadsheetAutocomplete").SpreadsheetAutocompleteProps>;
|
|
4
|
+
email: import("react").FC<import("../common/fields/SpreadsheetInput").SpreadsheetTextInputArgs>;
|
|
5
|
+
enum: import("react").FC<import("./EnumInput").EnumInputProps>;
|
|
6
|
+
float: import("react").FC<import("../common/fields/SpreadsheetInput").SpreadsheetTextInputArgs>;
|
|
7
|
+
integer: import("react").FC<import("../common/fields/SpreadsheetInput").SpreadsheetTextInputArgs>;
|
|
8
|
+
string: import("react").FC<import("../common/fields/SpreadsheetInput").SpreadsheetTextInputArgs>;
|
|
9
|
+
url: import("react").FC<import("../common/fields/SpreadsheetInput").SpreadsheetTextInputArgs>;
|
|
10
|
+
date: import("react").FC<import("../common/fields/SpreadsheetInput").SpreadsheetTextInputArgs>;
|
|
11
|
+
datetime: import("react").FC<import("../common/fields/SpreadsheetInput").SpreadsheetTextInputArgs>;
|
|
12
|
+
time: import("react").FC<import("../common/fields/SpreadsheetInput").SpreadsheetTextInputArgs>;
|
|
13
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { FieldTypes } from "../../../../types";
|
|
3
|
+
import { BooleanInput } from "./Boolean";
|
|
4
|
+
import { EmailInput } from "./EmailInput";
|
|
5
|
+
import { EnumInput } from "./EnumInput";
|
|
6
|
+
import { FloatInput } from "./FloatInput";
|
|
7
|
+
import { IntegerInput } from "./IntegerInput";
|
|
8
|
+
import { StringInput } from "./StringInput";
|
|
9
|
+
export var inputTypes = (_a = {},
|
|
10
|
+
_a[FieldTypes.boolean] = BooleanInput,
|
|
11
|
+
_a[FieldTypes.email] = EmailInput,
|
|
12
|
+
_a[FieldTypes.enum] = EnumInput,
|
|
13
|
+
_a[FieldTypes.float] = FloatInput,
|
|
14
|
+
_a[FieldTypes.integer] = IntegerInput,
|
|
15
|
+
_a[FieldTypes.string] = StringInput,
|
|
16
|
+
_a[FieldTypes.url] = StringInput,
|
|
17
|
+
_a[FieldTypes.date] = StringInput,
|
|
18
|
+
_a[FieldTypes.datetime] = StringInput,
|
|
19
|
+
_a[FieldTypes.time] = StringInput,
|
|
20
|
+
_a);
|
|
@@ -10,6 +10,6 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
export var fileExtensionIcon = (_jsxs("svg", __assign({ width: "36", height: "44", viewBox: "0 0 36 44", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M33 43.0001H3C1.89543 43.0001 1 42.1046 1 41.0001V3.00006C1 1.89549 1.89543 1.00006 3 1.00006H16.655C19.0148 1.00006 21.2542 2.04193 22.7743 3.84697L33.1193 16.1317C34.3339 17.5741 35 19.3991 35 21.2848V41.0001C35 42.1046 34.1046 43.0001 33 43.0001Z", fill: "#C2CEEC", stroke: "#333333", strokeWidth: "2" }
|
|
14
|
-
export var closeIconWithCircle = (_jsxs("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("circle", { cx: "12", cy: "12", r: "11", stroke: "#989898", strokeWidth: "2" }
|
|
15
|
-
export var errorIcon = (_jsxs("svg", __assign({ width: "76", height: "64", viewBox: "0 0 76 64", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M38 3.95611L72.0101 62H3.98992L38 3.95611Z", stroke: "black", strokeWidth: "4" }
|
|
13
|
+
export var fileExtensionIcon = (_jsxs("svg", __assign({ width: "36", height: "44", viewBox: "0 0 36 44", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M33 43.0001H3C1.89543 43.0001 1 42.1046 1 41.0001V3.00006C1 1.89549 1.89543 1.00006 3 1.00006H16.655C19.0148 1.00006 21.2542 2.04193 22.7743 3.84697L33.1193 16.1317C34.3339 17.5741 35 19.3991 35 21.2848V41.0001C35 42.1046 34.1046 43.0001 33 43.0001Z", fill: "#C2CEEC", stroke: "#333333", strokeWidth: "2" }), _jsx("path", { d: "M33 43.0004H3C1.89543 43.0004 1 42.105 1 41.0004V3.0004C1 1.89583 1.89543 1.0004 3 1.0004H16.8421C18.499 1.0004 19.8421 2.34354 19.8421 4.0004V14.5004C19.8421 15.8811 20.9614 17.0004 22.3421 17.0004H32C33.6569 17.0004 35 18.3435 35 20.0004V41.0004C35 42.105 34.1046 43.0004 33 43.0004Z", fill: "white", stroke: "#333333", strokeWidth: "2" })] })));
|
|
14
|
+
export var closeIconWithCircle = (_jsxs("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("circle", { cx: "12", cy: "12", r: "11", stroke: "#989898", strokeWidth: "2" }), _jsx("path", { d: "M9 9L15 15", stroke: "#989898", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M9 15L15 9", stroke: "#989898", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })] })));
|
|
15
|
+
export var errorIcon = (_jsxs("svg", __assign({ width: "76", height: "64", viewBox: "0 0 76 64", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M38 3.95611L72.0101 62H3.98992L38 3.95611Z", stroke: "black", strokeWidth: "4" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M40.5 26.5C40.5 25.1193 39.3807 24 38 24C36.6193 24 35.5 25.1193 35.5 26.5V39.8333C35.5 41.214 36.6193 42.3333 38 42.3333C39.3807 42.3333 40.5 41.214 40.5 39.8333V26.5ZM40.5 50.5C40.5 49.1193 39.3807 48 38 48C36.6193 48 35.5 49.1193 35.5 50.5V51.8333C35.5 53.214 36.6193 54.3333 38 54.3333C39.3807 54.3333 40.5 53.214 40.5 51.8333V50.5Z", fill: "black" })] })));
|
|
@@ -8,8 +8,8 @@ declare type GetTableHeightArgs = {
|
|
|
8
8
|
headerHeight: number;
|
|
9
9
|
rowHeight: number;
|
|
10
10
|
maxVisibleRows: number;
|
|
11
|
-
|
|
11
|
+
minimumTableHeight?: number;
|
|
12
12
|
dataCount: number;
|
|
13
13
|
};
|
|
14
|
-
export declare const getTableHeight: ({ headerHeight, rowHeight, maxVisibleRows,
|
|
14
|
+
export declare const getTableHeight: ({ headerHeight, rowHeight, maxVisibleRows, minimumTableHeight, dataCount, }: GetTableHeightArgs) => number;
|
|
15
15
|
export {};
|
|
@@ -8,6 +8,6 @@ export var baseUrls = {
|
|
|
8
8
|
};
|
|
9
9
|
var MINIMUM_TABLE_HEIGHT = 375;
|
|
10
10
|
export var getTableHeight = function (_a) {
|
|
11
|
-
var _b = _a.headerHeight, headerHeight = _b === void 0 ? defaultTableHeaderHeightPx : _b, _c = _a.rowHeight, rowHeight = _c === void 0 ? defaultTableRowHeightPx : _c, _d = _a.maxVisibleRows, maxVisibleRows = _d === void 0 ? 7 : _d, _e = _a.
|
|
12
|
-
return Math.max(headerHeight + rowHeight * Math.min(dataCount, maxVisibleRows + 0.5),
|
|
11
|
+
var _b = _a.headerHeight, headerHeight = _b === void 0 ? defaultTableHeaderHeightPx : _b, _c = _a.rowHeight, rowHeight = _c === void 0 ? defaultTableRowHeightPx : _c, _d = _a.maxVisibleRows, maxVisibleRows = _d === void 0 ? 7 : _d, _e = _a.minimumTableHeight, minimumTableHeight = _e === void 0 ? MINIMUM_TABLE_HEIGHT : _e, dataCount = _a.dataCount;
|
|
12
|
+
return Math.max(headerHeight + rowHeight * Math.min(dataCount, maxVisibleRows + 0.5), minimumTableHeight);
|
|
13
13
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { ImporterOptions, OnSubmit, OnValidateBatch, OnValidateRecord } from "../types";
|
|
2
|
+
import { FormatRecord, ImporterOptions, OnSubmit, OnValidateBatch, OnValidateRecord } from "../types";
|
|
3
3
|
declare type LayoutProps = {
|
|
4
4
|
zIndex: number;
|
|
5
5
|
};
|
|
@@ -8,12 +8,14 @@ declare type Props = {
|
|
|
8
8
|
templateSlug: string;
|
|
9
9
|
apiToken: string;
|
|
10
10
|
options: ImporterOptions;
|
|
11
|
+
formatRecord: FormatRecord;
|
|
11
12
|
onValidateRecord?: OnValidateRecord;
|
|
12
13
|
onValidateBatch?: OnValidateBatch;
|
|
13
14
|
onSubmit?: OnSubmit;
|
|
14
15
|
onClose: any;
|
|
16
|
+
previewMode?: boolean;
|
|
15
17
|
};
|
|
16
|
-
declare const Importer: ({ templateSlug, apiToken, onSubmit, onValidateRecord, onValidateBatch, options, onClose, }: Props) => JSX.Element;
|
|
18
|
+
declare const Importer: ({ templateSlug, apiToken, onSubmit, onValidateRecord, onValidateBatch, formatRecord, options, onClose, }: Props) => JSX.Element;
|
|
17
19
|
export * from "./common/Spreadsheet";
|
|
18
20
|
export * from "./common/utils";
|
|
19
21
|
export * from "./SpreadsheetReviewContextProvider";
|