@vtx/components 3.1.21 → 3.1.22

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 (179) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +19 -19
  3. package/lib/_util/filterSpecialCharacters.js +6 -6
  4. package/lib/_util/filterSpecialCharacters.js.map +1 -1
  5. package/lib/_util/getComponentProps.js.map +1 -1
  6. package/lib/_util/getUrlParam.js.map +1 -1
  7. package/lib/_util/isFunction.js.map +1 -1
  8. package/lib/_util/isObject.js.map +1 -1
  9. package/lib/_util/useColSize.js.map +1 -1
  10. package/lib/_util/useInterval.js.map +1 -1
  11. package/lib/_util/useSet.js.map +1 -1
  12. package/lib/config.js.map +1 -1
  13. package/lib/index.js.map +1 -1
  14. package/lib/style/index.less +2 -2
  15. package/lib/style/themes/compact.less +1 -1
  16. package/lib/style/themes/dark.less +9 -9
  17. package/lib/style/themes/default.less +7 -7
  18. package/lib/style/themes/index.less +1 -1
  19. package/lib/style/themes/variable.less +5 -5
  20. package/lib/vtx-color-picker/index.js.map +1 -1
  21. package/lib/vtx-color-picker/style/css.js.map +1 -1
  22. package/lib/vtx-color-picker/style/index.js.map +1 -1
  23. package/lib/vtx-color-picker/style/index.less +12 -12
  24. package/lib/vtx-combogrid/Combogrid.js.map +1 -1
  25. package/lib/vtx-combogrid/index.js.map +1 -1
  26. package/lib/vtx-combogrid/style/css.js.map +1 -1
  27. package/lib/vtx-combogrid/style/index.js.map +1 -1
  28. package/lib/vtx-combogrid/style/index.less +29 -29
  29. package/lib/vtx-datagrid/Alert.js.map +1 -1
  30. package/lib/vtx-datagrid/ColumnSetting.js.map +1 -1
  31. package/lib/vtx-datagrid/ResizeableTitle.js.map +1 -1
  32. package/lib/vtx-datagrid/index.js +9 -3
  33. package/lib/vtx-datagrid/index.js.map +1 -1
  34. package/lib/vtx-datagrid/renderColumnButtons.js.map +1 -1
  35. package/lib/vtx-datagrid/style/css.js.map +1 -1
  36. package/lib/vtx-datagrid/style/index.css +10 -2
  37. package/lib/vtx-datagrid/style/index.js.map +1 -1
  38. package/lib/vtx-datagrid/style/index.less +223 -215
  39. package/lib/vtx-date-picker/QdatePicker.js.map +1 -1
  40. package/lib/vtx-date-picker/generatePicker.js.map +1 -1
  41. package/lib/vtx-date-picker/index.js.map +1 -1
  42. package/lib/vtx-date-picker/style/css.js.map +1 -1
  43. package/lib/vtx-date-picker/style/index.js.map +1 -1
  44. package/lib/vtx-date-picker/style/index.less +39 -39
  45. package/lib/vtx-editor/index.js.map +1 -1
  46. package/lib/vtx-editor/style/css.js.map +1 -1
  47. package/lib/vtx-editor/style/index.js.map +1 -1
  48. package/lib/vtx-editor/style/index.less +8 -8
  49. package/lib/vtx-ellipsis-text/index.js.map +1 -1
  50. package/lib/vtx-ellipsis-text/style/css.js.map +1 -1
  51. package/lib/vtx-ellipsis-text/style/index.js.map +1 -1
  52. package/lib/vtx-ellipsis-text/style/index.less +13 -13
  53. package/lib/vtx-export/index.js +8 -8
  54. package/lib/vtx-export/index.js.map +1 -1
  55. package/lib/vtx-export/style/css.js.map +1 -1
  56. package/lib/vtx-export/style/index.js.map +1 -1
  57. package/lib/vtx-export/style/index.less +6 -6
  58. package/lib/vtx-form-layout/Card.js.map +1 -1
  59. package/lib/vtx-form-layout/Divider.js.map +1 -1
  60. package/lib/vtx-form-layout/FormItem.js.map +1 -1
  61. package/lib/vtx-form-layout/Pane.js.map +1 -1
  62. package/lib/vtx-form-layout/Row.js.map +1 -1
  63. package/lib/vtx-form-layout/context.js.map +1 -1
  64. package/lib/vtx-form-layout/demo/Modal.less +43 -43
  65. package/lib/vtx-form-layout/index.js.map +1 -1
  66. package/lib/vtx-form-layout/style/css.js.map +1 -1
  67. package/lib/vtx-form-layout/style/index.css +1 -0
  68. package/lib/vtx-form-layout/style/index.js.map +1 -1
  69. package/lib/vtx-form-layout/style/index.less +1 -0
  70. package/lib/vtx-image/Image.js.map +1 -1
  71. package/lib/vtx-image/Preview.js.map +1 -1
  72. package/lib/vtx-image/PreviewGroup.js.map +1 -1
  73. package/lib/vtx-image/index.js.map +1 -1
  74. package/lib/vtx-image/style/css.js.map +1 -1
  75. package/lib/vtx-image/style/index.js.map +1 -1
  76. package/lib/vtx-image/style/index.less +63 -63
  77. package/lib/vtx-import/index.js.map +1 -1
  78. package/lib/vtx-import/result.js.map +1 -1
  79. package/lib/vtx-import/style/css.js.map +1 -1
  80. package/lib/vtx-import/style/index.js.map +1 -1
  81. package/lib/vtx-import/style/index.less +8 -8
  82. package/lib/vtx-import2/CheckResult.js.map +1 -1
  83. package/lib/vtx-import2/Content.js.map +1 -1
  84. package/lib/vtx-import2/DownloadSvg.js.map +1 -1
  85. package/lib/vtx-import2/ImportResult.js.map +1 -1
  86. package/lib/vtx-import2/UploadSvg.js.map +1 -1
  87. package/lib/vtx-import2/index.js.map +1 -1
  88. package/lib/vtx-import2/style/css.js.map +1 -1
  89. package/lib/vtx-import2/style/index.js.map +1 -1
  90. package/lib/vtx-import2/style/index.less +102 -102
  91. package/lib/vtx-input/TextArea.js.map +1 -1
  92. package/lib/vtx-input/index.js.map +1 -1
  93. package/lib/vtx-input/style/css.js.map +1 -1
  94. package/lib/vtx-input/style/index.js.map +1 -1
  95. package/lib/vtx-input/style/index.less +24 -24
  96. package/lib/vtx-input/useLength.js.map +1 -1
  97. package/lib/vtx-modal/Title.js.map +1 -1
  98. package/lib/vtx-modal/index.js +2 -2
  99. package/lib/vtx-modal/index.js.map +1 -1
  100. package/lib/vtx-modal/style/css.js.map +1 -1
  101. package/lib/vtx-modal/style/index.js.map +1 -1
  102. package/lib/vtx-modal/style/index.less +95 -95
  103. package/lib/vtx-page-layout/Basic.js +2 -2
  104. package/lib/vtx-page-layout/Basic.js.map +1 -1
  105. package/lib/vtx-page-layout/Content.js.map +1 -1
  106. package/lib/vtx-page-layout/Pane.js.map +1 -1
  107. package/lib/vtx-page-layout/TableLayout.js +10 -10
  108. package/lib/vtx-page-layout/TableLayout.js.map +1 -1
  109. package/lib/vtx-page-layout/TableWrap.js.map +1 -1
  110. package/lib/vtx-page-layout/container.js.map +1 -1
  111. package/lib/vtx-page-layout/index.js.map +1 -1
  112. package/lib/vtx-page-layout/style/css.js.map +1 -1
  113. package/lib/vtx-page-layout/style/index.js.map +1 -1
  114. package/lib/vtx-page-layout/style/index.less +138 -138
  115. package/lib/vtx-rps-frame/index.js.map +1 -1
  116. package/lib/vtx-rps-frame/style/css.js.map +1 -1
  117. package/lib/vtx-rps-frame/style/index.js.map +1 -1
  118. package/lib/vtx-rps-frame/style/index.less +8 -8
  119. package/lib/vtx-scrollable-row/index.js.map +1 -1
  120. package/lib/vtx-scrollable-row/style/css.js.map +1 -1
  121. package/lib/vtx-scrollable-row/style/index.js.map +1 -1
  122. package/lib/vtx-scrollable-row/style/index.less +113 -113
  123. package/lib/vtx-search/VtxCol.js.map +1 -1
  124. package/lib/vtx-search/VtxRow.js.map +1 -1
  125. package/lib/vtx-search/index.js.map +1 -1
  126. package/lib/vtx-search/style/css.js.map +1 -1
  127. package/lib/vtx-search/style/index.js.map +1 -1
  128. package/lib/vtx-search/style/index.less +83 -83
  129. package/lib/vtx-search-map-input/index.js +6 -4
  130. package/lib/vtx-search-map-input/index.js.map +1 -1
  131. package/lib/vtx-search-map-input/style/css.js.map +1 -1
  132. package/lib/vtx-search-map-input/style/index.js.map +1 -1
  133. package/lib/vtx-select/index.js.map +1 -1
  134. package/lib/vtx-select/style/css.js.map +1 -1
  135. package/lib/vtx-select/style/index.js.map +1 -1
  136. package/lib/vtx-select/style/index.less +68 -68
  137. package/lib/vtx-signature/index.js.map +1 -1
  138. package/lib/vtx-signature/style/css.js.map +1 -1
  139. package/lib/vtx-signature/style/index.js.map +1 -1
  140. package/lib/vtx-signature/style/index.less +33 -33
  141. package/lib/vtx-split-pane/Pane.js.map +1 -1
  142. package/lib/vtx-split-pane/Resizer.js.map +1 -1
  143. package/lib/vtx-split-pane/SplitPane.js +4 -4
  144. package/lib/vtx-split-pane/SplitPane.js.map +1 -1
  145. package/lib/vtx-split-pane/index.js.map +1 -1
  146. package/lib/vtx-split-pane/style/css.js.map +1 -1
  147. package/lib/vtx-split-pane/style/index.js.map +1 -1
  148. package/lib/vtx-split-pane/style/index.less +76 -76
  149. package/lib/vtx-statistics-column/Back.js.map +1 -1
  150. package/lib/vtx-statistics-column/Item.js.map +1 -1
  151. package/lib/vtx-statistics-column/Total.js.map +1 -1
  152. package/lib/vtx-statistics-column/context.js.map +1 -1
  153. package/lib/vtx-statistics-column/index.js.map +1 -1
  154. package/lib/vtx-statistics-column/style/css.js.map +1 -1
  155. package/lib/vtx-statistics-column/style/index.js.map +1 -1
  156. package/lib/vtx-statistics-column/style/index.less +59 -59
  157. package/lib/vtx-time-picker/index.js.map +1 -1
  158. package/lib/vtx-time-picker/style/css.js.map +1 -1
  159. package/lib/vtx-time-picker/style/index.js.map +1 -1
  160. package/lib/vtx-upload/FilePreview.js.map +1 -1
  161. package/lib/vtx-upload/index.js.map +1 -1
  162. package/lib/vtx-upload/style/css.js.map +1 -1
  163. package/lib/vtx-upload/style/index.js.map +1 -1
  164. package/lib/vtx-upload/style/index.less +61 -61
  165. package/lib/vtx-wang-editor/index.js.map +1 -1
  166. package/lib/vtx-wang-editor/style/css.js.map +1 -1
  167. package/lib/vtx-wang-editor/style/index.js.map +1 -1
  168. package/lib/vtx-wang-editor/style/index.less +12 -12
  169. package/lib/vtx-wang-editor/wangEditorUtil.js.map +1 -1
  170. package/lib/vtx-ztree/index.js +2 -2
  171. package/lib/vtx-ztree/index.js.map +1 -1
  172. package/lib/vtx-ztree/style/css.js.map +1 -1
  173. package/lib/vtx-ztree/style/index.js.map +1 -1
  174. package/lib/vtx-ztree/style/index.less +45 -45
  175. package/lib/vtx-ztree-select/index.js.map +1 -1
  176. package/lib/vtx-ztree-select/style/css.js.map +1 -1
  177. package/lib/vtx-ztree-select/style/index.js.map +1 -1
  178. package/lib/vtx-ztree-select/style/index.less +74 -74
  179. package/package.json +1 -1
@@ -1,61 +1,61 @@
1
- @import (reference) '~antd/lib/style/themes/index.less';
2
-
3
- .vtx-ui-upload-uploadct {
4
- overflow: hidden; //upload组件由于float会失去高度
5
- .ant-upload-list-item-info {
6
- &::before {
7
- height: 0 !important;
8
- }
9
- }
10
- }
11
- .vtx_ui_upload_onlinepreview {
12
- width: 100%;
13
- .vtx_ui_upload_previewLine {
14
- position: relative;
15
- padding: 0 8px;
16
- color: @primary-color;
17
- line-height: 25px;
18
- cursor: pointer;
19
- .vtx_ui_upload_iconHint {
20
- margin-right: 5px;
21
- color: #666;
22
- }
23
- .vtx_ui_upload_action_box {
24
- position: absolute;
25
- top: 2px;
26
- right: 8px;
27
- display: none;
28
- .vtx_ui_upload_action_btn {
29
- margin-left: 5px;
30
- color: #aaa;
31
- &:hover {
32
- color: #333;
33
- }
34
- }
35
- }
36
- &:hover {
37
- background-color: #ecf6fd;
38
- .vtx_ui_upload_action_box {
39
- display: inline-block;
40
- }
41
- }
42
- }
43
- }
44
-
45
- .vtx-modal-maxClass {
46
- .ant-modal {
47
- top: 0 !important;
48
- left: 0 !important;
49
- width: 100% !important;
50
- height: 100% !important;
51
- padding-bottom: 0 !important;
52
- overflow: hidden;
53
- .ant-modal-content {
54
- height: 100%;
55
- .ant-modal-body {
56
- height: e('calc(100% - 108px)') !important;
57
- background-color: #fbfbfb;
58
- }
59
- }
60
- }
61
- }
1
+ @import (reference) '~antd/lib/style/themes/index.less';
2
+
3
+ .vtx-ui-upload-uploadct {
4
+ overflow: hidden; //upload组件由于float会失去高度
5
+ .ant-upload-list-item-info {
6
+ &::before {
7
+ height: 0 !important;
8
+ }
9
+ }
10
+ }
11
+ .vtx_ui_upload_onlinepreview {
12
+ width: 100%;
13
+ .vtx_ui_upload_previewLine {
14
+ position: relative;
15
+ padding: 0 8px;
16
+ color: @primary-color;
17
+ line-height: 25px;
18
+ cursor: pointer;
19
+ .vtx_ui_upload_iconHint {
20
+ margin-right: 5px;
21
+ color: #666;
22
+ }
23
+ .vtx_ui_upload_action_box {
24
+ position: absolute;
25
+ top: 2px;
26
+ right: 8px;
27
+ display: none;
28
+ .vtx_ui_upload_action_btn {
29
+ margin-left: 5px;
30
+ color: #aaa;
31
+ &:hover {
32
+ color: #333;
33
+ }
34
+ }
35
+ }
36
+ &:hover {
37
+ background-color: #ecf6fd;
38
+ .vtx_ui_upload_action_box {
39
+ display: inline-block;
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ .vtx-modal-maxClass {
46
+ .ant-modal {
47
+ top: 0 !important;
48
+ left: 0 !important;
49
+ width: 100% !important;
50
+ height: 100% !important;
51
+ padding-bottom: 0 !important;
52
+ overflow: hidden;
53
+ .ant-modal-content {
54
+ height: 100%;
55
+ .ant-modal-body {
56
+ height: e('calc(100% - 108px)') !important;
57
+ background-color: #fbfbfb;
58
+ }
59
+ }
60
+ }
61
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Boot","registerModule","attachmentModule","registerPlugin","withEmptyHtml","VtxWangeEditor","forwardRef","props","value","onChange","downloadUrl","uploadUrl","placeholder","height","rest","useState","editor","setEditor","useEffect","destroy","editorConfig","MENU_CONF","uploadImage","server","customInsert","res","insertFn","result","data","map","item","id","fileName","Error","uploadVideo","uploadAttachment","file","hoverbarKeys","attachment","menuKeys","customPaste","event","preventDefault","html","clipboardData","getData","rtf","replace","imgSrcs","findAllImgSrcsFromHtml","replaceAllSpanFontSize","Array","isArray","length","rtfImageData","extractImageDataFromRtf","replaceImagesFileSourceWithInlineRepresentation","dangerouslyInsertHtml","toolbarConfig","insertKeys","index","keys","getHtml","propTypes","PropTypes","string","func","number"],"sources":["vtx-wang-editor/index.jsx"],"sourcesContent":["/*eslint-disable*/\r\nimport '@wangeditor/editor/dist/css/style.css';\r\nimport React, { forwardRef, useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Editor, Toolbar } from '@wangeditor/editor-for-react';\r\nimport attachmentModule from '@wangeditor/plugin-upload-attachment';\r\nimport { Boot } from '@wangeditor/editor';\r\nimport {\r\n withEmptyHtml,\r\n findAllImgSrcsFromHtml,\r\n extractImageDataFromRtf,\r\n replaceImagesFileSourceWithInlineRepresentation,\r\n replaceAllSpanFontSize,\r\n} from './wangEditorUtil';\r\n\r\n// 注册插件 处理附件\r\nBoot.registerModule(attachmentModule);\r\n// 注册插件 处理为空的时候\r\nBoot.registerPlugin(withEmptyHtml);\r\n\r\nconst VtxWangeEditor = forwardRef(props => {\r\n const {\r\n value,\r\n onChange,\r\n downloadUrl = '/cloudFile/common/downloadFile?id=',\r\n uploadUrl = '/cloudFile/common/uploadFile',\r\n // thumbnailUrl = '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=',\r\n placeholder = '',\r\n height = 350,\r\n ...rest\r\n } = props;\r\n const [editor, setEditor] = useState(null);\r\n\r\n // 及时销毁 editor ,重要!\r\n useEffect(() => {\r\n return () => {\r\n if (editor == null) return;\r\n editor.destroy();\r\n setEditor(null);\r\n };\r\n }, [editor]);\r\n // 编辑器配置\r\n const editorConfig = {\r\n MENU_CONF: {\r\n // 插入图片\r\n uploadImage: {\r\n server: uploadUrl,\r\n // onSuccess(file, res) {},\r\n customInsert(res, insertFn) {\r\n // res 即服务端的返回结果\r\n // 从 res 中找到 url alt href ,然后插入图片\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入图片失败`);\r\n }\r\n },\r\n },\r\n // 插入视频\r\n uploadVideo: {\r\n server: uploadUrl,\r\n // onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\r\n });\r\n } else {\r\n throw new Error(`插入视频失败`);\r\n }\r\n },\r\n },\r\n // 插入附件\r\n uploadAttachment: {\r\n server: uploadUrl,\r\n // onSuccess(file, res) {},\r\n // 上传成功后,用户自定义插入文件\r\n customInsert(res, file, insertFn) {\r\n if (res.result == 0) {\r\n res.data.map(item => {\r\n insertFn(item.fileName, `${downloadUrl}${item.id}`);\r\n });\r\n } else {\r\n throw new Error(`插入附件失败`);\r\n }\r\n },\r\n },\r\n },\r\n placeholder,\r\n // 在编辑器中,点击选中“附件”节点时,要弹出的菜单\r\n hoverbarKeys: {\r\n attachment: {\r\n menuKeys: ['downloadAttachment'], // “下载附件”菜单\r\n },\r\n },\r\n customPaste: async (editor, event) => {\r\n event.preventDefault();\r\n // 获取粘贴的html部分(??没错粘贴word时候,一部分内容就是html),该部分包含了图片img标签\r\n let html = event.clipboardData.getData('text/html');\r\n // 获取rtf数据(从word、wps复制粘贴时有),复制粘贴过程中图片的数据就保存在rtf中\r\n const rtf = event.clipboardData.getData('text/rtf');\r\n\r\n // 该条件分支即表示要自定义word粘贴\r\n if (html && rtf) {\r\n // 列表缩进会超出边框,直接过滤掉\r\n html = html.replace(/text\\-indent:\\-(.*?)pt/gi, '');\r\n\r\n // 从html内容中查找粘贴内容中是否有图片元素,并返回img标签的属性src值的集合\r\n const imgSrcs = findAllImgSrcsFromHtml(html);\r\n\r\n html = replaceAllSpanFontSize(html);\r\n\r\n // 如果有图片\r\n if (imgSrcs && Array.isArray(imgSrcs) && imgSrcs.length) {\r\n // 从rtf内容中查找图片数据\r\n\r\n // 从rtf内容中查找图片数据\r\n const rtfImageData = extractImageDataFromRtf(rtf);\r\n\r\n if (rtfImageData.length) {\r\n html = await replaceImagesFileSourceWithInlineRepresentation(\r\n html,\r\n imgSrcs,\r\n rtfImageData,\r\n true,\r\n uploadUrl,\r\n downloadUrl,\r\n );\r\n }\r\n }\r\n editor.dangerouslyInsertHtml(html);\r\n return false;\r\n }\r\n },\r\n };\r\n // 工具栏配置\r\n const toolbarConfig = {\r\n insertKeys: {\r\n // 自定义插入的位置\r\n index: 24,\r\n // “上传附件”菜单\r\n keys: ['uploadAttachment'],\r\n },\r\n };\r\n return (\r\n <div className=\"vtx-wang-editor\">\r\n <Toolbar editor={editor} defaultConfig={toolbarConfig} mode=\"default\" />\r\n <Editor\r\n defaultConfig={editorConfig}\r\n value={value}\r\n onCreated={editor => {\r\n setEditor(editor);\r\n }}\r\n onChange={editor => {\r\n onChange(editor.getHtml());\r\n }}\r\n mode=\"default\"\r\n className={'vtx-wang-editor-content'}\r\n style={{ height }}\r\n {...rest}\r\n />\r\n </div>\r\n );\r\n});\r\n\r\nVtxWangeEditor.propTypes = {\r\n value: PropTypes.string,\r\n onChange: PropTypes.func,\r\n placeholder: PropTypes.string,\r\n downloadUrl: PropTypes.string,\r\n uploadUrl: PropTypes.string,\r\n height: PropTypes.number,\r\n};\r\n\r\nexport default VtxWangeEditor;\r\n"],"mappings":";;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;+CANA,oJ;;;;;;;;;;;;;;;;;;;;;;AAcA;AACAA,YAAA,CAAKC,cAAL,CAAoBC,kCAApB,E,CACA;;;AACAF,YAAA,CAAKG,cAAL,CAAoBC,6BAApB;;AAEA,IAAMC,cAAc,gBAAG,IAAAC,iBAAA,EAAW,UAAAC,KAAK,EAAI;EACvC,IACIC,KADJ,GASID,KATJ,CACIC,KADJ;EAAA,IAEIC,SAFJ,GASIF,KATJ,CAEIE,QAFJ;EAAA,yBASIF,KATJ,CAGIG,WAHJ;EAAA,IAGIA,WAHJ,mCAGkB,oCAHlB;EAAA,uBASIH,KATJ,CAIII,SAJJ;EAAA,IAIIA,SAJJ,iCAIgB,8BAJhB;EAAA,yBASIJ,KATJ,CAMIK,WANJ;EAAA,IAMIA,WANJ,mCAMkB,EANlB;EAAA,oBASIL,KATJ,CAOIM,MAPJ;EAAA,IAOIA,MAPJ,8BAOa,GAPb;EAAA,IAQOC,IARP,4BASIP,KATJ;;EAUA,gBAA4B,IAAAQ,eAAA,EAAS,IAAT,CAA5B;EAAA;EAAA,IAAOC,MAAP;EAAA,IAAeC,SAAf,iBAXuC,CAavC;;;EACA,IAAAC,gBAAA,EAAU,YAAM;IACZ,OAAO,YAAM;MACT,IAAIF,MAAM,IAAI,IAAd,EAAoB;MACpBA,MAAM,CAACG,OAAP;MACAF,SAAS,CAAC,IAAD,CAAT;IACH,CAJD;EAKH,CAND,EAMG,CAACD,MAAD,CANH,EAduC,CAqBvC;;EACA,IAAMI,YAAY,GAAG;IACjBC,SAAS,EAAE;MACP;MACAC,WAAW,EAAE;QACTC,MAAM,EAAEZ,SADC;QAET;QACAa,YAHS,wBAGIC,GAHJ,EAGSC,QAHT,EAGmB;UACxB;UACA;UACA,IAAID,GAAG,CAACE,MAAJ,IAAc,CAAlB,EAAqB;YACjBF,GAAG,CAACG,IAAJ,CAASC,GAAT,CAAa,UAAAC,IAAI,EAAI;cACjBJ,QAAQ,WAAIhB,WAAJ,SAAkBoB,IAAI,CAACC,EAAvB,GAA6BD,IAAI,CAACE,QAAlC,CAAR;YACH,CAFD;UAGH,CAJD,MAIO;YACH,MAAM,IAAIC,KAAJ,wCAAN;UACH;QACJ;MAbQ,CAFN;MAiBP;MACAC,WAAW,EAAE;QACTX,MAAM,EAAEZ,SADC;QAET;QACA;QACAa,YAJS,wBAIIC,GAJJ,EAISC,QAJT,EAImB;UACxB,IAAID,GAAG,CAACE,MAAJ,IAAc,CAAlB,EAAqB;YACjBF,GAAG,CAACG,IAAJ,CAASC,GAAT,CAAa,UAAAC,IAAI,EAAI;cACjBJ,QAAQ,WAAIhB,WAAJ,SAAkBoB,IAAI,CAACC,EAAvB,GAA6BD,IAAI,CAACE,QAAlC,CAAR;YACH,CAFD;UAGH,CAJD,MAIO;YACH,MAAM,IAAIC,KAAJ,wCAAN;UACH;QACJ;MAZQ,CAlBN;MAgCP;MACAE,gBAAgB,EAAE;QACdZ,MAAM,EAAEZ,SADM;QAEd;QACA;QACAa,YAJc,wBAIDC,GAJC,EAIIW,IAJJ,EAIUV,QAJV,EAIoB;UAC9B,IAAID,GAAG,CAACE,MAAJ,IAAc,CAAlB,EAAqB;YACjBF,GAAG,CAACG,IAAJ,CAASC,GAAT,CAAa,UAAAC,IAAI,EAAI;cACjBJ,QAAQ,CAACI,IAAI,CAACE,QAAN,YAAmBtB,WAAnB,SAAiCoB,IAAI,CAACC,EAAtC,EAAR;YACH,CAFD;UAGH,CAJD,MAIO;YACH,MAAM,IAAIE,KAAJ,wCAAN;UACH;QACJ;MAZa;IAjCX,CADM;IAiDjBrB,WAAW,EAAXA,WAjDiB;IAkDjB;IACAyB,YAAY,EAAE;MACVC,UAAU,EAAE;QACRC,QAAQ,EAAE,CAAC,oBAAD,CADF,CAC0B;;MAD1B;IADF,CAnDG;IAwDjBC,WAAW;MAAA,8EAAE,iBAAOxB,MAAP,EAAeyB,KAAf;QAAA;QAAA;UAAA;YAAA;cAAA;gBACTA,KAAK,CAACC,cAAN,GADS,CAET;;gBACIC,IAHK,GAGEF,KAAK,CAACG,aAAN,CAAoBC,OAApB,CAA4B,WAA5B,CAHF,EAIT;;gBACMC,GALG,GAKGL,KAAK,CAACG,aAAN,CAAoBC,OAApB,CAA4B,UAA5B,CALH,EAOT;;gBAPS,MAQLF,IAAI,IAAIG,GARH;kBAAA;kBAAA;gBAAA;;gBASL;gBACAH,IAAI,GAAGA,IAAI,CAACI,OAAL,CAAa,0BAAb,EAAyC,EAAzC,CAAP,CAVK,CAYL;;gBACMC,OAbD,GAaW,IAAAC,sCAAA,EAAuBN,IAAvB,CAbX;gBAeLA,IAAI,GAAG,IAAAO,sCAAA,EAAuBP,IAAvB,CAAP,CAfK,CAiBL;;gBAjBK,MAkBDK,OAAO,IAAIG,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAX,IAAqCA,OAAO,CAACK,MAlB5C;kBAAA;kBAAA;gBAAA;;gBAmBD;gBAEA;gBACMC,YAtBL,GAsBoB,IAAAC,uCAAA,EAAwBT,GAAxB,CAtBpB;;gBAAA,KAwBGQ,YAAY,CAACD,MAxBhB;kBAAA;kBAAA;gBAAA;;gBAAA;gBAAA,OAyBgB,IAAAG,+DAAA,EACTb,IADS,EAETK,OAFS,EAGTM,YAHS,EAIT,IAJS,EAKT3C,SALS,EAMTD,WANS,CAzBhB;;cAAA;gBAyBGiC,IAzBH;;cAAA;gBAmCL3B,MAAM,CAACyC,qBAAP,CAA6Bd,IAA7B;gBAnCK,iCAoCE,KApCF;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAAF;;MAAA;QAAA;MAAA;;MAAA;IAAA;EAxDM,CAArB,CAtBuC,CAsHvC;;EACA,IAAMe,aAAa,GAAG;IAClBC,UAAU,EAAE;MACR;MACAC,KAAK,EAAE,EAFC;MAGR;MACAC,IAAI,EAAE,CAAC,kBAAD;IAJE;EADM,CAAtB;EAQA,oBACI;IAAK,SAAS,EAAC;EAAf,gBACI,gCAAC,uBAAD;IAAS,MAAM,EAAE7C,MAAjB;IAAyB,aAAa,EAAE0C,aAAxC;IAAuD,IAAI,EAAC;EAA5D,EADJ,eAEI,gCAAC,sBAAD;IACI,aAAa,EAAEtC,YADnB;IAEI,KAAK,EAAEZ,KAFX;IAGI,SAAS,EAAE,mBAAAQ,MAAM,EAAI;MACjBC,SAAS,CAACD,MAAD,CAAT;IACH,CALL;IAMI,QAAQ,EAAE,kBAAAA,MAAM,EAAI;MAChBP,SAAQ,CAACO,MAAM,CAAC8C,OAAP,EAAD,CAAR;IACH,CARL;IASI,IAAI,EAAC,SATT;IAUI,SAAS,EAAE,yBAVf;IAWI,KAAK,EAAE;MAAEjD,MAAM,EAANA;IAAF;EAXX,GAYQC,IAZR,EAFJ,CADJ;AAmBH,CAlJsB,CAAvB;AAoJAT,cAAc,CAAC0D,SAAf,GAA2B;EACvBvD,KAAK,EAAEwD,qBAAA,CAAUC,MADM;EAEvBxD,QAAQ,EAAEuD,qBAAA,CAAUE,IAFG;EAGvBtD,WAAW,EAAEoD,qBAAA,CAAUC,MAHA;EAIvBvD,WAAW,EAAEsD,qBAAA,CAAUC,MAJA;EAKvBtD,SAAS,EAAEqD,qBAAA,CAAUC,MALE;EAMvBpD,MAAM,EAAEmD,qBAAA,CAAUG;AANK,CAA3B;eASe9D,c"}
1
+ {"version":3,"file":"index.js","names":["Boot","registerModule","attachmentModule","registerPlugin","withEmptyHtml","VtxWangeEditor","forwardRef","props","value","onChange","downloadUrl","uploadUrl","placeholder","height","rest","useState","editor","setEditor","useEffect","destroy","editorConfig","MENU_CONF","uploadImage","server","customInsert","res","insertFn","result","data","map","item","id","fileName","Error","uploadVideo","uploadAttachment","file","hoverbarKeys","attachment","menuKeys","customPaste","event","preventDefault","html","clipboardData","getData","rtf","replace","imgSrcs","findAllImgSrcsFromHtml","replaceAllSpanFontSize","Array","isArray","length","rtfImageData","extractImageDataFromRtf","replaceImagesFileSourceWithInlineRepresentation","dangerouslyInsertHtml","toolbarConfig","insertKeys","index","keys","getHtml","propTypes","PropTypes","string","func","number"],"sources":["vtx-wang-editor/index.jsx"],"sourcesContent":["/*eslint-disable*/\nimport '@wangeditor/editor/dist/css/style.css';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Editor, Toolbar } from '@wangeditor/editor-for-react';\nimport attachmentModule from '@wangeditor/plugin-upload-attachment';\nimport { Boot } from '@wangeditor/editor';\nimport {\n withEmptyHtml,\n findAllImgSrcsFromHtml,\n extractImageDataFromRtf,\n replaceImagesFileSourceWithInlineRepresentation,\n replaceAllSpanFontSize,\n} from './wangEditorUtil';\n\n// 注册插件 处理附件\nBoot.registerModule(attachmentModule);\n// 注册插件 处理为空的时候\nBoot.registerPlugin(withEmptyHtml);\n\nconst VtxWangeEditor = forwardRef(props => {\n const {\n value,\n onChange,\n downloadUrl = '/cloudFile/common/downloadFile?id=',\n uploadUrl = '/cloudFile/common/uploadFile',\n // thumbnailUrl = '/vortex/rest/cloud/np/file/downloadFileThumbnail?outputQuality=0.5&scale=0.2&id=',\n placeholder = '',\n height = 350,\n ...rest\n } = props;\n const [editor, setEditor] = useState(null);\n\n // 及时销毁 editor ,重要!\n useEffect(() => {\n return () => {\n if (editor == null) return;\n editor.destroy();\n setEditor(null);\n };\n }, [editor]);\n // 编辑器配置\n const editorConfig = {\n MENU_CONF: {\n // 插入图片\n uploadImage: {\n server: uploadUrl,\n // onSuccess(file, res) {},\n customInsert(res, insertFn) {\n // res 即服务端的返回结果\n // 从 res 中找到 url alt href ,然后插入图片\n if (res.result == 0) {\n res.data.map(item => {\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\n });\n } else {\n throw new Error(`插入图片失败`);\n }\n },\n },\n // 插入视频\n uploadVideo: {\n server: uploadUrl,\n // onSuccess(file, res) {},\n // 上传成功后,用户自定义插入文件\n customInsert(res, insertFn) {\n if (res.result == 0) {\n res.data.map(item => {\n insertFn(`${downloadUrl}${item.id}`, item.fileName);\n });\n } else {\n throw new Error(`插入视频失败`);\n }\n },\n },\n // 插入附件\n uploadAttachment: {\n server: uploadUrl,\n // onSuccess(file, res) {},\n // 上传成功后,用户自定义插入文件\n customInsert(res, file, insertFn) {\n if (res.result == 0) {\n res.data.map(item => {\n insertFn(item.fileName, `${downloadUrl}${item.id}`);\n });\n } else {\n throw new Error(`插入附件失败`);\n }\n },\n },\n },\n placeholder,\n // 在编辑器中,点击选中“附件”节点时,要弹出的菜单\n hoverbarKeys: {\n attachment: {\n menuKeys: ['downloadAttachment'], // “下载附件”菜单\n },\n },\n customPaste: async (editor, event) => {\n event.preventDefault();\n // 获取粘贴的html部分(??没错粘贴word时候,一部分内容就是html),该部分包含了图片img标签\n let html = event.clipboardData.getData('text/html');\n // 获取rtf数据(从word、wps复制粘贴时有),复制粘贴过程中图片的数据就保存在rtf中\n const rtf = event.clipboardData.getData('text/rtf');\n\n // 该条件分支即表示要自定义word粘贴\n if (html && rtf) {\n // 列表缩进会超出边框,直接过滤掉\n html = html.replace(/text\\-indent:\\-(.*?)pt/gi, '');\n\n // 从html内容中查找粘贴内容中是否有图片元素,并返回img标签的属性src值的集合\n const imgSrcs = findAllImgSrcsFromHtml(html);\n\n html = replaceAllSpanFontSize(html);\n\n // 如果有图片\n if (imgSrcs && Array.isArray(imgSrcs) && imgSrcs.length) {\n // 从rtf内容中查找图片数据\n\n // 从rtf内容中查找图片数据\n const rtfImageData = extractImageDataFromRtf(rtf);\n\n if (rtfImageData.length) {\n html = await replaceImagesFileSourceWithInlineRepresentation(\n html,\n imgSrcs,\n rtfImageData,\n true,\n uploadUrl,\n downloadUrl,\n );\n }\n }\n editor.dangerouslyInsertHtml(html);\n return false;\n }\n },\n };\n // 工具栏配置\n const toolbarConfig = {\n insertKeys: {\n // 自定义插入的位置\n index: 24,\n // “上传附件”菜单\n keys: ['uploadAttachment'],\n },\n };\n return (\n <div className=\"vtx-wang-editor\">\n <Toolbar editor={editor} defaultConfig={toolbarConfig} mode=\"default\" />\n <Editor\n defaultConfig={editorConfig}\n value={value}\n onCreated={editor => {\n setEditor(editor);\n }}\n onChange={editor => {\n onChange(editor.getHtml());\n }}\n mode=\"default\"\n className={'vtx-wang-editor-content'}\n style={{ height }}\n {...rest}\n />\n </div>\n );\n});\n\nVtxWangeEditor.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n downloadUrl: PropTypes.string,\n uploadUrl: PropTypes.string,\n height: PropTypes.number,\n};\n\nexport default VtxWangeEditor;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","names":[],"sources":["vtx-wang-editor/style/index.js"],"sourcesContent":["import '@wangeditor/editor/dist/css/style.css';\r\nimport './index.less';\r\n"],"mappings":";;AAAA;;AACA"}
1
+ {"version":3,"file":"css.js","names":[],"sources":["vtx-wang-editor/style/index.js"],"sourcesContent":["import '@wangeditor/editor/dist/css/style.css';\nimport './index.less';\n"],"mappings":";;AAAA;;AACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["vtx-wang-editor/style/index.js"],"sourcesContent":["import '@wangeditor/editor/dist/css/style.css';\r\nimport './index.less';\r\n"],"mappings":";;AAAA;;AACA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["vtx-wang-editor/style/index.js"],"sourcesContent":["import '@wangeditor/editor/dist/css/style.css';\nimport './index.less';\n"],"mappings":";;AAAA;;AACA"}
@@ -1,12 +1,12 @@
1
- @import (reference) '~antd/lib/style/themes/index.less';
2
-
3
- .vtx-wang-editor {
4
- border: @border-width-base @border-style-base @border-color-base;
5
- &.w-e-full-screen-container{
6
- z-index: 999999;
7
- }
8
- &-content {
9
- height: 350px;
10
- border-top: @border-width-base @border-style-base @border-color-base;
11
- }
12
- }
1
+ @import (reference) '~antd/lib/style/themes/index.less';
2
+
3
+ .vtx-wang-editor {
4
+ border: @border-width-base @border-style-base @border-color-base;
5
+ &.w-e-full-screen-container {
6
+ z-index: 999999;
7
+ }
8
+ &-content {
9
+ height: 350px;
10
+ border-top: @border-width-base @border-style-base @border-color-base;
11
+ }
12
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"wangEditorUtil.js","names":["replaceAllSpanFontSize","htmlData","spanReg","fontReg","fontSizeReg","spanArr","match","Array","isArray","length","fontSizeReplaceList","i","fontArr","fontSize","ptValue","split","replace","indexOf","value","toFontSize","parseInt","Number","replaceAll","size","result","sizeArr","includes","findAllImgSrcsFromHtml","imgReg","srcReg","widthReg","heightReg","arr","srcArr","src","width","height","push","url","img","withEmptyHtml","editor","getHtml","newEditor","isEmpty","extractImageDataFromRtf","rtfData","regexPictureHeader","regexPicture","RegExp","source","images","image","imageType","hex","type","replaceImagesFileSourceWithInlineRepresentation","imageSrcs","imagesHexSources","isBase64Data","uploadUrl","downloadUrl","newSrc","_convertHexToBase64","formData","FormData","blob","convertBase64UrlToBlob","imgName","slice","file","File","append","window","fetch","method","body","then","response","json","res","data","id","hexString","btoa","map","char","String","fromCharCode","join","dataurl","_arr","substring","mime","bstr","atob","n","u8arr","Uint8Array","charCodeAt","Blob"],"sources":["vtx-wang-editor/wangEditorUtil.js"],"sourcesContent":["export function replaceAllSpanFontSize(htmlData) {\r\n const spanReg = /\\<span([\\s\\S]+?)\\<\\/span\\>/g;\r\n const fontReg = /\\<font([\\s\\S]+?)\\<\\/font\\>/g;\r\n const fontSizeReg = /font-size:([\\s\\S]+?)\\;/g;\r\n\r\n let spanArr = htmlData.match(spanReg); // 筛选出所有的span\r\n if (!spanArr || (Array.isArray(spanArr) && !spanArr.length)) {\r\n return false;\r\n }\r\n let fontSizeReplaceList = {};\r\n for (let i = 0; i < spanArr.length; i++) {\r\n const fontArr = spanArr[i].match(fontReg);\r\n if (fontArr?.length > 0) {\r\n const fontSize = spanArr[i].match(fontSizeReg);\r\n if (fontSize?.length > 0) {\r\n const ptValue = fontSize[0].split(':')[1].replace(';', '');\r\n\r\n if (ptValue.indexOf('pt') > -1) {\r\n const value = toFontSize(parseInt(Number(ptValue.replace('pt', '')) / 0.75));\r\n fontSizeReplaceList[fontSize[0]] = `font-size:${value}px;`;\r\n }\r\n }\r\n }\r\n }\r\n for (let i in fontSizeReplaceList) {\r\n htmlData = htmlData.replaceAll(i, fontSizeReplaceList[i]);\r\n }\r\n return htmlData;\r\n}\r\n// 判断字体在这个范围之内,不在这个范围之内 则不显示字体大小\r\nfunction toFontSize(size) {\r\n let result = size;\r\n const sizeArr = [12, 13, 14, 15, 16, 19, 22, 24, 29, 32, 40, 48];\r\n if (sizeArr.includes(size)) {\r\n return result;\r\n }\r\n if (size < sizeArr[0]) {\r\n return sizeArr[0];\r\n }\r\n if (size > sizeArr[sizeArr.length - 1]) {\r\n return sizeArr[sizeArr.length - 1];\r\n }\r\n\r\n for (let i = 1; i < sizeArr.length; i++) {\r\n if (size >= sizeArr[i - 1] && size <= sizeArr[i]) {\r\n if (size - sizeArr[i - 1] < sizeArr[i] - size) {\r\n result = sizeArr[i - 1];\r\n } else {\r\n result = sizeArr[i];\r\n }\r\n break;\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nexport function findAllImgSrcsFromHtml(htmlData) {\r\n let imgReg = /<img.*?(?:>|\\/>)/gi; //匹配图片中的img标签\r\n let srcReg = /src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的src\r\n let widthReg = /width=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的width\r\n let heightReg = /height=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的height\r\n\r\n let arr = htmlData.match(imgReg); //筛选出所有的img\r\n if (!arr || (Array.isArray(arr) && !arr.length)) {\r\n return false;\r\n }\r\n\r\n let srcArr = [];\r\n for (let i = 0; i < arr.length; i++) {\r\n let src = arr[i].match(srcReg);\r\n let width = arr[i].match(widthReg);\r\n let height = arr[i].match(heightReg);\r\n // 获取图片地址\r\n srcArr.push({\r\n width: width[1],\r\n height: height[1],\r\n url: src[1],\r\n img: arr[i],\r\n });\r\n }\r\n\r\n return srcArr;\r\n}\r\n// 处理为空的时候\r\nexport function withEmptyHtml(editor) {\r\n const { getHtml } = editor;\r\n const newEditor = editor;\r\n newEditor.getHtml = () => {\r\n if (newEditor.isEmpty()) {\r\n return '';\r\n }\r\n return getHtml();\r\n };\r\n\r\n return newEditor;\r\n}\r\n\r\nexport function extractImageDataFromRtf(rtfData) {\r\n if (!rtfData) {\r\n return [];\r\n }\r\n\r\n const regexPictureHeader = /{\\\\pict[\\s\\S]+?({\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)[\\s}]*/;\r\n const regexPicture = new RegExp(\r\n '(?:(' + regexPictureHeader.source + '))([\\\\da-fA-F\\\\s]+)\\\\}',\r\n 'g',\r\n );\r\n const images = rtfData.match(regexPicture);\r\n const result = [];\r\n\r\n if (images) {\r\n for (const image of images) {\r\n let imageType = false;\r\n\r\n if (image.includes('\\\\pngblip')) {\r\n imageType = 'image/png';\r\n } else if (image.includes('\\\\jpegblip')) {\r\n imageType = 'image/jpeg';\r\n }\r\n\r\n if (imageType) {\r\n result.push({\r\n hex: image.replace(regexPictureHeader, '').replace(/[^\\da-fA-F]/g, ''),\r\n type: imageType,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport async function replaceImagesFileSourceWithInlineRepresentation(\r\n htmlData,\r\n imageSrcs,\r\n imagesHexSources,\r\n isBase64Data = true,\r\n uploadUrl,\r\n downloadUrl,\r\n) {\r\n if (imageSrcs.length === imagesHexSources.length) {\r\n for (let i = 0; i < imageSrcs.length; i++) {\r\n const url = imageSrcs?.[i]?.url;\r\n const width = imageSrcs?.[i]?.width;\r\n const height = imageSrcs?.[i]?.height;\r\n const img = imageSrcs?.[i]?.img;\r\n const newSrc = isBase64Data\r\n ? `data:${imagesHexSources[i].type};base64,${_convertHexToBase64(\r\n imagesHexSources[i].hex,\r\n )}`\r\n : imagesHexSources[i];\r\n const formData = new FormData();\r\n let blob = convertBase64UrlToBlob(newSrc);\r\n let imgName = url.split('\\\\')?.slice(-1)?.[0] || 'image.jpg';\r\n let file = new File([blob], imgName);\r\n formData.append('file', file);\r\n const res = await window\r\n .fetch(uploadUrl, {\r\n method: 'POST',\r\n body: formData,\r\n })\r\n .then(function (response) {\r\n return response.json();\r\n });\r\n htmlData = htmlData.replace(\r\n img,\r\n `<img src=\"${downloadUrl}${res.data[0].id}\" style=\"width:${width}px;height:${height}px\"`,\r\n );\r\n }\r\n }\r\n return htmlData;\r\n}\r\n\r\nfunction _convertHexToBase64(hexString) {\r\n return btoa(\r\n hexString\r\n .match(/\\w{2}/g)\r\n .map(char => {\r\n return String.fromCharCode(parseInt(char, 16));\r\n })\r\n .join(''),\r\n );\r\n}\r\n\r\nfunction convertBase64UrlToBlob(dataurl) {\r\n const arr = dataurl.split(',');\r\n //注意base64的最后面中括号和引号是不转译的\r\n const _arr = arr[1].substring(0, arr[1].length - 2);\r\n const mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(_arr);\r\n let n = bstr.length;\r\n const u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new Blob([u8arr], {\r\n type: mime,\r\n });\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"wangEditorUtil.js","names":["replaceAllSpanFontSize","htmlData","spanReg","fontReg","fontSizeReg","spanArr","match","Array","isArray","length","fontSizeReplaceList","i","fontArr","fontSize","ptValue","split","replace","indexOf","value","toFontSize","parseInt","Number","replaceAll","size","result","sizeArr","includes","findAllImgSrcsFromHtml","imgReg","srcReg","widthReg","heightReg","arr","srcArr","src","width","height","push","url","img","withEmptyHtml","editor","getHtml","newEditor","isEmpty","extractImageDataFromRtf","rtfData","regexPictureHeader","regexPicture","RegExp","source","images","image","imageType","hex","type","replaceImagesFileSourceWithInlineRepresentation","imageSrcs","imagesHexSources","isBase64Data","uploadUrl","downloadUrl","newSrc","_convertHexToBase64","formData","FormData","blob","convertBase64UrlToBlob","imgName","slice","file","File","append","window","fetch","method","body","then","response","json","res","data","id","hexString","btoa","map","char","String","fromCharCode","join","dataurl","_arr","substring","mime","bstr","atob","n","u8arr","Uint8Array","charCodeAt","Blob"],"sources":["vtx-wang-editor/wangEditorUtil.js"],"sourcesContent":["export function replaceAllSpanFontSize(htmlData) {\n const spanReg = /\\<span([\\s\\S]+?)\\<\\/span\\>/g;\n const fontReg = /\\<font([\\s\\S]+?)\\<\\/font\\>/g;\n const fontSizeReg = /font-size:([\\s\\S]+?)\\;/g;\n\n let spanArr = htmlData.match(spanReg); // 筛选出所有的span\n if (!spanArr || (Array.isArray(spanArr) && !spanArr.length)) {\n return false;\n }\n let fontSizeReplaceList = {};\n for (let i = 0; i < spanArr.length; i++) {\n const fontArr = spanArr[i].match(fontReg);\n if (fontArr?.length > 0) {\n const fontSize = spanArr[i].match(fontSizeReg);\n if (fontSize?.length > 0) {\n const ptValue = fontSize[0].split(':')[1].replace(';', '');\n\n if (ptValue.indexOf('pt') > -1) {\n const value = toFontSize(parseInt(Number(ptValue.replace('pt', '')) / 0.75));\n fontSizeReplaceList[fontSize[0]] = `font-size:${value}px;`;\n }\n }\n }\n }\n for (let i in fontSizeReplaceList) {\n htmlData = htmlData.replaceAll(i, fontSizeReplaceList[i]);\n }\n return htmlData;\n}\n// 判断字体在这个范围之内,不在这个范围之内 则不显示字体大小\nfunction toFontSize(size) {\n let result = size;\n const sizeArr = [12, 13, 14, 15, 16, 19, 22, 24, 29, 32, 40, 48];\n if (sizeArr.includes(size)) {\n return result;\n }\n if (size < sizeArr[0]) {\n return sizeArr[0];\n }\n if (size > sizeArr[sizeArr.length - 1]) {\n return sizeArr[sizeArr.length - 1];\n }\n\n for (let i = 1; i < sizeArr.length; i++) {\n if (size >= sizeArr[i - 1] && size <= sizeArr[i]) {\n if (size - sizeArr[i - 1] < sizeArr[i] - size) {\n result = sizeArr[i - 1];\n } else {\n result = sizeArr[i];\n }\n break;\n }\n }\n return result;\n}\n\nexport function findAllImgSrcsFromHtml(htmlData) {\n let imgReg = /<img.*?(?:>|\\/>)/gi; //匹配图片中的img标签\n let srcReg = /src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的src\n let widthReg = /width=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的width\n let heightReg = /height=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i; // 匹配图片中的height\n\n let arr = htmlData.match(imgReg); //筛选出所有的img\n if (!arr || (Array.isArray(arr) && !arr.length)) {\n return false;\n }\n\n let srcArr = [];\n for (let i = 0; i < arr.length; i++) {\n let src = arr[i].match(srcReg);\n let width = arr[i].match(widthReg);\n let height = arr[i].match(heightReg);\n // 获取图片地址\n srcArr.push({\n width: width[1],\n height: height[1],\n url: src[1],\n img: arr[i],\n });\n }\n\n return srcArr;\n}\n// 处理为空的时候\nexport function withEmptyHtml(editor) {\n const { getHtml } = editor;\n const newEditor = editor;\n newEditor.getHtml = () => {\n if (newEditor.isEmpty()) {\n return '';\n }\n return getHtml();\n };\n\n return newEditor;\n}\n\nexport function extractImageDataFromRtf(rtfData) {\n if (!rtfData) {\n return [];\n }\n\n const regexPictureHeader = /{\\\\pict[\\s\\S]+?({\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)[\\s}]*/;\n const regexPicture = new RegExp(\n '(?:(' + regexPictureHeader.source + '))([\\\\da-fA-F\\\\s]+)\\\\}',\n 'g',\n );\n const images = rtfData.match(regexPicture);\n const result = [];\n\n if (images) {\n for (const image of images) {\n let imageType = false;\n\n if (image.includes('\\\\pngblip')) {\n imageType = 'image/png';\n } else if (image.includes('\\\\jpegblip')) {\n imageType = 'image/jpeg';\n }\n\n if (imageType) {\n result.push({\n hex: image.replace(regexPictureHeader, '').replace(/[^\\da-fA-F]/g, ''),\n type: imageType,\n });\n }\n }\n }\n\n return result;\n}\n\nexport async function replaceImagesFileSourceWithInlineRepresentation(\n htmlData,\n imageSrcs,\n imagesHexSources,\n isBase64Data = true,\n uploadUrl,\n downloadUrl,\n) {\n if (imageSrcs.length === imagesHexSources.length) {\n for (let i = 0; i < imageSrcs.length; i++) {\n const url = imageSrcs?.[i]?.url;\n const width = imageSrcs?.[i]?.width;\n const height = imageSrcs?.[i]?.height;\n const img = imageSrcs?.[i]?.img;\n const newSrc = isBase64Data\n ? `data:${imagesHexSources[i].type};base64,${_convertHexToBase64(\n imagesHexSources[i].hex,\n )}`\n : imagesHexSources[i];\n const formData = new FormData();\n let blob = convertBase64UrlToBlob(newSrc);\n let imgName = url.split('\\\\')?.slice(-1)?.[0] || 'image.jpg';\n let file = new File([blob], imgName);\n formData.append('file', file);\n const res = await window\n .fetch(uploadUrl, {\n method: 'POST',\n body: formData,\n })\n .then(function(response) {\n return response.json();\n });\n htmlData = htmlData.replace(\n img,\n `<img src=\"${downloadUrl}${res.data[0].id}\" style=\"width:${width}px;height:${height}px\"`,\n );\n }\n }\n return htmlData;\n}\n\nfunction _convertHexToBase64(hexString) {\n return btoa(\n hexString\n .match(/\\w{2}/g)\n .map(char => {\n return String.fromCharCode(parseInt(char, 16));\n })\n .join(''),\n );\n}\n\nfunction convertBase64UrlToBlob(dataurl) {\n const arr = dataurl.split(',');\n //注意base64的最后面中括号和引号是不转译的\n const _arr = arr[1].substring(0, arr[1].length - 2);\n const mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(_arr);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new Blob([u8arr], {\n type: mime,\n });\n}\n"],"mappings":";;;;;;;;;;;;;+CACA,oJ;;;;;;;;;;;;AADO,SAASA,sBAAT,CAAgCC,QAAhC,EAA0C;EAC7C,IAAMC,OAAO,GAAG,6BAAhB;EACA,IAAMC,OAAO,GAAG,6BAAhB;EACA,IAAMC,WAAW,GAAG,yBAApB;EAEA,IAAIC,OAAO,GAAGJ,QAAQ,CAACK,KAAT,CAAeJ,OAAf,CAAd,CAL6C,CAKN;;EACvC,IAAI,CAACG,OAAD,IAAaE,KAAK,CAACC,OAAN,CAAcH,OAAd,KAA0B,CAACA,OAAO,CAACI,MAApD,EAA6D;IACzD,OAAO,KAAP;EACH;;EACD,IAAIC,mBAAmB,GAAG,EAA1B;;EACA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,OAAO,CAACI,MAA5B,EAAoCE,CAAC,EAArC,EAAyC;IACrC,IAAMC,OAAO,GAAGP,OAAO,CAACM,CAAD,CAAP,CAAWL,KAAX,CAAiBH,OAAjB,CAAhB;;IACA,IAAI,CAAAS,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEH,MAAT,IAAkB,CAAtB,EAAyB;MACrB,IAAMI,QAAQ,GAAGR,OAAO,CAACM,CAAD,CAAP,CAAWL,KAAX,CAAiBF,WAAjB,CAAjB;;MACA,IAAI,CAAAS,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEJ,MAAV,IAAmB,CAAvB,EAA0B;QACtB,IAAMK,OAAO,GAAGD,QAAQ,CAAC,CAAD,CAAR,CAAYE,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BC,OAA1B,CAAkC,GAAlC,EAAuC,EAAvC,CAAhB;;QAEA,IAAIF,OAAO,CAACG,OAAR,CAAgB,IAAhB,IAAwB,CAAC,CAA7B,EAAgC;UAC5B,IAAMC,KAAK,GAAGC,UAAU,CAACC,QAAQ,CAACC,MAAM,CAACP,OAAO,CAACE,OAAR,CAAgB,IAAhB,EAAsB,EAAtB,CAAD,CAAN,GAAoC,IAArC,CAAT,CAAxB;UACAN,mBAAmB,CAACG,QAAQ,CAAC,CAAD,CAAT,CAAnB,uBAAgDK,KAAhD;QACH;MACJ;IACJ;EACJ;;EACD,KAAK,IAAIP,EAAT,IAAcD,mBAAd,EAAmC;IAC/BT,QAAQ,GAAGA,QAAQ,CAACqB,UAAT,CAAoBX,EAApB,EAAuBD,mBAAmB,CAACC,EAAD,CAA1C,CAAX;EACH;;EACD,OAAOV,QAAP;AACH,C,CACD;;;AACA,SAASkB,UAAT,CAAoBI,IAApB,EAA0B;EACtB,IAAIC,MAAM,GAAGD,IAAb;EACA,IAAME,OAAO,GAAG,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,EAAb,EAAiB,EAAjB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,EAA7B,EAAiC,EAAjC,EAAqC,EAArC,EAAyC,EAAzC,EAA6C,EAA7C,CAAhB;;EACA,IAAIA,OAAO,CAACC,QAAR,CAAiBH,IAAjB,CAAJ,EAA4B;IACxB,OAAOC,MAAP;EACH;;EACD,IAAID,IAAI,GAAGE,OAAO,CAAC,CAAD,CAAlB,EAAuB;IACnB,OAAOA,OAAO,CAAC,CAAD,CAAd;EACH;;EACD,IAAIF,IAAI,GAAGE,OAAO,CAACA,OAAO,CAAChB,MAAR,GAAiB,CAAlB,CAAlB,EAAwC;IACpC,OAAOgB,OAAO,CAACA,OAAO,CAAChB,MAAR,GAAiB,CAAlB,CAAd;EACH;;EAED,KAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGc,OAAO,CAAChB,MAA5B,EAAoCE,CAAC,EAArC,EAAyC;IACrC,IAAIY,IAAI,IAAIE,OAAO,CAACd,CAAC,GAAG,CAAL,CAAf,IAA0BY,IAAI,IAAIE,OAAO,CAACd,CAAD,CAA7C,EAAkD;MAC9C,IAAIY,IAAI,GAAGE,OAAO,CAACd,CAAC,GAAG,CAAL,CAAd,GAAwBc,OAAO,CAACd,CAAD,CAAP,GAAaY,IAAzC,EAA+C;QAC3CC,MAAM,GAAGC,OAAO,CAACd,CAAC,GAAG,CAAL,CAAhB;MACH,CAFD,MAEO;QACHa,MAAM,GAAGC,OAAO,CAACd,CAAD,CAAhB;MACH;;MACD;IACH;EACJ;;EACD,OAAOa,MAAP;AACH;;AAEM,SAASG,sBAAT,CAAgC1B,QAAhC,EAA0C;EAC7C,IAAI2B,MAAM,GAAG,oBAAb,CAD6C,CACV;;EACnC,IAAIC,MAAM,GAAG,+BAAb,CAF6C,CAEC;;EAC9C,IAAIC,QAAQ,GAAG,iCAAf,CAH6C,CAGK;;EAClD,IAAIC,SAAS,GAAG,kCAAhB,CAJ6C,CAIO;;EAEpD,IAAIC,GAAG,GAAG/B,QAAQ,CAACK,KAAT,CAAesB,MAAf,CAAV,CAN6C,CAMX;;EAClC,IAAI,CAACI,GAAD,IAASzB,KAAK,CAACC,OAAN,CAAcwB,GAAd,KAAsB,CAACA,GAAG,CAACvB,MAAxC,EAAiD;IAC7C,OAAO,KAAP;EACH;;EAED,IAAIwB,MAAM,GAAG,EAAb;;EACA,KAAK,IAAItB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqB,GAAG,CAACvB,MAAxB,EAAgCE,CAAC,EAAjC,EAAqC;IACjC,IAAIuB,GAAG,GAAGF,GAAG,CAACrB,CAAD,CAAH,CAAOL,KAAP,CAAauB,MAAb,CAAV;IACA,IAAIM,KAAK,GAAGH,GAAG,CAACrB,CAAD,CAAH,CAAOL,KAAP,CAAawB,QAAb,CAAZ;IACA,IAAIM,MAAM,GAAGJ,GAAG,CAACrB,CAAD,CAAH,CAAOL,KAAP,CAAayB,SAAb,CAAb,CAHiC,CAIjC;;IACAE,MAAM,CAACI,IAAP,CAAY;MACRF,KAAK,EAAEA,KAAK,CAAC,CAAD,CADJ;MAERC,MAAM,EAAEA,MAAM,CAAC,CAAD,CAFN;MAGRE,GAAG,EAAEJ,GAAG,CAAC,CAAD,CAHA;MAIRK,GAAG,EAAEP,GAAG,CAACrB,CAAD;IAJA,CAAZ;EAMH;;EAED,OAAOsB,MAAP;AACH,C,CACD;;;AACO,SAASO,aAAT,CAAuBC,MAAvB,EAA+B;EAClC,IAAQC,OAAR,GAAoBD,MAApB,CAAQC,OAAR;EACA,IAAMC,SAAS,GAAGF,MAAlB;;EACAE,SAAS,CAACD,OAAV,GAAoB,YAAM;IACtB,IAAIC,SAAS,CAACC,OAAV,EAAJ,EAAyB;MACrB,OAAO,EAAP;IACH;;IACD,OAAOF,OAAO,EAAd;EACH,CALD;;EAOA,OAAOC,SAAP;AACH;;AAEM,SAASE,uBAAT,CAAiCC,OAAjC,EAA0C;EAC7C,IAAI,CAACA,OAAL,EAAc;IACV,OAAO,EAAP;EACH;;EAED,IAAMC,kBAAkB,GAAG,qDAA3B;EACA,IAAMC,YAAY,GAAG,IAAIC,MAAJ,CACjB,SAASF,kBAAkB,CAACG,MAA5B,GAAqC,wBADpB,EAEjB,GAFiB,CAArB;EAIA,IAAMC,MAAM,GAAGL,OAAO,CAACxC,KAAR,CAAc0C,YAAd,CAAf;EACA,IAAMxB,MAAM,GAAG,EAAf;;EAEA,IAAI2B,MAAJ,EAAY;IAAA,2CACYA,MADZ;IAAA;;IAAA;MACR,oDAA4B;QAAA,IAAjBC,KAAiB;QACxB,IAAIC,SAAS,GAAG,KAAhB;;QAEA,IAAID,KAAK,CAAC1B,QAAN,CAAe,WAAf,CAAJ,EAAiC;UAC7B2B,SAAS,GAAG,WAAZ;QACH,CAFD,MAEO,IAAID,KAAK,CAAC1B,QAAN,CAAe,YAAf,CAAJ,EAAkC;UACrC2B,SAAS,GAAG,YAAZ;QACH;;QAED,IAAIA,SAAJ,EAAe;UACX7B,MAAM,CAACa,IAAP,CAAY;YACRiB,GAAG,EAAEF,KAAK,CAACpC,OAAN,CAAc+B,kBAAd,EAAkC,EAAlC,EAAsC/B,OAAtC,CAA8C,cAA9C,EAA8D,EAA9D,CADG;YAERuC,IAAI,EAAEF;UAFE,CAAZ;QAIH;MACJ;IAhBO;MAAA;IAAA;MAAA;IAAA;EAiBX;;EAED,OAAO7B,MAAP;AACH;;SAEqBgC,+C;;;;;gHAAf,iBACHvD,QADG,EAEHwD,SAFG,EAGHC,gBAHG;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;;IAAA;MAAA;QAAA;UAAA;YAIHC,YAJG,2DAIY,IAJZ;YAKHC,SALG;YAMHC,WANG;;YAAA,MAQCJ,SAAS,CAAChD,MAAV,KAAqBiD,gBAAgB,CAACjD,MARvC;cAAA;cAAA;YAAA;;YASUE,CATV,GASc,CATd;;UAAA;YAAA,MASiBA,CAAC,GAAG8C,SAAS,CAAChD,MAT/B;cAAA;cAAA;YAAA;;YAUW6B,GAVX,GAUiBmB,SAVjB,aAUiBA,SAVjB,uCAUiBA,SAAS,CAAG9C,CAAH,CAV1B,iDAUiB,aAAgB2B,GAVjC;YAWWH,KAXX,GAWmBsB,SAXnB,aAWmBA,SAXnB,wCAWmBA,SAAS,CAAG9C,CAAH,CAX5B,kDAWmB,cAAgBwB,KAXnC;YAYWC,MAZX,GAYoBqB,SAZpB,aAYoBA,SAZpB,wCAYoBA,SAAS,CAAG9C,CAAH,CAZ7B,kDAYoB,cAAgByB,MAZpC;YAaWG,GAbX,GAaiBkB,SAbjB,aAaiBA,SAbjB,wCAaiBA,SAAS,CAAG9C,CAAH,CAb1B,kDAaiB,cAAgB4B,GAbjC;YAcWuB,MAdX,GAcoBH,YAAY,kBACbD,gBAAgB,CAAC/C,CAAD,CAAhB,CAAoB4C,IADP,qBACsBQ,mBAAmB,CAC1DL,gBAAgB,CAAC/C,CAAD,CAAhB,CAAoB2C,GADsC,CADzC,IAIrBI,gBAAgB,CAAC/C,CAAD,CAlB3B;YAmBWqD,QAnBX,GAmBsB,IAAIC,QAAJ,EAnBtB;YAoBSC,IApBT,GAoBgBC,sBAAsB,CAACL,MAAD,CApBtC;YAqBSM,OArBT,GAqBmB,eAAA9B,GAAG,CAACvB,KAAJ,CAAU,IAAV,+EAAiBsD,KAAjB,CAAuB,CAAC,CAAxB,uEAA6B,CAA7B,MAAmC,WArBtD;YAsBSC,IAtBT,GAsBgB,IAAIC,IAAJ,CAAS,CAACL,IAAD,CAAT,EAAiBE,OAAjB,CAtBhB;YAuBKJ,QAAQ,CAACQ,MAAT,CAAgB,MAAhB,EAAwBF,IAAxB;YAvBL;YAAA,OAwBuBG,MAAM,CACnBC,KADa,CACPd,SADO,EACI;cACde,MAAM,EAAE,MADM;cAEdC,IAAI,EAAEZ;YAFQ,CADJ,EAKba,IALa,CAKR,UAASC,QAAT,EAAmB;cACrB,OAAOA,QAAQ,CAACC,IAAT,EAAP;YACH,CAPa,CAxBvB;;UAAA;YAwBWC,GAxBX;YAgCK/E,QAAQ,GAAGA,QAAQ,CAACe,OAAT,CACPuB,GADO,uBAEMsB,WAFN,SAEoBmB,GAAG,CAACC,IAAJ,CAAS,CAAT,EAAYC,EAFhC,8BAEoD/C,KAFpD,uBAEsEC,MAFtE,UAAX;;UAhCL;YASuCzB,CAAC,EATxC;YAAA;YAAA;;UAAA;YAAA,iCAsCIV,QAtCJ;;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,C;;;;AAyCP,SAAS8D,mBAAT,CAA6BoB,SAA7B,EAAwC;EACpC,OAAOC,IAAI,CACPD,SAAS,CACJ7E,KADL,CACW,QADX,EAEK+E,GAFL,CAES,UAAAC,KAAI,EAAI;IACT,OAAOC,MAAM,CAACC,YAAP,CAAoBpE,QAAQ,CAACkE,KAAD,EAAO,EAAP,CAA5B,CAAP;EACH,CAJL,EAKKG,IALL,CAKU,EALV,CADO,CAAX;AAQH;;AAED,SAAStB,sBAAT,CAAgCuB,OAAhC,EAAyC;EACrC,IAAM1D,GAAG,GAAG0D,OAAO,CAAC3E,KAAR,CAAc,GAAd,CAAZ,CADqC,CAErC;;EACA,IAAM4E,IAAI,GAAG3D,GAAG,CAAC,CAAD,CAAH,CAAO4D,SAAP,CAAiB,CAAjB,EAAoB5D,GAAG,CAAC,CAAD,CAAH,CAAOvB,MAAP,GAAgB,CAApC,CAAb;;EACA,IAAMoF,IAAI,GAAG7D,GAAG,CAAC,CAAD,CAAH,CAAO1B,KAAP,CAAa,SAAb,EAAwB,CAAxB,CAAb;EAAA,IACIwF,IAAI,GAAGC,IAAI,CAACJ,IAAD,CADf;EAEA,IAAIK,CAAC,GAAGF,IAAI,CAACrF,MAAb;EACA,IAAMwF,KAAK,GAAG,IAAIC,UAAJ,CAAeF,CAAf,CAAd;;EACA,OAAOA,CAAC,EAAR,EAAY;IACRC,KAAK,CAACD,CAAD,CAAL,GAAWF,IAAI,CAACK,UAAL,CAAgBH,CAAhB,CAAX;EACH;;EACD,OAAO,IAAII,IAAJ,CAAS,CAACH,KAAD,CAAT,EAAkB;IACrB1C,IAAI,EAAEsC;EADe,CAAlB,CAAP;AAGH"}
@@ -462,8 +462,8 @@ var VtxZtree = /*#__PURE__*/function (_React$Component) {
462
462
 
463
463
  processShowNodes(zTreeObj, nodesShow, _keywords); // nodes should be reprocessed to show correctly
464
464
  }
465
- /**
466
- * reprocess of nodes before showing
465
+ /**
466
+ * reprocess of nodes before showing
467
467
  */
468
468
 
469
469
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["VtxZtree","props","treeId","Date","getTime","parseInt","Math","random","zTreeObj","treeSetting","treeNodes","keyNameMapping","searchTimeOutId","loadPromise","loadTreeResource","loadComplete","fuzzySearch","debounce","bind","state","searchVal","$","fn","zTree","treeAll","Promise","resolve","getScript","CONFIG","ztreeServer","attr","rel","type","href","appendTo","then","refreshTree","prevProps","isEqual","refreshFlag","data","destroy","t","check","enable","checkable","chkboxType","checkStrictly","Y","N","view","selectedMulti","multiple","showIcon","expandSpeed","showTitle","fontCss","treeNode","selectable","color","callback","beforeClick","beforeCheck","onClick","e","selectedNodes","getSelectedNodes","key","selectedKeys","map","item","selectedNames","name","onCheck","checkedNodes","getCheckedNodes","isChecked","checked","getChangeCheckedNodes","checkedKeys","checkedNames","onExpand","isExpand","expandedKeys","getNodesByParam","onCollapse","onRightClick","event","onDblClick","customCfg","merge","Array","isArray","chkDisabled","disableCheckboxAll","genNodes","nodes","indexOf","open","children","length","newNode","every","autoExpandParent","some","newProps","initTreeSetting","initTreeNodes","init","selectNodes","defaultExpandAll","expandAll","expandFlag","i","len","node","pop","expandNode","checkedFlag","updateNode","selectNode","cancelSelectedNode","keyworld","isHighLight","nameKey","setting","nameIsHTML","metaChar","rexMeta","RegExp","ztreeFilter","_keywords","filterFunc","oldname","showNode","toLowerCase","newKeywords","replace","matchStr","rexGlobal","originalText","highLightText","hideNode","nodesShow","getNodesByFilter","processShowNodes","each","n","obj","pathOfOne","getPath","rootNodes","trim","setState","check_Child_State","prefixCls","showSearch","searchPlaceholder","classnames","target","value","React","Component","propTypes","PropTypes","bool","string","array","number","object"],"sources":["vtx-ztree/index.jsx"],"sourcesContent":["/*\r\n * @Author: yemu\r\n * @Date: 2021-04-08 22:03:07\r\n * @LastEditTime: 2021-04-09 10:36:45\r\n * @LastEditors: yemu\r\n * @Description: 树形控件\r\n */\r\nimport React from 'react';\r\nimport Input from 'antd/lib/input';\r\nimport isEqual from 'lodash.isequal';\r\nimport merge from 'lodash.merge';\r\nimport debounce from 'lodash.debounce';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport CONFIG from '../config';\r\n\r\nexport default class VtxZtree extends React.Component {\r\n static defaultProps = {\r\n showSearch: true,\r\n prefixCls: 'vtx-ztree',\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.treeId = `tree-${new Date().getTime()}-${parseInt(Math.random() * 10000)}`;\r\n this.zTreeObj = null;\r\n this.treeSetting = {};\r\n this.treeNodes = [];\r\n this.keyNameMapping = {};\r\n this.searchTimeOutId = null;\r\n this.loadPromise = this.loadTreeResource();\r\n this.loadComplete = false;\r\n this.fuzzySearch = debounce(this.fuzzySearch.bind(this), 300);\r\n this.state = {\r\n searchVal: '',\r\n };\r\n }\r\n\r\n loadTreeResource() {\r\n if (!$.fn.zTree) {\r\n const treeAll = new Promise(resolve => {\r\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.all.min.js`, function() {\r\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.exhide.min.js`, function() {\r\n resolve();\r\n });\r\n });\r\n });\r\n $('<link>')\r\n .attr({\r\n rel: 'stylesheet',\r\n type: 'text/css',\r\n href: `${CONFIG.ztreeServer}/css/zTreeStyle/zTreeStyle.css`,\r\n })\r\n .appendTo('head');\r\n return treeAll;\r\n } else {\r\n return new Promise(resolve => {\r\n resolve();\r\n });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.loadPromise.then(() => {\r\n this.loadComplete = true;\r\n this.refreshTree(this.props);\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (!this.loadComplete) return;\r\n if (\r\n !isEqual(prevProps.refreshFlag, this.props.refreshFlag) ||\r\n !isEqual(prevProps.data, this.props.data)\r\n ) {\r\n this.refreshTree(this.props);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.zTreeObj && this.zTreeObj.destroy();\r\n }\r\n\r\n // 初始化树的配置\r\n initTreeSetting(props) {\r\n const t = this;\r\n // 初始化树的配置\r\n this.treeSetting = {\r\n check: {\r\n enable: !!props.checkable,\r\n chkboxType: props.checkStrictly ? { Y: '', N: '' } : { Y: 'ps', N: 'ps' },\r\n },\r\n view: {\r\n selectedMulti: !!props.multiple,\r\n showIcon: true,\r\n expandSpeed: 'normal',\r\n showTitle: false,\r\n fontCss: (treeId, treeNode) => {\r\n return treeNode.selectable ? {} : { color: '#B9B9B9' };\r\n },\r\n },\r\n callback: {\r\n beforeClick(treeId, treeNode) {\r\n return treeNode.selectable;\r\n },\r\n beforeCheck(treeId, treeNode) {\r\n return props.beforeCheck ? props.beforeCheck(treeNode) : true;\r\n },\r\n onClick(e, treeId, treeNode) {\r\n // console.log('点击节点信息',treeNode)\r\n if (typeof props.onClick == 'function') {\r\n const selectedNodes = t.getSelectedNodes();\r\n props.onClick({\r\n key: treeNode.key,\r\n treeNode,\r\n selectedNodes,\r\n selectedKeys: selectedNodes.map(item => item.key),\r\n selectedNames: selectedNodes.map(item => item.name),\r\n });\r\n }\r\n },\r\n onCheck(e, treeId, treeNode) {\r\n // console.log('勾选节点信息',treeNode)\r\n if (typeof props.onCheck == 'function') {\r\n const checkedNodes = t.getCheckedNodes();\r\n props.onCheck({\r\n key: treeNode.key,\r\n isChecked: treeNode.checked,\r\n treeNode: t.zTreeObj.getChangeCheckedNodes(),\r\n checkedNodes,\r\n checkedKeys: checkedNodes.map(item => item.key),\r\n checkedNames: checkedNodes.map(item => item.name),\r\n });\r\n }\r\n },\r\n onExpand(e, treeId, treeNode) {\r\n // console.log('展开节点信息',treeNode)\r\n if (typeof props.onExpand == 'function') {\r\n props.onExpand({\r\n key: treeNode.key,\r\n isExpand: true,\r\n treeNode,\r\n expandedKeys: t.zTreeObj\r\n .getNodesByParam('open', true)\r\n .map(item => item.key),\r\n });\r\n }\r\n },\r\n onCollapse(e, treeId, treeNode) {\r\n // console.log('收起节点信息',treeNode)\r\n if (typeof props.onExpand == 'function') {\r\n props.onExpand({\r\n key: treeNode.key,\r\n isExpand: false,\r\n treeNode,\r\n expandedKeys: t.zTreeObj\r\n .getNodesByParam('open', true)\r\n .map(item => item.key),\r\n });\r\n }\r\n },\r\n onRightClick(e, treeId, treeNode) {\r\n // console.log('右击节点信息',treeNode);\r\n if (typeof props.onRightClick == 'function') {\r\n props.onRightClick({\r\n event: e,\r\n key: treeNode.key,\r\n treeNode,\r\n });\r\n }\r\n },\r\n onDblClick(e, treeId, treeNode) {\r\n // console.log('双击节点信息',treeNode);\r\n if (typeof props.onDblClick == 'function') {\r\n props.onDblClick({\r\n event: e,\r\n key: treeNode.key,\r\n treeNode,\r\n });\r\n }\r\n },\r\n },\r\n };\r\n // 继承外部配置\r\n if (typeof this.props.customCfg == 'object') {\r\n merge(this.treeSetting, this.props.customCfg);\r\n }\r\n }\r\n\r\n // 初始化树的数据,对expandedKeys,checkedKeys做处理\r\n initTreeNodes(props) {\r\n const t = this;\r\n this.keyNameMapping = {};\r\n if (!Array.isArray(props.data)) {\r\n this.treeNodes = [];\r\n } else {\r\n const checkedKeys = props.checkedKeys || [];\r\n const expandedKeys = props.expandedKeys || [];\r\n const chkDisabled = !!props.disableCheckboxAll;\r\n this.treeNodes = (function genNodes(nodes) {\r\n return nodes\r\n .map(item => {\r\n const checked = checkedKeys.indexOf(item.key) != -1;\r\n const open = expandedKeys.indexOf(item.key) != -1;\r\n t.keyNameMapping[item.key] = item.name;\r\n if (Array.isArray(item.children) && item.children.length > 0) {\r\n return {\r\n chkDisabled,\r\n selectable: true,\r\n ...item,\r\n checked,\r\n open,\r\n children: genNodes(item.children),\r\n };\r\n } else {\r\n return {\r\n chkDisabled,\r\n selectable: true,\r\n ...item,\r\n checked,\r\n open,\r\n };\r\n }\r\n })\r\n .map(item => {\r\n if (Array.isArray(item.children) && item.children.length > 0) {\r\n const newNode = { ...item };\r\n // 如果子节点全部被勾选,父节点自动勾选\r\n if (item.children.every(item => item.checked)) {\r\n newNode.checked = true;\r\n }\r\n // 如果配置了自动展开父节点,父节点自动展开\r\n if (props.autoExpandParent && item.children.some(item => item.open)) {\r\n newNode.open = true;\r\n }\r\n return newNode;\r\n } else {\r\n return item;\r\n }\r\n });\r\n })(props.data);\r\n }\r\n }\r\n\r\n // 重新生成树\r\n refreshTree(newProps) {\r\n this.zTreeObj && this.zTreeObj.destroy();\r\n this.initTreeSetting(newProps);\r\n this.initTreeNodes(newProps);\r\n this.zTreeObj = $.fn.zTree.init($(`#${this.treeId}`), this.treeSetting, this.treeNodes);\r\n if (Array.isArray(newProps.selectedKeys)) {\r\n this.selectNodes(newProps.selectedKeys, newProps.multiple);\r\n }\r\n // 初始化全展开判断\r\n if (newProps.defaultExpandAll && !newProps.expandedKeys) {\r\n this.zTreeObj.expandAll(true);\r\n }\r\n }\r\n\r\n // 展开或折叠相关节点,expandFlag为true表示展开,false表示折叠\r\n expandNodes(expandedKeys, expandFlag = true) {\r\n for (let i = 0, len = expandedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', expandedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.expandNode(node, expandFlag, false, false);\r\n }\r\n }\r\n }\r\n\r\n // 勾选节点, checkedFlag为true表示勾选,false表示取消勾选\r\n checkNodes(checkedKeys, checkedFlag = true) {\r\n for (let i = 0, len = checkedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', checkedKeys[i]).pop();\r\n if (node) {\r\n // 隐藏节点的勾选状态也要改变\r\n node.checked = checkedFlag;\r\n this.zTreeObj.updateNode(node, true);\r\n // this.zTreeObj.checkNode(node,checkedFlag,false);\r\n }\r\n }\r\n }\r\n\r\n // 点击选择节点\r\n selectNodes(selectedKeys, multiple) {\r\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.selectNode(node, multiple, true);\r\n }\r\n }\r\n }\r\n\r\n // 取消选择节点\r\n cancelSelectedNodes(selectedKeys) {\r\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.cancelSelectedNode(node);\r\n }\r\n }\r\n }\r\n\r\n fuzzySearch(keyworld, isHighLight = true) {\r\n const t = this;\r\n const nameKey = this.zTreeObj.setting.data.key.name; // get the key of the node name\r\n // isHighLight = isHighLight===false?false:true;//default true, only use false to disable highlight\r\n // isExpand = isExpand?true:false; // not to expand in default\r\n this.zTreeObj.setting.view.nameIsHTML = isHighLight; // allow use html in node name for highlight use\r\n\r\n const metaChar = '[\\\\[\\\\]\\\\\\\\^\\\\$\\\\.\\\\|\\\\?\\\\*\\\\+\\\\(\\\\)]'; // js meta characters\r\n const rexMeta = new RegExp(metaChar, 'gi'); // regular expression to match meta characters\r\n\r\n // searchNodeLazy(keyworld);\r\n ztreeFilter(t.zTreeObj, keyworld);\r\n\r\n // -----------------------------内部函数----------------------------------\r\n // keywords filter function\r\n function ztreeFilter(zTreeObj, _keywords) {\r\n if (!_keywords) {\r\n _keywords = ''; // default blank for _keywords\r\n }\r\n\r\n // function to find the matching node\r\n function filterFunc(node) {\r\n if (node && node.oldname && node.oldname.length > 0) {\r\n node[nameKey] = node.oldname; // recover oldname of the node if exist\r\n }\r\n zTreeObj.updateNode(node); // update node to for modifications take effect\r\n if (_keywords.length == 0) {\r\n // return true to show all nodes if the keyword is blank\r\n zTreeObj.showNode(node);\r\n // zTreeObj.expandNode(node,isExpand);\r\n return true;\r\n }\r\n // transform node name and keywords to lowercase\r\n if (\r\n node[nameKey] &&\r\n node[nameKey].toLowerCase().indexOf(_keywords.toLowerCase()) != -1\r\n ) {\r\n if (isHighLight) {\r\n // highlight process\r\n // a new variable 'newKeywords' created to store the keywords information\r\n // keep the parameter '_keywords' as initial and it will be used in next node\r\n // process the meta characters in _keywords thus the RegExp can be correctly used in str.replace\r\n const newKeywords = _keywords.replace(rexMeta, function(matchStr) {\r\n // add escape character before meta characters\r\n return '\\\\' + matchStr;\r\n });\r\n node.oldname = node[nameKey]; // store the old name\r\n const rexGlobal = new RegExp(newKeywords, 'gi'); // 'g' for global,'i' for ignore case\r\n // use replace(RegExp,replacement) since replace(/substr/g,replacement) cannot be used here\r\n node[nameKey] = node.oldname.replace(rexGlobal, function(originalText) {\r\n // highlight the matching words in node name\r\n const highLightText =\r\n '<span style=\"color: whitesmoke;background-color:#f50;\">' +\r\n originalText +\r\n '</span>';\r\n return highLightText;\r\n });\r\n zTreeObj.updateNode(node); // update node for modifications take effect\r\n }\r\n zTreeObj.showNode(node); // show node with matching keywords\r\n return true; // return true and show this node\r\n }\r\n\r\n zTreeObj.hideNode(node); // hide node that not matched\r\n return false; // return false for node not matched\r\n }\r\n\r\n const nodesShow = zTreeObj.getNodesByFilter(filterFunc); // get all nodes that would be shown\r\n processShowNodes(zTreeObj, nodesShow, _keywords); // nodes should be reprocessed to show correctly\r\n }\r\n\r\n /**\r\n * reprocess of nodes before showing\r\n */\r\n function processShowNodes(zTreeObj, nodesShow, _keywords) {\r\n if (nodesShow && nodesShow.length > 0) {\r\n // process the ancient nodes if _keywords is not blank\r\n if (_keywords.length > 0) {\r\n $.each(nodesShow, function(n, obj) {\r\n const pathOfOne = obj.getPath(); // get all the ancient nodes including current node\r\n if (pathOfOne && pathOfOne.length > 0) {\r\n // i < pathOfOne.length-1 process every node in path except self\r\n for (let i = 0; i < pathOfOne.length - 1; i++) {\r\n zTreeObj.showNode(pathOfOne[i]); // show node\r\n zTreeObj.expandNode(pathOfOne[i], true); // expand node\r\n }\r\n }\r\n });\r\n } else {\r\n // show all nodes when _keywords is blank and expand the root nodes\r\n const rootNodes = zTreeObj.getNodesByParam('level', '0'); // get all root nodes\r\n $.each(rootNodes, function(n, obj) {\r\n zTreeObj.expandNode(obj, true); // expand all root nodes\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n // 清空搜索框数据(供外部调用)\r\n clearSearch() {\r\n if (this.state.searchVal.trim() == '') return;\r\n this.setState({\r\n searchVal: '',\r\n });\r\n this.refreshTree(this.props);\r\n }\r\n\r\n // 获取所有已被勾选的节点\r\n getCheckedNodes() {\r\n return this.zTreeObj\r\n .getNodesByFilter(node => {\r\n // 节点被勾选(非半勾状态)\r\n if (this.props.checkStrictly) return node.checked;\r\n return node.checked && node.check_Child_State != 1;\r\n })\r\n .map(item => {\r\n return {\r\n ...item,\r\n name: item.oldname || item.name, // 搜索树会改变节点的name\r\n };\r\n });\r\n }\r\n\r\n // 获取所有已被点击选中的节点\r\n getSelectedNodes() {\r\n return this.zTreeObj.getSelectedNodes().map(item => {\r\n return {\r\n ...item,\r\n name: item.oldname || item.name,\r\n };\r\n });\r\n }\r\n\r\n // 展开所有节点(供外部调用)\r\n expandAll() {\r\n this.zTreeObj.expandAll(true);\r\n }\r\n\r\n // 收起所有节点(供外部调用)\r\n collapseAll() {\r\n this.zTreeObj.expandAll(false);\r\n }\r\n\r\n render() {\r\n const t = this;\r\n const { prefixCls, showSearch, searchPlaceholder } = t.props;\r\n return (\r\n <div\r\n className={classnames(`${prefixCls}-wraaper`, {\r\n [`${prefixCls}-has-search`]: showSearch,\r\n })}\r\n >\r\n {showSearch && (\r\n <div className={`${prefixCls}-search`}>\r\n <Input\r\n value={t.state.searchVal}\r\n placeholder={searchPlaceholder || '请输入要查询的关键字'}\r\n onChange={e => {\r\n t.setState({\r\n searchVal: e.target.value,\r\n });\r\n t.fuzzySearch(e.target.value.trim());\r\n }}\r\n />\r\n </div>\r\n )}\r\n <div id={this.treeId} className={classnames('ztree', prefixCls)} />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nVtxZtree.propTypes = {\r\n showSearch: PropTypes.bool,\r\n searchPlaceholder: PropTypes.string,\r\n data: PropTypes.array,\r\n refreshFlag: PropTypes.number,\r\n customCfg: PropTypes.object,\r\n checkStrictly: PropTypes.bool,\r\n};\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["VtxZtree","props","treeId","Date","getTime","parseInt","Math","random","zTreeObj","treeSetting","treeNodes","keyNameMapping","searchTimeOutId","loadPromise","loadTreeResource","loadComplete","fuzzySearch","debounce","bind","state","searchVal","$","fn","zTree","treeAll","Promise","resolve","getScript","CONFIG","ztreeServer","attr","rel","type","href","appendTo","then","refreshTree","prevProps","isEqual","refreshFlag","data","destroy","t","check","enable","checkable","chkboxType","checkStrictly","Y","N","view","selectedMulti","multiple","showIcon","expandSpeed","showTitle","fontCss","treeNode","selectable","color","callback","beforeClick","beforeCheck","onClick","e","selectedNodes","getSelectedNodes","key","selectedKeys","map","item","selectedNames","name","onCheck","checkedNodes","getCheckedNodes","isChecked","checked","getChangeCheckedNodes","checkedKeys","checkedNames","onExpand","isExpand","expandedKeys","getNodesByParam","onCollapse","onRightClick","event","onDblClick","customCfg","merge","Array","isArray","chkDisabled","disableCheckboxAll","genNodes","nodes","indexOf","open","children","length","newNode","every","autoExpandParent","some","newProps","initTreeSetting","initTreeNodes","init","selectNodes","defaultExpandAll","expandAll","expandFlag","i","len","node","pop","expandNode","checkedFlag","updateNode","selectNode","cancelSelectedNode","keyworld","isHighLight","nameKey","setting","nameIsHTML","metaChar","rexMeta","RegExp","ztreeFilter","_keywords","filterFunc","oldname","showNode","toLowerCase","newKeywords","replace","matchStr","rexGlobal","originalText","highLightText","hideNode","nodesShow","getNodesByFilter","processShowNodes","each","n","obj","pathOfOne","getPath","rootNodes","trim","setState","check_Child_State","prefixCls","showSearch","searchPlaceholder","classnames","target","value","React","Component","propTypes","PropTypes","bool","string","array","number","object"],"sources":["vtx-ztree/index.jsx"],"sourcesContent":["/*\n * @Author: yemu\n * @Date: 2021-04-08 22:03:07\n * @LastEditTime: 2021-04-09 10:36:45\n * @LastEditors: yemu\n * @Description: 树形控件\n */\nimport React from 'react';\nimport Input from 'antd/lib/input';\nimport isEqual from 'lodash.isequal';\nimport merge from 'lodash.merge';\nimport debounce from 'lodash.debounce';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport CONFIG from '../config';\n\nexport default class VtxZtree extends React.Component {\n static defaultProps = {\n showSearch: true,\n prefixCls: 'vtx-ztree',\n };\n\n constructor(props) {\n super(props);\n this.treeId = `tree-${new Date().getTime()}-${parseInt(Math.random() * 10000)}`;\n this.zTreeObj = null;\n this.treeSetting = {};\n this.treeNodes = [];\n this.keyNameMapping = {};\n this.searchTimeOutId = null;\n this.loadPromise = this.loadTreeResource();\n this.loadComplete = false;\n this.fuzzySearch = debounce(this.fuzzySearch.bind(this), 300);\n this.state = {\n searchVal: '',\n };\n }\n\n loadTreeResource() {\n if (!$.fn.zTree) {\n const treeAll = new Promise(resolve => {\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.all.min.js`, function() {\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.exhide.min.js`, function() {\n resolve();\n });\n });\n });\n $('<link>')\n .attr({\n rel: 'stylesheet',\n type: 'text/css',\n href: `${CONFIG.ztreeServer}/css/zTreeStyle/zTreeStyle.css`,\n })\n .appendTo('head');\n return treeAll;\n } else {\n return new Promise(resolve => {\n resolve();\n });\n }\n }\n\n componentDidMount() {\n this.loadPromise.then(() => {\n this.loadComplete = true;\n this.refreshTree(this.props);\n });\n }\n\n componentDidUpdate(prevProps) {\n if (!this.loadComplete) return;\n if (\n !isEqual(prevProps.refreshFlag, this.props.refreshFlag) ||\n !isEqual(prevProps.data, this.props.data)\n ) {\n this.refreshTree(this.props);\n }\n }\n\n componentWillUnmount() {\n this.zTreeObj && this.zTreeObj.destroy();\n }\n\n // 初始化树的配置\n initTreeSetting(props) {\n const t = this;\n // 初始化树的配置\n this.treeSetting = {\n check: {\n enable: !!props.checkable,\n chkboxType: props.checkStrictly ? { Y: '', N: '' } : { Y: 'ps', N: 'ps' },\n },\n view: {\n selectedMulti: !!props.multiple,\n showIcon: true,\n expandSpeed: 'normal',\n showTitle: false,\n fontCss: (treeId, treeNode) => {\n return treeNode.selectable ? {} : { color: '#B9B9B9' };\n },\n },\n callback: {\n beforeClick(treeId, treeNode) {\n return treeNode.selectable;\n },\n beforeCheck(treeId, treeNode) {\n return props.beforeCheck ? props.beforeCheck(treeNode) : true;\n },\n onClick(e, treeId, treeNode) {\n // console.log('点击节点信息',treeNode)\n if (typeof props.onClick == 'function') {\n const selectedNodes = t.getSelectedNodes();\n props.onClick({\n key: treeNode.key,\n treeNode,\n selectedNodes,\n selectedKeys: selectedNodes.map(item => item.key),\n selectedNames: selectedNodes.map(item => item.name),\n });\n }\n },\n onCheck(e, treeId, treeNode) {\n // console.log('勾选节点信息',treeNode)\n if (typeof props.onCheck == 'function') {\n const checkedNodes = t.getCheckedNodes();\n props.onCheck({\n key: treeNode.key,\n isChecked: treeNode.checked,\n treeNode: t.zTreeObj.getChangeCheckedNodes(),\n checkedNodes,\n checkedKeys: checkedNodes.map(item => item.key),\n checkedNames: checkedNodes.map(item => item.name),\n });\n }\n },\n onExpand(e, treeId, treeNode) {\n // console.log('展开节点信息',treeNode)\n if (typeof props.onExpand == 'function') {\n props.onExpand({\n key: treeNode.key,\n isExpand: true,\n treeNode,\n expandedKeys: t.zTreeObj\n .getNodesByParam('open', true)\n .map(item => item.key),\n });\n }\n },\n onCollapse(e, treeId, treeNode) {\n // console.log('收起节点信息',treeNode)\n if (typeof props.onExpand == 'function') {\n props.onExpand({\n key: treeNode.key,\n isExpand: false,\n treeNode,\n expandedKeys: t.zTreeObj\n .getNodesByParam('open', true)\n .map(item => item.key),\n });\n }\n },\n onRightClick(e, treeId, treeNode) {\n // console.log('右击节点信息',treeNode);\n if (typeof props.onRightClick == 'function') {\n props.onRightClick({\n event: e,\n key: treeNode.key,\n treeNode,\n });\n }\n },\n onDblClick(e, treeId, treeNode) {\n // console.log('双击节点信息',treeNode);\n if (typeof props.onDblClick == 'function') {\n props.onDblClick({\n event: e,\n key: treeNode.key,\n treeNode,\n });\n }\n },\n },\n };\n // 继承外部配置\n if (typeof this.props.customCfg == 'object') {\n merge(this.treeSetting, this.props.customCfg);\n }\n }\n\n // 初始化树的数据,对expandedKeys,checkedKeys做处理\n initTreeNodes(props) {\n const t = this;\n this.keyNameMapping = {};\n if (!Array.isArray(props.data)) {\n this.treeNodes = [];\n } else {\n const checkedKeys = props.checkedKeys || [];\n const expandedKeys = props.expandedKeys || [];\n const chkDisabled = !!props.disableCheckboxAll;\n this.treeNodes = (function genNodes(nodes) {\n return nodes\n .map(item => {\n const checked = checkedKeys.indexOf(item.key) != -1;\n const open = expandedKeys.indexOf(item.key) != -1;\n t.keyNameMapping[item.key] = item.name;\n if (Array.isArray(item.children) && item.children.length > 0) {\n return {\n chkDisabled,\n selectable: true,\n ...item,\n checked,\n open,\n children: genNodes(item.children),\n };\n } else {\n return {\n chkDisabled,\n selectable: true,\n ...item,\n checked,\n open,\n };\n }\n })\n .map(item => {\n if (Array.isArray(item.children) && item.children.length > 0) {\n const newNode = { ...item };\n // 如果子节点全部被勾选,父节点自动勾选\n if (item.children.every(item => item.checked)) {\n newNode.checked = true;\n }\n // 如果配置了自动展开父节点,父节点自动展开\n if (props.autoExpandParent && item.children.some(item => item.open)) {\n newNode.open = true;\n }\n return newNode;\n } else {\n return item;\n }\n });\n })(props.data);\n }\n }\n\n // 重新生成树\n refreshTree(newProps) {\n this.zTreeObj && this.zTreeObj.destroy();\n this.initTreeSetting(newProps);\n this.initTreeNodes(newProps);\n this.zTreeObj = $.fn.zTree.init($(`#${this.treeId}`), this.treeSetting, this.treeNodes);\n if (Array.isArray(newProps.selectedKeys)) {\n this.selectNodes(newProps.selectedKeys, newProps.multiple);\n }\n // 初始化全展开判断\n if (newProps.defaultExpandAll && !newProps.expandedKeys) {\n this.zTreeObj.expandAll(true);\n }\n }\n\n // 展开或折叠相关节点,expandFlag为true表示展开,false表示折叠\n expandNodes(expandedKeys, expandFlag = true) {\n for (let i = 0, len = expandedKeys.length; i < len; i++) {\n const node = this.zTreeObj.getNodesByParam('key', expandedKeys[i]).pop();\n if (node) {\n this.zTreeObj.expandNode(node, expandFlag, false, false);\n }\n }\n }\n\n // 勾选节点, checkedFlag为true表示勾选,false表示取消勾选\n checkNodes(checkedKeys, checkedFlag = true) {\n for (let i = 0, len = checkedKeys.length; i < len; i++) {\n const node = this.zTreeObj.getNodesByParam('key', checkedKeys[i]).pop();\n if (node) {\n // 隐藏节点的勾选状态也要改变\n node.checked = checkedFlag;\n this.zTreeObj.updateNode(node, true);\n // this.zTreeObj.checkNode(node,checkedFlag,false);\n }\n }\n }\n\n // 点击选择节点\n selectNodes(selectedKeys, multiple) {\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\n if (node) {\n this.zTreeObj.selectNode(node, multiple, true);\n }\n }\n }\n\n // 取消选择节点\n cancelSelectedNodes(selectedKeys) {\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\n if (node) {\n this.zTreeObj.cancelSelectedNode(node);\n }\n }\n }\n\n fuzzySearch(keyworld, isHighLight = true) {\n const t = this;\n const nameKey = this.zTreeObj.setting.data.key.name; // get the key of the node name\n // isHighLight = isHighLight===false?false:true;//default true, only use false to disable highlight\n // isExpand = isExpand?true:false; // not to expand in default\n this.zTreeObj.setting.view.nameIsHTML = isHighLight; // allow use html in node name for highlight use\n\n const metaChar = '[\\\\[\\\\]\\\\\\\\^\\\\$\\\\.\\\\|\\\\?\\\\*\\\\+\\\\(\\\\)]'; // js meta characters\n const rexMeta = new RegExp(metaChar, 'gi'); // regular expression to match meta characters\n\n // searchNodeLazy(keyworld);\n ztreeFilter(t.zTreeObj, keyworld);\n\n // -----------------------------内部函数----------------------------------\n // keywords filter function\n function ztreeFilter(zTreeObj, _keywords) {\n if (!_keywords) {\n _keywords = ''; // default blank for _keywords\n }\n\n // function to find the matching node\n function filterFunc(node) {\n if (node && node.oldname && node.oldname.length > 0) {\n node[nameKey] = node.oldname; // recover oldname of the node if exist\n }\n zTreeObj.updateNode(node); // update node to for modifications take effect\n if (_keywords.length == 0) {\n // return true to show all nodes if the keyword is blank\n zTreeObj.showNode(node);\n // zTreeObj.expandNode(node,isExpand);\n return true;\n }\n // transform node name and keywords to lowercase\n if (\n node[nameKey] &&\n node[nameKey].toLowerCase().indexOf(_keywords.toLowerCase()) != -1\n ) {\n if (isHighLight) {\n // highlight process\n // a new variable 'newKeywords' created to store the keywords information\n // keep the parameter '_keywords' as initial and it will be used in next node\n // process the meta characters in _keywords thus the RegExp can be correctly used in str.replace\n const newKeywords = _keywords.replace(rexMeta, function(matchStr) {\n // add escape character before meta characters\n return '\\\\' + matchStr;\n });\n node.oldname = node[nameKey]; // store the old name\n const rexGlobal = new RegExp(newKeywords, 'gi'); // 'g' for global,'i' for ignore case\n // use replace(RegExp,replacement) since replace(/substr/g,replacement) cannot be used here\n node[nameKey] = node.oldname.replace(rexGlobal, function(originalText) {\n // highlight the matching words in node name\n const highLightText =\n '<span style=\"color: whitesmoke;background-color:#f50;\">' +\n originalText +\n '</span>';\n return highLightText;\n });\n zTreeObj.updateNode(node); // update node for modifications take effect\n }\n zTreeObj.showNode(node); // show node with matching keywords\n return true; // return true and show this node\n }\n\n zTreeObj.hideNode(node); // hide node that not matched\n return false; // return false for node not matched\n }\n\n const nodesShow = zTreeObj.getNodesByFilter(filterFunc); // get all nodes that would be shown\n processShowNodes(zTreeObj, nodesShow, _keywords); // nodes should be reprocessed to show correctly\n }\n\n /**\n * reprocess of nodes before showing\n */\n function processShowNodes(zTreeObj, nodesShow, _keywords) {\n if (nodesShow && nodesShow.length > 0) {\n // process the ancient nodes if _keywords is not blank\n if (_keywords.length > 0) {\n $.each(nodesShow, function(n, obj) {\n const pathOfOne = obj.getPath(); // get all the ancient nodes including current node\n if (pathOfOne && pathOfOne.length > 0) {\n // i < pathOfOne.length-1 process every node in path except self\n for (let i = 0; i < pathOfOne.length - 1; i++) {\n zTreeObj.showNode(pathOfOne[i]); // show node\n zTreeObj.expandNode(pathOfOne[i], true); // expand node\n }\n }\n });\n } else {\n // show all nodes when _keywords is blank and expand the root nodes\n const rootNodes = zTreeObj.getNodesByParam('level', '0'); // get all root nodes\n $.each(rootNodes, function(n, obj) {\n zTreeObj.expandNode(obj, true); // expand all root nodes\n });\n }\n }\n }\n }\n\n // 清空搜索框数据(供外部调用)\n clearSearch() {\n if (this.state.searchVal.trim() == '') return;\n this.setState({\n searchVal: '',\n });\n this.refreshTree(this.props);\n }\n\n // 获取所有已被勾选的节点\n getCheckedNodes() {\n return this.zTreeObj\n .getNodesByFilter(node => {\n // 节点被勾选(非半勾状态)\n if (this.props.checkStrictly) return node.checked;\n return node.checked && node.check_Child_State != 1;\n })\n .map(item => {\n return {\n ...item,\n name: item.oldname || item.name, // 搜索树会改变节点的name\n };\n });\n }\n\n // 获取所有已被点击选中的节点\n getSelectedNodes() {\n return this.zTreeObj.getSelectedNodes().map(item => {\n return {\n ...item,\n name: item.oldname || item.name,\n };\n });\n }\n\n // 展开所有节点(供外部调用)\n expandAll() {\n this.zTreeObj.expandAll(true);\n }\n\n // 收起所有节点(供外部调用)\n collapseAll() {\n this.zTreeObj.expandAll(false);\n }\n\n render() {\n const t = this;\n const { prefixCls, showSearch, searchPlaceholder } = t.props;\n return (\n <div\n className={classnames(`${prefixCls}-wraaper`, {\n [`${prefixCls}-has-search`]: showSearch,\n })}\n >\n {showSearch && (\n <div className={`${prefixCls}-search`}>\n <Input\n value={t.state.searchVal}\n placeholder={searchPlaceholder || '请输入要查询的关键字'}\n onChange={e => {\n t.setState({\n searchVal: e.target.value,\n });\n t.fuzzySearch(e.target.value.trim());\n }}\n />\n </div>\n )}\n <div id={this.treeId} className={classnames('ztree', prefixCls)} />\n </div>\n );\n }\n}\n\nVtxZtree.propTypes = {\n showSearch: PropTypes.bool,\n searchPlaceholder: PropTypes.string,\n data: PropTypes.array,\n refreshFlag: PropTypes.number,\n customCfg: PropTypes.object,\n checkStrictly: PropTypes.bool,\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","names":[],"sources":["vtx-ztree/style/index.js"],"sourcesContent":["import 'antd/lib/input/style';\r\nimport './index.less';\r\n"],"mappings":";;AAAA;;AACA"}
1
+ {"version":3,"file":"css.js","names":[],"sources":["vtx-ztree/style/index.js"],"sourcesContent":["import 'antd/lib/input/style';\nimport './index.less';\n"],"mappings":";;AAAA;;AACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["vtx-ztree/style/index.js"],"sourcesContent":["import 'antd/lib/input/style';\r\nimport './index.less';\r\n"],"mappings":";;AAAA;;AACA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["vtx-ztree/style/index.js"],"sourcesContent":["import 'antd/lib/input/style';\nimport './index.less';\n"],"mappings":";;AAAA;;AACA"}
@@ -1,45 +1,45 @@
1
- @import (reference) '~antd/lib/style/themes/index.less';
2
-
3
- @prefix-cls: vtx-ztree;
4
-
5
- .@{prefix-cls} {
6
- height: 100%;
7
- overflow: auto;
8
- &-has-search {
9
- padding-top: 52px;
10
- }
11
- &::-webkit-scrollbar when(@theme=dark) {
12
- width: 5px;
13
- background-color: @body-background;
14
- }
15
- &::-webkit-scrollbar when(@theme=default) {
16
- width: 5px;
17
- background-color: hsla(0, 0%, 80%, 0.08);
18
- }
19
- &::-webkit-scrollbar-thumb when(@theme=dark) {
20
- background-color: #434343;
21
- border-radius: 3px;
22
- }
23
- &::-webkit-scrollbar-thumb when(@theme=default) {
24
- background-color: rgba(0, 0, 0, 0.05);
25
- border-radius: 3px;
26
- }
27
- &-wraaper {
28
- position: relative;
29
- box-sizing: border-box;
30
- height: 100%;
31
- }
32
- &-search {
33
- position: absolute;
34
- top: 10px;
35
- right: 12px;
36
- left: 12px;
37
- margin-bottom: 10px;
38
- }
39
- }
40
- .ztree li a {
41
- color: @text-color !important;
42
- }
43
- .ztree li a.curSelectedNode {
44
- color: black !important;
45
- }
1
+ @import (reference) '~antd/lib/style/themes/index.less';
2
+
3
+ @prefix-cls: vtx-ztree;
4
+
5
+ .@{prefix-cls} {
6
+ height: 100%;
7
+ overflow: auto;
8
+ &-has-search {
9
+ padding-top: 52px;
10
+ }
11
+ &::-webkit-scrollbar when(@theme=dark) {
12
+ width: 5px;
13
+ background-color: @body-background;
14
+ }
15
+ &::-webkit-scrollbar when(@theme=default) {
16
+ width: 5px;
17
+ background-color: hsla(0, 0%, 80%, 0.08);
18
+ }
19
+ &::-webkit-scrollbar-thumb when(@theme=dark) {
20
+ background-color: #434343;
21
+ border-radius: 3px;
22
+ }
23
+ &::-webkit-scrollbar-thumb when(@theme=default) {
24
+ background-color: rgba(0, 0, 0, 0.05);
25
+ border-radius: 3px;
26
+ }
27
+ &-wraaper {
28
+ position: relative;
29
+ box-sizing: border-box;
30
+ height: 100%;
31
+ }
32
+ &-search {
33
+ position: absolute;
34
+ top: 10px;
35
+ right: 12px;
36
+ left: 12px;
37
+ margin-bottom: 10px;
38
+ }
39
+ }
40
+ .ztree li a {
41
+ color: @text-color !important;
42
+ }
43
+ .ztree li a.curSelectedNode {
44
+ color: black !important;
45
+ }