@zjlab-fe/data-hub-ui 0.21.7 → 0.23.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/es/assets/cardImg.png.js +3 -0
- package/es/assets/closeBtn.png.js +3 -0
- package/es/assets/icon-tag-header.png.js +3 -0
- package/es/assets/source.png.js +3 -0
- package/es/components/FileUploader/FileUploadModal.js +23 -0
- package/es/components/FileUploader/FileUploader.js +20 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploader.js +34 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderContextProvider.js +46 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiver.css.js +36 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiver.js +56 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiverContainer.js +24 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiverDesc.js +9 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderList.js +46 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItem.js +46 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItemFail.js +21 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItemPaused.js +20 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItemUploading.js +43 -0
- package/es/components/FileUploader/FileUploaderImpl/FileUploaderlListItemFinished.js +32 -0
- package/es/components/FileUploader/Locale/translations.js +52 -0
- package/es/components/FileUploader/Locale/useTranslate.js +16 -0
- package/es/components/FileUploader/UploadStoreProvider/UploadStoreProvider.js +31 -0
- package/es/components/FileUploader/UploadStoreProvider/uploadStoreReducer.js +62 -0
- package/es/components/FileUploader/UploadStoreProvider/useOnFileAllUploaded.js +31 -0
- package/es/components/FileUploader/UploadStoreProvider/useSaveUnfinishedUploads.js +42 -0
- package/es/components/FileUploader/UploadStoreProvider/useSetupMergingEvent.js +45 -0
- package/es/components/FileUploader/hooks/useCancelUpload.js +40 -0
- package/es/components/FileUploader/hooks/useCurrentFile.js +61 -0
- package/es/components/FileUploader/hooks/useCurrentFileOnUploading.js +52 -0
- package/es/components/FileUploader/hooks/useCurrentFileSetupAndBackUp.js +39 -0
- package/es/components/FileUploader/hooks/useFormatFiles.js +64 -0
- package/es/components/FileUploader/hooks/useFormatFilesFindDuplicates.js +75 -0
- package/es/components/FileUploader/hooks/useFormatFilesRemoveDuplicates.js +21 -0
- package/es/components/FileUploader/hooks/useHandleChunkCompletion.js +31 -0
- package/es/components/FileUploader/hooks/useOnMounted.js +24 -0
- package/es/components/FileUploader/hooks/useOnMountedResumeUnfinished.js +58 -0
- package/es/components/FileUploader/hooks/useRetryUpload.js +33 -0
- package/es/components/FileUploader/hooks/useUploadChunk.js +46 -0
- package/es/components/FileUploader/icons/CloseFilled.js +7 -0
- package/es/components/FileUploader/icons/UnkownFileIcon.js +7 -0
- package/es/components/FileUploader/icons/UploadIcon.js +7 -0
- package/es/components/FileUploader/index.css.js +532 -0
- package/es/components/FileUploader/index.js +20 -0
- package/es/components/FileUploader/types.js +13 -0
- package/es/components/FileUploader/utils/calcDisplaySize.js +20 -0
- package/es/components/FileUploader/utils/checkExpiryTime.js +15 -0
- package/es/components/FileUploader/utils/createFileToUpload.js +60 -0
- package/es/components/FileUploader/utils/fileDB/addFilesToIndexdb.js +14 -0
- package/es/components/FileUploader/utils/fileDB/deleteFileInStore.js +18 -0
- package/es/components/FileUploader/utils/fileDB/deleteObjectStore.js +25 -0
- package/es/components/FileUploader/utils/fileDB/index.js +77 -0
- package/es/components/FileUploader/utils/fileDB/openDBAndRetrieveData.js +90 -0
- package/es/components/FileUploader/utils/fileDB/retrieveExistingData.js +49 -0
- package/es/components/FileUploader/utils/modalConfig.css.js +20 -0
- package/es/components/FileUploader/utils/modalConfig.js +32 -0
- package/es/components/FileUploader/utils/retrieveAllFiles.js +70 -0
- package/es/components/FileUploader/utils/splitFileIntoChunk.js +15 -0
- package/es/components/SDK-modal/document-link.js +8 -0
- package/es/components/SDK-modal/index.js +25 -0
- package/es/components/SDK-modal/index.module.scss.js +49 -0
- package/es/components/SDK-modal/inner-modal.js +59 -0
- package/es/components/SDK-modal/locale/translations.js +17 -0
- package/es/components/apply-perm-modal/index.js +53 -0
- package/es/components/apply-perm-modal/index.module.scss.js +96 -0
- package/es/components/auth-tag/index.js +23 -0
- package/es/components/bench-card/index.js +20 -0
- package/es/components/bench-card/index.module.scss.js +48 -0
- package/es/components/confirm-again/index.js +14 -0
- package/es/components/confirm-again/index.scss.js +37 -0
- package/es/components/copy/index.js +41 -0
- package/es/components/copy/index.module.scss.js +15 -0
- package/es/components/corpus-card/index.js +88 -0
- package/es/components/corpus-card/index.module.scss.js +171 -0
- package/es/components/feature-card/classNames.js +72 -0
- package/es/components/feature-card/components.js +48 -0
- package/es/components/feature-card/context.js +13 -0
- package/es/components/feature-card/index.css.js +655 -0
- package/es/components/feature-card/index.js +47 -0
- package/es/components/file-preview/data-table/index.js +94 -0
- package/es/components/file-preview/data-table/index.module.scss.js +54 -0
- package/es/components/file-preview/excel-preview/index.js +132 -0
- package/es/components/file-preview/excel-preview/index.module.scss.js +11 -0
- package/es/components/file-preview/excel-preview/utils.js +46 -0
- package/es/components/file-preview/img-preview/index.js +18 -0
- package/es/components/file-preview/img-preview/index.module.scss.js +17 -0
- package/es/components/file-preview/index.js +124 -0
- package/es/components/file-preview/index.module.scss.js +32 -0
- package/es/components/file-preview/json-preview/index.js +166 -0
- package/es/components/file-preview/markdown-preview/index.js +53 -0
- package/es/components/file-preview/markdown-preview/index.module.scss.js +1055 -0
- package/es/components/file-preview/parquet-preview/index.js +54 -0
- package/es/components/file-preview/pdf-preview/index.js +215 -0
- package/es/components/file-preview/pdf-preview/index.module.scss.js +16 -0
- package/es/components/file-preview/table-preview/index.js +43 -0
- package/es/components/file-preview/table-preview/index.module.scss.js +11 -0
- package/es/components/file-preview/txt-preview/index.js +24 -0
- package/es/components/file-preview/util.js +94 -0
- package/es/components/file-uploader/components/circle-progress.css.js +39 -0
- package/es/components/file-uploader/components/circle-progress.js +11 -0
- package/es/components/file-uploader/components/hooks/use-drop-zone.js +74 -0
- package/es/components/file-uploader/components/hooks/use-file-validation.js +52 -0
- package/es/components/file-uploader/components/icons.js +19 -0
- package/es/components/file-uploader/components/theme.css.js +64 -0
- package/es/components/file-uploader/components/uploader-drop-zone.css.js +66 -0
- package/es/components/file-uploader/components/uploader-drop-zone.js +72 -0
- package/es/components/file-uploader/components/uploader-file-item.css.js +186 -0
- package/es/components/file-uploader/components/uploader-file-item.js +61 -0
- package/es/components/file-uploader/components/uploader-file-list.css.js +43 -0
- package/es/components/file-uploader/components/uploader-file-list.js +25 -0
- package/es/components/file-uploader/components/uploader.css.js +20 -0
- package/es/components/file-uploader/components/uploader.js +49 -0
- package/es/components/file-uploader/components/uploading-status.css.js +52 -0
- package/es/components/file-uploader/components/uploading-status.js +53 -0
- package/es/components/file-uploader/components/utils/directory-reader.js +65 -0
- package/es/components/file-uploader/constants.js +31 -0
- package/es/components/file-uploader/context/action-registry.js +69 -0
- package/es/components/file-uploader/context/file-state-store.js +83 -0
- package/es/components/file-uploader/context/handler-registry.js +119 -0
- package/es/components/file-uploader/context/upload-context.js +36 -0
- package/es/components/file-uploader/context/upload-provider.js +77 -0
- package/es/components/file-uploader/context/upload-reducer.js +21 -0
- package/es/components/file-uploader/context/use-upload-engine.js +440 -0
- package/es/components/file-uploader/engine/queue-callbacks.js +257 -0
- package/es/components/file-uploader/engine/queue-manager.js +195 -0
- package/es/components/file-uploader/engine/queue-uploader.js +25 -0
- package/es/components/file-uploader/hooks/use-upload.js +327 -0
- package/es/components/file-uploader/utils/chunk-handlers.js +66 -0
- package/es/components/file-uploader/utils/ensure-handlers.js +53 -0
- package/es/components/file-uploader/utils/error-handler.js +84 -0
- package/es/components/file-uploader/utils/upload-controllers.js +43 -0
- package/es/components/file-uploader/utils/upload-handler.js +68 -0
- package/es/components/file-uploader/utils/validate-handlers.js +16 -0
- package/es/components/floating-label-input/index.js +46 -0
- package/es/components/floating-label-input/index.module.scss.js +30 -0
- package/es/components/floating-layer/index.js +14 -0
- package/es/components/floating-layer/index.scss.js +31 -0
- package/es/components/header/index.js +10 -0
- package/es/components/header/index.module.scss.js +16 -0
- package/es/components/input-tag/index.js +65 -0
- package/es/components/menu/index.js +96 -0
- package/es/components/menu/index.module.scss.js +188 -0
- package/es/components/model-card/index.js +20 -0
- package/es/components/model-card/index.module.scss.js +116 -0
- package/es/components/notion-editor/code-block/index.js +18 -0
- package/es/components/notion-editor/code-block/languageDetector.js +134 -0
- package/es/components/notion-editor/code-block/languages.js +42 -0
- package/es/components/notion-editor/index.js +257 -0
- package/es/components/notion-editor/index.scss.js +421 -0
- package/es/components/notion-editor/parseMarkdown.js +184 -0
- package/es/components/operator-chain/components/AddButton.js +20 -0
- package/es/components/operator-chain/components/IOCard.js +8 -0
- package/es/components/operator-chain/components/SingleCard.js +12 -0
- package/es/components/operator-chain/components/VirtualDropdown.js +56 -0
- package/es/components/operator-chain/index.js +83 -0
- package/es/components/operator-chain/index.module.scss.js +232 -0
- package/es/components/permission-editor/index.js +9 -0
- package/es/components/permission-editor/permissionEditModal/index.js +37 -0
- package/es/components/permission-editor/permissionEditor/index.js +253 -0
- package/es/components/permission-editor/permissionEditor/index.module.scss.js +22 -0
- package/es/components/permission-editor/permissionViewPopover/index.js +9 -0
- package/es/components/popover-select/index.js +42 -0
- package/es/components/popover-select/index.module.scss.js +22 -0
- package/es/components/radio-card/index.js +23 -0
- package/es/components/radio-card/index.scss.js +58 -0
- package/es/components/section-heading/classNames.js +22 -0
- package/es/components/section-heading/components.js +27 -0
- package/es/components/section-heading/context.js +13 -0
- package/es/components/section-heading/index.css.js +648 -0
- package/es/components/section-heading/index.js +36 -0
- package/es/components/status-tag/index.js +31 -0
- package/es/components/tag-group-filter/dataSizeFilter.js +100 -0
- package/es/components/tag-group-filter/index.js +53 -0
- package/es/components/tag-group-filter/index.module.scss.js +134 -0
- package/es/components/tag-group-filter/tagFilter.js +19 -0
- package/es/components/tag-view/index.js +138 -0
- package/es/components/tag-view/index.module.scss.js +56 -0
- package/es/components/tag-view/useSize.js +41 -0
- package/es/components/tip-tap/bubble-menu.js +47 -0
- package/es/components/tip-tap/editor.js +34 -0
- package/es/components/tip-tap/extensions/index.js +133 -0
- package/es/components/tip-tap/extensions/markdown-paste.js +148 -0
- package/es/components/tip-tap/icons/index.js +29 -0
- package/es/components/tip-tap/reader.js +15 -0
- package/es/components/tip-tap/styles/editor.css.js +863 -0
- package/es/components/tip-tap/toolbar/components/color-picker.js +76 -0
- package/es/components/tip-tap/toolbar/components/heading-dropdown.js +44 -0
- package/es/components/tip-tap/toolbar/components/image-button.js +26 -0
- package/es/components/tip-tap/toolbar/components/link-button.js +107 -0
- package/es/components/tip-tap/toolbar/components/table-button.js +37 -0
- package/es/components/tip-tap/toolbar/components/toolbar-button.js +7 -0
- package/es/components/tip-tap/toolbar/index.js +39 -0
- package/es/components/uploadDrawer/UploadStoreProvider.js +61 -0
- package/es/components/uploadDrawer/fileUploadDrawer.js +66 -0
- package/es/components/uploadDrawer/fileUploadDrawerFileDragger.js +71 -0
- package/es/components/uploadDrawer/fileUploadDrawerList.js +54 -0
- package/es/components/uploadDrawer/fileUploadDrawerListProgressButton.js +54 -0
- package/es/components/uploadDrawer/hooks/useCancelUpload.js +37 -0
- package/es/components/uploadDrawer/hooks/useFilterFiles.js +107 -0
- package/es/components/uploadDrawer/hooks/useFinishUpload.js +33 -0
- package/es/components/uploadDrawer/hooks/useFormatFiles.js +54 -0
- package/es/components/uploadDrawer/hooks/useProgressButtonRef.js +22 -0
- package/es/components/uploadDrawer/hooks/useRemoveFilesInUploadQueue.js +21 -0
- package/es/components/uploadDrawer/hooks/useResumeUnfinishedUploads.js +52 -0
- package/es/components/uploadDrawer/hooks/useRetryUpload.js +35 -0
- package/es/components/uploadDrawer/hooks/useSaveUnfinishedUploads.js +42 -0
- package/es/components/uploadDrawer/hooks/useSetupUpload.js +80 -0
- package/es/components/uploadDrawer/hooks/useUploadFileToOSS.js +23 -0
- package/es/components/uploadDrawer/index.css.js +511 -0
- package/es/components/uploadDrawer/index.js +42 -0
- package/es/components/uploadDrawer/utils/calcDisplaySize.js +19 -0
- package/es/components/uploadDrawer/utils/constant.js +16 -0
- package/es/components/uploadDrawer/utils/createFileToUpload.js +51 -0
- package/es/components/uploadDrawer/utils/fileDB/deleteFileInStore.js +28 -0
- package/es/components/uploadDrawer/utils/fileDB/deleteObjectStore.js +28 -0
- package/es/components/uploadDrawer/utils/fileDB/handleAddFilesToDB.js +37 -0
- package/es/components/uploadDrawer/utils/fileDB/index.js +9 -0
- package/es/components/uploadDrawer/utils/fileDB/openDB.js +111 -0
- package/es/components/uploadDrawer/utils/retrieveAllFiles.js +110 -0
- package/es/components/uploadDrawer/utils/shouldCreateNewFile.js +13 -0
- package/es/components/uploadDrawer/utils/splitFileIntoChunk.js +15 -0
- package/es/index.js +40 -1
- package/es/lib/utils.js +8 -0
- package/lib/index.js +1 -1
- package/package.json +33 -6
- package/rollup.es.config.mjs +177 -0
- package/tsconfig.rollup.json +7 -0
- package/dist/types/components/FileUploader/FileUploaderContextProvider.d.ts +0 -9
- package/dist/types/components/FileUploader/FileUploaderFileDragger.d.ts +0 -11
- package/dist/types/components/FileUploader/FileUploaderFileDraggerDragAreaDescription.d.ts +0 -4
- package/dist/types/components/FileUploader/FileUploaderList.d.ts +0 -1
- package/dist/types/components/FileUploader/FileUploaderListItem.d.ts +0 -26
- package/dist/types/components/FileUploader/FileUploaderListItemFail.d.ts +0 -5
- package/dist/types/components/FileUploader/FileUploaderListItemPaused.d.ts +0 -5
- package/dist/types/components/FileUploader/FileUploaderListItemUploading.d.ts +0 -2
- package/dist/types/components/FileUploader/FileUploaderMain.d.ts +0 -7
- package/dist/types/components/FileUploader/FileUploaderlListItemFinished.d.ts +0 -5
- package/dist/types/components/FileUploader/UploadStoreProvider.d.ts +0 -41
- package/dist/types/components/FileUploader/hooks/useCheckForDuplicates.d.ts +0 -1
- package/dist/types/components/FileUploader/hooks/useCurrentFIleOnInit.d.ts +0 -5
- package/dist/types/components/FileUploader/hooks/useCurrentFileOnAllUploaded.d.ts +0 -1
- package/dist/types/components/FileUploader/hooks/useCurrentFileOnCancel.d.ts +0 -2
- package/dist/types/components/FileUploader/hooks/useCurrentFileOnFail.d.ts +0 -2
- package/dist/types/components/FileUploader/hooks/useCurrentFileOnFinished.d.ts +0 -2
- package/dist/types/components/FileUploader/hooks/useFileDragAndDrop.d.ts +0 -9
- package/dist/types/components/FileUploader/hooks/useRemoveFilesInUploadQueue.d.ts +0 -1
- package/dist/types/components/FileUploader/hooks/useResumeUnfinishedUploads.d.ts +0 -1
- package/dist/types/components/FileUploader/hooks/useSaveUnfinishedUploads.d.ts +0 -11
- package/dist/types/components/FileUploader/hooks/useTranslate.d.ts +0 -1
- package/dist/types/components/FileUploader/hooks/useUploadContext.d.ts +0 -26
- package/dist/types/components/FileUploader/hooks/useWathUploadQueueAndSetupCurrentFile.d.ts +0 -1
- package/dist/types/components/FileUploader/translations.d.ts +0 -4
- package/dist/types/components/file-uploader/hooks/use-upload-batch.d.ts +0 -36
- package/dist/types/components/file-uploader/hooks/use-upload-control.d.ts +0 -37
- package/dist/types/components/file-uploader/hooks/use-upload-files.d.ts +0 -40
- package/dist/types/components/file-uploader/hooks/use-upload-operations.d.ts +0 -43
- package/dist/types/components/tip-tap/actions/BoldItalicStrikeUnderline.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/CodeQuoteHorizontalRule.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/Image.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/Link.d.ts +0 -5
- package/dist/types/components/tip-tap/actions/LinkModifier.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/List.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/ParagraphHeadings.d.ts +0 -13
- package/dist/types/components/tip-tap/actions/Table.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/TextAligment.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/UndoRedo.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/action-image.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/action-link.d.ts +0 -5
- package/dist/types/components/tip-tap/actions/action-list.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/action-table.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/bold-italic-strike-underline.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/code-quote-horizontalRule.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/highlight-textcolor-fontsize.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/link-modifier.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/paragraph-headings.d.ts +0 -13
- package/dist/types/components/tip-tap/actions/text-aligment.d.ts +0 -4
- package/dist/types/components/tip-tap/actions/undo-redo.d.ts +0 -4
- package/dist/types/components/tip-tap/extensions/DropHandler.d.ts +0 -2
- package/dist/types/components/tip-tap/extensions/FontSize.d.ts +0 -20
- package/dist/types/components/tip-tap/extensions/PatseHandler.d.ts +0 -3
- package/dist/types/components/tip-tap/extensions/drop-handler.d.ts +0 -2
- package/dist/types/components/tip-tap/extensions/font-size.d.ts +0 -20
- package/dist/types/components/tip-tap/extensions/patse-handler.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextCenter.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextJustify.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextLeft.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextRight.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsAddLink.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsAddPhotoAlternateOutline.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsCode.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsEditOutline.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatColorText.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH1.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH2.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH3.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH4.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH5.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH6.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatInkHighlighterOutlineSharp.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatListBulleted.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatListNumbered.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatParagraph.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatQuote.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsHorizontalRule.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsLinkOff.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsRedo.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsTable.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MaterialSymbolsUndo.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MdiCodeBlockTags.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MdiFormatBold.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MdiFormatItalic.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MdiFormatStrikethroughVariant.d.ts +0 -3
- package/dist/types/components/tip-tap/icons/MdiFormatUnderline.d.ts +0 -3
- package/dist/types/components/tip-tap/menus/BubbleMenu.d.ts +0 -7
- package/dist/types/components/tip-tap/menus/FixedMenu.d.ts +0 -9
- package/dist/types/components/tip-tap/menus/LinkFloatingMenu.d.ts +0 -6
- package/dist/types/components/tip-tap/menus/ParagraphFloatingMenu.d.ts +0 -6
- package/dist/types/components/tip-tap/menus/bubble-menu.d.ts +0 -7
- package/dist/types/components/tip-tap/menus/fixed-menu.d.ts +0 -9
- package/dist/types/components/tip-tap/menus/link-floating-menu.d.ts +0 -6
- package/dist/types/components/tip-tap/menus/paragraph-floating-menu.d.ts +0 -6
- package/dist/types/components/tip-tap/the-editor.d.ts +0 -4
- package/dist/types/components/tip-tap/utils/add-image-to-editor.d.ts +0 -2
- package/dist/types/components/tip-tap/utils/addImageToEditor.d.ts +0 -2
- package/dist/types/components/tip-tap/utils/markdown-detector.d.ts +0 -33
- package/dist/types/components/tip-tap/utils/parse-markdown.d.ts +0 -2
- package/dist/types/components/tip-tap/utils/parseMarkDown.d.ts +0 -2
- package/dist/types/components/tip-tap-2/demo/index.d.ts +0 -1
- package/dist/types/components/tip-tap-2/index.d.ts +0 -26
- package/dist/types/demo/layout/index.d.ts +0 -2
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var CardImg = "data:image/png;base64,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";
|
|
2
|
+
|
|
3
|
+
export { CardImg as default };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var closeBtn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAARCAYAAADUryzEAAAAAXNSR0IArs4c6QAAAf1JREFUOE+lkz9oE3EUx7/vd0nbOPing5RSKJ0q+GdVUCkOLh2qQ4lLtfVsESlpTEsql2bIUNI2htSLONleKjqUc1BxE3QQCuJSKAg6aKfqIqiQao7mfq/cNXckscGAv+l+777v897v/b4/wn8uapQfyedbj1Kos2xL+3jnka1wOGzvp/0LMJtd6hYBoRFwFcCBStJvBh4TI6PF1C/VoBpAWi/0E/MzAC0NOttmlkOJ2Ohz778PSOceniehvG1mJEIop+9MDL93tC7ANE3l89fiBwC9zQBA+Gj96DmZSl0ou4D0ojFIhKd+MvMaE70mIFmJ3QVwFsA5T2NLOZCcHH3pAuYXjQUmTFdV/yVh9wpWVEBCEhsCyicAh3wNQdei6m0XMHfPWAVwpW66P1uZepyYRbzJwOGa4zFeaDH18h5AN1bAGK4REObaJGWcWEnwNBhaHeCRFlNHKh0sTwGU9QTMMEOgmyXiDSfWxnSqBF4B4ZKvIZpKRK/nXEDmQaHD3uFvVRUc45QIaK9c1XfeM5VnLNjS6kpO3tryfTCvF/LMHGnmGpn4fiJ6Y8L3gfORy5khSxTfADjzD8g7K/jnYmp8vFgDcDap/JODLbwzS406YeiBcmAmHr+27RXZ9zWms4VjCHAfQZwgyKAE1oOK/SoeGdus767hc25mFo5mF83NrRLVZKusAAAAAElFTkSuQmCC";
|
|
2
|
+
|
|
3
|
+
export { closeBtn as default };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var iconTagHeader = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAANCAYAAABsItTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABfSURBVHgBLY7RDYAwEELB+GE7idM6lyvZqMhRL00aArw77ufxIiOuz7URpCDAogELbchidMCeyrlHc0SsVsUqg7IL4D+G0hGYaGiqDALobmvSntGyg5wA4h+LPi/z+wB5dDOkdZOy3wAAAABJRU5ErkJggg==";
|
|
2
|
+
|
|
3
|
+
export { iconTagHeader as default };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
var sourceIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAOdEVYdFNvZnR3YXJlAEZpZ21hnrGWYwAABOpJREFUeAG9WMtSG0cUPbdHEqMHbzvYgCp7433K7FP5gNjwA7B3IidZYrxKykB5HbsqawjZp1JZZeFUsoYPIMLExJiHhKSRNNM3t0cCCZiRRgj7VKmmR93qPur76HOb0CMebbD1xw7sZAzxio2ELkJxHGT6qA6OKbjxFLxqCbX9v+HgZ/J6mZ+iDpxe4yQnkKrWkUAPiHuoWwql3a+pEmV8V0L3NjjxfgcjXgwW+oDlwotbKHYjFk6ImUZ/wJA1gBRuEPoYpcOnKIKIEZmQ+MndfzBatxDHB4DZLfGv90H+RUFkJnYw3q+JrkvqIiEx08QKbkchM1jDUEp79y2mLBjTzdl2PeL8vm29RgRUxeGLOSHVZr4LhEa/5+FuPjNWQ9au6wULNC+vQ0FjZPY8K3pdSWD10MJup/l8n1qmwhVCJqwdwsjlH0yV+CcZdG83TZ9Nl7BM4MW2hbcZvMXUWJSYZgjmw9nm9CeasPomhVfogINj2aVlqpl27OzLuofB1lsLCvjCJ1zCb7LQff9fEf1YiGGtmEAhyA1HHZpJuXpREeYU49lkibJ7aSyF8MFEBiP7wH/+X+i0OwbZEu+htSN5R9HjgyT+RATcKWMuzvxMmkMatP4mja/CxtqMY5OjlHlxHWQizG/YZ23NLxARb1PYcCz6UpoFBZ6fKmMhbOyJ0/BdZcLcTQYZqwEGdY2YqQoWwxZ7Z2PbVfqxvxgjZ6IzaNxAUo6kR2zRxHNOS5gPoQ+cmTWfpsmwMeKDm+KDs5IWVvdSajVojBzKJ6piYQAfAa6CT8JiFWo25whxlXKCk6DZ2smyzo15zaTXJ95KIDCb9MDDtx3MBI1JyOaosKyc8fS8ZOGc7ehF3BBYse+PltaBhIyuOhdXlyHJvOFXhAIiottumrRhnhLa2aB+zVAKNwCJRH+hlMO/9GtiZWRnUIfHzeOAui9QBh4aUiZPdSTFyt912YiTYDLQSg1CB3VqS235hDTNogsO08hfJIXA5CnJ0Z+rTtgO6q+IJFE1hWpQp0lo8iiYBe5U8ACRScmBS9i63G9Ugsw1Yw7csKPHsiQ7JApwwxaRJPbSPGMaOUSAISWq4HM53Z9e7ku62p9DzPFr2O+TKdTU/qdSqoSgGFOGUMFk2Lvlxql/HZjdUUxzpi2JeDVs3L+/o6owR161glogIZEXLtGKaccYL8ISWjcyqTo2TdsDrRzawYLNqEcjZ/2wL9omUEJYi7jSTBsmw9oeNiV7zyEiJhxv1pAxgk0cfks00VrY2KLUbuZ5nhQzz/kTu4OWnhS1aDXVola0XiO8ajr+FZhjZ7iO3Jm6NGRO4njYEHRX4Uh0nX5DLYHmY4kTt0Ywjg4QP1qIMT9BU0v72tmPKt5uTpZtyNiWaY26DHLydhyIOEOzgLxwbIwt8ZAaQbrTj8dKyCZZ54jUg5Z2voKCB153LPUyzGfOydRwiu+oePZ+8RxbYpUZwLjdQbC145bkJ3H2rIL2iWmovEvIVy1sh5mnHb6pnuBdaBnkQxRkRgpF+wMXij6ZroXiRyLlF4h/4ShaKX0GMd+YBF83n+oVvs98K5+eLhvaISVSRmq2fnfLN9GpRFOzIAxD5AsrQ2xQIz3Q441IjVEV767gpi6srkD8C3KlN+zKdV7cqFHEkk3VWRFtRbZcTJVRO5KTG9e40vsfuZsXUYxbwa4AAAAASUVORK5CYII=";
|
|
2
|
+
|
|
3
|
+
export { sourceIcon as default };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { Modal, Alert, Button } from 'antd';
|
|
4
|
+
import { useContext } from 'react';
|
|
5
|
+
import { UploadStoreContext, TEMP_STORE } from './UploadStoreProvider/UploadStoreProvider.js';
|
|
6
|
+
import { useTranslate } from './Locale/useTranslate.js';
|
|
7
|
+
import { modalConfig } from './utils/modalConfig.js';
|
|
8
|
+
import FileUploader from './FileUploaderImpl/FileUploader.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated This component is deprecated and will be removed in future releases.
|
|
12
|
+
*/
|
|
13
|
+
function FileUploadModal(_a) {
|
|
14
|
+
var { config: { modal, dragArea, uploadRequest } } = _a, props = __rest(_a, ["config"]);
|
|
15
|
+
const t = useTranslate();
|
|
16
|
+
const uploadStore = useContext(UploadStoreContext);
|
|
17
|
+
if (uploadStore === TEMP_STORE) {
|
|
18
|
+
return (jsx(Modal, Object.assign({}, modalConfig, { title: t('文件上传') }, modal, { children: jsx(Alert, { message: t('FileUploadModal 必须在 UploadStoreProvider 内使用'), type: "warning" }) })));
|
|
19
|
+
}
|
|
20
|
+
return (jsx(Modal, Object.assign({}, modalConfig, { forceRender: true, title: t('文件上传'), footer: jsx(Button, { type: "primary", onClick: modal.onCancel, children: t('确定') }) }, modal, { children: jsx(FileUploader, Object.assign({}, props, { dragAreaConfig: dragArea, uploadRequestConfig: uploadRequest })) })));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { FileUploadModal as default };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { UploadStoreContext, TEMP_STORE } from './UploadStoreProvider/UploadStoreProvider.js';
|
|
4
|
+
import FileUploader$1 from './FileUploaderImpl/FileUploader.js';
|
|
5
|
+
import { Alert } from 'antd';
|
|
6
|
+
import { useTranslate } from './Locale/useTranslate.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated This component is deprecated and will be removed in future releases.
|
|
10
|
+
*/
|
|
11
|
+
function FileUploader(props) {
|
|
12
|
+
const t = useTranslate();
|
|
13
|
+
const uploadStore = useContext(UploadStoreContext);
|
|
14
|
+
if (uploadStore === TEMP_STORE) {
|
|
15
|
+
return jsx(Alert, { message: t('FileUploader 必须在 UploadStoreProvider 内使用'), type: "warning" });
|
|
16
|
+
}
|
|
17
|
+
return (jsx("div", { className: "zjlab-fe-data-hub-ui-file-uploader", children: jsx(FileUploader$1, Object.assign({}, props)) }));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { FileUploader as default };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import { Spin } from 'antd';
|
|
4
|
+
import { useContext, useEffect } from 'react';
|
|
5
|
+
import FileUploaderFileReceiver from './FileUploaderFileReceiver.js';
|
|
6
|
+
import FileUploadModalList from './FileUploaderList.js';
|
|
7
|
+
import { useFormatFiles } from '../hooks/useFormatFiles.js';
|
|
8
|
+
import { useOnMounted } from '../hooks/useOnMounted.js';
|
|
9
|
+
import FileUploaderContextProvider, { IdentifierContext, ExternalUploadContextOnlyContext } from './FileUploaderContextProvider.js';
|
|
10
|
+
import { UploadStoreContext, UploadStoreDispatchContext } from '../UploadStoreProvider/UploadStoreProvider.js';
|
|
11
|
+
import { FILE_UPLOAD_STATUS } from '../types.js';
|
|
12
|
+
|
|
13
|
+
function FileUploader(_a) {
|
|
14
|
+
var { extra, dragAreaConfig } = _a, props = __rest(_a, ["extra", "dragAreaConfig"]);
|
|
15
|
+
return (jsx(FileUploaderContextProvider, Object.assign({}, props, { children: jsx(FileUploaderImpl, { extra: extra, dragAreaConfig: dragAreaConfig }) })));
|
|
16
|
+
}
|
|
17
|
+
function FileUploaderImpl({ extra, dragAreaConfig }) {
|
|
18
|
+
const identifier = useContext(IdentifierContext);
|
|
19
|
+
const uploadStore = useContext(UploadStoreContext);
|
|
20
|
+
const setUploadsStore = useContext(UploadStoreDispatchContext);
|
|
21
|
+
const externalUploadContextOnly = useContext(ExternalUploadContextOnlyContext);
|
|
22
|
+
useOnMounted();
|
|
23
|
+
const { isFormatingFiles, formatFiles } = useFormatFiles();
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
var _a;
|
|
26
|
+
const haveFinished = (_a = uploadStore[identifier]) === null || _a === void 0 ? void 0 : _a.find((file) => file.fileStatus === FILE_UPLOAD_STATUS.FINISHED);
|
|
27
|
+
if (externalUploadContextOnly && haveFinished) {
|
|
28
|
+
setUploadsStore({ type: 'clear_finished', identifier });
|
|
29
|
+
}
|
|
30
|
+
}, [externalUploadContextOnly, identifier, setUploadsStore, uploadStore]);
|
|
31
|
+
return (jsxs(Fragment, { children: [jsx(Spin, { spinning: isFormatingFiles, children: jsx(FileUploaderFileReceiver, Object.assign({}, dragAreaConfig, { onFileReceived: formatFiles })) }), extra && jsx("div", { className: "dhu-mb-4", children: extra }), jsx(FileUploadModalList, {})] }));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { FileUploader as default };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { createContext, useContext, useEffect } from 'react';
|
|
3
|
+
import { AllUploaderManagersContext, AllUploaderManagersDispatchContext, AllOnUploadSuccessesDispatchContext } from '../UploadStoreProvider/UploadStoreProvider.js';
|
|
4
|
+
import { currentFileAtom } from '../hooks/useCurrentFile.js';
|
|
5
|
+
import { ScopeProvider } from 'jotai-scope';
|
|
6
|
+
|
|
7
|
+
const RootContext = createContext(undefined);
|
|
8
|
+
const IdentifierContext = createContext('');
|
|
9
|
+
const ShowFinishedContext = createContext(undefined);
|
|
10
|
+
const ExternalUploadContextContext = createContext(undefined);
|
|
11
|
+
const ExternalUploadContextOnlyContext = createContext(false);
|
|
12
|
+
const UploadRequestConfigContext = createContext(undefined);
|
|
13
|
+
const ChunkSizeContext = createContext(undefined);
|
|
14
|
+
function FileUploaderContextProvider({ children, root, identifier, showFinished, uploadRequestConfig, externalUploadContext, externalUploadContextOnly = false, onUploadSuccess, getUploadUrls, onBeforeUpload, onCancelUpload, onOnePartDone, onAllPartDone, onDeleteFile, chunkSize, }) {
|
|
15
|
+
const allUploaderManagers = useContext(AllUploaderManagersContext);
|
|
16
|
+
const setAllUploaderManagers = useContext(AllUploaderManagersDispatchContext);
|
|
17
|
+
const setAllOnUploadSuccesses = useContext(AllOnUploadSuccessesDispatchContext);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
setAllUploaderManagers((prev) => (Object.assign(Object.assign({}, prev), { [identifier]: {
|
|
20
|
+
getUploadUrls,
|
|
21
|
+
onBeforeUpload,
|
|
22
|
+
onCancelUpload,
|
|
23
|
+
onOnePartDone,
|
|
24
|
+
onAllPartDone,
|
|
25
|
+
onDeleteFile,
|
|
26
|
+
} })));
|
|
27
|
+
}, [
|
|
28
|
+
getUploadUrls,
|
|
29
|
+
onBeforeUpload,
|
|
30
|
+
onCancelUpload,
|
|
31
|
+
onOnePartDone,
|
|
32
|
+
onAllPartDone,
|
|
33
|
+
onDeleteFile,
|
|
34
|
+
setAllUploaderManagers,
|
|
35
|
+
identifier,
|
|
36
|
+
]);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
setAllOnUploadSuccesses((prev) => (Object.assign(Object.assign({}, prev), { [identifier]: onUploadSuccess })));
|
|
39
|
+
}, [identifier, onUploadSuccess, setAllOnUploadSuccesses]);
|
|
40
|
+
if (!allUploaderManagers[identifier]) {
|
|
41
|
+
return jsx(Fragment, {});
|
|
42
|
+
}
|
|
43
|
+
return (jsx(ScopeProvider, { atoms: [currentFileAtom], children: jsx(RootContext.Provider, { value: root, children: jsx(IdentifierContext.Provider, { value: identifier, children: jsx(ShowFinishedContext.Provider, { value: showFinished, children: jsx(ExternalUploadContextContext.Provider, { value: externalUploadContext, children: jsx(ExternalUploadContextOnlyContext.Provider, { value: externalUploadContextOnly, children: jsx(UploadRequestConfigContext.Provider, { value: uploadRequestConfig, children: jsx(ChunkSizeContext.Provider, { value: chunkSize, children: children }) }) }) }) }) }) }) }));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { ChunkSizeContext, ExternalUploadContextContext, ExternalUploadContextOnlyContext, IdentifierContext, RootContext, ShowFinishedContext, UploadRequestConfigContext, FileUploaderContextProvider as default };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
var style = document.createElement('style');
|
|
2
|
+
style.textContent = `.zjlab-fe-data-hub-ui-default-drag-area {
|
|
3
|
+
|
|
4
|
+
margin-bottom: 1.25rem;
|
|
5
|
+
|
|
6
|
+
display: flex;
|
|
7
|
+
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
|
|
10
|
+
align-items: center;
|
|
11
|
+
|
|
12
|
+
justify-content: center;
|
|
13
|
+
|
|
14
|
+
gap: 1rem;
|
|
15
|
+
|
|
16
|
+
border-radius: 10px;
|
|
17
|
+
|
|
18
|
+
border-width: 1px;
|
|
19
|
+
|
|
20
|
+
border-style: dashed;
|
|
21
|
+
|
|
22
|
+
border-color: rgb(23 117 254 / 0.4);
|
|
23
|
+
|
|
24
|
+
padding-top: 1rem;
|
|
25
|
+
|
|
26
|
+
padding-bottom: 1rem
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.zjlab-fe-data-hub-ui-default-drag-area:hover {
|
|
30
|
+
|
|
31
|
+
--tw-border-opacity: 1;
|
|
32
|
+
|
|
33
|
+
border-color: rgb(23 117 254 / var(--tw-border-opacity, 1))
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
document.head.appendChild(style);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { __awaiter } from 'tslib';
|
|
2
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { App } from 'antd';
|
|
4
|
+
import { useRef, useMemo } from 'react';
|
|
5
|
+
import '../utils/checkExpiryTime.js';
|
|
6
|
+
import { calcDisplaySize, GB } from '../utils/calcDisplaySize.js';
|
|
7
|
+
import '../types.js';
|
|
8
|
+
import { retrieveAllFiles as retrieveFilesFromEntry } from '../utils/retrieveAllFiles.js';
|
|
9
|
+
import { useTranslate } from '../Locale/useTranslate.js';
|
|
10
|
+
import FileUploaderFileReceiverContainer from './FileUploaderFileReceiverContainer.js';
|
|
11
|
+
|
|
12
|
+
function FileUploaderFileReceiver({ accept = '', className = '', multiple = true, directory = true, dragAreaDescription, maxSizePerFile = 10 * GB, onFileReceived, }) {
|
|
13
|
+
const t = useTranslate();
|
|
14
|
+
const { message } = App.useApp();
|
|
15
|
+
const fileInputRef = useRef(null);
|
|
16
|
+
const acceptList = useMemo(() => new Set(accept ? accept.split(',') : []), [accept]);
|
|
17
|
+
return (jsxs(Fragment, { children: [jsx(FileUploaderFileReceiverContainer, { className: className, description: dragAreaDescription, handleDrop: handleDrop, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); } }), jsx("input", { hidden: true, multiple: multiple, type: "file", accept: accept, ref: fileInputRef, onChange: handleFileSelect, onClick: () => {
|
|
18
|
+
if (fileInputRef.current) {
|
|
19
|
+
fileInputRef.current.value = ''; // 清空input的value,确保同一文件可以重复上传
|
|
20
|
+
}
|
|
21
|
+
} })] }));
|
|
22
|
+
function handleFileSelect() {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
const files = Array.from((_b = (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.files) !== null && _b !== void 0 ? _b : []);
|
|
25
|
+
triggerOnFileReceived(multiple ? files : [files[0]]);
|
|
26
|
+
}
|
|
27
|
+
function handleDrop(e) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
// 获取所有拖拽的文件或文件夹
|
|
30
|
+
const filePromises = Array.from(e.dataTransfer.items)
|
|
31
|
+
.map((item) => item.webkitGetAsEntry())
|
|
32
|
+
.filter(Boolean)
|
|
33
|
+
.map((entry) => retrieveFilesFromEntry(entry, directory, acceptList));
|
|
34
|
+
// 等待所有文件处理完成
|
|
35
|
+
const results = yield Promise.allSettled(filePromises);
|
|
36
|
+
// 过滤出成功的结果并展平数组
|
|
37
|
+
const files = results
|
|
38
|
+
.filter((result) => result.status === 'fulfilled')
|
|
39
|
+
.flatMap((result) => result.value);
|
|
40
|
+
triggerOnFileReceived(multiple ? files : [files[0]]);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function triggerOnFileReceived(files) {
|
|
44
|
+
console.log('files', files);
|
|
45
|
+
const suitableFiles = files.filter((file) => file.size <= maxSizePerFile);
|
|
46
|
+
if (suitableFiles.length < files.length) {
|
|
47
|
+
const maxSizeDisplay = calcDisplaySize(maxSizePerFile);
|
|
48
|
+
message.warning(t('以下文件大小超过') + maxSizeDisplay + ',' + t('已删除'));
|
|
49
|
+
}
|
|
50
|
+
if (suitableFiles.length) {
|
|
51
|
+
onFileReceived(suitableFiles);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { FileUploaderFileReceiver as default };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import UploadIcon from '../icons/UploadIcon.js';
|
|
4
|
+
import FileUploaderFileReceiverDesc from './FileUploaderFileReceiverDesc.js';
|
|
5
|
+
|
|
6
|
+
function FileUploaderFileReceiverContainer({ className, description, onClick, handleDrop, }) {
|
|
7
|
+
const [isDragOver, setIsDragOver] = useState(false);
|
|
8
|
+
const handleDragEvents = {
|
|
9
|
+
onDrop: (e) => {
|
|
10
|
+
e.preventDefault();
|
|
11
|
+
setIsDragOver(false);
|
|
12
|
+
handleDrop(e);
|
|
13
|
+
},
|
|
14
|
+
onDragLeave: () => setIsDragOver(false),
|
|
15
|
+
onDragEnter: (e) => e.preventDefault(),
|
|
16
|
+
onDragOver: (e) => {
|
|
17
|
+
e.preventDefault();
|
|
18
|
+
setIsDragOver(true);
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
return (jsxs("div", Object.assign({}, handleDragEvents, { className: `zjlab-fe-data-hub-ui-default-drag-area ${isDragOver ? 'dhu-border-[#1775FE]' : ''} ${className}`, onClick: onClick, children: [jsx(UploadIcon, {}), jsx(FileUploaderFileReceiverDesc, { description: description })] })));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { FileUploaderFileReceiverContainer as default };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useTranslate } from '../Locale/useTranslate.js';
|
|
3
|
+
|
|
4
|
+
function FileUploaderFileReceiverDesc({ description }) {
|
|
5
|
+
const t = useTranslate();
|
|
6
|
+
return (jsx("div", { className: "dhu-text-gray-5 dhu-text-center", children: description ? (Array.isArray(description) ? (description.map((text, index) => (jsx("p", { className: "dhu-m-0", children: text }, index)))) : (jsx("div", { className: "dhu-m-0", children: description }))) : (jsx("p", { className: "dhu-m-0", children: t('点击或拖拽上传文件') })) }));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { FileUploaderFileReceiverDesc as default };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useContext, useMemo } from 'react';
|
|
3
|
+
import { UploadStoreContext } from '../UploadStoreProvider/UploadStoreProvider.js';
|
|
4
|
+
import { FILE_UPLOAD_STATUS } from '../types.js';
|
|
5
|
+
import FileListItem from './FileUploaderListItem.js';
|
|
6
|
+
import FileListItemUploading from './FileUploaderListItemUploading.js';
|
|
7
|
+
import FileListItemFinished from './FileUploaderlListItemFinished.js';
|
|
8
|
+
import FileListItemFail from './FileUploaderListItemFail.js';
|
|
9
|
+
import FileListItemPaused from './FileUploaderListItemPaused.js';
|
|
10
|
+
import { useAtomValue } from 'jotai';
|
|
11
|
+
import { currentFileNameAtom, useCurrentFile } from '../hooks/useCurrentFile.js';
|
|
12
|
+
import { useTranslate } from '../Locale/useTranslate.js';
|
|
13
|
+
import { IdentifierContext, ShowFinishedContext } from './FileUploaderContextProvider.js';
|
|
14
|
+
|
|
15
|
+
function FileUploadModalList() {
|
|
16
|
+
const t = useTranslate();
|
|
17
|
+
const identifier = useContext(IdentifierContext);
|
|
18
|
+
const uploadStore = useContext(UploadStoreContext);
|
|
19
|
+
const showFinished = useContext(ShowFinishedContext);
|
|
20
|
+
const currentFileName = useAtomValue(currentFileNameAtom);
|
|
21
|
+
const fileList = useMemo(() => {
|
|
22
|
+
var _a;
|
|
23
|
+
return (_a = uploadStore[identifier]) === null || _a === void 0 ? void 0 : _a.filter((file) => !(!showFinished && file.fileStatus === FILE_UPLOAD_STATUS.FINISHED));
|
|
24
|
+
}, [identifier, showFinished, uploadStore]);
|
|
25
|
+
useCurrentFile();
|
|
26
|
+
if (!fileList || fileList.length === 0) {
|
|
27
|
+
return jsx(Fragment, {});
|
|
28
|
+
}
|
|
29
|
+
return (jsxs("div", { className: "dhu-mb-5", children: [jsx("div", { className: "dhu-text-sm dhu-text-gray-7", children: t('当前上传') }), jsx("div", { className: "dhu-max-h-72 dhu-overflow-y-auto", children: fileList.map((file) => {
|
|
30
|
+
if (file.fileName === currentFileName) {
|
|
31
|
+
return jsx(FileListItemUploading, {}, file.fileName);
|
|
32
|
+
}
|
|
33
|
+
switch (file.fileStatus) {
|
|
34
|
+
case FILE_UPLOAD_STATUS.FINISHED:
|
|
35
|
+
return jsx(FileListItemFinished, { file: file }, file.fileName);
|
|
36
|
+
case FILE_UPLOAD_STATUS.FAILED:
|
|
37
|
+
return jsx(FileListItemFail, { file: file }, file.fileName);
|
|
38
|
+
case FILE_UPLOAD_STATUS.PAUSED:
|
|
39
|
+
return jsx(FileListItemPaused, { file: file }, file.fileName);
|
|
40
|
+
default:
|
|
41
|
+
return jsx(FileListItem, { file: file }, file.fileName);
|
|
42
|
+
}
|
|
43
|
+
}) })] }));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { FileUploadModalList as default };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Flex, Progress } from 'antd';
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import { FILE_UPLOAD_STATUS } from '../types.js';
|
|
5
|
+
import CloseFilled from '../icons/CloseFilled.js';
|
|
6
|
+
import { useCancelUpload } from '../hooks/useCancelUpload.js';
|
|
7
|
+
import UnkownFileIcon from '../icons/UnkownFileIcon.js';
|
|
8
|
+
import { useTranslate } from '../Locale/useTranslate.js';
|
|
9
|
+
|
|
10
|
+
const progressStyleProps = {
|
|
11
|
+
size: 12,
|
|
12
|
+
type: 'circle',
|
|
13
|
+
strokeWidth: 16,
|
|
14
|
+
showInfo: false,
|
|
15
|
+
strokeLinecap: 'butt',
|
|
16
|
+
};
|
|
17
|
+
const STATUS_TEXT_MAP = {
|
|
18
|
+
[FILE_UPLOAD_STATUS.INIT]: '等待上传',
|
|
19
|
+
[FILE_UPLOAD_STATUS.MERGING]: '合并中',
|
|
20
|
+
[FILE_UPLOAD_STATUS.CANCELED]: '已取消',
|
|
21
|
+
[FILE_UPLOAD_STATUS.ALL_UPLOADED]: '校验中',
|
|
22
|
+
// not used, for ts check
|
|
23
|
+
[FILE_UPLOAD_STATUS.PAUSED]: '已暂停',
|
|
24
|
+
[FILE_UPLOAD_STATUS.FAILED]: '上传失败',
|
|
25
|
+
[FILE_UPLOAD_STATUS.UPLOADING]: '上传中',
|
|
26
|
+
[FILE_UPLOAD_STATUS.FINISHED]: '上传成功',
|
|
27
|
+
};
|
|
28
|
+
var FileListItem = memo(function FileListItem({ file }) {
|
|
29
|
+
const t = useTranslate();
|
|
30
|
+
const cancelUpload = useCancelUpload();
|
|
31
|
+
return (jsx("div", { className: "dhu-my-2.5", children: jsxs(ListItemOutline, { children: [jsx(ListItemName, { fileName: file.fileName }), jsxs(Flex, { align: "center", gap: ".25rem", className: "dhu-relative", children: [jsx(ListItemStatus, { fileStatus: t(STATUS_TEXT_MAP[file.fileStatus]), percentage: Number(file.percentage.toFixed(0)), className: "group-hover:dhu--translate-x-6 dhu-transition-transform" }), jsx(ListItemActions, { onDelete: () => cancelUpload(file), className: "dhu-absolute dhu-right-0 dhu-opacity-0 group-hover:dhu-opacity-100 dhu-transition-opacity" })] })] }) }));
|
|
32
|
+
});
|
|
33
|
+
function ListItemOutline({ children, className }) {
|
|
34
|
+
return (jsx("div", { className: `dhu-p-2 dhu-relative dhu-flex dhu-justify-between dhu-items-center dhu-rounded dhu-group ${className}`, children: children }));
|
|
35
|
+
}
|
|
36
|
+
function ListItemName({ fileName, className }) {
|
|
37
|
+
return (jsxs(Flex, { align: "center", gap: ".25rem", children: [jsx("div", { className: "dhu-flex dhu-items-center dhu-justify-center dhu-h-6 dhu-w-6 dhu-rounded dhu-bg-[#F5F7FA]", children: jsx(UnkownFileIcon, { className: `dhu-text-gray-5 dhu-h-5 dhu-w-5 ${className}` }) }), jsx("span", { className: `dhu-truncate dhu-w-40 dhu-text-gray-5 ${className}`, children: fileName })] }));
|
|
38
|
+
}
|
|
39
|
+
function ListItemStatus({ className = '', fileStatus, percentage, strokeColor = '#1775FE', }) {
|
|
40
|
+
return (jsxs("div", { className: `dhu-flex dhu-items-center dhu-gap-1 dhu-h-6 dhu-text-sm dhu-mr-1 dhu-text-gray-5 ${className}`, children: [fileStatus, jsx(Progress, Object.assign({ percent: percentage }, progressStyleProps, { strokeColor: strokeColor }))] }));
|
|
41
|
+
}
|
|
42
|
+
function ListItemActions({ onDelete, extraActions, className = '', }) {
|
|
43
|
+
return (jsxs("div", { className: `dhu-flex dhu-items-center dhu-justify-center dhu-h-6 dhu-gap-1 dhu-text-gray-5 ${className}`, children: [extraActions, jsx(CloseFilled, { onClick: onDelete, className: "dhu-h-4 dhu-w-4 dhu-cursor-pointer" })] }));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { ListItemActions, ListItemName, ListItemOutline, ListItemStatus, FileListItem as default, progressStyleProps };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Flex } from 'antd';
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import { useCancelUpload } from '../hooks/useCancelUpload.js';
|
|
5
|
+
import { ListItemOutline, ListItemActions } from './FileUploaderListItem.js';
|
|
6
|
+
import UnkownFileIcon from '../icons/UnkownFileIcon.js';
|
|
7
|
+
import { useTranslate } from '../Locale/useTranslate.js';
|
|
8
|
+
|
|
9
|
+
var FileListItemFail = memo(function FileListItemFail({ file }) {
|
|
10
|
+
const cancelUpload = useCancelUpload();
|
|
11
|
+
return (jsx("div", { className: "dhu-my-2.5", children: jsxs(ListItemOutline, { className: "dhu-bg-red/10", children: [jsx(ListItemName, {}), jsxs(Flex, { align: "center", gap: ".25rem", className: "dhu-relative", children: [jsx(ListItemStatus, { className: "group-hover:dhu--translate-x-6 dhu-transition-transform" }), jsx(ListItemActions, { onDelete: () => cancelUpload(file), className: "dhu-text-red-red dhu-absolute dhu-right-0 dhu-opacity-0 group-hover:dhu-opacity-100 dhu-transition-opacity" })] })] }) }));
|
|
12
|
+
function ListItemName() {
|
|
13
|
+
return (jsxs(Flex, { align: "center", gap: ".25rem", children: [jsx("div", { className: "dhu-flex dhu-items-center dhu-justify-center dhu-h-6 dhu-w-6 dhu-rounded dhu-bg-red/10", children: jsx(UnkownFileIcon, { className: "dhu-text-red-red dhu-h-5 dhu-w-5" }) }), jsx("span", { className: "dhu-truncate dhu-w-40 dhu-text-red-red", children: file.fileName })] }));
|
|
14
|
+
}
|
|
15
|
+
function ListItemStatus({ className = '' }) {
|
|
16
|
+
const t = useTranslate();
|
|
17
|
+
return (jsx("div", { className: `dhu-flex dhu-items-center dhu-gap-1 dhu-h-6 dhu-text-sm dhu-mr-1 dhu-text-red-red ${className}`, children: t('上传失败') }));
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export { FileListItemFail as default };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Flex } from 'antd';
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import { useCancelUpload } from '../hooks/useCancelUpload.js';
|
|
5
|
+
import { PlayCircleFilled } from '@ant-design/icons';
|
|
6
|
+
import { useRetryUpload } from '../hooks/useRetryUpload.js';
|
|
7
|
+
import { ListItemOutline, ListItemName, ListItemStatus, ListItemActions } from './FileUploaderListItem.js';
|
|
8
|
+
import { useTranslate } from '../Locale/useTranslate.js';
|
|
9
|
+
|
|
10
|
+
var FileListItemPaused = memo(function FileListItemPaused({ file }) {
|
|
11
|
+
const t = useTranslate();
|
|
12
|
+
const cancelUpload = useCancelUpload();
|
|
13
|
+
return (jsx("div", { className: "dhu-my-2.5", children: jsxs(ListItemOutline, { className: "dhu-border-gray-3 dhu-border dhu-border-solid hover:dhu-bg-assist-bg-blue", children: [jsx(ListItemName, { fileName: file.fileName }), jsxs(Flex, { align: "center", gap: ".25rem", className: "dhu-relative", children: [jsx(ListItemStatus, { fileStatus: t('已暂停'), percentage: Number(file.percentage.toFixed(0)), className: "group-hover:dhu--translate-x-10 dhu-transition-transform" }), jsx(ListItemActions, { extraActions: jsx(RetryButton, {}), onDelete: () => cancelUpload(file), className: "dhu-absolute dhu-right-0 dhu-opacity-0 group-hover:dhu-opacity-100 dhu-transition-opacity" })] })] }) }));
|
|
14
|
+
function RetryButton() {
|
|
15
|
+
const retryUpload = useRetryUpload();
|
|
16
|
+
return (jsx(PlayCircleFilled, { className: "dhu-text-gray-5 dhu-h-4 dhu-w-4 dhu-cursor-pointer", onClick: () => retryUpload(file) }));
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
export { FileListItemPaused as default };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { __awaiter } from 'tslib';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { Flex, message } from 'antd';
|
|
4
|
+
import { memo, useContext } from 'react';
|
|
5
|
+
import { useAtomValue, useSetAtom } from 'jotai';
|
|
6
|
+
import { currentFileNameAtom, currentFilePercentageAtom, currentFileUploadIdAtom, currentFileAtom } from '../hooks/useCurrentFile.js';
|
|
7
|
+
import '../utils/checkExpiryTime.js';
|
|
8
|
+
import { FILE_UPLOAD_STATUS } from '../types.js';
|
|
9
|
+
import { deleteFileInStore } from '../utils/fileDB/deleteFileInStore.js';
|
|
10
|
+
import { IdentifierContext } from './FileUploaderContextProvider.js';
|
|
11
|
+
import { ListItemOutline, ListItemName, ListItemStatus, ListItemActions } from './FileUploaderListItem.js';
|
|
12
|
+
import { useTranslate } from '../Locale/useTranslate.js';
|
|
13
|
+
import { AllUploaderManagersContext } from '../UploadStoreProvider/UploadStoreProvider.js';
|
|
14
|
+
|
|
15
|
+
var FileListItemUploading = memo(function FileListItemUploading() {
|
|
16
|
+
const t = useTranslate();
|
|
17
|
+
const identifier = useContext(IdentifierContext);
|
|
18
|
+
const currentFileName = useAtomValue(currentFileNameAtom);
|
|
19
|
+
const percentage = useAtomValue(currentFilePercentageAtom);
|
|
20
|
+
const currentFileUploadId = useAtomValue(currentFileUploadIdAtom);
|
|
21
|
+
const allUploaderManagers = useContext(AllUploaderManagersContext);
|
|
22
|
+
const { onCancelUpload } = allUploaderManagers[identifier];
|
|
23
|
+
const setCurrentFile = useSetAtom(currentFileAtom);
|
|
24
|
+
return (jsx("div", { className: "dhu-my-2.5", children: jsxs(ListItemOutline, { className: "dhu-border-gray-3 dhu-border dhu-border-solid hover:dhu-bg-assist-bg-blue", children: [jsx(ListItemName, { fileName: currentFileName }), jsxs(Flex, { align: "center", gap: ".25rem", className: "dhu-relative", children: [jsx(ListItemStatus, { fileStatus: t('正在上传'), percentage: Number(percentage.toFixed(0)), className: "group-hover:dhu--translate-x-6 dhu-transition-transform" }), jsx(ListItemActions, { onDelete: cancelUpload, className: "dhu-absolute dhu-right-0 dhu-opacity-0 group-hover:dhu-opacity-100 dhu-transition-opacity" })] })] }) }));
|
|
25
|
+
function cancelUpload() {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
const result = yield onCancelUpload(currentFileName, currentFileUploadId);
|
|
28
|
+
if (result.status) {
|
|
29
|
+
deleteFileInStore(String(identifier), currentFileName);
|
|
30
|
+
setCurrentFile((prev) => {
|
|
31
|
+
if (!prev)
|
|
32
|
+
return prev;
|
|
33
|
+
return Object.assign(Object.assign({}, prev), { fileStatus: FILE_UPLOAD_STATUS.CANCELED });
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
message.error(result.reason || t('取消失败'));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export { FileListItemUploading as default };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { __awaiter } from 'tslib';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { Flex } from 'antd';
|
|
4
|
+
import { memo, useContext } from 'react';
|
|
5
|
+
import { ListItemOutline, ListItemName, ListItemStatus, ListItemActions } from './FileUploaderListItem.js';
|
|
6
|
+
import { useCancelUpload } from '../hooks/useCancelUpload.js';
|
|
7
|
+
import { IdentifierContext } from './FileUploaderContextProvider.js';
|
|
8
|
+
import { UploadStoreDispatchContext, AllUploaderManagersContext } from '../UploadStoreProvider/UploadStoreProvider.js';
|
|
9
|
+
import { useTranslate } from '../Locale/useTranslate.js';
|
|
10
|
+
|
|
11
|
+
var FileListItemFinished = memo(function FileListItemFinished({ file }) {
|
|
12
|
+
const t = useTranslate();
|
|
13
|
+
const setUploadsStore = useContext(UploadStoreDispatchContext);
|
|
14
|
+
const identifier = useContext(IdentifierContext);
|
|
15
|
+
const allUploaderManagers = useContext(AllUploaderManagersContext);
|
|
16
|
+
const { onDeleteFile } = allUploaderManagers[identifier];
|
|
17
|
+
const cancelUpload = useCancelUpload();
|
|
18
|
+
return (jsx("div", { className: "dhu-my-2.5", children: jsxs(ListItemOutline, { className: "dhu-border-gray-3 dhu-border dhu-border-solid hover:dhu-bg-assist-bg-blue", children: [jsx(ListItemName, { fileName: file.fileName, className: "dhu-text-green-green" }), jsxs(Flex, { align: "center", gap: ".25rem", className: "dhu-relative", children: [jsx(ListItemStatus, { percentage: 100, fileStatus: t('上传成功'), strokeColor: "#53C31B", className: "dhu-text-green-green group-hover:dhu--translate-x-6 dhu-transition-transform" }), jsx(ListItemActions, { onDelete: () => onDelete(file), className: "dhu-absolute dhu-right-0 dhu-opacity-0 group-hover:dhu-opacity-100 dhu-transition-opacity" })] })] }) }));
|
|
19
|
+
function onDelete(file) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
if (!onDeleteFile) {
|
|
22
|
+
return cancelUpload(file);
|
|
23
|
+
}
|
|
24
|
+
const result = yield onDeleteFile(file.fileName);
|
|
25
|
+
if (result) {
|
|
26
|
+
setUploadsStore({ type: 'remove_file', identifier, fileName: file.fileName });
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export { FileListItemFinished as default };
|