@next-libs/cmdb-instances 7.21.0 → 7.21.2

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.
@@ -46,8 +46,12 @@ function CmdbUpload(props) {
46
46
  };
47
47
  const {
48
48
  uploadButtonProps,
49
- uploadConfig = defaultUploadConfig
49
+ uploadConfig: otherUploadConfig
50
50
  } = props;
51
+ const uploadConfig = {
52
+ ...defaultUploadConfig,
53
+ ...(otherUploadConfig !== null && otherUploadConfig !== void 0 ? otherUploadConfig : {})
54
+ };
51
55
  const [value, setValue] = _react.default.useState([]);
52
56
  const [fileList, setFileList] = (0, _react.useState)([]);
53
57
  const [disabled, setDisabled] = (0, _react.useState)(false);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["addUid","value","fileList","map","file","uid","uniqueId","compareValues","value1","value2","result","isEqual","CmdbUpload","props","defaultUploadConfig","uploadButtonName","i18n","t","NS_LIBS_CMDB_INSTANCES","K","UPLOAD","url","UploadFileUrl","maxNumber","method","limitSize","uploadButtonProps","uploadConfig","setValue","React","useState","setFileList","disabled","setDisabled","useEffect","isDifferent","handleValueChange","v","onChange","handleBeforeUpload","FileUtils","sizeCompare","sizeTipsText","UPLOAD_SIZE_LARGE_TEXT","size","onError","message","info","Promise","_resolve","reject","Error","autoUpload","resolve","handleFilesChange","newFile","newFileList","isDone","response","name","type","DownloadFileUrl","objectName","handleChange","data","_file","length","status","_fileList","some","index","findIndex","update","$splice","uploadNode","hideUploadButton","buttonType","buttonIcon","lib","icon","theme","buttonName","handleRemove","e","onRemove","uploadProps","className","uploadName","action","accept","multiple","listType","maxCount","beforeUpload","supportServerRender","progress","strokeColor","trailColor","strokeWidth","showInfo","showUploadList","removeIcon","category","iconRender","styles","uploadContainer"],"sources":["../../../../src/components/cmdb-upload/index.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { uniqueId, map, findIndex, some, isEqual } from \"lodash\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { Upload, Button, message } from \"antd\";\nimport i18n from \"i18next\";\nimport update from \"immutability-helper\";\nimport { ButtonType } from \"antd/lib/button\";\nimport { FileUtils } from \"@next-libs/cmdb-utils\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { UploadFile, RcFile } from \"antd/lib/upload/interface\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../i18n/constants\";\nimport styles from \"./index.module.css\";\nimport { UploadFileUrl, DownloadFileUrl } from \"../../constants\";\n\ninterface UploadFileValueItem {\n name?: string;\n url?: string;\n response?: any;\n file?: any;\n uid?: string;\n size?: number;\n type?: string;\n}\ninterface FileItem {\n url?: string;\n uid?: string;\n response?: any;\n file?: any;\n size?: number;\n type?: string;\n [propName: string]: any;\n}\ninterface UploadButtonProps {\n buttonName: string;\n buttonType: ButtonType;\n buttonIcon: MenuIcon;\n}\n\nexport interface UploadConfig {\n url?: string;\n method?: any;\n uploadName?: string;\n accept?: string;\n data?: { [key: string]: string };\n maxNumber?: number;\n limitSize?: number;\n hideUploadButton?: boolean;\n uploadButtonName?: string;\n}\n\nexport interface CmdbUploadProps {\n uploadButtonProps?: UploadButtonProps;\n uploadConfig: UploadConfig;\n onChange?: any;\n onError?: (file: any) => void;\n onRemove?: (file: any) => void;\n disabled?: boolean;\n value?: UploadFileValueItem[];\n style?: React.CSSProperties;\n className?: string;\n autoUpload: boolean;\n}\n\nexport function addUid(value: UploadFileValueItem[]): FileItem[] {\n let fileList: FileItem[] = [];\n fileList = map(value, (file) => {\n file.uid = file.uid ?? uniqueId(\"-file\");\n return file;\n });\n return fileList;\n}\n\nexport function compareValues(\n value: UploadFileValueItem[],\n fileList: FileItem[]\n): boolean {\n const value1 = map(value, \"uid\");\n const value2 = map(fileList, \"uid\");\n const result = isEqual(value1, value2);\n return !result;\n}\n\nexport function CmdbUpload(props: CmdbUploadProps): React.ReactElement {\n // 默认上传配置\n const defaultUploadConfig: UploadConfig = {\n uploadButtonName: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UPLOAD}`),\n url: UploadFileUrl,\n maxNumber: 5,\n method: \"put\",\n limitSize: 100,\n };\n const { uploadButtonProps, uploadConfig = defaultUploadConfig } = props;\n const [value, setValue] = React.useState([]);\n const [fileList, setFileList] = useState([]);\n const [disabled, setDisabled] = useState(false);\n\n React.useEffect(() => {\n setValue(addUid(props.value));\n const isDifferent = compareValues(props.value, fileList);\n if (isDifferent) {\n setFileList(addUid(props.value));\n }\n }, [props.value]);\n\n const handleValueChange = (v: UploadFileValueItem[]): void => {\n setValue(v);\n props.onChange?.(v);\n };\n\n const handleBeforeUpload = (file: RcFile): Promise<RcFile> | boolean => {\n if (FileUtils.sizeCompare(file, uploadConfig.limitSize ?? 100)) {\n const sizeTipsText = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.UPLOAD_SIZE_LARGE_TEXT}`,\n {\n size: `${uploadConfig.limitSize}M`,\n }\n );\n // 如果上传文件大小大于限定大小\n props.onError?.(sizeTipsText);\n message.info(sizeTipsText);\n return new Promise((_resolve, reject) => {\n // 返回reject阻止文件添加\n reject(new Error(sizeTipsText));\n });\n }\n if (props.autoUpload) {\n // 进行自动上传\n return new Promise((resolve) => resolve(file));\n } else {\n // 返回false阻止默认上传行为\n return false;\n }\n };\n\n const handleFilesChange = async (\n newFile: FileItem,\n newFileList: FileItem[],\n isDone: boolean\n ): Promise<void> => {\n if (isDone) {\n if (uploadConfig.maxNumber === 1) {\n setFileList([newFile]);\n handleValueChange([\n {\n response: newFile.response,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n url: `${DownloadFileUrl}/${newFile.response?.objectName}`,\n },\n ]);\n } else {\n setFileList(newFileList);\n handleValueChange([\n ...value,\n {\n response: newFile.response,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n url: `${DownloadFileUrl}/${newFile.response?.objectName}`,\n },\n ]);\n }\n } else {\n if (uploadConfig.maxNumber === 1) {\n setFileList([newFile]);\n if (!props.autoUpload) {\n handleValueChange([\n {\n file: newFile,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n },\n ]);\n }\n } else {\n setFileList(newFileList);\n if (!props.autoUpload) {\n handleValueChange([\n ...value,\n {\n file: newFile,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n },\n ]);\n }\n }\n }\n };\n const handleChange = (data: any) => {\n const _file = data.file;\n if (\n uploadConfig.maxNumber &&\n uploadConfig.maxNumber !== 1 &&\n value?.length >= uploadConfig.maxNumber &&\n _file.status !== \"removed\" &&\n _file.status !== \"error\"\n )\n return;\n const _fileList = data.fileList;\n if (some(_fileList, [\"status\", \"uploading\"])) {\n setDisabled(true);\n } else {\n setDisabled(false);\n }\n if (_file.status === \"removed\") {\n const index = findIndex(value, [\"uid\", _file.uid]);\n if (index !== -1) {\n handleValueChange(update(value, { $splice: [[index, 1]] }));\n }\n setFileList(_fileList);\n } else if (_file.status === \"error\") {\n setDisabled(false);\n const index = findIndex(fileList, [\"uid\", _file.uid]);\n if (index !== -1) {\n setFileList(update(fileList, { $splice: [[index, 1]] }));\n }\n props.onError?.(_file);\n } else {\n handleFilesChange(_file, _fileList, false);\n // if (_fileList.every((v: any) => v.status === \"done\" && v.response)) {\n // _fileList.forEach((file: any) => {\n // file.response = file.response.data;\n // handleFilesChange(file, _fileList, true);\n // });\n // }\n if (_file.response && _file.status === \"done\") {\n _file.response = _file.response.data;\n handleFilesChange(_file, _fileList, true);\n }\n }\n };\n\n const uploadNode = () => {\n if (uploadConfig.hideUploadButton) {\n return null;\n }\n return (\n <Button\n disabled={\n (uploadConfig.maxNumber && value?.length >= uploadConfig.maxNumber) ||\n props.disabled\n }\n type={uploadButtonProps?.buttonType}\n >\n <GeneralIcon\n icon={\n uploadButtonProps?.buttonIcon ?? {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n }\n }\n />\n {uploadButtonProps?.buttonName ??\n uploadConfig.uploadButtonName ??\n \"Upload\"}\n </Button>\n );\n };\n\n const handleRemove = (e: any) => {\n props.onRemove?.(e);\n };\n\n const uploadProps: any = {\n className: props.className,\n method: uploadConfig?.method || \"post\",\n disabled: props.disabled || disabled,\n data: uploadConfig?.data,\n name: uploadConfig?.uploadName,\n action: uploadConfig?.url || UploadFileUrl,\n accept: uploadConfig?.accept,\n multiple: false,\n listType: \"text\",\n fileList,\n maxCount: uploadConfig?.maxNumber ?? 5,\n beforeUpload: handleBeforeUpload,\n onChange: handleChange,\n onRemove: handleRemove,\n supportServerRender: true,\n progress: {\n strokeColor: \"var(--color-success)\",\n trailColor: \"var(--color-fill-bg-base-1)\",\n strokeWidth: \"1px\",\n showInfo: false,\n },\n showUploadList: {\n // eslint-disable-next-line react/display-name\n removeIcon: (file: UploadFile): ReactNode =>\n file.status === \"error\" ? (\n <GeneralIcon\n icon={{\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n }}\n />\n ) : (\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n }}\n />\n ),\n },\n // eslint-disable-next-line react/display-name\n iconRender: (file: UploadFile): ReactNode =>\n file.status === \"uploading\" ? (\n <LoadingOutlined />\n ) : (\n <GeneralIcon\n icon={{\n lib: \"antd\",\n icon: \"file-text\",\n theme: \"outlined\",\n }}\n />\n ),\n };\n return (\n <div className={styles.uploadContainer}>\n <Upload {...uploadProps}>{uploadNode()}</Upload>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["addUid","value","fileList","map","file","uid","uniqueId","compareValues","value1","value2","result","isEqual","CmdbUpload","props","defaultUploadConfig","uploadButtonName","i18n","t","NS_LIBS_CMDB_INSTANCES","K","UPLOAD","url","UploadFileUrl","maxNumber","method","limitSize","uploadButtonProps","uploadConfig","otherUploadConfig","setValue","React","useState","setFileList","disabled","setDisabled","useEffect","isDifferent","handleValueChange","v","onChange","handleBeforeUpload","FileUtils","sizeCompare","sizeTipsText","UPLOAD_SIZE_LARGE_TEXT","size","onError","message","info","Promise","_resolve","reject","Error","autoUpload","resolve","handleFilesChange","newFile","newFileList","isDone","response","name","type","DownloadFileUrl","objectName","handleChange","data","_file","length","status","_fileList","some","index","findIndex","update","$splice","uploadNode","hideUploadButton","buttonType","buttonIcon","lib","icon","theme","buttonName","handleRemove","e","onRemove","uploadProps","className","uploadName","action","accept","multiple","listType","maxCount","beforeUpload","supportServerRender","progress","strokeColor","trailColor","strokeWidth","showInfo","showUploadList","removeIcon","category","iconRender","styles","uploadContainer"],"sources":["../../../../src/components/cmdb-upload/index.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { uniqueId, map, findIndex, some, isEqual } from \"lodash\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { Upload, Button, message } from \"antd\";\nimport i18n from \"i18next\";\nimport update from \"immutability-helper\";\nimport { ButtonType } from \"antd/lib/button\";\nimport { FileUtils } from \"@next-libs/cmdb-utils\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { UploadFile, RcFile } from \"antd/lib/upload/interface\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../i18n/constants\";\nimport styles from \"./index.module.css\";\nimport { UploadFileUrl, DownloadFileUrl } from \"../../constants\";\n\ninterface UploadFileValueItem {\n name?: string;\n url?: string;\n response?: any;\n file?: any;\n uid?: string;\n size?: number;\n type?: string;\n}\ninterface FileItem {\n url?: string;\n uid?: string;\n response?: any;\n file?: any;\n size?: number;\n type?: string;\n [propName: string]: any;\n}\ninterface UploadButtonProps {\n buttonName: string;\n buttonType: ButtonType;\n buttonIcon: MenuIcon;\n}\n\nexport interface UploadConfig {\n url?: string;\n method?: any;\n uploadName?: string;\n accept?: string;\n data?: { [key: string]: string };\n maxNumber?: number;\n limitSize?: number;\n hideUploadButton?: boolean;\n uploadButtonName?: string;\n}\n\nexport interface CmdbUploadProps {\n uploadButtonProps?: UploadButtonProps;\n uploadConfig: UploadConfig;\n onChange?: any;\n onError?: (file: any) => void;\n onRemove?: (file: any) => void;\n disabled?: boolean;\n value?: UploadFileValueItem[];\n style?: React.CSSProperties;\n className?: string;\n autoUpload: boolean;\n}\n\nexport function addUid(value: UploadFileValueItem[]): FileItem[] {\n let fileList: FileItem[] = [];\n fileList = map(value, (file) => {\n file.uid = file.uid ?? uniqueId(\"-file\");\n return file;\n });\n return fileList;\n}\n\nexport function compareValues(\n value: UploadFileValueItem[],\n fileList: FileItem[]\n): boolean {\n const value1 = map(value, \"uid\");\n const value2 = map(fileList, \"uid\");\n const result = isEqual(value1, value2);\n return !result;\n}\n\nexport function CmdbUpload(props: CmdbUploadProps): React.ReactElement {\n // 默认上传配置\n const defaultUploadConfig: UploadConfig = {\n uploadButtonName: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UPLOAD}`),\n url: UploadFileUrl,\n maxNumber: 5,\n method: \"put\",\n limitSize: 100,\n };\n const { uploadButtonProps, uploadConfig: otherUploadConfig } = props;\n const uploadConfig = { ...defaultUploadConfig, ...(otherUploadConfig ?? {}) };\n const [value, setValue] = React.useState([]);\n const [fileList, setFileList] = useState([]);\n const [disabled, setDisabled] = useState(false);\n\n React.useEffect(() => {\n setValue(addUid(props.value));\n const isDifferent = compareValues(props.value, fileList);\n if (isDifferent) {\n setFileList(addUid(props.value));\n }\n }, [props.value]);\n\n const handleValueChange = (v: UploadFileValueItem[]): void => {\n setValue(v);\n props.onChange?.(v);\n };\n\n const handleBeforeUpload = (file: RcFile): Promise<RcFile> | boolean => {\n if (FileUtils.sizeCompare(file, uploadConfig.limitSize ?? 100)) {\n const sizeTipsText = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.UPLOAD_SIZE_LARGE_TEXT}`,\n {\n size: `${uploadConfig.limitSize}M`,\n }\n );\n // 如果上传文件大小大于限定大小\n props.onError?.(sizeTipsText);\n message.info(sizeTipsText);\n return new Promise((_resolve, reject) => {\n // 返回reject阻止文件添加\n reject(new Error(sizeTipsText));\n });\n }\n if (props.autoUpload) {\n // 进行自动上传\n return new Promise((resolve) => resolve(file));\n } else {\n // 返回false阻止默认上传行为\n return false;\n }\n };\n\n const handleFilesChange = async (\n newFile: FileItem,\n newFileList: FileItem[],\n isDone: boolean\n ): Promise<void> => {\n if (isDone) {\n if (uploadConfig.maxNumber === 1) {\n setFileList([newFile]);\n handleValueChange([\n {\n response: newFile.response,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n url: `${DownloadFileUrl}/${newFile.response?.objectName}`,\n },\n ]);\n } else {\n setFileList(newFileList);\n handleValueChange([\n ...value,\n {\n response: newFile.response,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n url: `${DownloadFileUrl}/${newFile.response?.objectName}`,\n },\n ]);\n }\n } else {\n if (uploadConfig.maxNumber === 1) {\n setFileList([newFile]);\n if (!props.autoUpload) {\n handleValueChange([\n {\n file: newFile,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n },\n ]);\n }\n } else {\n setFileList(newFileList);\n if (!props.autoUpload) {\n handleValueChange([\n ...value,\n {\n file: newFile,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n },\n ]);\n }\n }\n }\n };\n const handleChange = (data: any) => {\n const _file = data.file;\n if (\n uploadConfig.maxNumber &&\n uploadConfig.maxNumber !== 1 &&\n value?.length >= uploadConfig.maxNumber &&\n _file.status !== \"removed\" &&\n _file.status !== \"error\"\n )\n return;\n const _fileList = data.fileList;\n if (some(_fileList, [\"status\", \"uploading\"])) {\n setDisabled(true);\n } else {\n setDisabled(false);\n }\n if (_file.status === \"removed\") {\n const index = findIndex(value, [\"uid\", _file.uid]);\n if (index !== -1) {\n handleValueChange(update(value, { $splice: [[index, 1]] }));\n }\n setFileList(_fileList);\n } else if (_file.status === \"error\") {\n setDisabled(false);\n const index = findIndex(fileList, [\"uid\", _file.uid]);\n if (index !== -1) {\n setFileList(update(fileList, { $splice: [[index, 1]] }));\n }\n props.onError?.(_file);\n } else {\n handleFilesChange(_file, _fileList, false);\n // if (_fileList.every((v: any) => v.status === \"done\" && v.response)) {\n // _fileList.forEach((file: any) => {\n // file.response = file.response.data;\n // handleFilesChange(file, _fileList, true);\n // });\n // }\n if (_file.response && _file.status === \"done\") {\n _file.response = _file.response.data;\n handleFilesChange(_file, _fileList, true);\n }\n }\n };\n\n const uploadNode = () => {\n if (uploadConfig.hideUploadButton) {\n return null;\n }\n return (\n <Button\n disabled={\n (uploadConfig.maxNumber && value?.length >= uploadConfig.maxNumber) ||\n props.disabled\n }\n type={uploadButtonProps?.buttonType}\n >\n <GeneralIcon\n icon={\n uploadButtonProps?.buttonIcon ?? {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n }\n }\n />\n {uploadButtonProps?.buttonName ??\n uploadConfig.uploadButtonName ??\n \"Upload\"}\n </Button>\n );\n };\n\n const handleRemove = (e: any) => {\n props.onRemove?.(e);\n };\n\n const uploadProps: any = {\n className: props.className,\n method: uploadConfig?.method || \"post\",\n disabled: props.disabled || disabled,\n data: uploadConfig?.data,\n name: uploadConfig?.uploadName,\n action: uploadConfig?.url || UploadFileUrl,\n accept: uploadConfig?.accept,\n multiple: false,\n listType: \"text\",\n fileList,\n maxCount: uploadConfig?.maxNumber ?? 5,\n beforeUpload: handleBeforeUpload,\n onChange: handleChange,\n onRemove: handleRemove,\n supportServerRender: true,\n progress: {\n strokeColor: \"var(--color-success)\",\n trailColor: \"var(--color-fill-bg-base-1)\",\n strokeWidth: \"1px\",\n showInfo: false,\n },\n showUploadList: {\n // eslint-disable-next-line react/display-name\n removeIcon: (file: UploadFile): ReactNode =>\n file.status === \"error\" ? (\n <GeneralIcon\n icon={{\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n }}\n />\n ) : (\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n }}\n />\n ),\n },\n // eslint-disable-next-line react/display-name\n iconRender: (file: UploadFile): ReactNode =>\n file.status === \"uploading\" ? (\n <LoadingOutlined />\n ) : (\n <GeneralIcon\n icon={{\n lib: \"antd\",\n icon: \"file-text\",\n theme: \"outlined\",\n }}\n />\n ),\n };\n return (\n <div className={styles.uploadContainer}>\n <Upload {...uploadProps}>{uploadNode()}</Upload>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
3
  import React, { useState } from "react";
3
4
  import { uniqueId, map, findIndex, some, isEqual } from "lodash";
4
5
  import { LoadingOutlined } from "@ant-design/icons";
@@ -37,8 +38,9 @@ export function CmdbUpload(props) {
37
38
  };
38
39
  var {
39
40
  uploadButtonProps,
40
- uploadConfig = defaultUploadConfig
41
+ uploadConfig: otherUploadConfig
41
42
  } = props;
43
+ var uploadConfig = _objectSpread(_objectSpread({}, defaultUploadConfig), otherUploadConfig !== null && otherUploadConfig !== void 0 ? otherUploadConfig : {});
42
44
  var [value, setValue] = React.useState([]);
43
45
  var [fileList, setFileList] = useState([]);
44
46
  var [disabled, setDisabled] = useState(false);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useState","uniqueId","map","findIndex","some","isEqual","LoadingOutlined","Upload","Button","message","i18n","update","FileUtils","GeneralIcon","NS_LIBS_CMDB_INSTANCES","K","styles","UploadFileUrl","DownloadFileUrl","addUid","value","fileList","file","uid","compareValues","value1","value2","result","CmdbUpload","props","defaultUploadConfig","uploadButtonName","t","UPLOAD","url","maxNumber","method","limitSize","uploadButtonProps","uploadConfig","setValue","setFileList","disabled","setDisabled","useEffect","isDifferent","handleValueChange","v","onChange","handleBeforeUpload","sizeCompare","sizeTipsText","UPLOAD_SIZE_LARGE_TEXT","size","onError","info","Promise","_resolve","reject","Error","autoUpload","resolve","handleFilesChange","newFile","newFileList","isDone","response","name","type","objectName","handleChange","data","_file","length","status","_fileList","index","$splice","uploadNode","hideUploadButton","buttonType","buttonIcon","lib","icon","theme","buttonName","handleRemove","e","onRemove","uploadProps","className","uploadName","action","accept","multiple","listType","maxCount","beforeUpload","supportServerRender","progress","strokeColor","trailColor","strokeWidth","showInfo","showUploadList","removeIcon","category","iconRender","uploadContainer"],"sources":["../../../../src/components/cmdb-upload/index.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { uniqueId, map, findIndex, some, isEqual } from \"lodash\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { Upload, Button, message } from \"antd\";\nimport i18n from \"i18next\";\nimport update from \"immutability-helper\";\nimport { ButtonType } from \"antd/lib/button\";\nimport { FileUtils } from \"@next-libs/cmdb-utils\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { UploadFile, RcFile } from \"antd/lib/upload/interface\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../i18n/constants\";\nimport styles from \"./index.module.css\";\nimport { UploadFileUrl, DownloadFileUrl } from \"../../constants\";\n\ninterface UploadFileValueItem {\n name?: string;\n url?: string;\n response?: any;\n file?: any;\n uid?: string;\n size?: number;\n type?: string;\n}\ninterface FileItem {\n url?: string;\n uid?: string;\n response?: any;\n file?: any;\n size?: number;\n type?: string;\n [propName: string]: any;\n}\ninterface UploadButtonProps {\n buttonName: string;\n buttonType: ButtonType;\n buttonIcon: MenuIcon;\n}\n\nexport interface UploadConfig {\n url?: string;\n method?: any;\n uploadName?: string;\n accept?: string;\n data?: { [key: string]: string };\n maxNumber?: number;\n limitSize?: number;\n hideUploadButton?: boolean;\n uploadButtonName?: string;\n}\n\nexport interface CmdbUploadProps {\n uploadButtonProps?: UploadButtonProps;\n uploadConfig: UploadConfig;\n onChange?: any;\n onError?: (file: any) => void;\n onRemove?: (file: any) => void;\n disabled?: boolean;\n value?: UploadFileValueItem[];\n style?: React.CSSProperties;\n className?: string;\n autoUpload: boolean;\n}\n\nexport function addUid(value: UploadFileValueItem[]): FileItem[] {\n let fileList: FileItem[] = [];\n fileList = map(value, (file) => {\n file.uid = file.uid ?? uniqueId(\"-file\");\n return file;\n });\n return fileList;\n}\n\nexport function compareValues(\n value: UploadFileValueItem[],\n fileList: FileItem[]\n): boolean {\n const value1 = map(value, \"uid\");\n const value2 = map(fileList, \"uid\");\n const result = isEqual(value1, value2);\n return !result;\n}\n\nexport function CmdbUpload(props: CmdbUploadProps): React.ReactElement {\n // 默认上传配置\n const defaultUploadConfig: UploadConfig = {\n uploadButtonName: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UPLOAD}`),\n url: UploadFileUrl,\n maxNumber: 5,\n method: \"put\",\n limitSize: 100,\n };\n const { uploadButtonProps, uploadConfig = defaultUploadConfig } = props;\n const [value, setValue] = React.useState([]);\n const [fileList, setFileList] = useState([]);\n const [disabled, setDisabled] = useState(false);\n\n React.useEffect(() => {\n setValue(addUid(props.value));\n const isDifferent = compareValues(props.value, fileList);\n if (isDifferent) {\n setFileList(addUid(props.value));\n }\n }, [props.value]);\n\n const handleValueChange = (v: UploadFileValueItem[]): void => {\n setValue(v);\n props.onChange?.(v);\n };\n\n const handleBeforeUpload = (file: RcFile): Promise<RcFile> | boolean => {\n if (FileUtils.sizeCompare(file, uploadConfig.limitSize ?? 100)) {\n const sizeTipsText = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.UPLOAD_SIZE_LARGE_TEXT}`,\n {\n size: `${uploadConfig.limitSize}M`,\n }\n );\n // 如果上传文件大小大于限定大小\n props.onError?.(sizeTipsText);\n message.info(sizeTipsText);\n return new Promise((_resolve, reject) => {\n // 返回reject阻止文件添加\n reject(new Error(sizeTipsText));\n });\n }\n if (props.autoUpload) {\n // 进行自动上传\n return new Promise((resolve) => resolve(file));\n } else {\n // 返回false阻止默认上传行为\n return false;\n }\n };\n\n const handleFilesChange = async (\n newFile: FileItem,\n newFileList: FileItem[],\n isDone: boolean\n ): Promise<void> => {\n if (isDone) {\n if (uploadConfig.maxNumber === 1) {\n setFileList([newFile]);\n handleValueChange([\n {\n response: newFile.response,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n url: `${DownloadFileUrl}/${newFile.response?.objectName}`,\n },\n ]);\n } else {\n setFileList(newFileList);\n handleValueChange([\n ...value,\n {\n response: newFile.response,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n url: `${DownloadFileUrl}/${newFile.response?.objectName}`,\n },\n ]);\n }\n } else {\n if (uploadConfig.maxNumber === 1) {\n setFileList([newFile]);\n if (!props.autoUpload) {\n handleValueChange([\n {\n file: newFile,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n },\n ]);\n }\n } else {\n setFileList(newFileList);\n if (!props.autoUpload) {\n handleValueChange([\n ...value,\n {\n file: newFile,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n },\n ]);\n }\n }\n }\n };\n const handleChange = (data: any) => {\n const _file = data.file;\n if (\n uploadConfig.maxNumber &&\n uploadConfig.maxNumber !== 1 &&\n value?.length >= uploadConfig.maxNumber &&\n _file.status !== \"removed\" &&\n _file.status !== \"error\"\n )\n return;\n const _fileList = data.fileList;\n if (some(_fileList, [\"status\", \"uploading\"])) {\n setDisabled(true);\n } else {\n setDisabled(false);\n }\n if (_file.status === \"removed\") {\n const index = findIndex(value, [\"uid\", _file.uid]);\n if (index !== -1) {\n handleValueChange(update(value, { $splice: [[index, 1]] }));\n }\n setFileList(_fileList);\n } else if (_file.status === \"error\") {\n setDisabled(false);\n const index = findIndex(fileList, [\"uid\", _file.uid]);\n if (index !== -1) {\n setFileList(update(fileList, { $splice: [[index, 1]] }));\n }\n props.onError?.(_file);\n } else {\n handleFilesChange(_file, _fileList, false);\n // if (_fileList.every((v: any) => v.status === \"done\" && v.response)) {\n // _fileList.forEach((file: any) => {\n // file.response = file.response.data;\n // handleFilesChange(file, _fileList, true);\n // });\n // }\n if (_file.response && _file.status === \"done\") {\n _file.response = _file.response.data;\n handleFilesChange(_file, _fileList, true);\n }\n }\n };\n\n const uploadNode = () => {\n if (uploadConfig.hideUploadButton) {\n return null;\n }\n return (\n <Button\n disabled={\n (uploadConfig.maxNumber && value?.length >= uploadConfig.maxNumber) ||\n props.disabled\n }\n type={uploadButtonProps?.buttonType}\n >\n <GeneralIcon\n icon={\n uploadButtonProps?.buttonIcon ?? {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n }\n }\n />\n {uploadButtonProps?.buttonName ??\n uploadConfig.uploadButtonName ??\n \"Upload\"}\n </Button>\n );\n };\n\n const handleRemove = (e: any) => {\n props.onRemove?.(e);\n };\n\n const uploadProps: any = {\n className: props.className,\n method: uploadConfig?.method || \"post\",\n disabled: props.disabled || disabled,\n data: uploadConfig?.data,\n name: uploadConfig?.uploadName,\n action: uploadConfig?.url || UploadFileUrl,\n accept: uploadConfig?.accept,\n multiple: false,\n listType: \"text\",\n fileList,\n maxCount: uploadConfig?.maxNumber ?? 5,\n beforeUpload: handleBeforeUpload,\n onChange: handleChange,\n onRemove: handleRemove,\n supportServerRender: true,\n progress: {\n strokeColor: \"var(--color-success)\",\n trailColor: \"var(--color-fill-bg-base-1)\",\n strokeWidth: \"1px\",\n showInfo: false,\n },\n showUploadList: {\n // eslint-disable-next-line react/display-name\n removeIcon: (file: UploadFile): ReactNode =>\n file.status === \"error\" ? (\n <GeneralIcon\n icon={{\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n }}\n />\n ) : (\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n }}\n />\n ),\n },\n // eslint-disable-next-line react/display-name\n iconRender: (file: UploadFile): ReactNode =>\n file.status === \"uploading\" ? (\n <LoadingOutlined />\n ) : (\n <GeneralIcon\n icon={{\n lib: \"antd\",\n icon: \"file-text\",\n theme: \"outlined\",\n }}\n />\n ),\n };\n return (\n <div className={styles.uploadContainer}>\n <Upload {...uploadProps}>{uploadNode()}</Upload>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useState","uniqueId","map","findIndex","some","isEqual","LoadingOutlined","Upload","Button","message","i18n","update","FileUtils","GeneralIcon","NS_LIBS_CMDB_INSTANCES","K","styles","UploadFileUrl","DownloadFileUrl","addUid","value","fileList","file","uid","compareValues","value1","value2","result","CmdbUpload","props","defaultUploadConfig","uploadButtonName","t","UPLOAD","url","maxNumber","method","limitSize","uploadButtonProps","uploadConfig","otherUploadConfig","setValue","setFileList","disabled","setDisabled","useEffect","isDifferent","handleValueChange","v","onChange","handleBeforeUpload","sizeCompare","sizeTipsText","UPLOAD_SIZE_LARGE_TEXT","size","onError","info","Promise","_resolve","reject","Error","autoUpload","resolve","handleFilesChange","newFile","newFileList","isDone","response","name","type","objectName","handleChange","data","_file","length","status","_fileList","index","$splice","uploadNode","hideUploadButton","buttonType","buttonIcon","lib","icon","theme","buttonName","handleRemove","e","onRemove","uploadProps","className","uploadName","action","accept","multiple","listType","maxCount","beforeUpload","supportServerRender","progress","strokeColor","trailColor","strokeWidth","showInfo","showUploadList","removeIcon","category","iconRender","uploadContainer"],"sources":["../../../../src/components/cmdb-upload/index.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { uniqueId, map, findIndex, some, isEqual } from \"lodash\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { Upload, Button, message } from \"antd\";\nimport i18n from \"i18next\";\nimport update from \"immutability-helper\";\nimport { ButtonType } from \"antd/lib/button\";\nimport { FileUtils } from \"@next-libs/cmdb-utils\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { MenuIcon } from \"@next-core/brick-types\";\nimport { UploadFile, RcFile } from \"antd/lib/upload/interface\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../i18n/constants\";\nimport styles from \"./index.module.css\";\nimport { UploadFileUrl, DownloadFileUrl } from \"../../constants\";\n\ninterface UploadFileValueItem {\n name?: string;\n url?: string;\n response?: any;\n file?: any;\n uid?: string;\n size?: number;\n type?: string;\n}\ninterface FileItem {\n url?: string;\n uid?: string;\n response?: any;\n file?: any;\n size?: number;\n type?: string;\n [propName: string]: any;\n}\ninterface UploadButtonProps {\n buttonName: string;\n buttonType: ButtonType;\n buttonIcon: MenuIcon;\n}\n\nexport interface UploadConfig {\n url?: string;\n method?: any;\n uploadName?: string;\n accept?: string;\n data?: { [key: string]: string };\n maxNumber?: number;\n limitSize?: number;\n hideUploadButton?: boolean;\n uploadButtonName?: string;\n}\n\nexport interface CmdbUploadProps {\n uploadButtonProps?: UploadButtonProps;\n uploadConfig: UploadConfig;\n onChange?: any;\n onError?: (file: any) => void;\n onRemove?: (file: any) => void;\n disabled?: boolean;\n value?: UploadFileValueItem[];\n style?: React.CSSProperties;\n className?: string;\n autoUpload: boolean;\n}\n\nexport function addUid(value: UploadFileValueItem[]): FileItem[] {\n let fileList: FileItem[] = [];\n fileList = map(value, (file) => {\n file.uid = file.uid ?? uniqueId(\"-file\");\n return file;\n });\n return fileList;\n}\n\nexport function compareValues(\n value: UploadFileValueItem[],\n fileList: FileItem[]\n): boolean {\n const value1 = map(value, \"uid\");\n const value2 = map(fileList, \"uid\");\n const result = isEqual(value1, value2);\n return !result;\n}\n\nexport function CmdbUpload(props: CmdbUploadProps): React.ReactElement {\n // 默认上传配置\n const defaultUploadConfig: UploadConfig = {\n uploadButtonName: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UPLOAD}`),\n url: UploadFileUrl,\n maxNumber: 5,\n method: \"put\",\n limitSize: 100,\n };\n const { uploadButtonProps, uploadConfig: otherUploadConfig } = props;\n const uploadConfig = { ...defaultUploadConfig, ...(otherUploadConfig ?? {}) };\n const [value, setValue] = React.useState([]);\n const [fileList, setFileList] = useState([]);\n const [disabled, setDisabled] = useState(false);\n\n React.useEffect(() => {\n setValue(addUid(props.value));\n const isDifferent = compareValues(props.value, fileList);\n if (isDifferent) {\n setFileList(addUid(props.value));\n }\n }, [props.value]);\n\n const handleValueChange = (v: UploadFileValueItem[]): void => {\n setValue(v);\n props.onChange?.(v);\n };\n\n const handleBeforeUpload = (file: RcFile): Promise<RcFile> | boolean => {\n if (FileUtils.sizeCompare(file, uploadConfig.limitSize ?? 100)) {\n const sizeTipsText = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.UPLOAD_SIZE_LARGE_TEXT}`,\n {\n size: `${uploadConfig.limitSize}M`,\n }\n );\n // 如果上传文件大小大于限定大小\n props.onError?.(sizeTipsText);\n message.info(sizeTipsText);\n return new Promise((_resolve, reject) => {\n // 返回reject阻止文件添加\n reject(new Error(sizeTipsText));\n });\n }\n if (props.autoUpload) {\n // 进行自动上传\n return new Promise((resolve) => resolve(file));\n } else {\n // 返回false阻止默认上传行为\n return false;\n }\n };\n\n const handleFilesChange = async (\n newFile: FileItem,\n newFileList: FileItem[],\n isDone: boolean\n ): Promise<void> => {\n if (isDone) {\n if (uploadConfig.maxNumber === 1) {\n setFileList([newFile]);\n handleValueChange([\n {\n response: newFile.response,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n url: `${DownloadFileUrl}/${newFile.response?.objectName}`,\n },\n ]);\n } else {\n setFileList(newFileList);\n handleValueChange([\n ...value,\n {\n response: newFile.response,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n url: `${DownloadFileUrl}/${newFile.response?.objectName}`,\n },\n ]);\n }\n } else {\n if (uploadConfig.maxNumber === 1) {\n setFileList([newFile]);\n if (!props.autoUpload) {\n handleValueChange([\n {\n file: newFile,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n },\n ]);\n }\n } else {\n setFileList(newFileList);\n if (!props.autoUpload) {\n handleValueChange([\n ...value,\n {\n file: newFile,\n name: newFile.name,\n uid: newFile.uid,\n size: newFile.size,\n type: newFile.type,\n },\n ]);\n }\n }\n }\n };\n const handleChange = (data: any) => {\n const _file = data.file;\n if (\n uploadConfig.maxNumber &&\n uploadConfig.maxNumber !== 1 &&\n value?.length >= uploadConfig.maxNumber &&\n _file.status !== \"removed\" &&\n _file.status !== \"error\"\n )\n return;\n const _fileList = data.fileList;\n if (some(_fileList, [\"status\", \"uploading\"])) {\n setDisabled(true);\n } else {\n setDisabled(false);\n }\n if (_file.status === \"removed\") {\n const index = findIndex(value, [\"uid\", _file.uid]);\n if (index !== -1) {\n handleValueChange(update(value, { $splice: [[index, 1]] }));\n }\n setFileList(_fileList);\n } else if (_file.status === \"error\") {\n setDisabled(false);\n const index = findIndex(fileList, [\"uid\", _file.uid]);\n if (index !== -1) {\n setFileList(update(fileList, { $splice: [[index, 1]] }));\n }\n props.onError?.(_file);\n } else {\n handleFilesChange(_file, _fileList, false);\n // if (_fileList.every((v: any) => v.status === \"done\" && v.response)) {\n // _fileList.forEach((file: any) => {\n // file.response = file.response.data;\n // handleFilesChange(file, _fileList, true);\n // });\n // }\n if (_file.response && _file.status === \"done\") {\n _file.response = _file.response.data;\n handleFilesChange(_file, _fileList, true);\n }\n }\n };\n\n const uploadNode = () => {\n if (uploadConfig.hideUploadButton) {\n return null;\n }\n return (\n <Button\n disabled={\n (uploadConfig.maxNumber && value?.length >= uploadConfig.maxNumber) ||\n props.disabled\n }\n type={uploadButtonProps?.buttonType}\n >\n <GeneralIcon\n icon={\n uploadButtonProps?.buttonIcon ?? {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n }\n }\n />\n {uploadButtonProps?.buttonName ??\n uploadConfig.uploadButtonName ??\n \"Upload\"}\n </Button>\n );\n };\n\n const handleRemove = (e: any) => {\n props.onRemove?.(e);\n };\n\n const uploadProps: any = {\n className: props.className,\n method: uploadConfig?.method || \"post\",\n disabled: props.disabled || disabled,\n data: uploadConfig?.data,\n name: uploadConfig?.uploadName,\n action: uploadConfig?.url || UploadFileUrl,\n accept: uploadConfig?.accept,\n multiple: false,\n listType: \"text\",\n fileList,\n maxCount: uploadConfig?.maxNumber ?? 5,\n beforeUpload: handleBeforeUpload,\n onChange: handleChange,\n onRemove: handleRemove,\n supportServerRender: true,\n progress: {\n strokeColor: \"var(--color-success)\",\n trailColor: \"var(--color-fill-bg-base-1)\",\n strokeWidth: \"1px\",\n showInfo: false,\n },\n showUploadList: {\n // eslint-disable-next-line react/display-name\n removeIcon: (file: UploadFile): ReactNode =>\n file.status === \"error\" ? (\n <GeneralIcon\n icon={{\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n }}\n />\n ) : (\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n }}\n />\n ),\n },\n // eslint-disable-next-line react/display-name\n iconRender: (file: UploadFile): ReactNode =>\n file.status === \"uploading\" ? (\n <LoadingOutlined />\n ) : (\n <GeneralIcon\n icon={{\n lib: \"antd\",\n icon: \"file-text\",\n theme: \"outlined\",\n }}\n />\n ),\n };\n return (\n <div className={styles.uploadContainer}>\n <Upload {...uploadProps}>{uploadNode()}</Upload>\n </div>\n );\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "7.21.0",
3
+ "version": "7.21.2",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/cmdb-instances",
6
6
  "license": "GPL-3.0",
@@ -39,7 +39,7 @@
39
39
  "@next-libs/basic-components": "^5.4.0",
40
40
  "@next-libs/cmdb-utils": "^3.7.2",
41
41
  "@next-libs/code-display-components": "^2.1.0",
42
- "@next-libs/code-editor-components": "^4.11.0",
42
+ "@next-libs/code-editor-components": "^4.12.0",
43
43
  "@next-libs/forms": "^3.5.5",
44
44
  "@next-libs/storage": "^2.0.4",
45
45
  "@next-sdk/cmdb-sdk": "^3.1.0",
@@ -51,5 +51,5 @@
51
51
  "immutability-helper": "^3.1.1",
52
52
  "marked": "^2.1.3"
53
53
  },
54
- "gitHead": "66545610febb3e90f86e4b6419c27cab7f339bc5"
54
+ "gitHead": "6f974ed7532edfb90b6e1766dddbf9420dc6d610"
55
55
  }