fuse-importer 0.0.8-testing → 0.1.1-testing
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.js +63 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +68 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.js +58 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcherContext.js +21 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +23 -0
- package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +61 -0
- package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.js +55 -0
- package/lib/esm/Importer/Matcher/common/icons/index.js +14 -0
- package/lib/esm/Importer/Matcher/common/index.js +39 -0
- package/lib/esm/Importer/Matcher/common/types.js +9 -0
- package/lib/esm/Importer/Matcher/index.js +22 -0
- package/lib/esm/Importer/PreviewFirstTime.js +81 -0
- package/lib/esm/Importer/PreviewModeBanner.js +19 -0
- package/lib/esm/Importer/Review/AppResponseModal.js +35 -0
- package/lib/esm/Importer/Review/ReviewContextProvider.js +318 -0
- package/lib/esm/Importer/Review/ReviewWithContext.js +33 -0
- package/lib/esm/Importer/Review/index.js +4 -0
- package/lib/esm/Importer/Stepper/ConfirmCloseModal.js +24 -0
- package/lib/esm/Importer/Stepper/Step.js +19 -0
- package/lib/esm/Importer/Stepper/StepIndex.js +27 -0
- package/lib/esm/Importer/Stepper/StepperSubmitModal.js +24 -0
- package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.js +31 -0
- package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.js +33 -0
- package/lib/esm/Importer/Stepper/common/icons.js +18 -0
- package/lib/esm/Importer/Stepper/index.js +118 -0
- package/lib/esm/Importer/TrialModeBanner.js +22 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/DragAndDropImporter.styles.js +11 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +123 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/ImporterSectionHeader.styles.js +11 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +44 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/backgrounds.js +14 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +45 -0
- package/lib/esm/Importer/Uploader/HeaderButtons.js +28 -0
- package/lib/esm/Importer/Uploader/HeadersPreview.js +44 -0
- package/lib/esm/Importer/Uploader/UploaderContextProvider.js +27 -0
- package/lib/esm/Importer/Uploader/index.js +13 -0
- package/lib/esm/Importer/common/AppLoading.js +24 -0
- package/lib/esm/Importer/common/Footer.js +17 -0
- package/lib/esm/Importer/common/FuseApi.js +48 -0
- package/lib/esm/Importer/common/GlobalStyle.js +7 -0
- package/lib/esm/Importer/common/ImporterFonts.js +5 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.js +56 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +176 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.js +45 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/common/index.js +63 -0
- package/lib/esm/Importer/common/Spreadsheet/common/types.js +5 -0
- package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.js +66 -0
- package/lib/esm/Importer/common/Spreadsheet/components/GlobalStyle.js +9 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +110 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +186 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowNumbers.js +55 -0
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +19 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +43 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +74 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.d.ts +2 -1
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +114 -0
- 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/Boolean.js +18 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EnumInput.js +30 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/FloatInput.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/IntegerInput.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/StringInput.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.d.ts +1 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.js +20 -0
- package/lib/esm/Importer/common/Spreadsheet/hooks.js +245 -0
- package/lib/esm/Importer/common/Spreadsheet/index.js +119 -0
- package/lib/esm/Importer/common/Spreadsheet/styles.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/index.js +47 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.js +236 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/index.js +202 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/validators.js +181 -0
- package/lib/esm/Importer/common/icons/index.js +18 -0
- package/lib/esm/Importer/common/index.js +13 -0
- package/lib/esm/Importer/common/theme.js +19 -0
- package/lib/esm/Importer/common/utils.js +100 -0
- package/lib/esm/Importer/contexts/ImporterContextProvider.js +247 -0
- package/lib/esm/Importer/data/index.js +172 -0
- package/lib/esm/Importer/index.js +28 -0
- package/lib/esm/api/index.js +93 -0
- package/lib/esm/api/responseHandlers.js +49 -0
- package/lib/esm/common/AppLoadingContextProvider/AppLoadingUI.js +26 -0
- package/lib/esm/common/AppLoadingContextProvider/index.js +25 -0
- package/lib/esm/common/ConfirmationModal.js +19 -0
- package/lib/esm/common/Modal.js +31 -0
- package/lib/esm/common/Spinner.js +41 -0
- package/lib/esm/common/Table/Pagination/icons.js +42 -0
- package/lib/esm/common/Table/Pagination/index.js +32 -0
- package/lib/esm/common/Table/TableActions/DeleteSelectedRows.js +50 -0
- package/lib/esm/common/Table/TableActions/ExportData.js +23 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +47 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.styles.js +24 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/functions.js +35 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/index.js +1 -0
- package/lib/esm/common/Table/TableActions/RowFilters.js +42 -0
- package/lib/esm/common/Table/TableActions/SearchRows.js +72 -0
- package/lib/esm/common/Table/TableActions/TableActions.js +35 -0
- package/lib/esm/common/Table/TableActions/TableActions.styles.js +18 -0
- package/lib/esm/common/Table/TableActions/TransformedRecordsCount.js +83 -0
- package/lib/esm/common/Table/TableActions/common.js +1 -0
- package/lib/esm/common/Table/TableActions/hooks.js +41 -0
- package/lib/esm/common/Table/TableActions/icons.js +17 -0
- package/lib/esm/common/Table/TableActions/index.js +1 -0
- package/lib/esm/common/Table/TableDataProvider.js +127 -0
- package/lib/esm/common/Table/TableView/TableHeaders.js +69 -0
- package/lib/esm/common/Table/TableView/TableRows/TableRow.js +57 -0
- package/lib/esm/common/Table/TableView/TableRows/index.js +48 -0
- package/lib/esm/common/Table/TableView/common/index.js +37 -0
- package/lib/esm/common/Table/TableView/index.js +132 -0
- package/lib/esm/common/Table/TableView/types.js +1 -0
- package/lib/esm/common/Table/icons.js +15 -0
- package/lib/esm/common/Table/index.js +140 -0
- package/lib/esm/common/Table/useReorderRows.js +83 -0
- package/lib/esm/common/Toast.js +69 -0
- package/lib/esm/common/TooltipProvider.js +57 -0
- package/lib/esm/common/buttons.js +97 -0
- package/lib/esm/common/columnsTransformations.js +94 -0
- package/lib/esm/common/columnsValidations.d.ts +1 -27
- package/lib/esm/common/columnsValidations.js +401 -0
- package/lib/esm/common/datePatterns.d.ts +26 -0
- package/lib/esm/common/datePatterns.js +327 -0
- package/lib/esm/common/icons/index.js +30 -0
- package/lib/esm/common/index.d.ts +1 -0
- package/lib/esm/common/index.js +46 -0
- package/lib/esm/common/inputs/Autocomplete.js +110 -0
- package/lib/esm/common/inputs/Checkbox.js +53 -0
- package/lib/esm/common/inputs/SelectMenu.js +74 -0
- package/lib/esm/common/inputs/TextInput.js +89 -0
- package/lib/esm/common/inputs/index.js +5 -0
- package/lib/esm/common/inputs/tooltip.js +38 -0
- package/lib/esm/common/logo.js +13 -0
- package/lib/esm/hooks/index.d.ts +1 -0
- package/lib/esm/hooks/index.js +16 -0
- package/lib/esm/index.js +218 -0
- package/lib/esm/locales/de.js +126 -0
- package/lib/esm/locales/en.js +126 -0
- package/lib/esm/locales/es.js +126 -0
- package/lib/esm/locales/fr.js +126 -0
- package/lib/esm/locales/index.js +4 -0
- package/lib/esm/styled/fontsURL.js +27 -0
- package/lib/esm/styled/index.js +3 -0
- package/lib/esm/styled/theme/animations.js +9 -0
- package/lib/esm/styled/theme/colorPalette.js +109 -0
- package/lib/esm/styled/theme/debugCss.js +16 -0
- package/lib/esm/styled/theme/dimensionsCss.js +20 -0
- package/lib/esm/styled/theme/fontCss.js +17 -0
- package/lib/esm/styled/theme/globalCss.js +26 -0
- package/lib/esm/styled/theme/index.js +33 -0
- package/lib/esm/styled/theme/layoutCss.js +26 -0
- package/lib/esm/styled/theme/mediaQueries.js +4 -0
- package/lib/esm/styled/theme/positionCss.js +27 -0
- package/lib/esm/styled/theme/textCss.js +18 -0
- package/lib/esm/styled/theme/textStyles.js +27 -0
- package/lib/esm/styled/themeType.js +6 -0
- package/lib/esm/styled/utils.js +17 -0
- package/lib/esm/types.d.ts +7 -6
- package/lib/esm/types.js +65 -0
- package/lib/esm/utils/hooks/useWindowSize.js +23 -0
- package/lib/esm/utils/hooks.js +1 -0
- package/lib/esm/utils/index.d.ts +1 -0
- package/lib/esm/utils/index.js +41 -0
- package/lib/main.js +6 -6
- package/package.json +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import axios from "axios";
|
|
2
|
+
import { handleError, handleSuccess } from "./responseHandlers";
|
|
3
|
+
import Qs from "qs";
|
|
4
|
+
import { isString } from "../utils";
|
|
5
|
+
var api = axios.create({
|
|
6
|
+
timeout: 20000,
|
|
7
|
+
headers: {
|
|
8
|
+
Accept: "application/json",
|
|
9
|
+
"Content-Type": "application/json",
|
|
10
|
+
"X-Requested-With": "XmlHttpRequest",
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
var ls = typeof window !== "undefined" ? localStorage : null;
|
|
14
|
+
var ttlIsExpired = function (ttl) { return new Date().getTime() > parseInt(ttl); };
|
|
15
|
+
var getCacheKeys = function (config) {
|
|
16
|
+
var key = "".concat(config.method, ":").concat(config.url);
|
|
17
|
+
var ttlKey = "".concat(key, ":TTL");
|
|
18
|
+
return { key: key, ttlKey: ttlKey };
|
|
19
|
+
};
|
|
20
|
+
var getTTL = function (ttl) {
|
|
21
|
+
var currentTime = new Date().getTime();
|
|
22
|
+
if (ttl)
|
|
23
|
+
return currentTime + ttl;
|
|
24
|
+
var anHour = 1000 * 60 * 60;
|
|
25
|
+
return currentTime + anHour * 24;
|
|
26
|
+
};
|
|
27
|
+
var requestInterceptor = {
|
|
28
|
+
onFulFilled: function (_config) {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
_config.paramsSerializer = function (params) {
|
|
31
|
+
return Qs.stringify(params, {
|
|
32
|
+
arrayFormat: config.arrayFormat ? config.arrayFormat : "brackets",
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var authToken = (_a = _config.authToken) !== null && _a !== void 0 ? _a : (_b = JSON.parse(ls === null || ls === void 0 ? void 0 : ls.getItem("user"))) === null || _b === void 0 ? void 0 : _b.token;
|
|
36
|
+
var config = Object.assign(_config);
|
|
37
|
+
if (authToken)
|
|
38
|
+
config.headers.Authorization = "Bearer ".concat(authToken);
|
|
39
|
+
if (!config.toPublicApi)
|
|
40
|
+
config.url = "".concat(process.env.REACT_APP_API_BASE_URL || "").concat(config.url);
|
|
41
|
+
if (config.cache) {
|
|
42
|
+
var _c = getCacheKeys(config), key = _c.key, ttlKey = _c.ttlKey;
|
|
43
|
+
var ttl = ls === null || ls === void 0 ? void 0 : ls.getItem(ttlKey);
|
|
44
|
+
if (config.refresh || (ttl && ttlIsExpired(ttl))) {
|
|
45
|
+
ls === null || ls === void 0 ? void 0 : ls.removeItem(key);
|
|
46
|
+
ls === null || ls === void 0 ? void 0 : ls.removeItem(ttlKey);
|
|
47
|
+
}
|
|
48
|
+
var data = ls === null || ls === void 0 ? void 0 : ls.getItem(key);
|
|
49
|
+
if (data) {
|
|
50
|
+
return {
|
|
51
|
+
headers: {},
|
|
52
|
+
method: config.method,
|
|
53
|
+
url: "ls-cache:".concat(config.url),
|
|
54
|
+
cachedData: JSON.parse(data),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return config;
|
|
59
|
+
},
|
|
60
|
+
onRejected: function (err) {
|
|
61
|
+
return Promise.reject(err);
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
var responseInterceptor = {
|
|
65
|
+
onFulFilled: function (res) {
|
|
66
|
+
var _config = res.config;
|
|
67
|
+
var config = Object.assign(_config);
|
|
68
|
+
if (config.cache) {
|
|
69
|
+
var _a = getCacheKeys(config), key = _a.key, ttlKey = _a.ttlKey;
|
|
70
|
+
ls === null || ls === void 0 ? void 0 : ls.setItem(ttlKey, JSON.stringify(getTTL(config.ttl)));
|
|
71
|
+
ls === null || ls === void 0 ? void 0 : ls.setItem(key, JSON.stringify(res.data));
|
|
72
|
+
}
|
|
73
|
+
if (_config.successMsg && [200, 201].includes(res.status)) {
|
|
74
|
+
handleSuccess(isString(_config.successMsg)
|
|
75
|
+
? _config.successMsg.toString()
|
|
76
|
+
: _config.successMsg(res.data));
|
|
77
|
+
}
|
|
78
|
+
if (config.withReq)
|
|
79
|
+
return res;
|
|
80
|
+
return res;
|
|
81
|
+
},
|
|
82
|
+
onRejected: function (err) {
|
|
83
|
+
var _a, _b, _c;
|
|
84
|
+
if ((_a = err === null || err === void 0 ? void 0 : err.config) === null || _a === void 0 ? void 0 : _a.cachedData) {
|
|
85
|
+
return Promise.resolve((_b = err === null || err === void 0 ? void 0 : err.config) === null || _b === void 0 ? void 0 : _b.cachedData);
|
|
86
|
+
}
|
|
87
|
+
handleError(err, (_c = err === null || err === void 0 ? void 0 : err.config) === null || _c === void 0 ? void 0 : _c.errorMsg);
|
|
88
|
+
return Promise.reject(err);
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
api.interceptors.request.use(requestInterceptor.onFulFilled, requestInterceptor.onRejected);
|
|
92
|
+
api.interceptors.response.use(responseInterceptor.onFulFilled, responseInterceptor.onRejected);
|
|
93
|
+
export { api };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { addToast } from "../common/Toast";
|
|
2
|
+
import { isString } from "../utils";
|
|
3
|
+
var getErrorMessage = function (response) {
|
|
4
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
5
|
+
if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.errors)
|
|
6
|
+
return (_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.errors;
|
|
7
|
+
else if ((_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.error_message)
|
|
8
|
+
return (_d = response === null || response === void 0 ? void 0 : response.data) === null || _d === void 0 ? void 0 : _d.error_message;
|
|
9
|
+
else if ((_e = response === null || response === void 0 ? void 0 : response.data) === null || _e === void 0 ? void 0 : _e.message)
|
|
10
|
+
return (_f = response === null || response === void 0 ? void 0 : response.data) === null || _f === void 0 ? void 0 : _f.message;
|
|
11
|
+
else if (isString((_h = (_g = response === null || response === void 0 ? void 0 : response.data) === null || _g === void 0 ? void 0 : _g.error) === null || _h === void 0 ? void 0 : _h.message)) {
|
|
12
|
+
return (_k = (_j = response === null || response === void 0 ? void 0 : response.data) === null || _j === void 0 ? void 0 : _j.error) === null || _k === void 0 ? void 0 : _k.message;
|
|
13
|
+
}
|
|
14
|
+
else if (isString((_l = response === null || response === void 0 ? void 0 : response.data) === null || _l === void 0 ? void 0 : _l.error))
|
|
15
|
+
return (_m = response === null || response === void 0 ? void 0 : response.data) === null || _m === void 0 ? void 0 : _m.error;
|
|
16
|
+
return "An error ocurred, please try again later";
|
|
17
|
+
};
|
|
18
|
+
export var handleSuccess = function (msg) {
|
|
19
|
+
addToast(msg, "success");
|
|
20
|
+
};
|
|
21
|
+
export var handleError = function (err, errMsg) {
|
|
22
|
+
if (errMsg === void 0) { errMsg = null; }
|
|
23
|
+
var msg = "Connection Error";
|
|
24
|
+
var errorType = "";
|
|
25
|
+
if (errMsg)
|
|
26
|
+
msg = errMsg;
|
|
27
|
+
else if (err.response) {
|
|
28
|
+
switch (err.response.status) {
|
|
29
|
+
case 500:
|
|
30
|
+
msg = "An error has occurred on our server. Please try again later";
|
|
31
|
+
errorType = "error";
|
|
32
|
+
break;
|
|
33
|
+
case 422:
|
|
34
|
+
errorType = "error";
|
|
35
|
+
msg = getErrorMessage(err.response);
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
msg = getErrorMessage(err.response);
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// handle error message
|
|
43
|
+
if (errorType) {
|
|
44
|
+
addToast(msg, "error");
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
addToast(msg);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
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, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
import styled from "styled-components";
|
|
18
|
+
import { Div } from "../../styled/utils";
|
|
19
|
+
import { Spinner } from "../Spinner";
|
|
20
|
+
var LoadingBackdrop = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: fixed;\n top: 0px;\n left: 0px;\n margin: 0px;\n width: 100vw;\n height: 100vh;\n z-index: 99999999;\n background: ", ";\n opacity: 0.2;\n"], ["\n position: fixed;\n top: 0px;\n left: 0px;\n margin: 0px;\n width: 100vw;\n height: 100vh;\n z-index: 99999999;\n background: ", ";\n opacity: 0.2;\n"])), function (props) { return props.theme.colors.gray200; });
|
|
21
|
+
var ModalContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n top: 0px;\n left: 0px;\n margin: 0px;\n position: fixed;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000000000;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n div {\n pointer-events: auto;\n }\n"], ["\n top: 0px;\n left: 0px;\n margin: 0px;\n position: fixed;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000000000;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n div {\n pointer-events: auto;\n }\n"])));
|
|
22
|
+
var LoaderContainer = styled(ModalContainer)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n pointer-events: none;\n"], ["\n pointer-events: none;\n"])));
|
|
23
|
+
export var AppLoadingUI = function () {
|
|
24
|
+
return (_jsxs(_Fragment, { children: [_jsx(LoadingBackdrop, {}), _jsx(LoaderContainer, { children: _jsx(Div, __assign({ w: 300 }, { children: _jsx(Div, __assign({ pRelative: true }, { children: _jsx(Spinner, {}) })) })) })] }));
|
|
25
|
+
};
|
|
26
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
@@ -0,0 +1,25 @@
|
|
|
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, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { createContext, useContext, useState } from "react";
|
|
14
|
+
import { AppLoadingUI } from "./AppLoadingUI";
|
|
15
|
+
export var AppLoadingContext = createContext({});
|
|
16
|
+
export var AppLoadingContextProvider = function (_a) {
|
|
17
|
+
var children = _a.children;
|
|
18
|
+
var _b = useState(false), isLoadingApp = _b[0], setIsLoadingApp = _b[1];
|
|
19
|
+
var value = {
|
|
20
|
+
isLoadingApp: isLoadingApp,
|
|
21
|
+
setIsLoadingApp: setIsLoadingApp,
|
|
22
|
+
};
|
|
23
|
+
return (_jsxs(AppLoadingContext.Provider, __assign({ value: value }, { children: [isLoadingApp && _jsx(AppLoadingUI, {}), children] })));
|
|
24
|
+
};
|
|
25
|
+
export var useAppLoadingContext = function () { return useContext(AppLoadingContext); };
|
|
@@ -0,0 +1,19 @@
|
|
|
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, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
|
+
import { colors, Div, Modal, Button } from "../";
|
|
14
|
+
export var ConfirmationModal = function (_a) {
|
|
15
|
+
var isOpen = _a.isOpen, handleClose = _a.handleClose, onSubmit = _a.onSubmit, title = _a.title, description = _a.description, buttonText = _a.buttonText, _b = _a.icon, icon = _b === void 0 ? null : _b, _c = _a.hasCancelButton, hasCancelButton = _c === void 0 ? true : _c;
|
|
16
|
+
var headerUI = (_jsxs(Div, { children: [icon && (_jsx(Div, __assign({ centered: true, mb: 20 }, { children: icon }))), _jsx(Div, __assign({ mb: 12 }, { children: _jsx(Div, __assign({ h5: true, dflex: true, centered: true }, { children: title })) }))] }));
|
|
17
|
+
var bodyUI = (_jsxs(_Fragment, { children: [_jsx(Div, __assign({ c: colors.gray800, body1: true, flexColumn: true, centered: true }, { children: description })), _jsxs(Div, __assign({ mt: 40, dflex: true, centered: true }, { children: [hasCancelButton && (_jsx(Button, __assign({ variant: "secondary", mr: 16, w: 104, onClick: handleClose }, { children: "Cancel" }))), _jsx(Button, __assign({ w: 135, onClick: onSubmit }, { children: buttonText }))] }))] }));
|
|
18
|
+
return (_jsx(_Fragment, { children: _jsx(Modal, __assign({ isOpen: isOpen, onClose: handleClose }, { children: _jsxs(Div, __assign({ p: "48px 56px" }, { children: [headerUI, bodyUI] })) })) }));
|
|
19
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
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, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
|
+
import styled from "styled-components";
|
|
18
|
+
import { Div } from "../styled/utils";
|
|
19
|
+
import { closeIcon } from "./icons";
|
|
20
|
+
export var ModalContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n top: 0px;\n left: 0px;\n margin: 0px;\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10000000000;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n div {\n pointer-events: auto;\n }\n"], ["\n top: 0px;\n left: 0px;\n margin: 0px;\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10000000000;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n div {\n pointer-events: auto;\n }\n"])));
|
|
21
|
+
export var ModalBackdrop = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: fixed;\n top: 0px;\n left: 0px;\n margin: 0px;\n width: 100vw;\n height: 100vh;\n z-index: 99999999;\n background: black;\n opacity: 0.38;\n"], ["\n position: fixed;\n top: 0px;\n left: 0px;\n margin: 0px;\n width: 100vw;\n height: 100vh;\n z-index: 99999999;\n background: black;\n opacity: 0.38;\n"])));
|
|
22
|
+
export var ModalWrapper = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: ", ";\n padding: 32px 36px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"], ["\n background: ", ";\n padding: 32px 36px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"])), function (props) { return props.theme.colors.white; });
|
|
23
|
+
export var ModalCloseIcon = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: 0;\n display: flex;\n flex-direction: row-reverse;\n z-index: 10;\n"], ["\n height: 0;\n display: flex;\n flex-direction: row-reverse;\n z-index: 10;\n"])));
|
|
24
|
+
export var Modal = function (_a) {
|
|
25
|
+
var _b = _a.isOpen, isOpen = _b === void 0 ? false : _b, _c = _a.onClose, onClose = _c === void 0 ? null : _c, children = _a.children, _d = _a.withCloseIcon, withCloseIcon = _d === void 0 ? true : _d, _e = _a.withBackdropClose, withBackdropClose = _e === void 0 ? true : _e, _f = _a.className, className = _f === void 0 ? "" : _f, testId = _a.testId;
|
|
26
|
+
function renderModal() {
|
|
27
|
+
return (_jsxs(Div, __assign({ className: className, "data-testid": testId }, { children: [_jsx(ModalBackdrop, { onClick: withBackdropClose ? onClose : null }), _jsx(ModalContainer, { children: _jsxs(ModalWrapper, { children: [withCloseIcon && (_jsx(ModalCloseIcon, { children: _jsx(Div, __assign({ clickable: true, mt: -5, mr: -5, w: "25px", h: "25px", onClick: onClose }, { children: closeIcon })) })), children] }) })] })));
|
|
28
|
+
}
|
|
29
|
+
return _jsx(_Fragment, { children: isOpen && renderModal() });
|
|
30
|
+
};
|
|
31
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
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
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
17
|
+
var t = {};
|
|
18
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
19
|
+
t[p] = s[p];
|
|
20
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
21
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
22
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
23
|
+
t[p[i]] = s[p[i]];
|
|
24
|
+
}
|
|
25
|
+
return t;
|
|
26
|
+
};
|
|
27
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
|
+
import styled from "styled-components";
|
|
29
|
+
import { theme } from "../styled/theme";
|
|
30
|
+
import { Div } from "../styled/utils";
|
|
31
|
+
var Wrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n"], ["\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n"])));
|
|
32
|
+
var Bounce = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 12px;\n height: 12px;\n margin: 0 5px 0 5px;\n background: ", ";\n @-webkit-keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n }\n }\n @keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n }\n border-radius: 100%;\n display: inline-block;\n -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n"], ["\n width: 12px;\n height: 12px;\n margin: 0 5px 0 5px;\n background: ", ";\n @-webkit-keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n }\n }\n @keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n }\n border-radius: 100%;\n display: inline-block;\n -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n"])), function (props) { return props.color; });
|
|
33
|
+
var Bounce1 = styled(Bounce)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n -webkit-animation-delay: -0.32s;\n animation-delay: -0.32s;\n"], ["\n -webkit-animation-delay: -0.32s;\n animation-delay: -0.32s;\n"])));
|
|
34
|
+
var Bounce2 = styled(Bounce)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n -webkit-animation-delay: -0.16s;\n animation-delay: -0.16s;\n"], ["\n -webkit-animation-delay: -0.16s;\n animation-delay: -0.16s;\n"])));
|
|
35
|
+
var SpinnerContainer = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: 70px;\n text-align: center;\n"], ["\n width: 70px;\n text-align: center;\n"])));
|
|
36
|
+
var Spinner = function (_a) {
|
|
37
|
+
var _b = _a.color, color = _b === void 0 ? theme.colors.gray300 : _b, props = __rest(_a, ["color"]);
|
|
38
|
+
return (_jsx(Wrapper, __assign({}, props, { children: _jsxs(SpinnerContainer, { children: [_jsx(Bounce1, { color: color }), _jsx(Bounce2, { color: color }), _jsx(Bounce, { color: color })] }) })));
|
|
39
|
+
};
|
|
40
|
+
export { Spinner };
|
|
41
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
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
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
17
|
+
var t = {};
|
|
18
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
19
|
+
t[p] = s[p];
|
|
20
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
21
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
22
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
23
|
+
t[p[i]] = s[p[i]];
|
|
24
|
+
}
|
|
25
|
+
return t;
|
|
26
|
+
};
|
|
27
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
|
+
import styled, { css } from "styled-components";
|
|
29
|
+
import { Div } from "../../../styled/utils";
|
|
30
|
+
var IconContainer = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", ";\n color: ", ";\n border-radius: 4px;\n height: 24px;\n width: 24px;\n ", "\n"], ["\n ", ";\n color: ", ";\n border-radius: 4px;\n height: 24px;\n width: 24px;\n ", "\n"])), function (p) { return p.theme.css.centered; }, function (p) { return p.theme.colors.gray900; }, function (p) {
|
|
31
|
+
return p.isDisabled
|
|
32
|
+
? css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.disabled3; }) : css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n :hover {\n cursor: pointer;\n\n background-color: ", ";\n }\n "], ["\n :hover {\n cursor: pointer;\n\n background-color: ", ";\n }\n "])), function (p) { return p.theme.colors.gray100; });
|
|
33
|
+
});
|
|
34
|
+
export var PaginationIcon = function (_a) {
|
|
35
|
+
var _b = _a.isDisabled, isDisabled = _b === void 0 ? false : _b, children = _a.children, props = __rest(_a, ["isDisabled", "children"]);
|
|
36
|
+
return (_jsx(IconContainer, __assign({ ml: 10, isDisabled: isDisabled }, props, { children: children })));
|
|
37
|
+
};
|
|
38
|
+
export var previousPage = (_jsx("svg", __assign({ width: "8", height: "13", viewBox: "0 0 8 13", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { d: "M7.00623 0.90802L1.26688 6.3505L7.00623 11.793", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) })));
|
|
39
|
+
export var nextPage = (_jsx("svg", __assign({ width: "8", height: "13", viewBox: "0 0 8 13", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { d: "M1.24243 0.90802L6.98177 6.3505L1.24243 11.793", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) })));
|
|
40
|
+
export var jumpToFirst = (_jsxs("svg", __assign({ width: "24", height: "19", viewBox: "0 0 24 19", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M16.4547 3.90802L10.7154 9.3505L16.4547 14.793", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M6.59399 14.069L6.59399 4.68966", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" })] })));
|
|
41
|
+
export var jumpToLast = (_jsxs("svg", __assign({ width: "25", height: "19", viewBox: "0 0 25 19", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M8.23022 14.8506L13.9696 9.40811L8.23023 3.96563", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M18.0909 4.68964L18.0909 14.0689", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" })] })));
|
|
42
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
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, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
import { useTableContext } from "../TableDataProvider";
|
|
18
|
+
import { jumpToFirst, jumpToLast, nextPage, PaginationIcon, previousPage, } from "./icons";
|
|
19
|
+
import styled from "styled-components";
|
|
20
|
+
import { colors } from "../../../styled/theme/colorPalette";
|
|
21
|
+
import { Div } from "../../../styled/utils";
|
|
22
|
+
var Container = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: solid 1px ", ";\n border-top: none;\n overflow: hidden;\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n"], ["\n border: solid 1px ", ";\n border-top: none;\n overflow: hidden;\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n"])), function (p) { return p.theme.colors.gray300; });
|
|
23
|
+
var Pagination = function () {
|
|
24
|
+
var _a = useTableContext(), totalPages = _a.totalPages, totalCount = _a.totalCount, pageSize = _a.pageSize, currentPage = _a.currentPage, setCurrentPage = _a.setCurrentPage;
|
|
25
|
+
var isFirstPage = currentPage === 1;
|
|
26
|
+
var isLastPage = currentPage === totalPages;
|
|
27
|
+
var cursor = (currentPage - 1) * pageSize;
|
|
28
|
+
var buttonsUI = (_jsxs(Div, __assign({ mr: 25, dflex: true }, { children: [_jsx(PaginationIcon, __assign({ isDisabled: isFirstPage, onClick: function () { return setCurrentPage(1); } }, { children: jumpToFirst })), _jsx(PaginationIcon, __assign({ isDisabled: isFirstPage, onClick: function () { return setCurrentPage(Math.max(currentPage - 1, 1)); } }, { children: previousPage })), _jsxs(Div, __assign({ centered: true, ml: 10 }, { children: [cursor + 1, "-", Math.min(cursor + pageSize, totalCount), " of ", totalCount] })), _jsx(PaginationIcon, __assign({ isDisabled: isLastPage, onClick: function () { return setCurrentPage(Math.min(currentPage + 1, totalPages)); } }, { children: nextPage })), _jsx(PaginationIcon, __assign({ isDisabled: isLastPage, onClick: function () { return setCurrentPage(totalPages); } }, { children: jumpToLast }))] })));
|
|
29
|
+
return (_jsx(Container, __assign({ w100: true }, { children: _jsx(Div, __assign({ h: 38, bg: colors.tableHeader, justifyEnd: true }, { children: _jsx(Div, __assign({ dflex: true, alignCenter: true, body2: true, c: colors.text }, { children: buttonsUI })) })) })));
|
|
30
|
+
};
|
|
31
|
+
export { Pagination };
|
|
32
|
+
var templateObject_1;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
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 { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
import { useState } from "react";
|
|
18
|
+
import styled from "styled-components";
|
|
19
|
+
import { TooltipProvider } from "../../../common/TooltipProvider";
|
|
20
|
+
import { ConfirmationModal } from "../../../common/ConfirmationModal";
|
|
21
|
+
import { useSpreadsheetContext } from "../../../Importer";
|
|
22
|
+
import { DeleteIcon, ConfirmationDeleteIcon } from "./icons";
|
|
23
|
+
import { Div } from "../../../styled/utils";
|
|
24
|
+
import { ActionButton } from "./TableActions.styles";
|
|
25
|
+
import { useTranslation } from "react-i18next";
|
|
26
|
+
var StyledTooltipProvider = styled(TooltipProvider)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: fit-content;\n"], ["\n width: fit-content;\n"])));
|
|
27
|
+
export var DeleteSelectedRows = function (_a) {
|
|
28
|
+
var _b = _a.testId, testId = _b === void 0 ? "ta-delete-rows" : _b;
|
|
29
|
+
var _c = useState(false), isConfirmationModalOpen = _c[0], setIsConfirmationModalOpen = _c[1];
|
|
30
|
+
var _d = useSpreadsheetContext(), deleteRecords = _d.deleteRecords, selectedRows = _d.selectedRows, setSelectedRows = _d.setSelectedRows, setFilteredInputValue = _d.setFilteredInputValue;
|
|
31
|
+
var t = useTranslation("review").t;
|
|
32
|
+
var toggleModalVisibility = function () {
|
|
33
|
+
setIsConfirmationModalOpen(function (oldValue) { return !oldValue; });
|
|
34
|
+
};
|
|
35
|
+
var handleDeleteRecord = function () {
|
|
36
|
+
setSelectedRows([]);
|
|
37
|
+
toggleModalVisibility();
|
|
38
|
+
setFilteredInputValue("");
|
|
39
|
+
deleteRecords(selectedRows);
|
|
40
|
+
};
|
|
41
|
+
var DescriptionUI = function () { return (_jsx(_Fragment, { children: _jsxs(Div, { children: [t("table_actions.delete_rows.confirmation_modal", {
|
|
42
|
+
length: selectedRows.length,
|
|
43
|
+
}), selectedRows.length > 1 ? "s" : "", "?"] }) })); };
|
|
44
|
+
var confirmationModalUI = (_jsx(ConfirmationModal, { isOpen: isConfirmationModalOpen, handleClose: toggleModalVisibility, title: "".concat(t("table_actions.delete_rows.modal_title")).concat(selectedRows.length > 1 ? "s" : ""), description: _jsx(DescriptionUI, {}), onSubmit: handleDeleteRecord, buttonText: t("table_actions.delete_rows.yes_delete"), icon: ConfirmationDeleteIcon }));
|
|
45
|
+
var isDeleteButtonDisabled = selectedRows.length <= 0;
|
|
46
|
+
return (_jsxs(_Fragment, { children: [confirmationModalUI, _jsx(StyledTooltipProvider, __assign({ tooltip: isDeleteButtonDisabled
|
|
47
|
+
? t("table_actions.delete_rows.select_rows")
|
|
48
|
+
: t("table_actions.delete_rows.delete_row"), placement: "right", flip: false, centered: true, "data-testid": testId }, { children: _jsx(ActionButton, __assign({ onClick: toggleModalVisibility, disabled: isDeleteButtonDisabled }, { children: _jsx(DeleteIcon, {}) })) }))] }));
|
|
49
|
+
};
|
|
50
|
+
var templateObject_1;
|
|
@@ -0,0 +1,23 @@
|
|
|
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 { DownloadIcon } from "./icons";
|
|
14
|
+
import { useReviewContext } from "../../../Importer";
|
|
15
|
+
import { TooltipProvider } from "../../../common/TooltipProvider";
|
|
16
|
+
import { ActionButton } from "./TableActions.styles";
|
|
17
|
+
import { useTranslation } from "react-i18next";
|
|
18
|
+
export var ExportData = function (_a) {
|
|
19
|
+
var _b = _a.testId, testId = _b === void 0 ? "ta-export-data" : _b;
|
|
20
|
+
var onExport = useReviewContext().onExport;
|
|
21
|
+
var t = useTranslation("review").t;
|
|
22
|
+
return (_jsx(TooltipProvider, __assign({ tooltip: t("table_actions.export_your_data.tooltip"), placement: "right", flip: false, centered: true, "data-testid": testId }, { children: _jsx(ActionButton, __assign({ onClick: function () { return onExport("csv"); } }, { children: _jsx(DownloadIcon, {}) })) })));
|
|
23
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as S from "./FilterByErrors.styles";
|
|
3
|
+
import { useSpreadsheetContext } from "../../../../Importer";
|
|
4
|
+
import { formatErrors, getUniqueErrors } from "./functions";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
6
|
+
import { addToast } from "../../../../common/Toast";
|
|
7
|
+
import { useState } from "react";
|
|
8
|
+
export var FilterByErrors = function () {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
var _c = useSpreadsheetContext(), errors = _c.errors, fields = _c.fields, spreadsheetFilter = _c.spreadsheetFilter, resetSpreadsheetFilter = _c.resetSpreadsheetFilter, filterRecordsByFieldErrors = _c.filterRecordsByFieldErrors;
|
|
11
|
+
var t = useTranslation("review").t;
|
|
12
|
+
var _d = useState(false), isMenuOpened = _d[0], setIsMenuOpened = _d[1];
|
|
13
|
+
var prefix = t("table_actions.filter_by_errors.filter_by_errors");
|
|
14
|
+
var search_or_select = t("table_actions.filter_by_errors.search_or_select");
|
|
15
|
+
var selectedErrorToFilter = ((_a = spreadsheetFilter === null || spreadsheetFilter === void 0 ? void 0 : spreadsheetFilter.byColumn) === null || _a === void 0 ? void 0 : _a.field) || null;
|
|
16
|
+
var getSelectedErrorLabel = function (selectedFieldName) {
|
|
17
|
+
var _a;
|
|
18
|
+
var selectedField = fields.filter(function (field) { return (field === null || field === void 0 ? void 0 : field.name) === selectedFieldName; });
|
|
19
|
+
var label = ((_a = selectedField === null || selectedField === void 0 ? void 0 : selectedField[0]) === null || _a === void 0 ? void 0 : _a.label) || selectedFieldName;
|
|
20
|
+
return label;
|
|
21
|
+
};
|
|
22
|
+
var onChange = function (selected) {
|
|
23
|
+
if (selected) {
|
|
24
|
+
var label = getSelectedErrorLabel(selected);
|
|
25
|
+
filterRecordsByFieldErrors(selected);
|
|
26
|
+
addToast("Showing only the rows with error on the ".concat(label, " column"), "success");
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
resetSpreadsheetFilter();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var uniqueErrors = getUniqueErrors(fields, errors);
|
|
33
|
+
var errorArray = formatErrors(fields, uniqueErrors);
|
|
34
|
+
// the average size of each character in the input (in px)
|
|
35
|
+
var widthPerCharacter = 5.8;
|
|
36
|
+
var amountOfCharacters = prefix.length + ((_b = getSelectedErrorLabel(selectedErrorToFilter)) === null || _b === void 0 ? void 0 : _b.length);
|
|
37
|
+
// 24 -> padding + 64px of the X icon area
|
|
38
|
+
var totalWidth = widthPerCharacter * amountOfCharacters + 24 + 64;
|
|
39
|
+
var inputWidth = selectedErrorToFilter ? "".concat(totalWidth, "px") : "fit-content";
|
|
40
|
+
var inputText = selectedErrorToFilter
|
|
41
|
+
? "".concat(prefix, ": ")
|
|
42
|
+
: isMenuOpened
|
|
43
|
+
? search_or_select
|
|
44
|
+
: prefix;
|
|
45
|
+
var isDisabled = errorArray.length === 0;
|
|
46
|
+
return (_jsx(S.StyledAutocomplete, { placement: "bottom", placeholder: inputText, onToggle: function (v) { return !isDisabled && setIsMenuOpened(v); }, onChange: onChange, value: selectedErrorToFilter, options: errorArray, isDisabled: isDisabled, isInputDisabled: isDisabled, inputWidth: inputWidth, "data-testid": "ta-filter-by-errors", prefix: inputText }));
|
|
47
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
import styled, { css } from "styled-components";
|
|
6
|
+
import { Autocomplete } from "../../../../common/inputs/Autocomplete";
|
|
7
|
+
import { textStyles } from "../../../../styled/theme/textStyles";
|
|
8
|
+
export var StyledAutocomplete = styled(Autocomplete)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n &,\n * {\n box-sizing: border-box !important;\n\n ", "\n }\n\n div[data-popper-placement=\"bottom\"] > div {\n display: flex;\n flex-direction: column;\n gap: 8px;\n outline: 1px solid red;\n padding: 8px;\n\n > div div {\n padding: 6px 12px;\n }\n\n ", "\n }\n\n input {\n ", ";\n background-color: ", ";\n border: 1px solid transparent;\n font-family: \"DM Sans\";\n font-size: 14px;\n font-weight: 400;\n height: 32px;\n padding: 6px 12px;\n width: ", ";\n\n ::placeholder {\n color: ", ";\n }\n\n :focus {\n border: none;\n box-shadow: none;\n }\n }\n"], ["\n &,\n * {\n box-sizing: border-box !important;\n\n ", "\n }\n\n div[data-popper-placement=\"bottom\"] > div {\n display: flex;\n flex-direction: column;\n gap: 8px;\n outline: 1px solid red;\n padding: 8px;\n\n > div div {\n padding: 6px 12px;\n }\n\n ", "\n }\n\n input {\n ", ";\n background-color: ", ";\n border: 1px solid transparent;\n font-family: \"DM Sans\";\n font-size: 14px;\n font-weight: 400;\n height: 32px;\n padding: 6px 12px;\n width: ", ";\n\n ::placeholder {\n color: ", ";\n }\n\n :focus {\n border: none;\n box-shadow: none;\n }\n }\n"])), function (_a) {
|
|
9
|
+
var isDisabled = _a.isDisabled;
|
|
10
|
+
return isDisabled && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n cursor: not-allowed !important;\n "], ["\n cursor: not-allowed !important;\n "])));
|
|
11
|
+
}, function (_a) {
|
|
12
|
+
var isDisabled = _a.isDisabled;
|
|
13
|
+
return isDisabled && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n cursor: not-allowed;\n "], ["\n cursor: not-allowed;\n "])));
|
|
14
|
+
}, textStyles.body3, function (_a) {
|
|
15
|
+
var theme = _a.theme;
|
|
16
|
+
return theme.colors.orange50;
|
|
17
|
+
}, function (_a) {
|
|
18
|
+
var inputWidth = _a.inputWidth;
|
|
19
|
+
return inputWidth;
|
|
20
|
+
}, function (_a) {
|
|
21
|
+
var theme = _a.theme;
|
|
22
|
+
return theme.colors.black;
|
|
23
|
+
});
|
|
24
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export var getUniqueErrors = function (fields, errors) {
|
|
2
|
+
var fieldKeys = new Set(fields.map(function (field) { return field.name; }));
|
|
3
|
+
var uniqueErrors = [];
|
|
4
|
+
for (var _i = 0, _a = Object.entries(errors); _i < _a.length; _i++) {
|
|
5
|
+
var _b = _a[_i], _1 = _b[0], errorObj = _b[1];
|
|
6
|
+
for (var _c = 0, _d = Object.entries(errorObj); _c < _d.length; _c++) {
|
|
7
|
+
var fieldName = _d[_c][0];
|
|
8
|
+
if (fieldKeys.has(fieldName)) {
|
|
9
|
+
uniqueErrors.push({ fieldName: fieldName });
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return uniqueErrors;
|
|
14
|
+
};
|
|
15
|
+
export var formatErrors = function (fields, uniqueErrors) {
|
|
16
|
+
var errorMap = new Map();
|
|
17
|
+
var orderedErrorArray = [];
|
|
18
|
+
fields.forEach(function (field) {
|
|
19
|
+
errorMap.set(field.name, field);
|
|
20
|
+
});
|
|
21
|
+
fields.forEach(function (field) {
|
|
22
|
+
var name = field.name, label = field.label;
|
|
23
|
+
if (uniqueErrors.some(function (_a) {
|
|
24
|
+
var fieldName = _a.fieldName;
|
|
25
|
+
return fieldName === name;
|
|
26
|
+
}) &&
|
|
27
|
+
!orderedErrorArray.some(function (error) { return error.value === name; })) {
|
|
28
|
+
orderedErrorArray.push({
|
|
29
|
+
value: name,
|
|
30
|
+
label: label,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return orderedErrorArray;
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./FilterByErrors";
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
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 { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
import styled, { css } from "styled-components";
|
|
18
|
+
import { useSpreadsheetContext } from "../../../Importer";
|
|
19
|
+
import { Div } from "../../../styled";
|
|
20
|
+
import { useTranslation } from "react-i18next";
|
|
21
|
+
var FilterContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 6px 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n ", ";\n ", "\n"], ["\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 6px 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n ", ";\n ", "\n"])), function (p) { return p.theme.css.body3; }, function (p) {
|
|
22
|
+
return p.isSelected && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background: ", ";\n color: ", ";\n border-radius: 4px;\n "], ["\n background: ", ";\n color: ", ";\n border-radius: 4px;\n "])), function (p) { return p.theme.colors.black; }, function (p) { return p.theme.colors.white; });
|
|
23
|
+
});
|
|
24
|
+
var Container = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n border-radius: 4px;\n background-color: ", ";\n"], ["\n display: flex;\n border-radius: 4px;\n background-color: ", ";\n"])), function (p) { return p.theme.colors.backgroundInterface; });
|
|
25
|
+
var FilteredDataCount = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n background: ", ";\n color: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px 8px;\n margin-left: -3px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n"], ["\n background: ", ";\n color: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px 8px;\n margin-left: -3px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n"])), function (p) { return p.theme.colors.highlight01; }, function (p) { return p.theme.colors.black; });
|
|
26
|
+
var Filter = function (_a) {
|
|
27
|
+
var label = _a.label, count = _a.count, isSelected = _a.isSelected, onClick = _a.onClick;
|
|
28
|
+
var _b = useSpreadsheetContext(), filteredInputValue = _b.filteredInputValue, filteredDataCount = _b.filteredDataCount;
|
|
29
|
+
var labelToId = function (label) {
|
|
30
|
+
return label.toLowerCase().replace(/\s/g, "_") + "_filter";
|
|
31
|
+
};
|
|
32
|
+
return (_jsxs(Div, __assign({ dflex: true, clickable: true, onClick: onClick, "data-test-id": labelToId(label) }, { children: [_jsxs(FilterContainer, __assign({ isSelected: isSelected }, { children: [label, count >= 0 && _jsxs(_Fragment, { children: ["\u00A0(", count, ")"] })] })), isSelected && filteredInputValue !== "" && (_jsx(FilteredDataCount, { children: _jsx(Div, __assign({ minw: 14, centered: true }, { children: filteredDataCount })) }))] })));
|
|
33
|
+
};
|
|
34
|
+
export var RowFilters = function () {
|
|
35
|
+
var _a = useSpreadsheetContext(), spreadsheetFilter = _a.spreadsheetFilter, errors = _a.errors, filterRecordsByRowType = _a.filterRecordsByRowType, recordsWithValuesCount = _a.recordsWithValuesCount;
|
|
36
|
+
var t = useTranslation("review").t;
|
|
37
|
+
var all_rows = t("table_actions.filters_by_rows.all_rows");
|
|
38
|
+
var valid_rows = t("table_actions.filters_by_rows.valid_rows");
|
|
39
|
+
var invalid_rows = t("table_actions.filters_by_rows.invalid_rows");
|
|
40
|
+
return (_jsxs(Container, { children: [_jsx(Filter, { isSelected: spreadsheetFilter.byRow === "all", label: all_rows, count: recordsWithValuesCount, onClick: function () { return filterRecordsByRowType("all"); } }), _jsx(Filter, { isSelected: spreadsheetFilter.byRow === "valid", label: valid_rows, onClick: function () { return filterRecordsByRowType("valid"); } }), _jsx(Filter, { isSelected: spreadsheetFilter.byRow === "invalid", label: invalid_rows, count: Object.values(errors).length, onClick: function () { return filterRecordsByRowType("invalid"); } })] }));
|
|
41
|
+
};
|
|
42
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|