fuse-importer 0.0.1-staging
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 +270 -0
- package/lib/esm/Importer/ImporterWithContext.d.ts +6 -0
- package/lib/esm/Importer/ImporterWithContext.js +62 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.d.ts +3 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +68 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.d.ts +13 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.js +58 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcherContext.d.ts +10 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcherContext.js +21 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.d.ts +1 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +23 -0
- package/lib/esm/Importer/Matcher/HeaderMatcher/index.d.ts +2 -0
- package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +61 -0
- package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.d.ts +14 -0
- package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.js +55 -0
- package/lib/esm/Importer/Matcher/common/icons/index.d.ts +2 -0
- package/lib/esm/Importer/Matcher/common/icons/index.js +14 -0
- package/lib/esm/Importer/Matcher/common/index.d.ts +3 -0
- package/lib/esm/Importer/Matcher/common/index.js +39 -0
- package/lib/esm/Importer/Matcher/common/types.d.ts +7 -0
- package/lib/esm/Importer/Matcher/common/types.js +9 -0
- package/lib/esm/Importer/Matcher/index.d.ts +3 -0
- package/lib/esm/Importer/Matcher/index.js +22 -0
- package/lib/esm/Importer/PreviewFirstTime.d.ts +1 -0
- package/lib/esm/Importer/PreviewFirstTime.js +81 -0
- package/lib/esm/Importer/PreviewModeBanner.d.ts +1 -0
- package/lib/esm/Importer/PreviewModeBanner.js +19 -0
- package/lib/esm/Importer/Review/AppResponseModal.d.ts +1 -0
- package/lib/esm/Importer/Review/AppResponseModal.js +35 -0
- package/lib/esm/Importer/Review/ReviewContextProvider.d.ts +29 -0
- package/lib/esm/Importer/Review/ReviewContextProvider.js +290 -0
- package/lib/esm/Importer/Review/ReviewWithContext.d.ts +2 -0
- package/lib/esm/Importer/Review/ReviewWithContext.js +33 -0
- package/lib/esm/Importer/Review/index.d.ts +3 -0
- package/lib/esm/Importer/Review/index.js +4 -0
- package/lib/esm/Importer/Stepper/ConfirmCloseModal.d.ts +7 -0
- package/lib/esm/Importer/Stepper/ConfirmCloseModal.js +24 -0
- package/lib/esm/Importer/Stepper/Step.d.ts +6 -0
- package/lib/esm/Importer/Stepper/Step.js +19 -0
- package/lib/esm/Importer/Stepper/StepIndex.d.ts +5 -0
- package/lib/esm/Importer/Stepper/StepIndex.js +27 -0
- package/lib/esm/Importer/Stepper/StepperSubmitModal.d.ts +7 -0
- package/lib/esm/Importer/Stepper/StepperSubmitModal.js +24 -0
- package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.d.ts +8 -0
- package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.js +31 -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 +2 -0
- package/lib/esm/Importer/Stepper/common/icons.js +18 -0
- package/lib/esm/Importer/Stepper/index.d.ts +6 -0
- package/lib/esm/Importer/Stepper/index.js +118 -0
- package/lib/esm/Importer/TrialModeBanner.d.ts +1 -0
- package/lib/esm/Importer/TrialModeBanner.js +22 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/DragAndDropImporter.styles.d.ts +3 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/DragAndDropImporter.styles.js +11 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.d.ts +2 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +111 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/ImporterSectionHeader.styles.d.ts +7 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/ImporterSectionHeader.styles.js +11 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.d.ts +7 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +44 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/backgrounds.d.ts +2 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/backgrounds.js +14 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/index.d.ts +3 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +45 -0
- package/lib/esm/Importer/Uploader/HeaderButtons.d.ts +1 -0
- package/lib/esm/Importer/Uploader/HeaderButtons.js +28 -0
- package/lib/esm/Importer/Uploader/HeadersPreview.d.ts +2 -0
- package/lib/esm/Importer/Uploader/HeadersPreview.js +36 -0
- package/lib/esm/Importer/Uploader/UploaderContextProvider.d.ts +13 -0
- package/lib/esm/Importer/Uploader/UploaderContextProvider.js +27 -0
- package/lib/esm/Importer/Uploader/index.d.ts +3 -0
- package/lib/esm/Importer/Uploader/index.js +13 -0
- package/lib/esm/Importer/common/AppLoading.d.ts +1 -0
- package/lib/esm/Importer/common/AppLoading.js +24 -0
- package/lib/esm/Importer/common/Footer.d.ts +2 -0
- package/lib/esm/Importer/common/Footer.js +17 -0
- package/lib/esm/Importer/common/FuseApi.d.ts +12 -0
- package/lib/esm/Importer/common/FuseApi.js +48 -0
- package/lib/esm/Importer/common/GlobalStyle.d.ts +1 -0
- package/lib/esm/Importer/common/GlobalStyle.js +7 -0
- package/lib/esm/Importer/common/ImporterFonts.d.ts +1 -0
- package/lib/esm/Importer/common/ImporterFonts.js +5 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.d.ts +5 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.js +67 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.d.ts +47 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +167 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.d.ts +14 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.js +45 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.d.ts +2 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/common/index.d.ts +16 -0
- package/lib/esm/Importer/common/Spreadsheet/common/index.js +63 -0
- package/lib/esm/Importer/common/Spreadsheet/common/types.d.ts +24 -0
- package/lib/esm/Importer/common/Spreadsheet/common/types.js +5 -0
- package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.d.ts +15 -0
- package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.js +66 -0
- package/lib/esm/Importer/common/Spreadsheet/components/GlobalStyle.d.ts +2 -0
- package/lib/esm/Importer/common/Spreadsheet/components/GlobalStyle.js +9 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +105 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.d.ts +10 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +181 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowNumbers.d.ts +9 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowNumbers.js +55 -0
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.d.ts +5 -0
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +19 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.d.ts +13 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +38 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.d.ts +12 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +43 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.d.ts +12 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +96 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/Boolean.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/Boolean.js +18 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EnumInput.d.ts +6 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EnumInput.js +30 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/FloatInput.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/FloatInput.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/IntegerInput.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/IntegerInput.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/StringInput.d.ts +3 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/StringInput.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.d.ts +13 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.js +20 -0
- package/lib/esm/Importer/common/Spreadsheet/hooks.d.ts +34 -0
- package/lib/esm/Importer/common/Spreadsheet/hooks.js +234 -0
- package/lib/esm/Importer/common/Spreadsheet/index.d.ts +6 -0
- package/lib/esm/Importer/common/Spreadsheet/index.js +125 -0
- package/lib/esm/Importer/common/Spreadsheet/styles.d.ts +10 -0
- package/lib/esm/Importer/common/Spreadsheet/styles.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/index.d.ts +7 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/index.js +25 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.d.ts +8 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.js +106 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/index.d.ts +23 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/index.js +196 -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 +6 -0
- package/lib/esm/Importer/common/icons/index.js +18 -0
- package/lib/esm/Importer/common/index.d.ts +15 -0
- package/lib/esm/Importer/common/index.js +13 -0
- package/lib/esm/Importer/common/theme.d.ts +238 -0
- package/lib/esm/Importer/common/theme.js +19 -0
- package/lib/esm/Importer/common/utils.d.ts +12 -0
- package/lib/esm/Importer/common/utils.js +100 -0
- package/lib/esm/Importer/contexts/ImporterContextProvider.d.ts +71 -0
- package/lib/esm/Importer/contexts/ImporterContextProvider.js +244 -0
- package/lib/esm/Importer/data/index.d.ts +52 -0
- package/lib/esm/Importer/data/index.js +155 -0
- package/lib/esm/Importer/index.d.ts +22 -0
- package/lib/esm/Importer/index.js +28 -0
- package/lib/esm/api/index.d.ts +16 -0
- package/lib/esm/api/index.js +93 -0
- package/lib/esm/api/responseHandlers.d.ts +4 -0
- package/lib/esm/api/responseHandlers.js +49 -0
- package/lib/esm/common/ConfirmationModal.d.ts +10 -0
- package/lib/esm/common/ConfirmationModal.js +19 -0
- package/lib/esm/common/Modal.d.ts +16 -0
- package/lib/esm/common/Modal.js +31 -0
- package/lib/esm/common/Spinner.d.ts +5 -0
- package/lib/esm/common/Spinner.js +41 -0
- package/lib/esm/common/Table/Pagination/icons.d.ts +11 -0
- package/lib/esm/common/Table/Pagination/icons.js +42 -0
- package/lib/esm/common/Table/Pagination/index.d.ts +2 -0
- package/lib/esm/common/Table/Pagination/index.js +32 -0
- package/lib/esm/common/Table/TableActions/DeleteSelectedRows.d.ts +5 -0
- package/lib/esm/common/Table/TableActions/DeleteSelectedRows.js +50 -0
- package/lib/esm/common/Table/TableActions/ExportData.d.ts +3 -0
- package/lib/esm/common/Table/TableActions/ExportData.js +23 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.d.ts +1 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +46 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.styles.d.ts +6 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.styles.js +24 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/functions.d.ts +11 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/functions.js +35 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/index.d.ts +1 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/index.js +1 -0
- package/lib/esm/common/Table/TableActions/RowFilters.d.ts +1 -0
- package/lib/esm/common/Table/TableActions/RowFilters.js +39 -0
- package/lib/esm/common/Table/TableActions/SearchRows.d.ts +3 -0
- package/lib/esm/common/Table/TableActions/SearchRows.js +72 -0
- package/lib/esm/common/Table/TableActions/TableActions.d.ts +8 -0
- package/lib/esm/common/Table/TableActions/TableActions.js +34 -0
- package/lib/esm/common/Table/TableActions/TableActions.styles.d.ts +5 -0
- package/lib/esm/common/Table/TableActions/TableActions.styles.js +17 -0
- package/lib/esm/common/Table/TableActions/common.d.ts +1 -0
- package/lib/esm/common/Table/TableActions/common.js +1 -0
- package/lib/esm/common/Table/TableActions/hooks.d.ts +18 -0
- package/lib/esm/common/Table/TableActions/hooks.js +41 -0
- package/lib/esm/common/Table/TableActions/icons.d.ts +4 -0
- package/lib/esm/common/Table/TableActions/icons.js +16 -0
- package/lib/esm/common/Table/TableActions/index.d.ts +1 -0
- package/lib/esm/common/Table/TableActions/index.js +1 -0
- package/lib/esm/common/Table/TableDataProvider.d.ts +35 -0
- package/lib/esm/common/Table/TableDataProvider.js +127 -0
- package/lib/esm/common/Table/TableView/CustomScrollbar.d.ts +2 -0
- package/lib/esm/common/Table/TableView/CustomScrollbar.js +34 -0
- package/lib/esm/common/Table/TableView/TableHeaders.d.ts +23 -0
- package/lib/esm/common/Table/TableView/TableHeaders.js +69 -0
- package/lib/esm/common/Table/TableView/TableRows/TableRow.d.ts +19 -0
- package/lib/esm/common/Table/TableView/TableRows/TableRow.js +57 -0
- package/lib/esm/common/Table/TableView/TableRows/index.d.ts +4 -0
- package/lib/esm/common/Table/TableView/TableRows/index.js +45 -0
- package/lib/esm/common/Table/TableView/common/index.d.ts +5 -0
- package/lib/esm/common/Table/TableView/common/index.js +37 -0
- package/lib/esm/common/Table/TableView/index.d.ts +11 -0
- package/lib/esm/common/Table/TableView/index.js +133 -0
- package/lib/esm/common/Table/TableView/types.d.ts +37 -0
- package/lib/esm/common/Table/TableView/types.js +1 -0
- package/lib/esm/common/Table/icons.d.ts +3 -0
- package/lib/esm/common/Table/icons.js +15 -0
- package/lib/esm/common/Table/index.d.ts +11 -0
- package/lib/esm/common/Table/index.js +140 -0
- package/lib/esm/common/Table/useReorderRows.d.ts +4 -0
- package/lib/esm/common/Table/useReorderRows.js +83 -0
- package/lib/esm/common/Toast.d.ts +4 -0
- package/lib/esm/common/Toast.js +69 -0
- package/lib/esm/common/TooltipProvider.d.ts +19 -0
- package/lib/esm/common/TooltipProvider.js +57 -0
- package/lib/esm/common/buttons.d.ts +50 -0
- package/lib/esm/common/buttons.js +97 -0
- package/lib/esm/common/columnsTransformations.d.ts +15 -0
- package/lib/esm/common/columnsTransformations.js +92 -0
- package/lib/esm/common/columnsValidations.d.ts +45 -0
- package/lib/esm/common/columnsValidations.js +431 -0
- package/lib/esm/common/icons/index.d.ts +11 -0
- package/lib/esm/common/icons/index.js +30 -0
- package/lib/esm/common/index.d.ts +27 -0
- package/lib/esm/common/index.js +45 -0
- package/lib/esm/common/inputs/Autocomplete.d.ts +22 -0
- package/lib/esm/common/inputs/Autocomplete.js +110 -0
- package/lib/esm/common/inputs/Checkbox.d.ts +11 -0
- package/lib/esm/common/inputs/Checkbox.js +53 -0
- package/lib/esm/common/inputs/SelectMenu.d.ts +14 -0
- package/lib/esm/common/inputs/SelectMenu.js +67 -0
- package/lib/esm/common/inputs/TextInput.d.ts +29 -0
- package/lib/esm/common/inputs/TextInput.js +89 -0
- package/lib/esm/common/inputs/index.d.ts +5 -0
- package/lib/esm/common/inputs/index.js +5 -0
- package/lib/esm/common/inputs/tooltip.d.ts +4 -0
- package/lib/esm/common/inputs/tooltip.js +38 -0
- package/lib/esm/common/logo.d.ts +1 -0
- package/lib/esm/common/logo.js +13 -0
- package/lib/esm/hooks/index.d.ts +5 -0
- package/lib/esm/hooks/index.js +16 -0
- package/lib/esm/index.d.ts +34 -0
- package/lib/esm/index.js +230 -0
- package/lib/esm/locales/de.d.ts +121 -0
- package/lib/esm/locales/de.js +121 -0
- package/lib/esm/locales/en.d.ts +121 -0
- package/lib/esm/locales/en.js +121 -0
- package/lib/esm/locales/es.d.ts +121 -0
- package/lib/esm/locales/es.js +121 -0
- package/lib/esm/locales/fr.d.ts +121 -0
- package/lib/esm/locales/fr.js +121 -0
- package/lib/esm/locales/index.d.ts +4 -0
- package/lib/esm/locales/index.js +4 -0
- package/lib/esm/styled/fontsURL.d.ts +9 -0
- package/lib/esm/styled/fontsURL.js +27 -0
- package/lib/esm/styled/index.d.ts +3 -0
- package/lib/esm/styled/index.js +3 -0
- package/lib/esm/styled/theme/animations.d.ts +3 -0
- package/lib/esm/styled/theme/animations.js +9 -0
- package/lib/esm/styled/theme/colorPalette.d.ts +171 -0
- package/lib/esm/styled/theme/colorPalette.js +109 -0
- package/lib/esm/styled/theme/debugCss.d.ts +10 -0
- package/lib/esm/styled/theme/debugCss.js +16 -0
- package/lib/esm/styled/theme/dimensionsCss.d.ts +17 -0
- package/lib/esm/styled/theme/dimensionsCss.js +20 -0
- package/lib/esm/styled/theme/fontCss.d.ts +11 -0
- package/lib/esm/styled/theme/fontCss.js +17 -0
- package/lib/esm/styled/theme/globalCss.d.ts +18 -0
- package/lib/esm/styled/theme/globalCss.js +26 -0
- package/lib/esm/styled/theme/index.d.ts +345 -0
- package/lib/esm/styled/theme/index.js +33 -0
- package/lib/esm/styled/theme/layoutCss.d.ts +20 -0
- package/lib/esm/styled/theme/layoutCss.js +26 -0
- package/lib/esm/styled/theme/mediaQueries.d.ts +4 -0
- package/lib/esm/styled/theme/mediaQueries.js +4 -0
- package/lib/esm/styled/theme/positionCss.d.ts +20 -0
- package/lib/esm/styled/theme/positionCss.js +27 -0
- package/lib/esm/styled/theme/textCss.d.ts +12 -0
- package/lib/esm/styled/theme/textCss.js +18 -0
- package/lib/esm/styled/theme/textStyles.d.ts +21 -0
- package/lib/esm/styled/theme/textStyles.js +27 -0
- package/lib/esm/styled/themeType.d.ts +2 -0
- package/lib/esm/styled/themeType.js +6 -0
- package/lib/esm/styled/utils.d.ts +22 -0
- package/lib/esm/styled/utils.js +17 -0
- package/lib/esm/types.d.ts +209 -0
- package/lib/esm/types.js +65 -0
- package/lib/esm/utils/hooks/useWindowSize.d.ts +11 -0
- package/lib/esm/utils/hooks/useWindowSize.js +23 -0
- package/lib/esm/utils/hooks.d.ts +1 -0
- package/lib/esm/utils/hooks.js +1 -0
- package/lib/esm/utils/index.d.ts +12 -0
- package/lib/esm/utils/index.js +37 -0
- package/lib/main.js +172 -0
- package/lib/main.js.LICENSE.txt +61 -0
- package/package.json +96 -0
|
@@ -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 };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EnvironmentType } from "../../types";
|
|
2
|
+
import { AxiosRequestConfig, AxiosResponse } from "axios";
|
|
3
|
+
export declare class FuseApi {
|
|
4
|
+
environment: EnvironmentType;
|
|
5
|
+
apiToken: string;
|
|
6
|
+
constructor(environment: any, apiToken: any);
|
|
7
|
+
get<T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R>;
|
|
8
|
+
post<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;
|
|
9
|
+
patch<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;
|
|
10
|
+
put<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;
|
|
11
|
+
delete<T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
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 { api } from "../../api";
|
|
13
|
+
import { baseUrls } from "./index";
|
|
14
|
+
// copies the axios request config from axios.AxiosInstance type and adds
|
|
15
|
+
// baseUrl based on environment and api key
|
|
16
|
+
var FuseApi = /** @class */ (function () {
|
|
17
|
+
function FuseApi(environment, apiToken) {
|
|
18
|
+
this.environment = environment;
|
|
19
|
+
this.apiToken = apiToken;
|
|
20
|
+
}
|
|
21
|
+
FuseApi.prototype.get = function (url, config) {
|
|
22
|
+
return api.get(url, __assign(__assign({}, config), { toPublicApi: true, baseURL: baseUrls[this.environment], params: {
|
|
23
|
+
api_token: this.apiToken,
|
|
24
|
+
} }));
|
|
25
|
+
};
|
|
26
|
+
FuseApi.prototype.post = function (url, data, config) {
|
|
27
|
+
return api.post(url, data, __assign(__assign({}, config), { toPublicApi: true, baseURL: baseUrls[this.environment], params: {
|
|
28
|
+
api_token: this.apiToken,
|
|
29
|
+
} }));
|
|
30
|
+
};
|
|
31
|
+
FuseApi.prototype.patch = function (url, data, config) {
|
|
32
|
+
return api.patch(url, data, __assign(__assign({}, config), { toPublicApi: true, baseURL: baseUrls[this.environment], params: {
|
|
33
|
+
api_token: this.apiToken,
|
|
34
|
+
} }));
|
|
35
|
+
};
|
|
36
|
+
FuseApi.prototype.put = function (url, data, config) {
|
|
37
|
+
return api.put(url, data, __assign(__assign({}, config), { toPublicApi: true, baseURL: baseUrls[this.environment], params: {
|
|
38
|
+
api_token: this.apiToken,
|
|
39
|
+
} }));
|
|
40
|
+
};
|
|
41
|
+
FuseApi.prototype.delete = function (url, config) {
|
|
42
|
+
return api.delete(url, __assign(__assign({}, config), { toPublicApi: true, baseURL: baseUrls[this.environment], params: {
|
|
43
|
+
api_token: this.apiToken,
|
|
44
|
+
} }));
|
|
45
|
+
};
|
|
46
|
+
return FuseApi;
|
|
47
|
+
}());
|
|
48
|
+
export { FuseApi };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GlobalStyle: import("styled-components").GlobalStyleComponent<{}, import("styled-components").DefaultTheme>;
|
|
@@ -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 body > * {\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 body > * {\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;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ImporterFonts: () => JSX.Element;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Helmet } from "react-helmet";
|
|
3
|
+
export var ImporterFonts = function () {
|
|
4
|
+
return (_jsxs(Helmet, { children: [_jsx("link", { rel: "preconnect", href: "https://fonts.googleapis.com" }), _jsx("link", { rel: "preconnect", href: "https://fonts.gstatic.com", crossOrigin: "" }), _jsx("link", { href: "https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600&display=swap", rel: "stylesheet" }), _jsx("link", { href: "https://fonts.googleapis.com/css?family=DM+Serif+Text:300,400,500,600&display=swap", rel: "stylesheet" }), _jsx("link", { href: "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=DM+Serif+Display&family=DM+Serif+Text&display=swap", rel: "stylesheet" }), _jsx("link", { href: "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=DM+Serif+Text&display=swap", rel: "stylesheet" })] }));
|
|
5
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BatchValidationErrors, RecordDataSet } from "../../../../types";
|
|
2
|
+
import { SpreadsheetFilter } from "./useSpreadsheetFilter";
|
|
3
|
+
export declare const filterRecordsBySearchValue: (obj: RecordDataSet, value: string) => RecordDataSet;
|
|
4
|
+
export declare const filterRecordsByType: (obj: RecordDataSet, filterType: SpreadsheetFilter["byRow"]) => RecordDataSet;
|
|
5
|
+
export declare const filterRecordsByError: (obj: RecordDataSet, keyToFilter: string, errors: BatchValidationErrors) => RecordDataSet;
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
//Filter records by search value
|
|
13
|
+
export var filterRecordsBySearchValue = function (obj, value) {
|
|
14
|
+
var isObject = function (value) {
|
|
15
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
16
|
+
};
|
|
17
|
+
var includesSearchValue = function (value, searchValue) {
|
|
18
|
+
if (typeof value === "string" || typeof value === "number") {
|
|
19
|
+
var stringValue = String(value).toLowerCase();
|
|
20
|
+
var searchValueLower = searchValue.toLowerCase();
|
|
21
|
+
return stringValue.includes(searchValueLower);
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
};
|
|
25
|
+
var filteredObj = {};
|
|
26
|
+
for (var _i = 0, _a = Object.entries(obj); _i < _a.length; _i++) {
|
|
27
|
+
var _b = _a[_i], key = _b[0], currentObj = _b[1];
|
|
28
|
+
if (!isObject(currentObj)) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
var matches = Object.values(currentObj).some(function (propertyValue) {
|
|
32
|
+
return includesSearchValue(propertyValue, value);
|
|
33
|
+
});
|
|
34
|
+
if (matches) {
|
|
35
|
+
filteredObj[key] = currentObj;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return filteredObj;
|
|
39
|
+
};
|
|
40
|
+
export var filterRecordsByType = function (obj, filterType) {
|
|
41
|
+
var rowIsEmpty = function (row) {
|
|
42
|
+
return Object.keys(row).every(function (key) {
|
|
43
|
+
if (key === "_meta")
|
|
44
|
+
return true;
|
|
45
|
+
return !row[key];
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
var filteredKeys = Object.keys(obj).filter(function (key) {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
return filterType === "all" ||
|
|
51
|
+
(((_b = (_a = obj[key]) === null || _a === void 0 ? void 0 : _a._meta) === null || _b === void 0 ? void 0 : _b.isInvalid) !== (filterType === "valid") &&
|
|
52
|
+
!rowIsEmpty(obj[key]));
|
|
53
|
+
});
|
|
54
|
+
return filteredKeys.reduce(function (acc, key) {
|
|
55
|
+
var _a;
|
|
56
|
+
return (__assign(__assign({}, acc), (_a = {}, _a[key] = obj[key], _a)));
|
|
57
|
+
}, {});
|
|
58
|
+
};
|
|
59
|
+
//Filter records by selected column error
|
|
60
|
+
export var filterRecordsByError = function (obj, keyToFilter, errors) {
|
|
61
|
+
var filteredObj = {};
|
|
62
|
+
var filteredKeys = Object.keys(errors).filter(function (key) { var _a, _b; return ((_b = (_a = obj[key]) === null || _a === void 0 ? void 0 : _a._meta) === null || _b === void 0 ? void 0 : _b.isInvalid) && errors[key][keyToFilter]; });
|
|
63
|
+
for (var i = 0; i < filteredKeys.length; i++) {
|
|
64
|
+
filteredObj[filteredKeys[i]] = obj[filteredKeys[i]];
|
|
65
|
+
}
|
|
66
|
+
return filteredObj;
|
|
67
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { SpreadsheetOptions } from "../../../..";
|
|
3
|
+
import { BatchValidationErrors, Field, Record, RecordDataSet } from "../../../../types";
|
|
4
|
+
import { SortBy, SpreadsheetProps } from "../common/types";
|
|
5
|
+
import { ValidationState } from "../hooks";
|
|
6
|
+
import { SpreadsheetFilter } from "./useSpreadsheetFilter";
|
|
7
|
+
export type OnDataSetChanged = (dataSet: RecordDataSet) => void;
|
|
8
|
+
export type OnValidationStateChanged = (state: ValidationState) => void;
|
|
9
|
+
type State = {
|
|
10
|
+
data: Record[];
|
|
11
|
+
fields: Field[];
|
|
12
|
+
isLoading: boolean;
|
|
13
|
+
isReadOnly?: boolean;
|
|
14
|
+
errors: BatchValidationErrors;
|
|
15
|
+
warnings: BatchValidationErrors;
|
|
16
|
+
highlightFirstRow: boolean;
|
|
17
|
+
options: SpreadsheetOptions;
|
|
18
|
+
sortByFieldErrors: string;
|
|
19
|
+
sortByFieldWarnings: string;
|
|
20
|
+
updateRecord: (record: Record) => void;
|
|
21
|
+
setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;
|
|
22
|
+
setSortByFieldErrors: React.Dispatch<React.SetStateAction<string>>;
|
|
23
|
+
selectedRows: string[];
|
|
24
|
+
setSelectedRows: React.Dispatch<React.SetStateAction<string[]>>;
|
|
25
|
+
setSortByFieldWarnings: React.Dispatch<React.SetStateAction<string>>;
|
|
26
|
+
deleteRecords: (selectedRecords: string[]) => void;
|
|
27
|
+
lastClickedIndexRef: React.MutableRefObject<number | null>;
|
|
28
|
+
filteredInputValue: string;
|
|
29
|
+
setFilteredInputValue: React.Dispatch<React.SetStateAction<string>>;
|
|
30
|
+
addNewRowsToSpreadsheet: () => void;
|
|
31
|
+
spreadsheetFilter: SpreadsheetFilter;
|
|
32
|
+
filterRecordsByRowType: (filterByRow: SpreadsheetFilter["byRow"]) => void;
|
|
33
|
+
filterRecordsByFieldErrors: (filterByColumn: string) => void;
|
|
34
|
+
resetSpreadsheetFilter: () => void;
|
|
35
|
+
recordsWithValuesCount: number;
|
|
36
|
+
filteredDataCount: number;
|
|
37
|
+
checkboxColumnWidth: number;
|
|
38
|
+
isFiltering: boolean;
|
|
39
|
+
sortBy: SortBy | null;
|
|
40
|
+
setSortBy: React.Dispatch<React.SetStateAction<SortBy>>;
|
|
41
|
+
} & ValidationState;
|
|
42
|
+
type Props = SpreadsheetProps & {
|
|
43
|
+
children: JSX.Element;
|
|
44
|
+
};
|
|
45
|
+
export declare const SpreadsheetContextProvider: ({ initialDataSet, fields, options, isReadOnly, highlightFirstRow, children, onValidateRecord, onDataSetChanged, onValidationStateChanged, selectedRows, setSelectedRows, getSortCompareFn, }: Props) => JSX.Element;
|
|
46
|
+
export declare const useSpreadsheetContext: () => State;
|
|
47
|
+
export {};
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import { get } from "lodash";
|
|
25
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
|
|
26
|
+
import { addMeta } from "../../../data";
|
|
27
|
+
import { useValidationState } from "../hooks";
|
|
28
|
+
import { useSpreadsheetFilter, } from "./useSpreadsheetFilter";
|
|
29
|
+
import { filterRecordsByType, filterRecordsByError, filterRecordsBySearchValue, } from "./filterMethods";
|
|
30
|
+
import { hasValueInAnyField } from "./utils";
|
|
31
|
+
var getDefaultSortCompareFn = function (sortBy) {
|
|
32
|
+
return function (a, b) {
|
|
33
|
+
var aField = get(a, sortBy.field);
|
|
34
|
+
var bField = get(b, sortBy.field);
|
|
35
|
+
if (aField === bField)
|
|
36
|
+
return a._meta.rowIndex > b._meta.rowIndex ? 1 : -1;
|
|
37
|
+
if (!aField)
|
|
38
|
+
return 1;
|
|
39
|
+
if (!bField)
|
|
40
|
+
return -1;
|
|
41
|
+
if (sortBy.direction === "asc")
|
|
42
|
+
return aField > bField ? 1 : -1;
|
|
43
|
+
return aField < bField ? 1 : -1;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
var SpreadsheetContext = createContext({});
|
|
47
|
+
export var SpreadsheetContextProvider = function (_a) {
|
|
48
|
+
var initialDataSet = _a.initialDataSet, fields = _a.fields, options = _a.options, isReadOnly = _a.isReadOnly, highlightFirstRow = _a.highlightFirstRow, children = _a.children, onValidateRecord = _a.onValidateRecord, onDataSetChanged = _a.onDataSetChanged, onValidationStateChanged = _a.onValidationStateChanged, selectedRows = _a.selectedRows, setSelectedRows = _a.setSelectedRows, _b = _a.getSortCompareFn, getSortCompareFn = _b === void 0 ? getDefaultSortCompareFn : _b;
|
|
49
|
+
var _c = useState(initialDataSet), dataSet = _c[0], setDataSet = _c[1];
|
|
50
|
+
var _d = useState(false), isLoading = _d[0], setIsLoading = _d[1];
|
|
51
|
+
var _e = useState(null), sortByFieldErrors = _e[0], setSortByFieldErrors = _e[1];
|
|
52
|
+
var _f = useState(null), sortByFieldWarnings = _f[0], setSortByFieldWarnings = _f[1];
|
|
53
|
+
var _g = useState(""), filteredInputValue = _g[0], setFilteredInputValue = _g[1];
|
|
54
|
+
var _h = useState(null), sortBy = _h[0], setSortBy = _h[1];
|
|
55
|
+
var addRowTimeoutRef = useRef(null);
|
|
56
|
+
var _j = useSpreadsheetFilter(), spreadsheetFilter = _j.spreadsheetFilter, filterRecordsByRowType = _j.filterRecordsByRowType, filterRecordsByFieldErrors = _j.filterRecordsByFieldErrors, resetSpreadsheetFilter = _j.resetSpreadsheetFilter;
|
|
57
|
+
var _k = useValidationState({
|
|
58
|
+
dataSet: dataSet,
|
|
59
|
+
initialDataSet: initialDataSet,
|
|
60
|
+
fields: fields,
|
|
61
|
+
options: options,
|
|
62
|
+
isReadOnly: isReadOnly,
|
|
63
|
+
setDataSet: setDataSet,
|
|
64
|
+
setIsLoading: setIsLoading,
|
|
65
|
+
onValidateRecord: onValidateRecord,
|
|
66
|
+
}), updateRecordAndRevalidate = _k.updateRecordAndRevalidate, deleteRecords = _k.deleteRecords, warnings = _k.warnings, errors = _k.errors, validationState = __rest(_k, ["updateRecordAndRevalidate", "deleteRecords", "warnings", "errors"]);
|
|
67
|
+
var addNewRowsToSpreadsheet = function () {
|
|
68
|
+
addRowTimeoutRef.current = setTimeout(function () {
|
|
69
|
+
var highestRowIndex = Math.max.apply(Math, Object.values(dataSet).map(function (obj) { return obj._meta.rowIndex; }));
|
|
70
|
+
var newRow = addMeta({}, highestRowIndex + 1);
|
|
71
|
+
setDataSet(function (oldValues) {
|
|
72
|
+
var _a;
|
|
73
|
+
return (__assign(__assign({}, oldValues), (_a = {}, _a[newRow._meta.id] = newRow, _a)));
|
|
74
|
+
});
|
|
75
|
+
addRowTimeoutRef.current = null;
|
|
76
|
+
}, 300);
|
|
77
|
+
};
|
|
78
|
+
var handleDeleteErrors = function (selectedRows) {
|
|
79
|
+
deleteRecords(selectedRows, errors, warnings);
|
|
80
|
+
};
|
|
81
|
+
var dataSnapshot = useMemo(function () {
|
|
82
|
+
var filteredData = spreadsheetFilter.type === "rowBased"
|
|
83
|
+
? filterRecordsByType(dataSet, spreadsheetFilter.byRow)
|
|
84
|
+
: filterRecordsByError(dataSet, spreadsheetFilter.byColumn.field, errors);
|
|
85
|
+
var filteredDatasetByString = filteredInputValue
|
|
86
|
+
? filterRecordsBySearchValue(filteredData, filteredInputValue)
|
|
87
|
+
: filteredData;
|
|
88
|
+
var dataSetValues = Object.values(filteredDatasetByString);
|
|
89
|
+
if (sortBy) {
|
|
90
|
+
return dataSetValues.sort(getSortCompareFn(sortBy));
|
|
91
|
+
}
|
|
92
|
+
else if (!!sortByFieldErrors || !!sortByFieldWarnings)
|
|
93
|
+
return dataSetValues.sort(function (a, b) {
|
|
94
|
+
var aHasErrors = !!get(sortByFieldErrors ? errors : warnings, "".concat(get(a, "_meta.id"), ".").concat(sortByFieldErrors || sortByFieldWarnings), false);
|
|
95
|
+
var bHasErrors = !!get(sortByFieldErrors ? errors : warnings, "".concat(get(b, "_meta.id"), ".").concat(sortByFieldErrors || sortByFieldWarnings), false);
|
|
96
|
+
if (aHasErrors === bHasErrors) {
|
|
97
|
+
return a._meta.rowIndex > b._meta.rowIndex ? 1 : -1;
|
|
98
|
+
}
|
|
99
|
+
return bHasErrors ? 1 : -1;
|
|
100
|
+
});
|
|
101
|
+
return dataSetValues;
|
|
102
|
+
}, [
|
|
103
|
+
filteredInputValue,
|
|
104
|
+
spreadsheetFilter,
|
|
105
|
+
sortBy,
|
|
106
|
+
Object.keys(dataSet).length,
|
|
107
|
+
sortByFieldErrors,
|
|
108
|
+
sortByFieldWarnings,
|
|
109
|
+
]);
|
|
110
|
+
var recordsWithValuesCount = useMemo(function () {
|
|
111
|
+
return Object.values(dataSet).filter(hasValueInAnyField).length;
|
|
112
|
+
}, [dataSet]);
|
|
113
|
+
var filteredDataCount = useMemo(function () {
|
|
114
|
+
return Object.values(dataSnapshot).filter(hasValueInAnyField).length;
|
|
115
|
+
}, [dataSnapshot]);
|
|
116
|
+
var isFiltering = useMemo(function () { return !!filteredInputValue; }, [filteredInputValue]);
|
|
117
|
+
useEffect(function () {
|
|
118
|
+
onDataSetChanged && onDataSetChanged(dataSet);
|
|
119
|
+
if (addRowTimeoutRef.current) {
|
|
120
|
+
// avoid adding new rows when the user is typing
|
|
121
|
+
clearTimeout(addRowTimeoutRef.current);
|
|
122
|
+
}
|
|
123
|
+
var dataSetKeys = Object.keys(dataSet);
|
|
124
|
+
var latestDataSet = dataSet[dataSetKeys[dataSetKeys.length - 1]];
|
|
125
|
+
var latestDataSetValuesWithoutMeta = Object.values(latestDataSet).filter(function (key) { return key !== "_meta"; });
|
|
126
|
+
var hasValueInTheLastObject = latestDataSetValuesWithoutMeta
|
|
127
|
+
.filter(function (value) {
|
|
128
|
+
return value !== null && value !== undefined && typeof value !== "object";
|
|
129
|
+
})
|
|
130
|
+
.some(function (value) { return value !== "null" && value !== "undefined"; });
|
|
131
|
+
if (hasValueInTheLastObject) {
|
|
132
|
+
addNewRowsToSpreadsheet();
|
|
133
|
+
}
|
|
134
|
+
}, [dataSet]);
|
|
135
|
+
useEffect(function () {
|
|
136
|
+
onValidationStateChanged &&
|
|
137
|
+
onValidationStateChanged(__assign(__assign({}, validationState), { errors: errors, warnings: warnings }));
|
|
138
|
+
}, [validationState, onValidationStateChanged]);
|
|
139
|
+
var handleSortByFieldErrors = useCallback(function (field) {
|
|
140
|
+
setSortByFieldErrors(field === sortByFieldErrors ? null : field);
|
|
141
|
+
setSortByFieldWarnings(null);
|
|
142
|
+
setSortBy(null);
|
|
143
|
+
}, [sortByFieldErrors]);
|
|
144
|
+
var handleSortByFieldWarnings = useCallback(function (field) {
|
|
145
|
+
setSortByFieldWarnings(field === sortByFieldWarnings ? null : field);
|
|
146
|
+
setSortByFieldErrors(null);
|
|
147
|
+
setSortBy(null);
|
|
148
|
+
}, [sortByFieldWarnings]);
|
|
149
|
+
var lastClickedIndexRef = useRef(null);
|
|
150
|
+
var checkboxColumnWidth = useMemo(function () {
|
|
151
|
+
var lastRowIndexLength = dataSnapshot.length.toString().length;
|
|
152
|
+
var singleLetterWidth = 15;
|
|
153
|
+
var horizontalSpacing = 8;
|
|
154
|
+
var baseCheckboxColumnWidth = lastRowIndexLength * singleLetterWidth + horizontalSpacing;
|
|
155
|
+
return baseCheckboxColumnWidth < 40 ? 40 : baseCheckboxColumnWidth;
|
|
156
|
+
}, [dataSnapshot]);
|
|
157
|
+
var updatedDataSnapshot = useMemo(function () {
|
|
158
|
+
return dataSnapshot.map(function (data) {
|
|
159
|
+
var _a;
|
|
160
|
+
var updatedData = dataSet[(_a = data._meta) === null || _a === void 0 ? void 0 : _a.id];
|
|
161
|
+
return updatedData;
|
|
162
|
+
});
|
|
163
|
+
}, [dataSet, dataSnapshot]);
|
|
164
|
+
var value = __assign(__assign({ data: updatedDataSnapshot, fields: fields, isLoading: isLoading }, validationState), { isReadOnly: isReadOnly, sortByFieldErrors: sortByFieldErrors, sortByFieldWarnings: sortByFieldWarnings, highlightFirstRow: highlightFirstRow, options: options, recordsWithValuesCount: recordsWithValuesCount, filteredDataCount: filteredDataCount, sortBy: sortBy, warnings: warnings, errors: errors, setIsLoading: setIsLoading, setSortByFieldErrors: handleSortByFieldErrors, setSortByFieldWarnings: handleSortByFieldWarnings, onValidateRecord: onValidateRecord, updateRecord: updateRecordAndRevalidate, selectedRows: selectedRows, setSelectedRows: setSelectedRows, deleteRecords: handleDeleteErrors, filteredInputValue: filteredInputValue, setFilteredInputValue: setFilteredInputValue, lastClickedIndexRef: lastClickedIndexRef, addNewRowsToSpreadsheet: addNewRowsToSpreadsheet, spreadsheetFilter: spreadsheetFilter, resetSpreadsheetFilter: resetSpreadsheetFilter, filterRecordsByRowType: filterRecordsByRowType, filterRecordsByFieldErrors: filterRecordsByFieldErrors, checkboxColumnWidth: checkboxColumnWidth, setSortBy: setSortBy, isFiltering: isFiltering });
|
|
165
|
+
return (_jsx(SpreadsheetContext.Provider, __assign({ value: value }, { children: children })));
|
|
166
|
+
};
|
|
167
|
+
export var useSpreadsheetContext = function () { return useContext(SpreadsheetContext); };
|
package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type SpreadsheetFilter = {
|
|
2
|
+
type: "rowBased" | "columnBased";
|
|
3
|
+
byRow?: "all" | "invalid" | "valid";
|
|
4
|
+
byColumn?: {
|
|
5
|
+
type: "fieldWithErrors";
|
|
6
|
+
field: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export declare const useSpreadsheetFilter: () => {
|
|
10
|
+
spreadsheetFilter: SpreadsheetFilter;
|
|
11
|
+
filterRecordsByRowType: (filterByRow: SpreadsheetFilter["byRow"]) => void;
|
|
12
|
+
filterRecordsByFieldErrors: (filterByColumn: string) => void;
|
|
13
|
+
resetSpreadsheetFilter: () => void;
|
|
14
|
+
};
|
package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useReducer } from "react";
|
|
2
|
+
export var useSpreadsheetFilter = function () {
|
|
3
|
+
var filtersInitialState = {
|
|
4
|
+
type: "rowBased",
|
|
5
|
+
byRow: "all",
|
|
6
|
+
};
|
|
7
|
+
function reducer(state, action) {
|
|
8
|
+
switch (action.type) {
|
|
9
|
+
case "FILTER_BY_ROW_TYPE":
|
|
10
|
+
return { type: "rowBased", byRow: action.payload, byColumn: null };
|
|
11
|
+
case "FILTER_BY_FIELD_ERRORS":
|
|
12
|
+
return {
|
|
13
|
+
type: "columnBased",
|
|
14
|
+
byColumn: {
|
|
15
|
+
type: "fieldWithErrors",
|
|
16
|
+
field: action.payload,
|
|
17
|
+
},
|
|
18
|
+
byRow: null,
|
|
19
|
+
};
|
|
20
|
+
case "RESTORE_FILTERS":
|
|
21
|
+
return filtersInitialState;
|
|
22
|
+
default:
|
|
23
|
+
return state;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
var _a = useReducer(reducer, filtersInitialState), spreadsheetFilter = _a[0], filtersDispatch = _a[1];
|
|
27
|
+
var resetSpreadsheetFilter = function () {
|
|
28
|
+
filtersDispatch({ type: "RESTORE_FILTERS" });
|
|
29
|
+
};
|
|
30
|
+
var filterRecordsByRowType = function (filterByRow) {
|
|
31
|
+
filtersDispatch({ type: "FILTER_BY_ROW_TYPE", payload: filterByRow });
|
|
32
|
+
};
|
|
33
|
+
var filterRecordsByFieldErrors = function (filterByColumn) {
|
|
34
|
+
filtersDispatch({
|
|
35
|
+
type: "FILTER_BY_FIELD_ERRORS",
|
|
36
|
+
payload: filterByColumn,
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
spreadsheetFilter: spreadsheetFilter,
|
|
41
|
+
filterRecordsByRowType: filterRecordsByRowType,
|
|
42
|
+
filterRecordsByFieldErrors: filterRecordsByFieldErrors,
|
|
43
|
+
resetSpreadsheetFilter: resetSpreadsheetFilter,
|
|
44
|
+
};
|
|
45
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export var hasValueInAnyField = function (record) {
|
|
2
|
+
return Object.entries(record)
|
|
3
|
+
.filter(function (_a) {
|
|
4
|
+
var key = _a[0];
|
|
5
|
+
return key !== "_meta";
|
|
6
|
+
})
|
|
7
|
+
.some(function (_a) {
|
|
8
|
+
var key = _a[0], value = _a[1];
|
|
9
|
+
if (typeof value === "string") {
|
|
10
|
+
return value.trim() !== "";
|
|
11
|
+
}
|
|
12
|
+
return value !== null && value !== undefined;
|
|
13
|
+
});
|
|
14
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Record, Field, FieldTypes } from "../../../../types";
|
|
2
|
+
export declare const spreadsheetRowHeightPx = 40;
|
|
3
|
+
export declare const spreadsheetHeaderHeightPx = 40;
|
|
4
|
+
export declare const isNullOrUndefined: (value: any) => boolean;
|
|
5
|
+
export declare const isEmpty: (value: string) => boolean;
|
|
6
|
+
export declare const isEmail: (value: string) => boolean;
|
|
7
|
+
export declare const isUrl: (value: string) => boolean;
|
|
8
|
+
export declare const isTrue: (value: string) => boolean;
|
|
9
|
+
export declare const isFalse: (value: string) => boolean;
|
|
10
|
+
export declare const isBoolean: (value: string) => boolean;
|
|
11
|
+
export declare const isInteger: (value: string) => boolean;
|
|
12
|
+
export declare const isFloat: (value: string) => boolean;
|
|
13
|
+
export declare const isEven: (value: number) => boolean;
|
|
14
|
+
export declare const ignoreNullOrUndefinedKeyValues: (obj: any) => {};
|
|
15
|
+
export declare const isRecordEmpty: (record: Record, fields: Field[]) => boolean;
|
|
16
|
+
export declare const parseValue: (fieldType: FieldTypes, value: any, enumSet?: any) => any;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { FieldTypes } from "../../../../types";
|
|
2
|
+
export var spreadsheetRowHeightPx = 40;
|
|
3
|
+
export var spreadsheetHeaderHeightPx = 40;
|
|
4
|
+
export var isNullOrUndefined = function (value) {
|
|
5
|
+
return value === null || value === undefined;
|
|
6
|
+
};
|
|
7
|
+
export var isEmpty = function (value) {
|
|
8
|
+
return (value === undefined ||
|
|
9
|
+
value === null ||
|
|
10
|
+
(typeof value === "object" && Object.keys(value).length === 0) ||
|
|
11
|
+
(typeof value === "string" && value.trim().length === 0));
|
|
12
|
+
};
|
|
13
|
+
export var isEmail = function (value) {
|
|
14
|
+
var emailRegex = /^[\w+.-]+@([\w-]+\.)+[\w-]{2,4}$/;
|
|
15
|
+
return emailRegex.test(value);
|
|
16
|
+
};
|
|
17
|
+
export var isUrl = function (value) {
|
|
18
|
+
var urlRegex = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/g;
|
|
19
|
+
return urlRegex.test(value);
|
|
20
|
+
};
|
|
21
|
+
export var isTrue = function (value) {
|
|
22
|
+
var _a;
|
|
23
|
+
var _value = (_a = value === null || value === void 0 ? void 0 : value.toString()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
24
|
+
return ["true", "yes", "1", "y", "on", "t"].includes(_value);
|
|
25
|
+
};
|
|
26
|
+
export var isFalse = function (value) {
|
|
27
|
+
var _a;
|
|
28
|
+
var _value = (_a = value === null || value === void 0 ? void 0 : value.toString()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
29
|
+
return ["false", "no", "0", "n", "off", "f"].includes(_value);
|
|
30
|
+
};
|
|
31
|
+
export var isBoolean = function (value) {
|
|
32
|
+
return isTrue(value) || isFalse(value);
|
|
33
|
+
};
|
|
34
|
+
export var isInteger = function (value) { return /^-?[0-9]+$/.test(value + ""); };
|
|
35
|
+
export var isFloat = function (value) {
|
|
36
|
+
return /^-?[0-9]+(?:\.[0-9]+)?$/.test(value + "");
|
|
37
|
+
};
|
|
38
|
+
export var isEven = function (value) { return value % 2 === 0; };
|
|
39
|
+
export var ignoreNullOrUndefinedKeyValues = function (obj) {
|
|
40
|
+
var result = {};
|
|
41
|
+
Object.keys(obj || {})
|
|
42
|
+
.filter(function (key) { return obj[key] !== null && obj[key] !== undefined; })
|
|
43
|
+
.forEach(function (key) {
|
|
44
|
+
result[key] = obj[key];
|
|
45
|
+
});
|
|
46
|
+
return result;
|
|
47
|
+
};
|
|
48
|
+
export var isRecordEmpty = function (record, fields) {
|
|
49
|
+
return fields.reduce(function (isEmptyRecord, f) { return isEmptyRecord && isEmpty(record[f.name]); }, true);
|
|
50
|
+
};
|
|
51
|
+
export var parseValue = function (fieldType, value, enumSet) {
|
|
52
|
+
if (isEmpty(value))
|
|
53
|
+
return value;
|
|
54
|
+
if (fieldType === FieldTypes.float)
|
|
55
|
+
return isFloat(value) ? parseFloat(value) : value;
|
|
56
|
+
if (fieldType === FieldTypes.integer)
|
|
57
|
+
return isInteger(value) ? parseInt(value) : value;
|
|
58
|
+
if (fieldType === FieldTypes.boolean)
|
|
59
|
+
return isTrue(value) ? true : false;
|
|
60
|
+
if (fieldType === FieldTypes.enum && enumSet)
|
|
61
|
+
return enumSet[value];
|
|
62
|
+
return value;
|
|
63
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { RecordDataSet, Field, SpreadsheetOptions, OnValidateRecord, Record } from "../../../../types";
|
|
3
|
+
import { OnDataSetChanged, OnValidationStateChanged } from "../SpreadsheetContextProvider";
|
|
4
|
+
export declare enum SortOrder {
|
|
5
|
+
ASC = "asc",
|
|
6
|
+
DESC = "desc"
|
|
7
|
+
}
|
|
8
|
+
export type SortBy = {
|
|
9
|
+
field: string;
|
|
10
|
+
direction: SortOrder;
|
|
11
|
+
};
|
|
12
|
+
export type SpreadsheetProps = {
|
|
13
|
+
initialDataSet: RecordDataSet;
|
|
14
|
+
isReadOnly?: boolean;
|
|
15
|
+
fields?: Field[];
|
|
16
|
+
highlightFirstRow?: boolean;
|
|
17
|
+
options?: SpreadsheetOptions;
|
|
18
|
+
onValidateRecord?: OnValidateRecord;
|
|
19
|
+
onDataSetChanged?: OnDataSetChanged;
|
|
20
|
+
onValidationStateChanged?: OnValidationStateChanged;
|
|
21
|
+
selectedRows?: string[];
|
|
22
|
+
setSelectedRows?: React.Dispatch<React.SetStateAction<string[]>>;
|
|
23
|
+
getSortCompareFn?: (sortBy: SortBy) => (a: Record, b: Record) => number;
|
|
24
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Field } from "../../../../types";
|
|
3
|
+
import { SortOrder } from "../common/types";
|
|
4
|
+
type SortIndicatorProps = {
|
|
5
|
+
direction: SortOrder;
|
|
6
|
+
};
|
|
7
|
+
export declare const SortIndicator: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../../styled/utils").CSSProps & SortIndicatorProps, never>;
|
|
8
|
+
export type FieldHeaderProps = {
|
|
9
|
+
field: Field;
|
|
10
|
+
sortByFieldErrors: (name: string) => void;
|
|
11
|
+
sortByFieldWarnings: (name: string) => void;
|
|
12
|
+
};
|
|
13
|
+
export declare const FieldHeader: React.FC<FieldHeaderProps>;
|
|
14
|
+
export declare const chevronDown: JSX.Element;
|
|
15
|
+
export {};
|