fuse-importer 0.23.8 → 0.24.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/README.md +19 -19
- package/lib/esm/Importer/ImporterWithContext.d.ts +7 -0
- package/lib/esm/Importer/ImporterWithContext.js +69 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +4 -4
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.js +1 -1
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +2 -2
- package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +2 -3
- package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.js +1 -1
- package/lib/esm/Importer/Matcher/index.d.ts +3 -3
- package/lib/esm/Importer/Matcher/index.js +4 -3
- package/lib/esm/Importer/PreviewFirstTime.d.ts +2 -0
- package/lib/esm/Importer/PreviewFirstTime.js +80 -0
- package/lib/esm/Importer/PreviewModeBanner.js +3 -6
- package/lib/esm/Importer/Review/AppResponseModal.js +3 -3
- package/lib/esm/Importer/Review/ReviewContextProvider.d.ts +27 -0
- package/lib/esm/Importer/Review/ReviewContextProvider.js +234 -0
- package/lib/esm/Importer/Review/ReviewWithContext.d.ts +3 -0
- package/lib/esm/Importer/Review/ReviewWithContext.js +23 -0
- package/lib/esm/Importer/Review/index.d.ts +3 -3
- package/lib/esm/Importer/Review/index.js +4 -92
- package/lib/esm/Importer/Stepper/Step.d.ts +7 -0
- package/lib/esm/Importer/Stepper/Step.js +19 -0
- package/lib/esm/Importer/Stepper/StepIndex.d.ts +6 -0
- package/lib/esm/Importer/Stepper/StepIndex.js +27 -0
- package/lib/esm/Importer/Stepper/StepperSubmitModal.d.ts +8 -0
- package/lib/esm/Importer/Stepper/StepperSubmitModal.js +22 -0
- package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.d.ts +9 -0
- package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.js +23 -0
- package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.d.ts +8 -0
- package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.js +33 -0
- package/lib/esm/Importer/Stepper/common/icons.d.ts +3 -0
- package/lib/esm/Importer/Stepper/common/icons.js +18 -0
- package/lib/esm/Importer/{Stepper.d.ts → Stepper/index.d.ts} +2 -2
- package/lib/esm/Importer/Stepper/index.js +97 -0
- package/lib/esm/Importer/TrialModeBanner.js +3 -4
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +1 -1
- package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +4 -4
- package/lib/esm/Importer/Uploader/HeaderButtons.d.ts +2 -0
- package/lib/esm/Importer/Uploader/HeaderButtons.js +29 -0
- package/lib/esm/Importer/Uploader/HeadersPreview.js +6 -64
- package/lib/esm/Importer/Uploader/UploaderContextProvider.d.ts +2 -2
- package/lib/esm/Importer/Uploader/index.d.ts +3 -3
- package/lib/esm/Importer/Uploader/index.js +6 -6
- package/lib/esm/Importer/common/AppLoading.js +2 -2
- package/lib/esm/Importer/{Footer.d.ts → common/Footer.d.ts} +0 -0
- package/lib/esm/Importer/common/Footer.js +17 -0
- package/lib/esm/Importer/{FuseApi.d.ts → common/FuseApi.d.ts} +1 -1
- package/lib/esm/Importer/{FuseApi.js → common/FuseApi.js} +2 -2
- package/lib/esm/Importer/{GlobalStyle.d.ts → common/GlobalStyle.d.ts} +0 -0
- package/lib/esm/Importer/common/GlobalStyle.js +7 -0
- package/lib/esm/Importer/{ImporterFonts.d.ts → common/ImporterFonts.d.ts} +0 -0
- package/lib/esm/Importer/{ImporterFonts.js → common/ImporterFonts.js} +0 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider.d.ts +13 -26
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider.js +51 -286
- package/lib/esm/Importer/common/Spreadsheet/common/index.d.ts +8 -15
- package/lib/esm/Importer/common/Spreadsheet/common/index.js +31 -101
- package/lib/esm/Importer/common/Spreadsheet/{common → components}/FieldHeader.d.ts +0 -0
- package/lib/esm/Importer/common/Spreadsheet/{common → components}/FieldHeader.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{GlobalStyle.d.ts → components/GlobalStyle.d.ts} +0 -0
- package/lib/esm/Importer/common/Spreadsheet/{GlobalStyle.js → components/GlobalStyle.js} +0 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +74 -0
- package/lib/esm/Importer/common/Spreadsheet/{SpreadsheetRowNumbers.d.ts → components/SpreadsheetRowNumbers.d.ts} +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{SpreadsheetRowNumbers.js → components/SpreadsheetRowNumbers.js} +4 -4
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.d.ts +6 -0
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +19 -0
- package/lib/esm/Importer/common/Spreadsheet/{common → components}/fields/SpeadsheetAutocomplete.d.ts +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{common → components}/fields/SpeadsheetAutocomplete.js +2 -4
- package/lib/esm/Importer/common/Spreadsheet/{common → components}/fields/SpreadsheetInput.d.ts +0 -0
- package/lib/esm/Importer/common/Spreadsheet/{common → components}/fields/SpreadsheetInput.js +0 -0
- package/lib/esm/Importer/common/Spreadsheet/{common → components}/fields/index.d.ts +0 -4
- package/lib/esm/Importer/common/Spreadsheet/{common → components}/fields/index.js +11 -64
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/Boolean.d.ts +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/Boolean.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/EmailInput.d.ts +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/EmailInput.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/EnumInput.d.ts +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/EnumInput.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/FloatInput.d.ts +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/FloatInput.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/IntegerInput.d.ts +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/IntegerInput.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/StringInput.d.ts +1 -1
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/StringInput.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.d.ts +13 -0
- package/lib/esm/Importer/common/Spreadsheet/{inputs → components/inputs}/index.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/hooks.d.ts +29 -0
- package/lib/esm/Importer/common/Spreadsheet/hooks.js +201 -0
- package/lib/esm/Importer/common/Spreadsheet/index.d.ts +10 -9
- package/lib/esm/Importer/common/Spreadsheet/index.js +10 -105
- package/lib/esm/Importer/common/Spreadsheet/styles.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/styles.js +10 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/index.d.ts +20 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/index.js +172 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/validators.d.ts +6 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/validators.js +176 -0
- package/lib/esm/Importer/common/icons/index.d.ts +3 -0
- package/lib/esm/Importer/common/icons/index.js +3 -0
- package/lib/esm/Importer/common/index.js +3 -3
- package/lib/esm/Importer/{theme.d.ts → common/theme.d.ts} +14 -4
- package/lib/esm/Importer/{theme.js → common/theme.js} +1 -1
- package/lib/esm/Importer/common/utils.d.ts +2 -4
- package/lib/esm/Importer/common/utils.js +79 -24
- package/lib/esm/Importer/{ImporterContextProvider.d.ts → contexts/ImporterContextProvider.d.ts} +18 -53
- package/lib/esm/Importer/{ImporterContextProvider.js → contexts/ImporterContextProvider.js} +31 -27
- package/lib/esm/Importer/data/index.d.ts +28 -0
- package/lib/esm/Importer/data/index.js +134 -0
- package/lib/esm/Importer/index.d.ts +10 -10
- package/lib/esm/Importer/index.js +12 -60
- package/lib/esm/common/Modal.js +5 -2
- package/lib/esm/common/Table/TableView/TableHeaders.js +1 -1
- package/lib/esm/common/Table/TableView/TableRow.d.ts +2 -1
- package/lib/esm/common/Table/TableView/TableRow.js +10 -10
- package/lib/esm/common/Table/TableView/index.d.ts +2 -1
- package/lib/esm/common/Table/TableView/index.js +9 -8
- package/lib/esm/common/Table/icons.d.ts +1 -0
- package/lib/esm/common/Table/icons.js +2 -1
- package/lib/esm/common/TooltipProvider.d.ts +5 -1
- package/lib/esm/common/TooltipProvider.js +11 -13
- package/lib/esm/common/buttons.d.ts +6 -3
- package/lib/esm/common/buttons.js +11 -5
- package/lib/esm/common/inputs/Autocomplete.d.ts +2 -1
- package/lib/esm/common/inputs/Autocomplete.js +7 -6
- package/lib/esm/common/inputs/SelectMenu.d.ts +2 -1
- package/lib/esm/common/inputs/SelectMenu.js +8 -8
- package/lib/esm/common/inputs/TextInput.d.ts +10 -6
- package/lib/esm/common/inputs/TextInput.js +12 -3
- package/lib/esm/common/inputs/index.d.ts +1 -0
- package/lib/esm/common/inputs/index.js +1 -0
- package/lib/esm/common/inputs/tooltip.d.ts +5 -0
- package/lib/esm/common/inputs/tooltip.js +38 -0
- package/lib/esm/index.d.ts +1 -2
- package/lib/esm/index.js +0 -1
- package/lib/esm/styled/theme/colorPalette.d.ts +18 -18
- package/lib/esm/styled/theme/debugCss.d.ts +1 -0
- package/lib/esm/styled/theme/debugCss.js +2 -1
- package/lib/esm/styled/theme/dimensionsCss.d.ts +6 -2
- package/lib/esm/styled/theme/dimensionsCss.js +3 -3
- package/lib/esm/styled/theme/globalCss.d.ts +3 -0
- package/lib/esm/styled/theme/globalCss.js +9 -8
- package/lib/esm/styled/theme/index.d.ts +24 -5
- package/lib/esm/styled/theme/textStyles.d.ts +1 -0
- package/lib/esm/styled/theme/textStyles.js +2 -1
- package/lib/esm/types.d.ts +64 -14
- package/lib/main.js +1 -1
- package/package.json +18 -8
- package/lib/esm/Importer/Footer.js +0 -19
- package/lib/esm/Importer/GlobalStyle.js +0 -7
- package/lib/esm/Importer/SpreadsheetReviewContextProvider.d.ts +0 -20
- package/lib/esm/Importer/SpreadsheetReviewContextProvider.js +0 -128
- package/lib/esm/Importer/Stepper.js +0 -153
- package/lib/esm/Importer/common/Spreadsheet/inputs/index.d.ts +0 -13
|
@@ -0,0 +1,97 @@
|
|
|
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 { useState } from "react";
|
|
18
|
+
import styled, { css } from "styled-components";
|
|
19
|
+
import { Button, closeIconCondensed, ChevronRightIcon } from "../../common";
|
|
20
|
+
import { Div } from "../../styled/utils";
|
|
21
|
+
import { contentWidth } from "../common";
|
|
22
|
+
import { useImporterContext } from "../contexts/ImporterContextProvider";
|
|
23
|
+
import { useReviewContext } from "../Review/ReviewContextProvider";
|
|
24
|
+
import { ColumnType } from "../Matcher/common/types";
|
|
25
|
+
import { getEnumFieldValueMatchingsInitialValue } from "./common/getEnumFieldValueMatchingsInitialValue";
|
|
26
|
+
import { Step } from "./Step";
|
|
27
|
+
import { StepperSubmitModal } from "./StepperSubmitModal";
|
|
28
|
+
import { UnmatchedHeadersModal } from "./UnmatchedHeadersModal";
|
|
29
|
+
var StepperWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n border-bottom: 1px solid ", ";\n user-select: none;\n"], ["\n background-color: ", ";\n border-bottom: 1px solid ", ";\n user-select: none;\n"])), function (p) { return p.theme.colors.white; }, function (p) { return p.theme.colors.gray300; });
|
|
30
|
+
var Logo = styled.img(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-height: 70px;\n max-width: 300px;\n position: absolute;\n left: 41px;\n"], ["\n max-height: 70px;\n max-width: 300px;\n position: absolute;\n left: 41px;\n"])));
|
|
31
|
+
var CloseIcon = styled(Div)(function () { return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n right: 41px;\n "], ["\n position: absolute;\n right: 41px;\n "]))); });
|
|
32
|
+
export var Stepper = function (_a) {
|
|
33
|
+
var stepLabels = _a.stepLabels, logoURL = _a.logoURL;
|
|
34
|
+
var _b = useState(false), isUnmatchedHeadersModalOpen = _b[0], setIsUnmatchedHeadersModalOpen = _b[1];
|
|
35
|
+
var _c = useState(false), isSubmitModalOpen = _c[0], setIsSubmitModalOpen = _c[1];
|
|
36
|
+
var _d = useReviewContext(), appResponse = _d.appResponse, isSubmitDisabled = _d.isSubmitDisabled, onSubmit = _d.onSubmit;
|
|
37
|
+
var _e = useImporterContext(), currentStepIndex = _e.currentStepIndex, templateHeaderMatchings = _e.templateHeaderMatchings, matcherSubstep = _e.matcherSubstep, templateHeaders = _e.templateHeaders, uploadedDataEnumFieldValues = _e.uploadedDataEnumFieldValues, setEnumFieldValueMatchings = _e.setEnumFieldValueMatchings, setMatcherSubstep = _e.setMatcherSubstep, setCurrentStepIndex = _e.setCurrentStepIndex, onClose = _e.onClose;
|
|
38
|
+
var templateHeaderLabels = Object.keys(templateHeaderMatchings || []);
|
|
39
|
+
var unmatchedHeadersCount = templateHeaderLabels.filter(function (templateHeaderLabel) { return !templateHeaderMatchings[templateHeaderLabel]; }).length;
|
|
40
|
+
var isLastSubMatchStep = matcherSubstep === 1;
|
|
41
|
+
var setStep = function () {
|
|
42
|
+
var templateHasEnumFields = !!(templateHeaders === null || templateHeaders === void 0 ? void 0 : templateHeaders.find(function (header) { return header.column_type === ColumnType.enum; }));
|
|
43
|
+
if (templateHasEnumFields) {
|
|
44
|
+
var _enumFieldValueMatchings = getEnumFieldValueMatchingsInitialValue({
|
|
45
|
+
uploadedDataEnumFieldValues: uploadedDataEnumFieldValues,
|
|
46
|
+
templateHeaders: templateHeaders,
|
|
47
|
+
});
|
|
48
|
+
var anyTemplateEnumFieldsMatched = Object.keys(_enumFieldValueMatchings).length > 0;
|
|
49
|
+
if (anyTemplateEnumFieldsMatched) {
|
|
50
|
+
setEnumFieldValueMatchings(_enumFieldValueMatchings);
|
|
51
|
+
setMatcherSubstep(1);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
setCurrentStepIndex(2);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
setCurrentStepIndex(2);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
var openUnmatchedModal = function () {
|
|
62
|
+
unmatchedHeadersCount ? setIsUnmatchedHeadersModalOpen(true) : setStep();
|
|
63
|
+
};
|
|
64
|
+
var continueToNextStep = function () {
|
|
65
|
+
if (isLastSubMatchStep) {
|
|
66
|
+
setIsUnmatchedHeadersModalOpen(false);
|
|
67
|
+
setCurrentStepIndex(2);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
openUnmatchedModal();
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
var goBack = function () {
|
|
74
|
+
var isMatchingColumnValues = matcherSubstep === 1;
|
|
75
|
+
var isInMachStep = currentStepIndex === 1;
|
|
76
|
+
var shouldBackOnlyMatcherSubStep = isMatchingColumnValues && isInMachStep;
|
|
77
|
+
if (shouldBackOnlyMatcherSubStep) {
|
|
78
|
+
setMatcherSubstep(matcherSubstep - 1);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
setCurrentStepIndex(currentStepIndex - 1);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
var isMatchStep = currentStepIndex === 1;
|
|
85
|
+
var isReviewStep = currentStepIndex === 2;
|
|
86
|
+
var stepsUI = (_jsx(Div, __assign({ dflex: true, centered: true }, { children: stepLabels.map(function (label, index) {
|
|
87
|
+
var isLast = index === stepLabels.length - 1;
|
|
88
|
+
var isCompleted = index < currentStepIndex;
|
|
89
|
+
return (_jsxs(Div, __assign({ centered: true }, { children: [_jsx(Step, { index: index, label: label, isCompleted: isCompleted, isSelected: index === currentStepIndex }), !isLast && (_jsx(Div, __assign({ ml: 18, mr: 18, dflex: true }, { children: _jsx(ChevronRightIcon, {}) })))] }), index));
|
|
90
|
+
}) })));
|
|
91
|
+
var leftButtonUI = (_jsx(Div, __assign({ w: 100 }, { children: currentStepIndex > 0 && !appResponse && (_jsx(Button, __assign({ variant: "secondary", onClick: goBack }, { children: "Go back" }))) })));
|
|
92
|
+
var rightButtonUI = (_jsxs(Div, __assign({ w: 100 }, { children: [isMatchStep && (_jsx(Button, __assign({ variant: "primary", onClick: continueToNextStep }, { children: "Continue" }))), isReviewStep && (_jsx(Button, __assign({ variant: "primary", isDisabled: isSubmitDisabled, onClick: function () { return setIsSubmitModalOpen(true); } }, { children: "Submit" })))] })));
|
|
93
|
+
return (_jsxs(_Fragment, { children: [_jsxs(StepperWrapper, __assign({ pRelative: true, alignCenter: true, w100: true, h: 96, centered: true }, { children: [logoURL && _jsx(Logo, { src: logoURL, alt: "" }), _jsxs(Div, __assign({ spaceBetween: true, w: contentWidth }, { children: [leftButtonUI, _jsx(Div, __assign({ alignCenter: true }, { children: stepsUI })), rightButtonUI] })), _jsx(CloseIcon, __assign({ "data-test-id": "close-importer", centered: true, clickable: true, onClick: onClose }, { children: closeIconCondensed }))] })), _jsx(UnmatchedHeadersModal, { isUnmatchedHeadersModalOpen: isUnmatchedHeadersModalOpen, unmatchedHeadersCount: unmatchedHeadersCount, onSetStep: function () { return setStep(); }, onCloseUnmatchedHeadersModal: function () {
|
|
94
|
+
return setIsUnmatchedHeadersModalOpen(false);
|
|
95
|
+
} }), _jsx(StepperSubmitModal, { isSubmitModalOpen: isSubmitModalOpen, onCloseModal: function () { return setIsSubmitModalOpen(false); }, onSubmit: onSubmit })] }));
|
|
96
|
+
};
|
|
97
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
@@ -11,13 +11,12 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
13
|
import { Button } from "../common";
|
|
14
|
-
import { theme } from "../styled
|
|
15
|
-
import {
|
|
16
|
-
import { useImporterContext } from "./ImporterContextProvider";
|
|
14
|
+
import { Div, Span, theme } from "../styled";
|
|
15
|
+
import { exclamationPointIcon } from "./common/icons";
|
|
16
|
+
import { useImporterContext } from "./contexts/ImporterContextProvider";
|
|
17
17
|
export var TrialModeBanner = function () {
|
|
18
18
|
var inTrialMode = useImporterContext().inTrialMode;
|
|
19
19
|
return (_jsx(_Fragment, { children: inTrialMode && (_jsxs(Div, __assign({ bg: theme.colors.orange100, h: 80, dflex: true, alignCenter: true, justifyCenter: true }, { children: [_jsx(Div, __assign({ ml: 33, mr: 8 }, { children: exclamationPointIcon })), _jsx(Span, __assign({ mr: 16 }, { children: "You're currently in Trial mode. Subscribe to a plan to deploy to your website." })), _jsx(Button, __assign({ w: 120, br: 8, variant: "secondary", onClick: function () {
|
|
20
20
|
window.location.href = "".concat(process.env.REACT_APP_API_BASE_URL, "/account/billing");
|
|
21
21
|
} }, { children: "Select plan" }))] }))) }));
|
|
22
22
|
};
|
|
23
|
-
var exclamationPointIcon = (_jsx("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM12 6C12.5523 6 13 6.44772 13 7V12C13 12.5523 12.5523 13 12 13C11.4477 13 11 12.5523 11 12V7C11 6.44772 11.4477 6 12 6ZM12 15C12.5523 15 13 15.4477 13 16V16.5C13 17.0523 12.5523 17.5 12 17.5C11.4477 17.5 11 17.0523 11 16.5V16C11 15.4477 11.4477 15 12 15Z", fill: "#FF9A34" }) })));
|
|
@@ -18,7 +18,7 @@ import { useDropzone } from "react-dropzone";
|
|
|
18
18
|
import styled, { css } from "styled-components";
|
|
19
19
|
import XLSX from "xlsx";
|
|
20
20
|
import { useUploaderContext } from "../UploaderContextProvider";
|
|
21
|
-
import { useImporterContext } from "../../ImporterContextProvider";
|
|
21
|
+
import { useImporterContext } from "../../contexts/ImporterContextProvider";
|
|
22
22
|
import { Div } from "../../../styled/utils";
|
|
23
23
|
import { theme } from "../../../styled/theme";
|
|
24
24
|
import { addToast } from "../../../common/Toast";
|
|
@@ -26,13 +26,13 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
26
26
|
};
|
|
27
27
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
28
28
|
import styled from "styled-components";
|
|
29
|
-
import { closeIconWithCircle, errorIcon, fileExtensionIcon, } from "../../common/icons";
|
|
30
|
-
import { ImporterDropzone } from "./ImporterDropzone";
|
|
31
|
-
import { useUploaderContext } from "../UploaderContextProvider";
|
|
32
|
-
import { useImporterContext, } from "../../ImporterContextProvider";
|
|
33
29
|
import { theme } from "../../../styled/theme";
|
|
34
30
|
import { colors } from "../../../styled/theme/colorPalette";
|
|
35
31
|
import { Div } from "../../../styled/utils";
|
|
32
|
+
import { closeIconWithCircle, errorIcon, fileExtensionIcon, } from "../../common/icons";
|
|
33
|
+
import { useImporterContext } from "../../contexts/ImporterContextProvider";
|
|
34
|
+
import { useUploaderContext } from "../UploaderContextProvider";
|
|
35
|
+
import { ImporterDropzone } from "./ImporterDropzone";
|
|
36
36
|
var HeaderCardWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: 1px solid ", ";\n border-radius: 8px;\n padding: 24px;\n box-sizing: border-box;\n width: 256px;\n overflow-y: auto;\n ", ";\n background: ", ";\n max-height: 530px;\n"], ["\n border: 1px solid ", ";\n border-radius: 8px;\n padding: 24px;\n box-sizing: border-box;\n width: 256px;\n overflow-y: auto;\n ", ";\n background: ", ";\n max-height: 530px;\n"])), theme.colors.gray200, function (p) { return p.theme.css.scrollbarDark; }, function (p) { return p.theme.colors.white; });
|
|
37
37
|
var ErrorCardContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-radius: 8px;\n width: 1120px;\n height: 550px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: ", ";\n border: 1px dashed ", ";\n justify-content: center;\n"], ["\n border-radius: 8px;\n width: 1120px;\n height: 550px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: ", ";\n border: 1px dashed ", ";\n justify-content: center;\n"])), theme.colors.blue100, theme.colors.blue500);
|
|
38
38
|
export var ErrorCard = function () {
|
|
@@ -0,0 +1,29 @@
|
|
|
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 styled from "styled-components";
|
|
18
|
+
import { Button } from "../../common/buttons";
|
|
19
|
+
import { Div } from "../../styled/utils";
|
|
20
|
+
import { useImporterContext } from "../contexts/ImporterContextProvider";
|
|
21
|
+
var HeaderButtonsWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n > div {\n margin-left: 8px;\n margin-right: 8px;\n }\n"], ["\n > div {\n margin-left: 8px;\n margin-right: 8px;\n }\n"])));
|
|
22
|
+
export var HeaderButtons = function () {
|
|
23
|
+
var _a = useImporterContext(), setCurrentStepIndex = _a.setCurrentStepIndex, resetImport = _a.resetImport;
|
|
24
|
+
var onClick = function () {
|
|
25
|
+
setCurrentStepIndex(1);
|
|
26
|
+
};
|
|
27
|
+
return (_jsxs(HeaderButtonsWrapper, __assign({ dflex: true, spaceBetween: true, mb: 12 }, { children: [_jsx(Button, __assign({ w: 180, isSmall: true, variant: "secondary", onClick: resetImport }, { children: "No, Re-upload file" })), _jsx(Button, __assign({ w: 142, isSmall: true, onClick: onClick }, { children: "Yes, continue" }))] })));
|
|
28
|
+
};
|
|
29
|
+
var templateObject_1;
|
|
@@ -1,7 +1,3 @@
|
|
|
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
1
|
var __assign = (this && this.__assign) || function () {
|
|
6
2
|
__assign = Object.assign || function(t) {
|
|
7
3
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -13,68 +9,14 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
9
|
};
|
|
14
10
|
return __assign.apply(this, arguments);
|
|
15
11
|
};
|
|
16
|
-
|
|
17
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
18
|
-
if (ar || !(i in from)) {
|
|
19
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
20
|
-
ar[i] = from[i];
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
24
|
-
};
|
|
25
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
26
|
-
import { Button } from "../../common/buttons";
|
|
27
|
-
import styled from "styled-components";
|
|
28
|
-
import { Spreadsheet } from "../common/Spreadsheet";
|
|
29
|
-
import { useImporterContext } from "../ImporterContextProvider";
|
|
30
|
-
import { FieldTypes } from "../../types";
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
31
13
|
import { Div } from "../../styled/utils";
|
|
14
|
+
import Spreadsheet from "../common/Spreadsheet";
|
|
32
15
|
import { getSpreadsheetRowWidth } from "../common/utils";
|
|
33
|
-
import {
|
|
34
|
-
|
|
35
|
-
var HeaderButtons = function () {
|
|
36
|
-
var _a = useImporterContext(), setCurrentStepIndex = _a.setCurrentStepIndex, resetImport = _a.resetImport;
|
|
37
|
-
var onClick = function () {
|
|
38
|
-
setCurrentStepIndex(1);
|
|
39
|
-
};
|
|
40
|
-
return (_jsxs(HeaderButtonsWrapper, __assign({ dflex: true, spaceBetween: true, mb: 12 }, { children: [_jsx(Button, __assign({ w: 180, isSmall: true, variant: "secondary", onClick: resetImport }, { children: "No, Re-upload file" })), _jsx(Button, __assign({ w: 142, isSmall: true, onClick: onClick }, { children: "Yes, continue" }))] })));
|
|
41
|
-
};
|
|
16
|
+
import { useReviewContext } from "../Review/ReviewContextProvider";
|
|
17
|
+
import { HeaderButtons } from "./HeaderButtons";
|
|
42
18
|
var HeadersPreview = function () {
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
var firstRowLen = 0;
|
|
46
|
-
if (uploadedData.length > 0 && Array.isArray(uploadedData[0])) {
|
|
47
|
-
firstRowLen = uploadedData[0].length;
|
|
48
|
-
}
|
|
49
|
-
var placeholderHeaders = new Array(firstRowLen)
|
|
50
|
-
.fill(null)
|
|
51
|
-
.map(function (_, i) { return String.fromCharCode(65 + i); });
|
|
52
|
-
var getDataRows = function () {
|
|
53
|
-
var emptyRows = [];
|
|
54
|
-
if (uploadedData.length < 20)
|
|
55
|
-
while (emptyRows.length < 20 - uploadedData.length)
|
|
56
|
-
emptyRows.push(Array(firstRowLen).fill(""));
|
|
57
|
-
return __spreadArray(__spreadArray([], uploadedData, true), emptyRows, true).map(function (row) {
|
|
58
|
-
var entry = {};
|
|
59
|
-
placeholderHeaders.forEach(function (placeholderHeader, index) {
|
|
60
|
-
entry[placeholderHeader] = row[index];
|
|
61
|
-
});
|
|
62
|
-
return entry;
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
return getDataRows();
|
|
66
|
-
}, [uploadedData]);
|
|
67
|
-
var readonlyFields = useMemo(function () {
|
|
68
|
-
return Object.keys(formattedData[0]).map(function (key) {
|
|
69
|
-
return {
|
|
70
|
-
label: key,
|
|
71
|
-
name: key,
|
|
72
|
-
type: FieldTypes.string,
|
|
73
|
-
isRequired: false,
|
|
74
|
-
};
|
|
75
|
-
});
|
|
76
|
-
}, []);
|
|
77
|
-
return (_jsx(_Fragment, { children: _jsxs(Div, __assign({ flexColumn: true, centered: true, pt: 40 }, { children: [_jsx(Div, __assign({ h2: true, mb: 16 }, { children: "Verify Your Column Headers" })), _jsx(Div, __assign({ body1: true, mb: 24, textAlignCenter: true }, { children: "File must contain column headers to proceed." })), _jsx(HeaderButtons, {}), _jsx(Div, __assign({ w100: true, centered: true, mb: 36 }, { children: _jsx(Spreadsheet, { rowWidth: getSpreadsheetRowWidth(readonlyFields, 6), isReadOnly: true, initialData: formattedData, fields: readonlyFields, highlightFirstRow: true }) }))] })) }));
|
|
19
|
+
var _a = useReviewContext(), fields = _a.previewFields, initialDataSet = _a.previewInitialDataSet;
|
|
20
|
+
return (_jsxs(Div, __assign({ flexColumn: true, centered: true, pt: 40 }, { children: [_jsx(Div, __assign({ h2: true, mb: 16 }, { children: "Verify Your Column Headers" })), _jsx(Div, __assign({ body1: true, mb: 24, textAlignCenter: true }, { children: "File must contain column headers to proceed." })), _jsx(HeaderButtons, {}), _jsx(Div, __assign({ w100: true, centered: true, mb: 36 }, { children: initialDataSet && (_jsx(Spreadsheet, { rowWidth: getSpreadsheetRowWidth(fields, 6), isReadOnly: true, initialDataSet: initialDataSet, fields: fields, highlightFirstRow: true })) }))] })));
|
|
78
21
|
};
|
|
79
22
|
export default HeadersPreview;
|
|
80
|
-
var templateObject_1;
|
|
@@ -5,9 +5,9 @@ declare type State = {
|
|
|
5
5
|
fileName: string;
|
|
6
6
|
setFileName: React.Dispatch<string>;
|
|
7
7
|
};
|
|
8
|
-
declare type
|
|
8
|
+
declare type UploaderContextProviderProps = {
|
|
9
9
|
children: JSX.Element;
|
|
10
10
|
};
|
|
11
|
-
export declare const UploaderContextProvider: ({ children }:
|
|
11
|
+
export declare const UploaderContextProvider: ({ children, }: UploaderContextProviderProps) => JSX.Element;
|
|
12
12
|
export declare const useUploaderContext: () => State;
|
|
13
13
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
declare const
|
|
3
|
-
export
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const _default: React.MemoExoticComponent<() => JSX.Element>;
|
|
3
|
+
export default _default;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { areEqual } from "react-window";
|
|
4
|
+
import { useImporterContext } from "../contexts/ImporterContextProvider";
|
|
3
5
|
import { DragAndDropImporter } from "./DragAndDropImporter";
|
|
6
|
+
import HeadersPreview from "./HeadersPreview";
|
|
4
7
|
import { UploaderContextProvider } from "./UploaderContextProvider";
|
|
5
|
-
import { useImporterContext } from "../ImporterContextProvider";
|
|
6
8
|
var UploaderWithContext = function () {
|
|
7
9
|
var uploadedData = useImporterContext().uploadedData;
|
|
8
10
|
return _jsx(_Fragment, { children: uploadedData ? _jsx(HeadersPreview, {}) : _jsx(DragAndDropImporter, {}) });
|
|
9
11
|
};
|
|
10
|
-
var Uploader = function () {
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
export { Uploader };
|
|
12
|
+
var Uploader = function () { return (_jsx(UploaderContextProvider, { children: _jsx(UploaderWithContext, {}) })); };
|
|
13
|
+
export default React.memo(Uploader, areEqual);
|
|
@@ -15,8 +15,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
15
15
|
};
|
|
16
16
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
17
|
import styled from "styled-components";
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
18
|
+
import { Div } from "../../styled";
|
|
19
|
+
import { Spinner } from "../../common";
|
|
20
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.6;\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.6;\n"])), function (props) { return props.theme.colors.white; });
|
|
21
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
22
|
var LoaderContainer = styled(ModalContainer)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n pointer-events: none;\n"], ["\n pointer-events: none;\n"])));
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
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 { colors } from "../../styled/theme/colorPalette";
|
|
14
|
+
import { Div } from "../../styled/utils";
|
|
15
|
+
import { logoIcon } from "./icons";
|
|
16
|
+
var Footer = function () { return (_jsx(Div, __assign({ centered: true, c: colors.gray600, pt: 65, pb: 50 }, { children: logoIcon }))); };
|
|
17
|
+
export { Footer };
|
|
@@ -9,8 +9,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import { api } from "
|
|
13
|
-
import { baseUrls } from "./
|
|
12
|
+
import { api } from "../../api";
|
|
13
|
+
import { baseUrls } from "./index";
|
|
14
14
|
// copies the axios request config from axios.AxiosInstance type and adds
|
|
15
15
|
// baseUrl based on environment and api key
|
|
16
16
|
var FuseApi = /** @class */ (function () {
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
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 { createGlobalStyle } from "styled-components";
|
|
6
|
+
export var GlobalStyle = createGlobalStyle(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n #fuse-importer-root > * {\n font-size: 17px;\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n font-family: DM Sans;\n color-scheme: normal;\n color: black;\n }\n"], ["\n #fuse-importer-root > * {\n font-size: 17px;\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n font-family: DM Sans;\n color-scheme: normal;\n color: black;\n }\n"])));
|
|
7
|
+
var templateObject_1;
|
|
File without changes
|
|
File without changes
|
|
@@ -1,46 +1,33 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { SpreadsheetOptions } from "../../..";
|
|
3
|
+
import { Field, OnValidateRecord, Record, RecordDataSet } from "../../../types";
|
|
4
|
+
import { ValidationState } from "./hooks";
|
|
5
|
+
export declare type OnDataSetChanged = (dataSet: RecordDataSet) => void;
|
|
6
|
+
export declare type OnValidationStateChanged = (state: ValidationState) => void;
|
|
5
7
|
declare type State = {
|
|
6
8
|
rowWidth?: number;
|
|
7
|
-
dataRef: React.MutableRefObject<Record[]>;
|
|
8
9
|
data: Record[];
|
|
9
10
|
fields: Field[];
|
|
10
11
|
isLoading: boolean;
|
|
11
|
-
setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;
|
|
12
|
-
isScrollingEnabled: boolean;
|
|
13
|
-
isValidationComplete: boolean;
|
|
14
|
-
submittedData: Record[];
|
|
15
|
-
columnErrorCounts: {
|
|
16
|
-
[column: string]: number;
|
|
17
|
-
};
|
|
18
12
|
isReadOnly?: boolean;
|
|
19
|
-
batchValidationErrors: BatchValidationErrors;
|
|
20
|
-
batchValidationPercentage: number;
|
|
21
|
-
totalErrors: number;
|
|
22
|
-
validateRenderedRecords: (renderedData: Record[]) => Promise<void>;
|
|
23
|
-
setData: React.Dispatch<React.SetStateAction<Record[]>>;
|
|
24
|
-
onValidateRecord?: OnValidateRecord;
|
|
25
|
-
setIsScrollingEnabled: React.Dispatch<boolean>;
|
|
26
13
|
highlightFirstRow: boolean;
|
|
27
14
|
sortByFieldErrors: string;
|
|
15
|
+
updateRecord: (record: Record) => void;
|
|
16
|
+
setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;
|
|
28
17
|
setSortByFieldErrors: React.Dispatch<React.SetStateAction<string>>;
|
|
29
|
-
};
|
|
18
|
+
} & ValidationState;
|
|
30
19
|
declare type Props = {
|
|
20
|
+
initialDataSet: RecordDataSet;
|
|
31
21
|
rowWidth?: number;
|
|
32
|
-
initialData: any;
|
|
33
22
|
isReadOnly?: boolean;
|
|
34
|
-
appResponse?: AppResponse;
|
|
35
|
-
onValidateRecord: OnValidateRecord;
|
|
36
|
-
onValidateBatch?: OnValidateBatch;
|
|
37
23
|
children: JSX.Element;
|
|
38
24
|
fields: Field[];
|
|
39
25
|
options: SpreadsheetOptions;
|
|
40
26
|
highlightFirstRow: boolean;
|
|
41
|
-
|
|
42
|
-
|
|
27
|
+
onValidationStateChanged?: OnValidationStateChanged;
|
|
28
|
+
onValidateRecord?: OnValidateRecord;
|
|
29
|
+
onDataSetChanged?: OnDataSetChanged;
|
|
43
30
|
};
|
|
44
|
-
export declare const SpreadsheetContextProvider: ({
|
|
31
|
+
export declare const SpreadsheetContextProvider: ({ initialDataSet, rowWidth, fields, options, isReadOnly, highlightFirstRow, children, onValidateRecord, onDataSetChanged, onValidationStateChanged, }: Props) => JSX.Element;
|
|
45
32
|
export declare const useSpreadsheetContext: () => State;
|
|
46
33
|
export {};
|