@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.
Files changed (328) hide show
  1. package/es/assets/cardImg.png.js +3 -0
  2. package/es/assets/closeBtn.png.js +3 -0
  3. package/es/assets/icon-tag-header.png.js +3 -0
  4. package/es/assets/source.png.js +3 -0
  5. package/es/components/FileUploader/FileUploadModal.js +23 -0
  6. package/es/components/FileUploader/FileUploader.js +20 -0
  7. package/es/components/FileUploader/FileUploaderImpl/FileUploader.js +34 -0
  8. package/es/components/FileUploader/FileUploaderImpl/FileUploaderContextProvider.js +46 -0
  9. package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiver.css.js +36 -0
  10. package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiver.js +56 -0
  11. package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiverContainer.js +24 -0
  12. package/es/components/FileUploader/FileUploaderImpl/FileUploaderFileReceiverDesc.js +9 -0
  13. package/es/components/FileUploader/FileUploaderImpl/FileUploaderList.js +46 -0
  14. package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItem.js +46 -0
  15. package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItemFail.js +21 -0
  16. package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItemPaused.js +20 -0
  17. package/es/components/FileUploader/FileUploaderImpl/FileUploaderListItemUploading.js +43 -0
  18. package/es/components/FileUploader/FileUploaderImpl/FileUploaderlListItemFinished.js +32 -0
  19. package/es/components/FileUploader/Locale/translations.js +52 -0
  20. package/es/components/FileUploader/Locale/useTranslate.js +16 -0
  21. package/es/components/FileUploader/UploadStoreProvider/UploadStoreProvider.js +31 -0
  22. package/es/components/FileUploader/UploadStoreProvider/uploadStoreReducer.js +62 -0
  23. package/es/components/FileUploader/UploadStoreProvider/useOnFileAllUploaded.js +31 -0
  24. package/es/components/FileUploader/UploadStoreProvider/useSaveUnfinishedUploads.js +42 -0
  25. package/es/components/FileUploader/UploadStoreProvider/useSetupMergingEvent.js +45 -0
  26. package/es/components/FileUploader/hooks/useCancelUpload.js +40 -0
  27. package/es/components/FileUploader/hooks/useCurrentFile.js +61 -0
  28. package/es/components/FileUploader/hooks/useCurrentFileOnUploading.js +52 -0
  29. package/es/components/FileUploader/hooks/useCurrentFileSetupAndBackUp.js +39 -0
  30. package/es/components/FileUploader/hooks/useFormatFiles.js +64 -0
  31. package/es/components/FileUploader/hooks/useFormatFilesFindDuplicates.js +75 -0
  32. package/es/components/FileUploader/hooks/useFormatFilesRemoveDuplicates.js +21 -0
  33. package/es/components/FileUploader/hooks/useHandleChunkCompletion.js +31 -0
  34. package/es/components/FileUploader/hooks/useOnMounted.js +24 -0
  35. package/es/components/FileUploader/hooks/useOnMountedResumeUnfinished.js +58 -0
  36. package/es/components/FileUploader/hooks/useRetryUpload.js +33 -0
  37. package/es/components/FileUploader/hooks/useUploadChunk.js +46 -0
  38. package/es/components/FileUploader/icons/CloseFilled.js +7 -0
  39. package/es/components/FileUploader/icons/UnkownFileIcon.js +7 -0
  40. package/es/components/FileUploader/icons/UploadIcon.js +7 -0
  41. package/es/components/FileUploader/index.css.js +532 -0
  42. package/es/components/FileUploader/index.js +20 -0
  43. package/es/components/FileUploader/types.js +13 -0
  44. package/es/components/FileUploader/utils/calcDisplaySize.js +20 -0
  45. package/es/components/FileUploader/utils/checkExpiryTime.js +15 -0
  46. package/es/components/FileUploader/utils/createFileToUpload.js +60 -0
  47. package/es/components/FileUploader/utils/fileDB/addFilesToIndexdb.js +14 -0
  48. package/es/components/FileUploader/utils/fileDB/deleteFileInStore.js +18 -0
  49. package/es/components/FileUploader/utils/fileDB/deleteObjectStore.js +25 -0
  50. package/es/components/FileUploader/utils/fileDB/index.js +77 -0
  51. package/es/components/FileUploader/utils/fileDB/openDBAndRetrieveData.js +90 -0
  52. package/es/components/FileUploader/utils/fileDB/retrieveExistingData.js +49 -0
  53. package/es/components/FileUploader/utils/modalConfig.css.js +20 -0
  54. package/es/components/FileUploader/utils/modalConfig.js +32 -0
  55. package/es/components/FileUploader/utils/retrieveAllFiles.js +70 -0
  56. package/es/components/FileUploader/utils/splitFileIntoChunk.js +15 -0
  57. package/es/components/SDK-modal/document-link.js +8 -0
  58. package/es/components/SDK-modal/index.js +25 -0
  59. package/es/components/SDK-modal/index.module.scss.js +49 -0
  60. package/es/components/SDK-modal/inner-modal.js +59 -0
  61. package/es/components/SDK-modal/locale/translations.js +17 -0
  62. package/es/components/apply-perm-modal/index.js +53 -0
  63. package/es/components/apply-perm-modal/index.module.scss.js +96 -0
  64. package/es/components/auth-tag/index.js +23 -0
  65. package/es/components/bench-card/index.js +20 -0
  66. package/es/components/bench-card/index.module.scss.js +48 -0
  67. package/es/components/confirm-again/index.js +14 -0
  68. package/es/components/confirm-again/index.scss.js +37 -0
  69. package/es/components/copy/index.js +41 -0
  70. package/es/components/copy/index.module.scss.js +15 -0
  71. package/es/components/corpus-card/index.js +88 -0
  72. package/es/components/corpus-card/index.module.scss.js +171 -0
  73. package/es/components/feature-card/classNames.js +72 -0
  74. package/es/components/feature-card/components.js +48 -0
  75. package/es/components/feature-card/context.js +13 -0
  76. package/es/components/feature-card/index.css.js +655 -0
  77. package/es/components/feature-card/index.js +47 -0
  78. package/es/components/file-preview/data-table/index.js +94 -0
  79. package/es/components/file-preview/data-table/index.module.scss.js +54 -0
  80. package/es/components/file-preview/excel-preview/index.js +132 -0
  81. package/es/components/file-preview/excel-preview/index.module.scss.js +11 -0
  82. package/es/components/file-preview/excel-preview/utils.js +46 -0
  83. package/es/components/file-preview/img-preview/index.js +18 -0
  84. package/es/components/file-preview/img-preview/index.module.scss.js +17 -0
  85. package/es/components/file-preview/index.js +124 -0
  86. package/es/components/file-preview/index.module.scss.js +32 -0
  87. package/es/components/file-preview/json-preview/index.js +166 -0
  88. package/es/components/file-preview/markdown-preview/index.js +53 -0
  89. package/es/components/file-preview/markdown-preview/index.module.scss.js +1055 -0
  90. package/es/components/file-preview/parquet-preview/index.js +54 -0
  91. package/es/components/file-preview/pdf-preview/index.js +215 -0
  92. package/es/components/file-preview/pdf-preview/index.module.scss.js +16 -0
  93. package/es/components/file-preview/table-preview/index.js +43 -0
  94. package/es/components/file-preview/table-preview/index.module.scss.js +11 -0
  95. package/es/components/file-preview/txt-preview/index.js +24 -0
  96. package/es/components/file-preview/util.js +94 -0
  97. package/es/components/file-uploader/components/circle-progress.css.js +39 -0
  98. package/es/components/file-uploader/components/circle-progress.js +11 -0
  99. package/es/components/file-uploader/components/hooks/use-drop-zone.js +74 -0
  100. package/es/components/file-uploader/components/hooks/use-file-validation.js +52 -0
  101. package/es/components/file-uploader/components/icons.js +19 -0
  102. package/es/components/file-uploader/components/theme.css.js +64 -0
  103. package/es/components/file-uploader/components/uploader-drop-zone.css.js +66 -0
  104. package/es/components/file-uploader/components/uploader-drop-zone.js +72 -0
  105. package/es/components/file-uploader/components/uploader-file-item.css.js +186 -0
  106. package/es/components/file-uploader/components/uploader-file-item.js +61 -0
  107. package/es/components/file-uploader/components/uploader-file-list.css.js +43 -0
  108. package/es/components/file-uploader/components/uploader-file-list.js +25 -0
  109. package/es/components/file-uploader/components/uploader.css.js +20 -0
  110. package/es/components/file-uploader/components/uploader.js +49 -0
  111. package/es/components/file-uploader/components/uploading-status.css.js +52 -0
  112. package/es/components/file-uploader/components/uploading-status.js +53 -0
  113. package/es/components/file-uploader/components/utils/directory-reader.js +65 -0
  114. package/es/components/file-uploader/constants.js +31 -0
  115. package/es/components/file-uploader/context/action-registry.js +69 -0
  116. package/es/components/file-uploader/context/file-state-store.js +83 -0
  117. package/es/components/file-uploader/context/handler-registry.js +119 -0
  118. package/es/components/file-uploader/context/upload-context.js +36 -0
  119. package/es/components/file-uploader/context/upload-provider.js +77 -0
  120. package/es/components/file-uploader/context/upload-reducer.js +21 -0
  121. package/es/components/file-uploader/context/use-upload-engine.js +440 -0
  122. package/es/components/file-uploader/engine/queue-callbacks.js +257 -0
  123. package/es/components/file-uploader/engine/queue-manager.js +195 -0
  124. package/es/components/file-uploader/engine/queue-uploader.js +25 -0
  125. package/es/components/file-uploader/hooks/use-upload.js +327 -0
  126. package/es/components/file-uploader/utils/chunk-handlers.js +66 -0
  127. package/es/components/file-uploader/utils/ensure-handlers.js +53 -0
  128. package/es/components/file-uploader/utils/error-handler.js +84 -0
  129. package/es/components/file-uploader/utils/upload-controllers.js +43 -0
  130. package/es/components/file-uploader/utils/upload-handler.js +68 -0
  131. package/es/components/file-uploader/utils/validate-handlers.js +16 -0
  132. package/es/components/floating-label-input/index.js +46 -0
  133. package/es/components/floating-label-input/index.module.scss.js +30 -0
  134. package/es/components/floating-layer/index.js +14 -0
  135. package/es/components/floating-layer/index.scss.js +31 -0
  136. package/es/components/header/index.js +10 -0
  137. package/es/components/header/index.module.scss.js +16 -0
  138. package/es/components/input-tag/index.js +65 -0
  139. package/es/components/menu/index.js +96 -0
  140. package/es/components/menu/index.module.scss.js +188 -0
  141. package/es/components/model-card/index.js +20 -0
  142. package/es/components/model-card/index.module.scss.js +116 -0
  143. package/es/components/notion-editor/code-block/index.js +18 -0
  144. package/es/components/notion-editor/code-block/languageDetector.js +134 -0
  145. package/es/components/notion-editor/code-block/languages.js +42 -0
  146. package/es/components/notion-editor/index.js +257 -0
  147. package/es/components/notion-editor/index.scss.js +421 -0
  148. package/es/components/notion-editor/parseMarkdown.js +184 -0
  149. package/es/components/operator-chain/components/AddButton.js +20 -0
  150. package/es/components/operator-chain/components/IOCard.js +8 -0
  151. package/es/components/operator-chain/components/SingleCard.js +12 -0
  152. package/es/components/operator-chain/components/VirtualDropdown.js +56 -0
  153. package/es/components/operator-chain/index.js +83 -0
  154. package/es/components/operator-chain/index.module.scss.js +232 -0
  155. package/es/components/permission-editor/index.js +9 -0
  156. package/es/components/permission-editor/permissionEditModal/index.js +37 -0
  157. package/es/components/permission-editor/permissionEditor/index.js +253 -0
  158. package/es/components/permission-editor/permissionEditor/index.module.scss.js +22 -0
  159. package/es/components/permission-editor/permissionViewPopover/index.js +9 -0
  160. package/es/components/popover-select/index.js +42 -0
  161. package/es/components/popover-select/index.module.scss.js +22 -0
  162. package/es/components/radio-card/index.js +23 -0
  163. package/es/components/radio-card/index.scss.js +58 -0
  164. package/es/components/section-heading/classNames.js +22 -0
  165. package/es/components/section-heading/components.js +27 -0
  166. package/es/components/section-heading/context.js +13 -0
  167. package/es/components/section-heading/index.css.js +648 -0
  168. package/es/components/section-heading/index.js +36 -0
  169. package/es/components/status-tag/index.js +31 -0
  170. package/es/components/tag-group-filter/dataSizeFilter.js +100 -0
  171. package/es/components/tag-group-filter/index.js +53 -0
  172. package/es/components/tag-group-filter/index.module.scss.js +134 -0
  173. package/es/components/tag-group-filter/tagFilter.js +19 -0
  174. package/es/components/tag-view/index.js +138 -0
  175. package/es/components/tag-view/index.module.scss.js +56 -0
  176. package/es/components/tag-view/useSize.js +41 -0
  177. package/es/components/tip-tap/bubble-menu.js +47 -0
  178. package/es/components/tip-tap/editor.js +34 -0
  179. package/es/components/tip-tap/extensions/index.js +133 -0
  180. package/es/components/tip-tap/extensions/markdown-paste.js +148 -0
  181. package/es/components/tip-tap/icons/index.js +29 -0
  182. package/es/components/tip-tap/reader.js +15 -0
  183. package/es/components/tip-tap/styles/editor.css.js +863 -0
  184. package/es/components/tip-tap/toolbar/components/color-picker.js +76 -0
  185. package/es/components/tip-tap/toolbar/components/heading-dropdown.js +44 -0
  186. package/es/components/tip-tap/toolbar/components/image-button.js +26 -0
  187. package/es/components/tip-tap/toolbar/components/link-button.js +107 -0
  188. package/es/components/tip-tap/toolbar/components/table-button.js +37 -0
  189. package/es/components/tip-tap/toolbar/components/toolbar-button.js +7 -0
  190. package/es/components/tip-tap/toolbar/index.js +39 -0
  191. package/es/components/uploadDrawer/UploadStoreProvider.js +61 -0
  192. package/es/components/uploadDrawer/fileUploadDrawer.js +66 -0
  193. package/es/components/uploadDrawer/fileUploadDrawerFileDragger.js +71 -0
  194. package/es/components/uploadDrawer/fileUploadDrawerList.js +54 -0
  195. package/es/components/uploadDrawer/fileUploadDrawerListProgressButton.js +54 -0
  196. package/es/components/uploadDrawer/hooks/useCancelUpload.js +37 -0
  197. package/es/components/uploadDrawer/hooks/useFilterFiles.js +107 -0
  198. package/es/components/uploadDrawer/hooks/useFinishUpload.js +33 -0
  199. package/es/components/uploadDrawer/hooks/useFormatFiles.js +54 -0
  200. package/es/components/uploadDrawer/hooks/useProgressButtonRef.js +22 -0
  201. package/es/components/uploadDrawer/hooks/useRemoveFilesInUploadQueue.js +21 -0
  202. package/es/components/uploadDrawer/hooks/useResumeUnfinishedUploads.js +52 -0
  203. package/es/components/uploadDrawer/hooks/useRetryUpload.js +35 -0
  204. package/es/components/uploadDrawer/hooks/useSaveUnfinishedUploads.js +42 -0
  205. package/es/components/uploadDrawer/hooks/useSetupUpload.js +80 -0
  206. package/es/components/uploadDrawer/hooks/useUploadFileToOSS.js +23 -0
  207. package/es/components/uploadDrawer/index.css.js +511 -0
  208. package/es/components/uploadDrawer/index.js +42 -0
  209. package/es/components/uploadDrawer/utils/calcDisplaySize.js +19 -0
  210. package/es/components/uploadDrawer/utils/constant.js +16 -0
  211. package/es/components/uploadDrawer/utils/createFileToUpload.js +51 -0
  212. package/es/components/uploadDrawer/utils/fileDB/deleteFileInStore.js +28 -0
  213. package/es/components/uploadDrawer/utils/fileDB/deleteObjectStore.js +28 -0
  214. package/es/components/uploadDrawer/utils/fileDB/handleAddFilesToDB.js +37 -0
  215. package/es/components/uploadDrawer/utils/fileDB/index.js +9 -0
  216. package/es/components/uploadDrawer/utils/fileDB/openDB.js +111 -0
  217. package/es/components/uploadDrawer/utils/retrieveAllFiles.js +110 -0
  218. package/es/components/uploadDrawer/utils/shouldCreateNewFile.js +13 -0
  219. package/es/components/uploadDrawer/utils/splitFileIntoChunk.js +15 -0
  220. package/es/index.js +40 -1
  221. package/es/lib/utils.js +8 -0
  222. package/lib/index.js +1 -1
  223. package/package.json +33 -6
  224. package/rollup.es.config.mjs +177 -0
  225. package/tsconfig.rollup.json +7 -0
  226. package/dist/types/components/FileUploader/FileUploaderContextProvider.d.ts +0 -9
  227. package/dist/types/components/FileUploader/FileUploaderFileDragger.d.ts +0 -11
  228. package/dist/types/components/FileUploader/FileUploaderFileDraggerDragAreaDescription.d.ts +0 -4
  229. package/dist/types/components/FileUploader/FileUploaderList.d.ts +0 -1
  230. package/dist/types/components/FileUploader/FileUploaderListItem.d.ts +0 -26
  231. package/dist/types/components/FileUploader/FileUploaderListItemFail.d.ts +0 -5
  232. package/dist/types/components/FileUploader/FileUploaderListItemPaused.d.ts +0 -5
  233. package/dist/types/components/FileUploader/FileUploaderListItemUploading.d.ts +0 -2
  234. package/dist/types/components/FileUploader/FileUploaderMain.d.ts +0 -7
  235. package/dist/types/components/FileUploader/FileUploaderlListItemFinished.d.ts +0 -5
  236. package/dist/types/components/FileUploader/UploadStoreProvider.d.ts +0 -41
  237. package/dist/types/components/FileUploader/hooks/useCheckForDuplicates.d.ts +0 -1
  238. package/dist/types/components/FileUploader/hooks/useCurrentFIleOnInit.d.ts +0 -5
  239. package/dist/types/components/FileUploader/hooks/useCurrentFileOnAllUploaded.d.ts +0 -1
  240. package/dist/types/components/FileUploader/hooks/useCurrentFileOnCancel.d.ts +0 -2
  241. package/dist/types/components/FileUploader/hooks/useCurrentFileOnFail.d.ts +0 -2
  242. package/dist/types/components/FileUploader/hooks/useCurrentFileOnFinished.d.ts +0 -2
  243. package/dist/types/components/FileUploader/hooks/useFileDragAndDrop.d.ts +0 -9
  244. package/dist/types/components/FileUploader/hooks/useRemoveFilesInUploadQueue.d.ts +0 -1
  245. package/dist/types/components/FileUploader/hooks/useResumeUnfinishedUploads.d.ts +0 -1
  246. package/dist/types/components/FileUploader/hooks/useSaveUnfinishedUploads.d.ts +0 -11
  247. package/dist/types/components/FileUploader/hooks/useTranslate.d.ts +0 -1
  248. package/dist/types/components/FileUploader/hooks/useUploadContext.d.ts +0 -26
  249. package/dist/types/components/FileUploader/hooks/useWathUploadQueueAndSetupCurrentFile.d.ts +0 -1
  250. package/dist/types/components/FileUploader/translations.d.ts +0 -4
  251. package/dist/types/components/file-uploader/hooks/use-upload-batch.d.ts +0 -36
  252. package/dist/types/components/file-uploader/hooks/use-upload-control.d.ts +0 -37
  253. package/dist/types/components/file-uploader/hooks/use-upload-files.d.ts +0 -40
  254. package/dist/types/components/file-uploader/hooks/use-upload-operations.d.ts +0 -43
  255. package/dist/types/components/tip-tap/actions/BoldItalicStrikeUnderline.d.ts +0 -4
  256. package/dist/types/components/tip-tap/actions/CodeQuoteHorizontalRule.d.ts +0 -4
  257. package/dist/types/components/tip-tap/actions/Image.d.ts +0 -4
  258. package/dist/types/components/tip-tap/actions/Link.d.ts +0 -5
  259. package/dist/types/components/tip-tap/actions/LinkModifier.d.ts +0 -4
  260. package/dist/types/components/tip-tap/actions/List.d.ts +0 -4
  261. package/dist/types/components/tip-tap/actions/ParagraphHeadings.d.ts +0 -13
  262. package/dist/types/components/tip-tap/actions/Table.d.ts +0 -4
  263. package/dist/types/components/tip-tap/actions/TextAligment.d.ts +0 -4
  264. package/dist/types/components/tip-tap/actions/UndoRedo.d.ts +0 -4
  265. package/dist/types/components/tip-tap/actions/action-image.d.ts +0 -4
  266. package/dist/types/components/tip-tap/actions/action-link.d.ts +0 -5
  267. package/dist/types/components/tip-tap/actions/action-list.d.ts +0 -4
  268. package/dist/types/components/tip-tap/actions/action-table.d.ts +0 -4
  269. package/dist/types/components/tip-tap/actions/bold-italic-strike-underline.d.ts +0 -4
  270. package/dist/types/components/tip-tap/actions/code-quote-horizontalRule.d.ts +0 -4
  271. package/dist/types/components/tip-tap/actions/highlight-textcolor-fontsize.d.ts +0 -4
  272. package/dist/types/components/tip-tap/actions/link-modifier.d.ts +0 -4
  273. package/dist/types/components/tip-tap/actions/paragraph-headings.d.ts +0 -13
  274. package/dist/types/components/tip-tap/actions/text-aligment.d.ts +0 -4
  275. package/dist/types/components/tip-tap/actions/undo-redo.d.ts +0 -4
  276. package/dist/types/components/tip-tap/extensions/DropHandler.d.ts +0 -2
  277. package/dist/types/components/tip-tap/extensions/FontSize.d.ts +0 -20
  278. package/dist/types/components/tip-tap/extensions/PatseHandler.d.ts +0 -3
  279. package/dist/types/components/tip-tap/extensions/drop-handler.d.ts +0 -2
  280. package/dist/types/components/tip-tap/extensions/font-size.d.ts +0 -20
  281. package/dist/types/components/tip-tap/extensions/patse-handler.d.ts +0 -3
  282. package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextCenter.d.ts +0 -3
  283. package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextJustify.d.ts +0 -3
  284. package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextLeft.d.ts +0 -3
  285. package/dist/types/components/tip-tap/icons/HumbleiconsAlignTextRight.d.ts +0 -3
  286. package/dist/types/components/tip-tap/icons/MaterialSymbolsAddLink.d.ts +0 -3
  287. package/dist/types/components/tip-tap/icons/MaterialSymbolsAddPhotoAlternateOutline.d.ts +0 -3
  288. package/dist/types/components/tip-tap/icons/MaterialSymbolsCode.d.ts +0 -3
  289. package/dist/types/components/tip-tap/icons/MaterialSymbolsEditOutline.d.ts +0 -3
  290. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatColorText.d.ts +0 -3
  291. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH1.d.ts +0 -3
  292. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH2.d.ts +0 -3
  293. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH3.d.ts +0 -3
  294. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH4.d.ts +0 -3
  295. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH5.d.ts +0 -3
  296. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatH6.d.ts +0 -3
  297. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatInkHighlighterOutlineSharp.d.ts +0 -3
  298. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatListBulleted.d.ts +0 -3
  299. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatListNumbered.d.ts +0 -3
  300. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatParagraph.d.ts +0 -3
  301. package/dist/types/components/tip-tap/icons/MaterialSymbolsFormatQuote.d.ts +0 -3
  302. package/dist/types/components/tip-tap/icons/MaterialSymbolsHorizontalRule.d.ts +0 -3
  303. package/dist/types/components/tip-tap/icons/MaterialSymbolsLinkOff.d.ts +0 -3
  304. package/dist/types/components/tip-tap/icons/MaterialSymbolsRedo.d.ts +0 -3
  305. package/dist/types/components/tip-tap/icons/MaterialSymbolsTable.d.ts +0 -3
  306. package/dist/types/components/tip-tap/icons/MaterialSymbolsUndo.d.ts +0 -3
  307. package/dist/types/components/tip-tap/icons/MdiCodeBlockTags.d.ts +0 -3
  308. package/dist/types/components/tip-tap/icons/MdiFormatBold.d.ts +0 -3
  309. package/dist/types/components/tip-tap/icons/MdiFormatItalic.d.ts +0 -3
  310. package/dist/types/components/tip-tap/icons/MdiFormatStrikethroughVariant.d.ts +0 -3
  311. package/dist/types/components/tip-tap/icons/MdiFormatUnderline.d.ts +0 -3
  312. package/dist/types/components/tip-tap/menus/BubbleMenu.d.ts +0 -7
  313. package/dist/types/components/tip-tap/menus/FixedMenu.d.ts +0 -9
  314. package/dist/types/components/tip-tap/menus/LinkFloatingMenu.d.ts +0 -6
  315. package/dist/types/components/tip-tap/menus/ParagraphFloatingMenu.d.ts +0 -6
  316. package/dist/types/components/tip-tap/menus/bubble-menu.d.ts +0 -7
  317. package/dist/types/components/tip-tap/menus/fixed-menu.d.ts +0 -9
  318. package/dist/types/components/tip-tap/menus/link-floating-menu.d.ts +0 -6
  319. package/dist/types/components/tip-tap/menus/paragraph-floating-menu.d.ts +0 -6
  320. package/dist/types/components/tip-tap/the-editor.d.ts +0 -4
  321. package/dist/types/components/tip-tap/utils/add-image-to-editor.d.ts +0 -2
  322. package/dist/types/components/tip-tap/utils/addImageToEditor.d.ts +0 -2
  323. package/dist/types/components/tip-tap/utils/markdown-detector.d.ts +0 -33
  324. package/dist/types/components/tip-tap/utils/parse-markdown.d.ts +0 -2
  325. package/dist/types/components/tip-tap/utils/parseMarkDown.d.ts +0 -2
  326. package/dist/types/components/tip-tap-2/demo/index.d.ts +0 -1
  327. package/dist/types/components/tip-tap-2/index.d.ts +0 -26
  328. package/dist/types/demo/layout/index.d.ts +0 -2
@@ -0,0 +1,56 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import React, { useState, useRef } from 'react';
3
+ import { Input, Select } from 'antd';
4
+ import { "filter-popup" as filter_popup, "filter-popup-top" as filter_popup_top, "virtual-dropdown-container" as virtual_dropdown_container, "virtual-dropdown-content" as virtual_dropdown_content, "virtual-dropdown-items" as virtual_dropdown_items, "virtual-dropdown-item" as virtual_dropdown_item } from '../index.module.scss.js';
5
+
6
+ const { Search } = Input;
7
+ const ITEM_HEIGHT = 32;
8
+ const FIXED_HEIGHT = 420;
9
+ function VirtualDropdown({ menu, onItemClick, onSelect, onInputChange }) {
10
+ const [scrollTop, setScrollTop] = useState(0);
11
+ const [selectedType, setSelectedType] = useState('');
12
+ const [searchValue, setSearchValue] = useState('');
13
+ const containerRef = useRef(null);
14
+ // 从menu中提取唯一的类型选项
15
+ const typeOptions = React.useMemo(() => {
16
+ const typeMap = new Map();
17
+ menu.forEach((item) => {
18
+ if (item.typeId && item.type) {
19
+ typeMap.set(item.typeId.toString(), item.type);
20
+ }
21
+ });
22
+ const options = Array.from(typeMap.entries()).map(([value, label]) => ({
23
+ label,
24
+ value: Number(value),
25
+ }));
26
+ // 添加默认的"全部"选项
27
+ return [{ label: '全部类型', value: '' }, ...options];
28
+ }, [menu]);
29
+ const visibleCount = Math.ceil(FIXED_HEIGHT / ITEM_HEIGHT);
30
+ const startIndex = Math.floor(scrollTop / ITEM_HEIGHT);
31
+ const endIndex = Math.min(startIndex + visibleCount, menu.length);
32
+ const offsetY = startIndex * ITEM_HEIGHT;
33
+ const handleScroll = (e) => {
34
+ setScrollTop(e.currentTarget.scrollTop);
35
+ };
36
+ const handleSelectChange = (value) => {
37
+ setSelectedType(value);
38
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(Number(value));
39
+ };
40
+ const handleInputChange = (e) => {
41
+ const value = e.target.value;
42
+ setSearchValue(value);
43
+ onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(value);
44
+ };
45
+ const filteredMenu = menu.filter((item) => {
46
+ const typeMatch = !selectedType || item.typeId === Number(selectedType);
47
+ const searchMatch = !searchValue || (item.title || item.id).toLowerCase().includes(searchValue.toLowerCase());
48
+ return typeMatch && searchMatch;
49
+ });
50
+ const visibleItems = filteredMenu.slice(startIndex, endIndex);
51
+ return (jsxs("div", { className: filter_popup, children: [jsxs("div", { className: filter_popup_top, children: [jsx(Select, { placeholder: "\u9009\u62E9\u7C7B\u578B", style: { width: 140 }, allowClear: true, onChange: handleSelectChange, options: typeOptions, defaultValue: '' }), jsx(Search, { placeholder: "\u641C\u7D22\u7B97\u5B50", style: { width: 200 }, allowClear: true, onChange: handleInputChange })] }), jsx("div", { ref: containerRef, onScroll: handleScroll, className: virtual_dropdown_container, style: {
52
+ maxHeight: FIXED_HEIGHT,
53
+ }, children: jsx("div", { className: virtual_dropdown_content, style: { height: filteredMenu.length * ITEM_HEIGHT }, children: jsx("div", { className: virtual_dropdown_items, style: { transform: `translateY(${offsetY}px)` }, children: visibleItems.map((item) => (jsx("div", { onClick: () => onItemClick(item.id), className: virtual_dropdown_item, children: item.title || item.id }, item.id))) }) }) })] }));
54
+ }
55
+
56
+ export { VirtualDropdown as default };
@@ -0,0 +1,83 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { forwardRef, useState, useImperativeHandle, useEffect } from 'react';
3
+ import SingleCard from './components/SingleCard.js';
4
+ import AddButton from './components/AddButton.js';
5
+ import IOCard from './components/IOCard.js';
6
+ import { "card-line-container" as card_line_container } from './index.module.scss.js';
7
+
8
+ var index = forwardRef(function OperatorChain({ type = 'default', defaultValues = [], menu = [], isEdit = false, onClick, onChange, onActive, }, ref) {
9
+ const [activeCardIndex, setActiveCardIndex] = useState(null);
10
+ const [cards, setCards] = useState(() => {
11
+ // 初始化时直接处理 defaultValues
12
+ const initialCards = defaultValues.length
13
+ ? defaultValues.map(({ id, title, description }) => ({ id, title, description }))
14
+ : [];
15
+ // 如果是 dataIO 类型,直接添加 IMPORT/EXPORT 节点
16
+ if (type === 'dataIO') {
17
+ return [{ id: 'IMPORT' }, ...initialCards, { id: 'EXPORT' }];
18
+ }
19
+ return initialCards;
20
+ });
21
+ const handleClick = (index, id) => {
22
+ setActiveCardIndex(index);
23
+ onClick === null || onClick === void 0 ? void 0 : onClick(id || '');
24
+ };
25
+ const handleDelete = (index, id) => {
26
+ const updatedCards = [...cards];
27
+ updatedCards.splice(index, 1);
28
+ setCards(updatedCards);
29
+ if (activeCardIndex === index) {
30
+ setActiveCardIndex(null);
31
+ }
32
+ else if (activeCardIndex !== null && activeCardIndex > index) {
33
+ setActiveCardIndex((prev) => prev - 1);
34
+ }
35
+ };
36
+ const handleAdd = (index, id) => {
37
+ const newCard = menu.find((item) => item.id === id);
38
+ if (newCard) {
39
+ const updatedCards = [...cards];
40
+ updatedCards.splice(index + 1, 0, newCard);
41
+ setCards(updatedCards);
42
+ setActiveCardIndex(index + 1);
43
+ }
44
+ };
45
+ useImperativeHandle(ref, () => ({
46
+ getCards: () => [...cards],
47
+ getActiveCardId: () => {
48
+ if (activeCardIndex === null || activeCardIndex < 0 || activeCardIndex >= cards.length) {
49
+ return null;
50
+ }
51
+ return cards[activeCardIndex].id;
52
+ },
53
+ }));
54
+ useEffect(() => {
55
+ const newCards = defaultValues.length
56
+ ? defaultValues.map(({ id, title, description }) => ({ id, title, description }))
57
+ : [];
58
+ if (type === 'dataIO') {
59
+ setCards([{ id: 'IMPORT' }, ...newCards, { id: 'EXPORT' }]);
60
+ }
61
+ else {
62
+ setCards(newCards);
63
+ }
64
+ }, [defaultValues, type]);
65
+ useEffect(() => {
66
+ // 只在非初始化时触发 onChange
67
+ if (cards.length > 0 || defaultValues.length === 0) {
68
+ onChange === null || onChange === void 0 ? void 0 : onChange(cards);
69
+ }
70
+ }, [cards, onChange, defaultValues.length]);
71
+ useEffect(() => {
72
+ // 当激活卡片变化时触发 onActive 回调
73
+ if (activeCardIndex === null || activeCardIndex < 0 || activeCardIndex >= cards.length) {
74
+ onActive === null || onActive === void 0 ? void 0 : onActive(null);
75
+ }
76
+ else {
77
+ onActive === null || onActive === void 0 ? void 0 : onActive(cards[activeCardIndex].id);
78
+ }
79
+ }, [activeCardIndex, cards, onActive]);
80
+ return (jsxs("div", { style: { display: 'flex', flexDirection: 'column', padding: 20 }, children: [cards.map((card, index) => (jsx("div", { children: card.id === 'IMPORT' ? (jsx(IOCard, { id: card.id, isActive: activeCardIndex === index, onClick: (id) => handleClick(index, id) })) : null }, index))), jsx("div", { className: type === 'dataIO' ? card_line_container : null, children: cards.map((card, index) => (jsxs("div", { style: { marginLeft: '15px' }, children: [card.id === 'IMPORT' && (jsx(AddButton, { menu: menu, onClick: (id) => handleAdd(index, id), isEdit: isEdit })), card.id !== 'IMPORT' && card.id !== 'EXPORT' && (jsxs(Fragment, { children: [jsx(SingleCard, { isEdit: isEdit, isActive: activeCardIndex === index, onClick: (id) => handleClick(index, id), onDelete: (id) => handleDelete(index), title: card.title, description: card.description, id: card.id }), jsx(AddButton, { menu: menu, onClick: (id) => handleAdd(index, id), isEdit: isEdit })] }))] }, index))) }), cards.map((card, index) => (jsx("div", { children: card.id === 'EXPORT' ? (jsx(IOCard, { id: card.id, isActive: activeCardIndex === index, onClick: (id) => handleClick(index, id) })) : null }, index)))] }));
81
+ });
82
+
83
+ export { index as default };
@@ -0,0 +1,232 @@
1
+ var style = document.createElement('style');
2
+ style.textContent = `@charset "UTF-8";
3
+ .index-module__card-body___2yy9w {
4
+ box-sizing: border-box;
5
+ display: flex;
6
+ flex-direction: column;
7
+ justify-content: center;
8
+ align-items: flex-start;
9
+ padding: 12px 16px 12px 20px;
10
+ gap: 4px;
11
+ isolation: isolate;
12
+ position: relative;
13
+ width: 260px;
14
+ height: 82px;
15
+ background: #ffffff;
16
+ border: 1px solid #edf2fc;
17
+ box-shadow: 0px 2px 8px rgba(7, 35, 76, 0.1);
18
+ border-radius: 8px;
19
+ cursor: pointer;
20
+ transition: border-color 0.3s;
21
+ }
22
+ .index-module__card-body___2yy9w::before {
23
+ content: "";
24
+ position: absolute;
25
+ width: 3px;
26
+ height: 58px;
27
+ left: 1px;
28
+ top: 12px;
29
+ background: rgba(23, 117, 254, 0.5);
30
+ border-radius: 0px 8px 8px 0px;
31
+ flex: none;
32
+ order: 2;
33
+ flex-grow: 0;
34
+ z-index: 2;
35
+ }
36
+ .index-module__card-body___2yy9w.index-module__hover___6yqUE {
37
+ display: flex;
38
+ flex-direction: column;
39
+ justify-content: center;
40
+ align-items: flex-start;
41
+ padding: 12px 16px 12px 20px;
42
+ gap: 4px;
43
+ isolation: isolate;
44
+ background: #ffffff;
45
+ border: 1px solid rgba(23, 117, 254, 0.3);
46
+ box-shadow: 0px 8px 24px rgba(7, 35, 76, 0.15);
47
+ border-radius: 8px;
48
+ }
49
+ .index-module__card-body___2yy9w.index-module__active___0YZNX {
50
+ display: flex;
51
+ flex-direction: column;
52
+ justify-content: center;
53
+ align-items: flex-start;
54
+ padding: 12px 16px 12px 20px;
55
+ gap: 4px;
56
+ isolation: isolate;
57
+ background: #ffffff;
58
+ border: 1px solid #1775fe;
59
+ box-shadow: 0px 2px 8px rgba(7, 35, 76, 0.1);
60
+ border-radius: 8px;
61
+ }
62
+ .index-module__card-body___2yy9w.index-module__active___0YZNX::before {
63
+ background: #1775fe;
64
+ }
65
+ .index-module__card-body___2yy9w .index-module__delete-btn-container___6Lsv3 {
66
+ position: absolute;
67
+ top: 0px;
68
+ right: 0;
69
+ cursor: pointer;
70
+ color: #1775fe;
71
+ opacity: 0;
72
+ transform: translateX(0);
73
+ transition: all 0.3s ease;
74
+ }
75
+ .index-module__card-body___2yy9w:hover .index-module__delete-btn-container___6Lsv3 {
76
+ opacity: 1;
77
+ transform: translateX(0);
78
+ }
79
+ .index-module__active___0YZNX {
80
+ border-color: #1775fe !important;
81
+ background-color: #ffffff !important;
82
+ }
83
+ .index-module__iocard___On10h {
84
+ display: flex;
85
+ align-items: center;
86
+ gap: 8px;
87
+ width: 284px;
88
+ }
89
+ .index-module__iocard___On10h::before {
90
+ content: "";
91
+ box-sizing: border-box;
92
+ width: 16px;
93
+ height: 16px;
94
+ border: 2px solid #99a1af;
95
+ background: radial-gradient(circle, #99a1af 0 30%, transparent 30% 70%, #99a1af 70% 100%);
96
+ border-radius: 50%;
97
+ flex: none;
98
+ }
99
+ .index-module__iocard-body___6BzLs {
100
+ box-sizing: border-box;
101
+ display: flex;
102
+ flex-direction: row;
103
+ justify-content: center;
104
+ align-items: center;
105
+ padding: 10px 0px;
106
+ gap: 10px;
107
+ width: 260px;
108
+ height: 40px;
109
+ background: #ffffff;
110
+ border: 1px solid #eaf1fe;
111
+ box-shadow: 0px 2px 8px rgba(7, 35, 76, 0.1);
112
+ border-radius: 16777200px;
113
+ cursor: pointer;
114
+ transition: border-color 0.3s;
115
+ }
116
+ .index-module__iocard-body___6BzLs:hover {
117
+ border: 1px solid rgba(23, 117, 254, 0.3);
118
+ /* 投影1 */
119
+ box-shadow: 0px 8px 24px rgba(7, 35, 76, 0.15);
120
+ border-radius: 16777200px;
121
+ }
122
+ .index-module__iocard-body___6BzLs.index-module__active___0YZNX {
123
+ background: #ffffff;
124
+ border: 1px solid #1775fe;
125
+ box-shadow: 0px 2px 8px rgba(7, 35, 76, 0.1);
126
+ border-radius: 16777200px;
127
+ }
128
+ .index-module__card-title___7aaE0 {
129
+ width: 224px;
130
+ height: 20px;
131
+ font-style: normal;
132
+ font-weight: 500;
133
+ font-size: 14px;
134
+ line-height: 20px;
135
+ color: #222427;
136
+ position: relative;
137
+ }
138
+ .index-module__card-description___UlkWG {
139
+ width: 224px;
140
+ height: 34px;
141
+ font-style: normal;
142
+ font-weight: 400;
143
+ font-size: 12px;
144
+ color: #565b63;
145
+ overflow: hidden;
146
+ display: -webkit-box;
147
+ -webkit-line-clamp: 2;
148
+ line-clamp: 2;
149
+ text-overflow: ellipsis;
150
+ min-height: 40px;
151
+ -webkit-box-orient: vertical;
152
+ }
153
+ .index-module__divider-block___PZ78i {
154
+ width: 260px;
155
+ height: 20px;
156
+ transition: all 0.3s;
157
+ }
158
+ .index-module__card-divider___SG2-r {
159
+ width: 260px;
160
+ height: 20px;
161
+ opacity: 0;
162
+ transition: opacity 0.3s ease;
163
+ }
164
+ .index-module__divider-block___PZ78i:hover .index-module__card-divider___SG2-r {
165
+ opacity: 1;
166
+ }
167
+ .index-module__dropdown-menu___3Bqbj {
168
+ width: 200px !important;
169
+ max-height: 200px !important;
170
+ overflow-y: auto !important;
171
+ }
172
+ .index-module__virtual-dropdown-container___V9-Ly {
173
+ overflow-y: auto;
174
+ position: relative;
175
+ width: 100%;
176
+ }
177
+ .index-module__virtual-dropdown-content___NM-r1 {
178
+ position: relative;
179
+ }
180
+ .index-module__virtual-dropdown-items___Eo3-C {
181
+ position: absolute;
182
+ width: 100%;
183
+ }
184
+ .index-module__virtual-dropdown-item___le2A5 {
185
+ height: 32px;
186
+ padding: 0 12px;
187
+ display: flex;
188
+ align-items: center;
189
+ cursor: pointer;
190
+ transition: background-color 0.2s;
191
+ }
192
+ .index-module__virtual-dropdown-item___le2A5:hover {
193
+ background-color: #f5f5f5;
194
+ }
195
+ .index-module__card-line-container___Xup5i {
196
+ margin-left: 7px;
197
+ width: 284px;
198
+ border-left: 1px dashed #99a1af;
199
+ }
200
+ /**
201
+ * 筛选面板css
202
+ */
203
+ .index-module__filter-popup___ERPmR {
204
+ /* 选项 */
205
+ /* Auto layout */
206
+ display: flex;
207
+ flex-direction: column;
208
+ align-items: flex-start;
209
+ padding: 12px 0px;
210
+ gap: 8px;
211
+ width: 372px;
212
+ height: 456px;
213
+ background: #ffffff;
214
+ /* drop-shadow/0.12+0.8+0.5 */
215
+ box-shadow: 0px 3px 6px -4px rgba(0, 0, 0, 0.12), 0px 6px 16px rgba(0, 0, 0, 0.08), 0px 9px 28px 8px rgba(0, 0, 0, 0.05);
216
+ border-radius: 2px;
217
+ }
218
+ .index-module__filter-popup-top___VryEA {
219
+ /* Frame 2147223236 */
220
+ /* Auto layout */
221
+ display: flex;
222
+ flex-direction: row;
223
+ align-items: flex-start;
224
+ padding: 0px 12px;
225
+ gap: 8px;
226
+ height: 32px;
227
+ }`;
228
+ document.head.appendChild(style);
229
+
230
+ var card_body = "index-module__card-body___2yy9w";var active = "index-module__active___0YZNX";var delete_btn_container = "index-module__delete-btn-container___6Lsv3";var iocard = "index-module__iocard___On10h";var iocard_body = "index-module__iocard-body___6BzLs";var card_title = "index-module__card-title___7aaE0";var card_description = "index-module__card-description___UlkWG";var divider_block = "index-module__divider-block___PZ78i";var card_divider = "index-module__card-divider___SG2-r";var virtual_dropdown_container = "index-module__virtual-dropdown-container___V9-Ly";var virtual_dropdown_content = "index-module__virtual-dropdown-content___NM-r1";var virtual_dropdown_items = "index-module__virtual-dropdown-items___Eo3-C";var virtual_dropdown_item = "index-module__virtual-dropdown-item___le2A5";var card_line_container = "index-module__card-line-container___Xup5i";var filter_popup = "index-module__filter-popup___ERPmR";var filter_popup_top = "index-module__filter-popup-top___VryEA";
231
+
232
+ export { active, card_body as "card-body", card_description as "card-description", card_divider as "card-divider", card_line_container as "card-line-container", card_title as "card-title", delete_btn_container as "delete-btn-container", divider_block as "divider-block", filter_popup as "filter-popup", filter_popup_top as "filter-popup-top", iocard, iocard_body as "iocard-body", virtual_dropdown_container as "virtual-dropdown-container", virtual_dropdown_content as "virtual-dropdown-content", virtual_dropdown_item as "virtual-dropdown-item", virtual_dropdown_items as "virtual-dropdown-items" };
@@ -0,0 +1,9 @@
1
+ import 'tslib';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import 'antd';
5
+ import PermissionEditor from './permissionEditor/index.js';
6
+
7
+
8
+
9
+ export { PermissionEditor as default };
@@ -0,0 +1,37 @@
1
+ import { __awaiter } from 'tslib';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useState, useEffect } from 'react';
4
+ import { Modal, Button, message } from 'antd';
5
+ import PermissionEditor from '../permissionEditor/index.js';
6
+
7
+ const PermissionEditModal = ({ open, onCancel, onSave, initialPermissions = [], }) => {
8
+ const [selectedPermissions, setSelectedPermissions] = useState(initialPermissions);
9
+ const [loading, setLoading] = useState(false);
10
+ // 当 modal 打开时重置权限状态
11
+ useEffect(() => {
12
+ if (open) {
13
+ setSelectedPermissions(initialPermissions);
14
+ }
15
+ }, [open, initialPermissions]);
16
+ const handleSave = () => __awaiter(void 0, void 0, void 0, function* () {
17
+ try {
18
+ onSave === null || onSave === void 0 ? void 0 : onSave(selectedPermissions);
19
+ onCancel();
20
+ }
21
+ catch (error) {
22
+ message.error('权限更新失败');
23
+ console.error('保存权限失败:', error);
24
+ }
25
+ });
26
+ const handleCancel = () => {
27
+ // 重置为初始状态
28
+ setSelectedPermissions(initialPermissions);
29
+ onCancel();
30
+ };
31
+ return (jsx(Modal, { title: `编辑权限`, open: open, onCancel: handleCancel, width: 600, destroyOnClose: true, footer: [
32
+ jsx(Button, { onClick: handleCancel, children: "\u53D6\u6D88" }, "cancel"),
33
+ jsx(Button, { type: "primary", loading: loading, onClick: handleSave, children: "\u4FDD\u5B58" }, "save"),
34
+ ], children: jsx("div", { style: { padding: '16px 0' }, children: jsx(PermissionEditor, { initialPermissions: selectedPermissions, onChange: setSelectedPermissions, editable: true }) }) }));
35
+ };
36
+
37
+ export { PermissionEditModal as default };
@@ -0,0 +1,253 @@
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
+ import React from 'react';
3
+ import { Tag, Flex } from 'antd';
4
+ import { unEditable, tagReadonly } from './index.module.scss.js';
5
+ import { CheckCircleOutlined } from '@ant-design/icons';
6
+
7
+ const permissionTags = [
8
+ {
9
+ label: '数据权限',
10
+ value: 'agentic',
11
+ readOnly: false,
12
+ children: [
13
+ {
14
+ label: '检索智能体',
15
+ value: '13',
16
+ readOnly: false,
17
+ },
18
+ ],
19
+ },
20
+ {
21
+ label: '工作台权限',
22
+ value: 'workbench',
23
+ readOnly: false,
24
+ children: [
25
+ {
26
+ label: '语料生产服务',
27
+ value: '20',
28
+ readOnly: false,
29
+ },
30
+ {
31
+ label: '语料质量评估',
32
+ value: '18',
33
+ readOnly: false,
34
+ },
35
+ {
36
+ label: '可视化工作流',
37
+ value: '1',
38
+ readOnly: false,
39
+ },
40
+ {
41
+ label: '文档标注',
42
+ value: '8',
43
+ readOnly: false,
44
+ },
45
+ {
46
+ label: '模型训练',
47
+ value: '19',
48
+ readOnly: false,
49
+ },
50
+ {
51
+ label: '计量中心',
52
+ value: '23',
53
+ readOnly: false,
54
+ },
55
+ {
56
+ label: '模型部署',
57
+ value: '21',
58
+ readOnly: true,
59
+ },
60
+ {
61
+ label: '模型管理',
62
+ value: '22',
63
+ readOnly: true,
64
+ },
65
+ ],
66
+ },
67
+ {
68
+ label: '语料检索权限',
69
+ value: 'corpus_index',
70
+ readOnly: false,
71
+ children: [
72
+ {
73
+ label: '文献语料检索',
74
+ value: '14',
75
+ readOnly: false,
76
+ },
77
+ {
78
+ label: '网页语料筛选',
79
+ value: '15',
80
+ readOnly: false,
81
+ },
82
+ ],
83
+ },
84
+ {
85
+ label: '语料生产权限',
86
+ value: 'corpus_product',
87
+ readOnly: false,
88
+ children: [
89
+ {
90
+ label: '文档语料生产',
91
+ value: '16',
92
+ readOnly: false,
93
+ },
94
+ {
95
+ label: '网页语料生产',
96
+ value: '17',
97
+ readOnly: false,
98
+ },
99
+ ],
100
+ },
101
+ ];
102
+ const PermissionEditor = ({ initialPermissions = [], onChange, editable = true, }) => {
103
+ // 将新格式转换为内部使用的扁平化格式
104
+ const convertToFlatFormat = (permissions) => {
105
+ const flatTags = [];
106
+ permissions.forEach((module) => {
107
+ // 添加权限列表中的所有子权限
108
+ flatTags.push(...module.grentedList);
109
+ // 查找对应的父级标签
110
+ const parentTag = permissionTags.find((tag) => tag.value === module.module);
111
+ if (parentTag) {
112
+ if (parentTag.children.length === 0) {
113
+ // 如果是没有子级的模块(如 agentic),直接添加父模块
114
+ flatTags.push(module.module);
115
+ }
116
+ else {
117
+ // 如果有子级,检查是否所有可选的子权限都被选中
118
+ const availableChildren = parentTag.children.filter((child) => !child.readOnly);
119
+ const availableChildValues = availableChildren.map((child) => child.value);
120
+ // 检查是否所有可选子级都在权限列表中
121
+ const allAvailableChildrenSelected = availableChildValues.length > 0 &&
122
+ availableChildValues.every((childValue) => module.grentedList.includes(childValue));
123
+ if (allAvailableChildrenSelected) {
124
+ flatTags.push(module.module);
125
+ }
126
+ }
127
+ }
128
+ });
129
+ return flatTags;
130
+ };
131
+ // 将扁平化格式转换为新格式
132
+ const convertToModuleFormat = (flatTags) => {
133
+ const modules = [];
134
+ permissionTags.forEach((tag) => {
135
+ const modulePermissions = [];
136
+ // 检查子权限
137
+ tag.children.forEach((child) => {
138
+ if (flatTags.includes(child.value)) {
139
+ modulePermissions.push(child.value);
140
+ }
141
+ });
142
+ // 只有在以下情况下才添加模块:
143
+ // 1. 模块没有子级且父级被选中(如 agentic)
144
+ // 2. 模块有子级且有子权限被选中
145
+ if (tag.children.length === 0) {
146
+ // 没有子级的模块,只有父级被选中时才添加
147
+ if (flatTags.includes(tag.value)) {
148
+ modules.push({
149
+ module: tag.value,
150
+ grentedList: [],
151
+ });
152
+ }
153
+ }
154
+ else {
155
+ // 1.有子级的模块,只有有子权限被选中时才添加
156
+ // if (modulePermissions.length > 0) {
157
+ // modules.push({
158
+ // module: tag.value,
159
+ // grentedList: modulePermissions,
160
+ // });
161
+ // }
162
+ // 2.无论有没有子权限时都添加
163
+ modules.push({
164
+ module: tag.value,
165
+ grentedList: modulePermissions,
166
+ });
167
+ }
168
+ });
169
+ return modules;
170
+ };
171
+ const [selectedTags, setSelectedTags] = React.useState(convertToFlatFormat(initialPermissions));
172
+ const handleChange = (tag, checked, readOnly) => {
173
+ // 如果整体不可编辑或者标签只读,则不处理
174
+ if (!editable || readOnly)
175
+ return;
176
+ // 查找当前操作的标签
177
+ const currentTag = permissionTags.find((t) => t.value === tag);
178
+ let nextSelectedTags;
179
+ if (currentTag && currentTag.children.length > 0) {
180
+ // 如果是父级标签且有子级
181
+ if (checked) {
182
+ // 选中父级时,同时选中所有非只读的子级
183
+ const childValues = currentTag.children
184
+ .filter((child) => !child.readOnly)
185
+ .map((child) => child.value);
186
+ nextSelectedTags = Array.from(new Set([...selectedTags, tag, ...childValues]));
187
+ }
188
+ else {
189
+ // 取消父级时,同时取消所有子级
190
+ const childValues = currentTag.children.map((child) => child.value);
191
+ nextSelectedTags = selectedTags.filter((t) => t !== tag && !childValues.includes(t));
192
+ }
193
+ }
194
+ else {
195
+ // 子级标签的操作
196
+ if (checked) {
197
+ nextSelectedTags = [...selectedTags, tag];
198
+ // 检查是否需要自动选中父级
199
+ const parentTag = permissionTags.find((parent) => parent.children.some((child) => child.value === tag));
200
+ if (parentTag) {
201
+ // 获取所有非只读的子级
202
+ const availableChildren = parentTag.children.filter((child) => !child.readOnly);
203
+ const availableChildValues = availableChildren.map((child) => child.value);
204
+ // 检查是否所有可选的子级都已被选中
205
+ const allAvailableChildrenSelected = availableChildValues.every((childValue) => nextSelectedTags.includes(childValue));
206
+ // 如果所有可选子级都被选中,且父级未被选中,则自动选中父级
207
+ if (allAvailableChildrenSelected && !nextSelectedTags.includes(parentTag.value)) {
208
+ nextSelectedTags = [...nextSelectedTags, parentTag.value];
209
+ }
210
+ }
211
+ }
212
+ else {
213
+ nextSelectedTags = selectedTags.filter((t) => t !== tag);
214
+ // 如果取消的是子级,检查是否需要取消父级
215
+ const parentTag = permissionTags.find((parent) => parent.children.some((child) => child.value === tag));
216
+ if (parentTag && selectedTags.includes(parentTag.value)) {
217
+ // 如果父级是选中状态,取消父级
218
+ nextSelectedTags = nextSelectedTags.filter((t) => t !== parentTag.value);
219
+ }
220
+ }
221
+ }
222
+ const modulePermissions = convertToModuleFormat(nextSelectedTags);
223
+ console.log('You are interested in: ', nextSelectedTags);
224
+ setSelectedTags(nextSelectedTags);
225
+ onChange === null || onChange === void 0 ? void 0 : onChange(modulePermissions);
226
+ };
227
+ return (jsx(Fragment, { children: permissionTags.map((tag) => {
228
+ var _a;
229
+ const isSelected = selectedTags.includes(tag.value);
230
+ return (jsxs("div", { style: { width: '100%', margin: '8px 0' }, className: !editable ? unEditable : '', children: [jsx("span", { style: { fontSize: '16px', fontWeight: 500, marginRight: 8 }, children: tag.label }), editable && (jsx(Tag.CheckableTag, { checked: isSelected, onChange: (checked) => handleChange(tag.value, checked, tag.readOnly), style: {
231
+ cursor: tag.readOnly ? 'not-allowed' : 'pointer',
232
+ opacity: tag.readOnly ? 0.7 : 1,
233
+ margin: '5px 0',
234
+ paddingBlock: 0,
235
+ color: isSelected ? '#FFFFFF' : '#a8a8a8',
236
+ paddingInline: 0,
237
+ height: 18,
238
+ width: 18,
239
+ border: 0,
240
+ borderRadius: '50%',
241
+ }, className: tag.readOnly ? tagReadonly : '', children: jsx(CheckCircleOutlined, { style: { fontSize: '18px' }, title: isSelected ? '取消全选' : '全选' }) }, tag.value)), jsx(Flex, { gap: 5, wrap: true, align: "center", children: (_a = tag.children) === null || _a === void 0 ? void 0 : _a.map((child) => {
242
+ const isChildSelected = selectedTags.includes(child.value);
243
+ return (jsx(Tag.CheckableTag, { checked: isChildSelected, onChange: (checked) => handleChange(child.value, checked, child.readOnly), style: {
244
+ cursor: child.readOnly ? 'not-allowed' : 'pointer',
245
+ opacity: child.readOnly ? 0.7 : 1,
246
+ margin: '5px 0',
247
+ border: '1px solid #979797',
248
+ }, className: child.readOnly ? tagReadonly : '', children: child.label }, child.value));
249
+ }) })] }, tag.value));
250
+ }) }));
251
+ };
252
+
253
+ export { PermissionEditor as default };