amis 1.9.0-beta.12 → 1.9.0-beta.15

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 (365) hide show
  1. package/lib/Schema.d.ts +4 -2
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/SchemaRenderer.d.ts +2 -2
  4. package/lib/SchemaRenderer.js +3 -3
  5. package/lib/SchemaRenderer.js.map +2 -2
  6. package/lib/actions/Action.d.ts +8 -6
  7. package/lib/actions/Action.js.map +2 -2
  8. package/lib/actions/AjaxAction.d.ts +10 -7
  9. package/lib/actions/AjaxAction.js +27 -21
  10. package/lib/actions/AjaxAction.js.map +2 -2
  11. package/lib/actions/BreakAction.d.ts +2 -2
  12. package/lib/actions/BreakAction.js.map +1 -1
  13. package/lib/actions/BroadcastAction.d.ts +3 -3
  14. package/lib/actions/BroadcastAction.js +3 -2
  15. package/lib/actions/BroadcastAction.js.map +2 -2
  16. package/lib/actions/CmptAction.d.ts +2 -2
  17. package/lib/actions/CmptAction.js +7 -9
  18. package/lib/actions/CmptAction.js.map +2 -2
  19. package/lib/actions/ContinueAction.d.ts +2 -2
  20. package/lib/actions/ContinueAction.js.map +1 -1
  21. package/lib/actions/CopyAction.d.ts +7 -4
  22. package/lib/actions/CopyAction.js +8 -6
  23. package/lib/actions/CopyAction.js.map +2 -2
  24. package/lib/actions/CustomAction.d.ts +2 -2
  25. package/lib/actions/CustomAction.js.map +1 -1
  26. package/lib/actions/DialogAction.d.ts +14 -8
  27. package/lib/actions/DialogAction.js +6 -6
  28. package/lib/actions/DialogAction.js.map +2 -2
  29. package/lib/actions/DrawerAction.d.ts +3 -3
  30. package/lib/actions/DrawerAction.js.map +1 -1
  31. package/lib/actions/EmailAction.d.ts +10 -7
  32. package/lib/actions/EmailAction.js +4 -5
  33. package/lib/actions/EmailAction.js.map +2 -2
  34. package/lib/actions/LinkAction.d.ts +19 -11
  35. package/lib/actions/LinkAction.js +6 -5
  36. package/lib/actions/LinkAction.js.map +2 -2
  37. package/lib/actions/LoopAction.d.ts +6 -3
  38. package/lib/actions/LoopAction.js +22 -20
  39. package/lib/actions/LoopAction.js.map +2 -2
  40. package/lib/actions/PageAction.d.ts +8 -5
  41. package/lib/actions/PageAction.js +3 -2
  42. package/lib/actions/PageAction.js.map +2 -2
  43. package/lib/actions/ParallelAction.d.ts +2 -2
  44. package/lib/actions/ParallelAction.js.map +1 -1
  45. package/lib/actions/SwitchAction.d.ts +2 -2
  46. package/lib/actions/SwitchAction.js.map +1 -1
  47. package/lib/actions/ToastAction.d.ts +2 -2
  48. package/lib/actions/ToastAction.js +6 -4
  49. package/lib/actions/ToastAction.js.map +2 -2
  50. package/lib/components/Editor.d.ts +84 -84
  51. package/lib/components/InputBox.js +1 -1
  52. package/lib/components/InputBox.js.map +2 -2
  53. package/lib/components/Pagination.d.ts +1175 -0
  54. package/lib/components/Pagination.js +274 -0
  55. package/lib/components/Pagination.js.map +13 -0
  56. package/lib/components/PickerContainer.d.ts +1 -0
  57. package/lib/components/PickerContainer.js +3 -2
  58. package/lib/components/PickerContainer.js.map +2 -2
  59. package/lib/components/Rating.js +11 -9
  60. package/lib/components/Rating.js.map +2 -2
  61. package/lib/components/Select.js +3 -3
  62. package/lib/components/Select.js.map +2 -2
  63. package/lib/components/Tag.d.ts +148 -0
  64. package/lib/components/Tag.js +96 -0
  65. package/lib/components/Tag.js.map +13 -0
  66. package/lib/components/TooltipWrapper.d.ts +25 -21
  67. package/lib/components/TooltipWrapper.js +11 -1
  68. package/lib/components/TooltipWrapper.js.map +2 -2
  69. package/lib/components/TransferDropDown.d.ts +85 -84
  70. package/lib/components/TransferDropDown.js +2 -2
  71. package/lib/components/TransferDropDown.js.map +2 -2
  72. package/lib/components/Tree.d.ts +84 -84
  73. package/lib/components/formula/VariableList.d.ts +1 -0
  74. package/lib/components/formula/VariableList.js.map +2 -2
  75. package/lib/components/icons.js +2 -0
  76. package/lib/components/icons.js.map +2 -2
  77. package/lib/components/index.d.ts +4 -1
  78. package/lib/components/index.js +7 -1
  79. package/lib/components/index.js.map +2 -2
  80. package/lib/components/schema-editor/Array.d.ts +11 -0
  81. package/lib/components/schema-editor/Array.js +66 -0
  82. package/lib/components/schema-editor/Array.js.map +13 -0
  83. package/lib/components/schema-editor/Common.d.ts +29 -0
  84. package/lib/components/schema-editor/Common.js +69 -0
  85. package/lib/components/schema-editor/Common.js.map +13 -0
  86. package/lib/components/schema-editor/Item.d.ts +9 -0
  87. package/lib/components/schema-editor/Item.js +31 -0
  88. package/lib/components/schema-editor/Item.js.map +13 -0
  89. package/lib/components/schema-editor/Object.d.ts +44 -0
  90. package/lib/components/schema-editor/Object.js +191 -0
  91. package/lib/components/schema-editor/Object.js.map +13 -0
  92. package/lib/components/schema-editor/SchemaVariableList.d.ts +316 -0
  93. package/lib/components/schema-editor/SchemaVariableList.js +74 -0
  94. package/lib/components/schema-editor/SchemaVariableList.js.map +13 -0
  95. package/lib/components/schema-editor/SchemaVariableListPicker.d.ts +305 -0
  96. package/lib/components/schema-editor/SchemaVariableListPicker.js +32 -0
  97. package/lib/components/schema-editor/SchemaVariableListPicker.js.map +13 -0
  98. package/lib/components/schema-editor/index.d.ts +520 -0
  99. package/lib/components/schema-editor/index.js +118 -0
  100. package/lib/components/schema-editor/index.js.map +13 -0
  101. package/lib/components/table/Cell.d.ts +930 -0
  102. package/lib/components/table/Cell.js +36 -0
  103. package/lib/components/table/Cell.js.map +13 -0
  104. package/lib/components/table/HeadCellDropDown.d.ts +514 -0
  105. package/lib/components/table/HeadCellDropDown.js +52 -0
  106. package/lib/components/table/HeadCellDropDown.js.map +13 -0
  107. package/lib/components/table/HeadCellFilter.d.ts +771 -0
  108. package/lib/components/table/HeadCellFilter.js +106 -0
  109. package/lib/components/table/HeadCellFilter.js.map +13 -0
  110. package/lib/components/table/HeadCellSelect.d.ts +672 -0
  111. package/lib/components/table/HeadCellSelect.js +46 -0
  112. package/lib/components/table/HeadCellSelect.js.map +13 -0
  113. package/lib/components/table/HeadCellSort.d.ts +498 -0
  114. package/lib/components/table/HeadCellSort.js +67 -0
  115. package/lib/components/table/HeadCellSort.js.map +13 -0
  116. package/lib/components/table/index.d.ts +1355 -0
  117. package/lib/components/table/index.js +1095 -0
  118. package/lib/components/table/index.js.map +13 -0
  119. package/lib/env.d.ts +2 -4
  120. package/lib/env.js.map +2 -2
  121. package/lib/factory.js +0 -95
  122. package/lib/factory.js.map +2 -2
  123. package/lib/icons/dot.js +11 -0
  124. package/lib/index.d.ts +6 -1
  125. package/lib/index.js +9 -2
  126. package/lib/index.js.map +2 -2
  127. package/lib/locale/de-DE.js +18 -1
  128. package/lib/locale/de-DE.js.map +2 -2
  129. package/lib/locale/en-US.js +18 -1
  130. package/lib/locale/en-US.js.map +2 -2
  131. package/lib/locale/zh-CN.js +20 -1
  132. package/lib/locale/zh-CN.js.map +2 -2
  133. package/lib/renderers/Action.js +0 -2
  134. package/lib/renderers/Action.js.map +2 -2
  135. package/lib/renderers/Carousel.d.ts +5 -1
  136. package/lib/renderers/Carousel.js +18 -5
  137. package/lib/renderers/Carousel.js.map +2 -2
  138. package/lib/renderers/Form/ButtonGroupSelect.d.ts +2 -0
  139. package/lib/renderers/Form/ButtonGroupSelect.js +7 -0
  140. package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
  141. package/lib/renderers/Form/Checkbox.js +3 -4
  142. package/lib/renderers/Form/Checkbox.js.map +2 -2
  143. package/lib/renderers/Form/Checkboxes.d.ts +2 -1
  144. package/lib/renderers/Form/Checkboxes.js +19 -14
  145. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  146. package/lib/renderers/Form/Combo.js +23 -4
  147. package/lib/renderers/Form/Combo.js.map +2 -2
  148. package/lib/renderers/Form/DiffEditor.d.ts +126 -18
  149. package/lib/renderers/Form/Editor.d.ts +412 -112
  150. package/lib/renderers/Form/Editor.js +10 -1
  151. package/lib/renderers/Form/Editor.js.map +2 -2
  152. package/lib/renderers/Form/InputExcel.js +6 -1
  153. package/lib/renderers/Form/InputExcel.js.map +2 -2
  154. package/lib/renderers/Form/InputFile.js +1 -2
  155. package/lib/renderers/Form/InputFile.js.map +2 -2
  156. package/lib/renderers/Form/InputTree.js +1 -1
  157. package/lib/renderers/Form/InputTree.js.map +2 -2
  158. package/lib/renderers/Form/Item.d.ts +0 -6
  159. package/lib/renderers/Form/JSONSchemaEditor.d.ts +41 -0
  160. package/lib/renderers/Form/JSONSchemaEditor.js +33 -0
  161. package/lib/renderers/Form/JSONSchemaEditor.js.map +13 -0
  162. package/lib/renderers/Form/ListSelect.d.ts +2 -0
  163. package/lib/renderers/Form/ListSelect.js +7 -0
  164. package/lib/renderers/Form/ListSelect.js.map +2 -2
  165. package/lib/renderers/Form/Options.js +1 -0
  166. package/lib/renderers/Form/Options.js.map +2 -2
  167. package/lib/renderers/Form/Select.js +12 -1
  168. package/lib/renderers/Form/Select.js.map +2 -2
  169. package/lib/renderers/Form/TabsTransfer.d.ts +1 -1
  170. package/lib/renderers/Form/TabsTransfer.js +2 -2
  171. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  172. package/lib/renderers/Form/TreeSelect.d.ts +4 -0
  173. package/lib/renderers/Form/TreeSelect.js +2 -2
  174. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  175. package/lib/renderers/Form/wrapControl.js +10 -5
  176. package/lib/renderers/Form/wrapControl.js.map +2 -2
  177. package/lib/renderers/Pagination.d.ts +49 -30
  178. package/lib/renderers/Pagination.js +3 -132
  179. package/lib/renderers/Pagination.js.map +2 -2
  180. package/lib/renderers/Table/HeadCellSearchDropdown.js +0 -1
  181. package/lib/renderers/Table/HeadCellSearchDropdown.js.map +2 -2
  182. package/lib/renderers/Table-v2/HeadCellSearchDropdown.d.ts +29 -0
  183. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +158 -0
  184. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js.map +13 -0
  185. package/lib/renderers/Table-v2/TableCell.d.ts +6 -0
  186. package/lib/renderers/Table-v2/TableCell.js +28 -0
  187. package/lib/renderers/Table-v2/TableCell.js.map +13 -0
  188. package/lib/renderers/Table-v2/index.d.ts +256 -0
  189. package/lib/renderers/Table-v2/index.js +548 -0
  190. package/lib/renderers/Table-v2/index.js.map +13 -0
  191. package/lib/renderers/Tabs.js +1 -1
  192. package/lib/renderers/Tabs.js.map +2 -2
  193. package/lib/renderers/Tag.d.ts +66 -0
  194. package/lib/renderers/Tag.js +53 -0
  195. package/lib/renderers/Tag.js.map +13 -0
  196. package/lib/renderers/Wizard.js +3 -3
  197. package/lib/renderers/Wizard.js.map +2 -2
  198. package/lib/schemaExtend.js +24 -30
  199. package/lib/schemaExtend.js.map +2 -2
  200. package/lib/store/combo.d.ts +140 -20
  201. package/lib/store/form.d.ts +56 -8
  202. package/lib/store/formItem.d.ts +3 -1
  203. package/lib/store/formItem.js +3 -1
  204. package/lib/store/formItem.js.map +2 -2
  205. package/lib/store/index.js +2 -0
  206. package/lib/store/index.js.map +2 -2
  207. package/lib/store/table-v2.d.ts +308 -0
  208. package/lib/store/table-v2.js +452 -0
  209. package/lib/store/table-v2.js.map +13 -0
  210. package/lib/store/table.d.ts +112 -16
  211. package/lib/store/table.js +1 -1
  212. package/lib/store/table.js.map +2 -2
  213. package/lib/themes/ang-ie11.css +1686 -120
  214. package/lib/themes/ang.css +1807 -208
  215. package/lib/themes/ang.css.map +1 -1
  216. package/lib/themes/antd-ie11.css +1667 -101
  217. package/lib/themes/antd.css +1789 -201
  218. package/lib/themes/antd.css.map +1 -1
  219. package/lib/themes/cxd-ie11.css +1662 -97
  220. package/lib/themes/cxd.css +1983 -394
  221. package/lib/themes/cxd.css.map +1 -1
  222. package/lib/themes/dark-ie11.css +1667 -101
  223. package/lib/themes/dark.css +1789 -201
  224. package/lib/themes/dark.css.map +1 -1
  225. package/lib/themes/default-ie11.css +1662 -97
  226. package/lib/themes/default.css +1983 -394
  227. package/lib/themes/default.css.map +1 -1
  228. package/lib/utils/DataSchema.d.ts +25 -0
  229. package/lib/utils/DataSchema.js +104 -0
  230. package/lib/utils/DataSchema.js.map +13 -0
  231. package/lib/utils/DataScope.d.ts +23 -0
  232. package/lib/utils/DataScope.js +140 -0
  233. package/lib/utils/DataScope.js.map +13 -0
  234. package/lib/utils/handleAction.js +1 -1
  235. package/lib/utils/handleAction.js.map +2 -2
  236. package/lib/utils/renderer-event.d.ts +8 -2
  237. package/lib/utils/renderer-event.js +102 -1
  238. package/lib/utils/renderer-event.js.map +2 -2
  239. package/package.json +3 -2
  240. package/schema.json +1476 -469
  241. package/scss/_properties.scss +69 -0
  242. package/scss/components/_button.scss +37 -39
  243. package/scss/components/_context-menu.scss +3 -18
  244. package/scss/components/_json-schema-editor.scss +126 -0
  245. package/scss/components/_pagination.scss +104 -23
  246. package/scss/components/_result-box.scss +2 -2
  247. package/scss/components/_table-v2.scss +912 -0
  248. package/scss/components/_tag.scss +177 -0
  249. package/scss/components/form/_selection.scss +1 -14
  250. package/scss/components/form/_text.scss +1 -1
  251. package/scss/themes/_antd-variables.scss +0 -13
  252. package/scss/themes/_common.scss +3 -0
  253. package/scss/themes/_cxd-variables.scss +7 -17
  254. package/scss/themes/_dark-variables.scss +0 -13
  255. package/scss/themes/cxd.scss +1 -1
  256. package/sdk/ang-ie11.css +2240 -227
  257. package/sdk/ang.css +2905 -859
  258. package/sdk/antd-ie11.css +2233 -220
  259. package/sdk/antd.css +2905 -870
  260. package/sdk/barcode.js +51 -51
  261. package/sdk/charts.js +14 -14
  262. package/sdk/codemirror.js +7 -7
  263. package/sdk/color-picker.js +65 -65
  264. package/sdk/cropperjs.js +2 -2
  265. package/sdk/cxd-ie11.css +2223 -211
  266. package/sdk/cxd.css +2911 -875
  267. package/sdk/dark-ie11.css +2233 -220
  268. package/sdk/dark.css +2905 -870
  269. package/sdk/exceljs.js +1 -1
  270. package/sdk/locale/de-DE.js +18 -1
  271. package/sdk/markdown.js +69 -69
  272. package/sdk/papaparse.js +1 -1
  273. package/sdk/renderers/Form/CityDB.js +1 -1
  274. package/sdk/rest.js +16 -16
  275. package/sdk/rich-text.js +62 -62
  276. package/sdk/sdk-ie11.css +2223 -211
  277. package/sdk/sdk.css +2911 -875
  278. package/sdk/sdk.js +1326 -1270
  279. package/sdk/thirds/hls.js/hls.js +1 -1
  280. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  281. package/sdk/tinymce.js +57 -57
  282. package/src/Schema.ts +7 -0
  283. package/src/SchemaRenderer.tsx +4 -5
  284. package/src/actions/Action.ts +7 -6
  285. package/src/actions/AjaxAction.ts +33 -24
  286. package/src/actions/BreakAction.ts +2 -2
  287. package/src/actions/BroadcastAction.ts +6 -5
  288. package/src/actions/CmptAction.ts +5 -6
  289. package/src/actions/ContinueAction.ts +2 -2
  290. package/src/actions/CopyAction.ts +14 -8
  291. package/src/actions/CustomAction.ts +2 -2
  292. package/src/actions/DialogAction.ts +16 -10
  293. package/src/actions/DrawerAction.ts +3 -3
  294. package/src/actions/EmailAction.ts +12 -12
  295. package/src/actions/LinkAction.ts +34 -14
  296. package/src/actions/LoopAction.ts +13 -8
  297. package/src/actions/PageAction.ts +9 -6
  298. package/src/actions/ParallelAction.ts +2 -2
  299. package/src/actions/SwitchAction.ts +2 -2
  300. package/src/actions/ToastAction.ts +9 -5
  301. package/src/components/InputBox.tsx +1 -0
  302. package/src/components/Pagination.tsx +446 -0
  303. package/src/components/PickerContainer.tsx +8 -5
  304. package/src/components/Rating.tsx +16 -9
  305. package/src/components/Select.tsx +3 -3
  306. package/src/components/Tag.tsx +179 -0
  307. package/src/components/TooltipWrapper.tsx +14 -1
  308. package/src/components/TransferDropDown.tsx +3 -0
  309. package/src/components/formula/VariableList.tsx +1 -0
  310. package/src/components/icons.tsx +2 -0
  311. package/src/components/index.tsx +7 -1
  312. package/src/components/schema-editor/Array.tsx +95 -0
  313. package/src/components/schema-editor/Common.tsx +138 -0
  314. package/src/components/schema-editor/Item.tsx +36 -0
  315. package/src/components/schema-editor/Object.tsx +299 -0
  316. package/src/components/schema-editor/SchemaVariableList.tsx +97 -0
  317. package/src/components/schema-editor/SchemaVariableListPicker.tsx +66 -0
  318. package/src/components/schema-editor/index.tsx +211 -0
  319. package/src/components/table/Cell.tsx +70 -0
  320. package/src/components/table/HeadCellDropDown.tsx +115 -0
  321. package/src/components/table/HeadCellFilter.tsx +193 -0
  322. package/src/components/table/HeadCellSelect.tsx +86 -0
  323. package/src/components/table/HeadCellSort.tsx +102 -0
  324. package/src/components/table/index.tsx +1681 -0
  325. package/src/env.tsx +7 -14
  326. package/src/factory.tsx +3 -106
  327. package/src/icons/dot.svg +11 -0
  328. package/src/index.tsx +8 -1
  329. package/src/locale/de-DE.ts +18 -1
  330. package/src/locale/en-US.ts +18 -1
  331. package/src/locale/zh-CN.ts +20 -1
  332. package/src/renderers/Action.tsx +1 -1
  333. package/src/renderers/Carousel.tsx +21 -6
  334. package/src/renderers/Form/ButtonGroupSelect.tsx +10 -1
  335. package/src/renderers/Form/Checkbox.tsx +4 -4
  336. package/src/renderers/Form/Checkboxes.tsx +31 -25
  337. package/src/renderers/Form/Combo.tsx +20 -4
  338. package/src/renderers/Form/Editor.tsx +15 -1
  339. package/src/renderers/Form/InputExcel.tsx +6 -1
  340. package/src/renderers/Form/InputFile.tsx +1 -2
  341. package/src/renderers/Form/InputTree.tsx +1 -1
  342. package/src/renderers/Form/JSONSchemaEditor.tsx +67 -0
  343. package/src/renderers/Form/ListSelect.tsx +9 -1
  344. package/src/renderers/Form/Options.tsx +1 -1
  345. package/src/renderers/Form/Select.tsx +7 -0
  346. package/src/renderers/Form/TabsTransfer.tsx +2 -2
  347. package/src/renderers/Form/TreeSelect.tsx +8 -1
  348. package/src/renderers/Form/wrapControl.tsx +11 -5
  349. package/src/renderers/Pagination.tsx +65 -253
  350. package/src/renderers/Table/HeadCellSearchDropdown.tsx +0 -1
  351. package/src/renderers/Table-v2/HeadCellSearchDropdown.tsx +244 -0
  352. package/src/renderers/Table-v2/TableCell.tsx +19 -0
  353. package/src/renderers/Table-v2/index.tsx +1140 -0
  354. package/src/renderers/Tabs.tsx +1 -1
  355. package/src/renderers/Tag.tsx +128 -0
  356. package/src/renderers/Wizard.tsx +3 -3
  357. package/src/schemaExtend.ts +24 -28
  358. package/src/store/formItem.ts +5 -1
  359. package/src/store/index.ts +2 -0
  360. package/src/store/table-v2.ts +646 -0
  361. package/src/store/table.ts +1 -1
  362. package/src/utils/DataSchema.ts +131 -0
  363. package/src/utils/DataScope.ts +190 -0
  364. package/src/utils/handleAction.ts +1 -1
  365. package/src/utils/renderer-event.ts +113 -2
@@ -58,7 +58,16 @@ var EditorControl = /** @class */ (function (_super) {
58
58
  _this.updateContainerSize(editor, monaco); // typing
59
59
  requestAnimationFrame(_this.updateContainerSize.bind(_this, editor, monaco)); // folding
60
60
  }).dispose);
61
- this.props.editorDidMount && this.props.editorDidMount(editor, monaco);
61
+ if (this.props.editorDidMount) {
62
+ var editorDidMount = this.props.editorDidMount;
63
+ if (typeof editorDidMount === 'string') {
64
+ editorDidMount = new Function('editor', 'monaco');
65
+ }
66
+ var dispose = editorDidMount(editor, monaco);
67
+ if (typeof dispose === 'function') {
68
+ this.toDispose.push(dispose);
69
+ }
70
+ }
62
71
  };
63
72
  EditorControl.prototype.updateContainerSize = function (editor, monaco) {
64
73
  var _a;
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Form/Editor.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport LazyComponent from '../../components/LazyComponent';\nimport debouce from 'lodash/debounce';\nimport Editor from '../../components/Editor';\nimport {autobind} from '../../utils/helper';\nimport {\n isPureVariable,\n resolveVariableAndFilter\n} from '../../utils/tpl-builtin';\nimport {bindRendererEvent} from '../../actions/Decorators';\n\nimport type {Position} from 'monaco-editor';\nimport type {ListenerAction} from '../../actions/Action';\n\n/**\n * Editor 代码编辑器\n * 文档:https://baidu.gitee.io/amis/docs/components/form/editor\n */\nexport interface EditorControlSchema extends Omit<FormBaseControl, 'size'> {\n type:\n | 'editor'\n | 'bat-editor'\n | 'c-editor'\n | 'coffeescript-editor'\n | 'cpp-editor'\n | 'csharp-editor'\n | 'css-editor'\n | 'dockerfile-editor'\n | 'fsharp-editor'\n | 'go-editor'\n | 'handlebars-editor'\n | 'html-editor'\n | 'ini-editor'\n | 'java-editor'\n | 'javascript-editor'\n | 'json-editor'\n | 'less-editor'\n | 'lua-editor'\n | 'markdown-editor'\n | 'msdax-editor'\n | 'objective-c-editor'\n | 'php-editor'\n | 'plaintext-editor'\n | 'postiats-editor'\n | 'powershell-editor'\n | 'pug-editor'\n | 'python-editor'\n | 'r-editor'\n | 'razor-editor'\n | 'ruby-editor'\n | 'sb-editor'\n | 'scss-editor'\n | 'sol-editor'\n | 'sql-editor'\n | 'swift-editor'\n | 'typescript-editor'\n | 'vb-editor'\n | 'xml-editor'\n | 'yaml-editor';\n\n /**\n * 语言类型\n */\n language?:\n | 'bat'\n | 'c'\n | 'coffeescript'\n | 'cpp'\n | 'csharp'\n | 'css'\n | 'dockerfile'\n | 'fsharp'\n | 'go'\n | 'handlebars'\n | 'html'\n | 'ini'\n | 'java'\n | 'javascript'\n | 'json'\n | 'less'\n | 'lua'\n | 'markdown'\n | 'msdax'\n | 'objective-c'\n | 'php'\n | 'plaintext'\n | 'postiats'\n | 'powershell'\n | 'pug'\n | 'python'\n | 'r'\n | 'razor'\n | 'ruby'\n | 'sb'\n | 'scss'\n | 'shell'\n | 'sol'\n | 'sql'\n | 'swift'\n | 'typescript'\n | 'vb'\n | 'xml'\n | 'yaml';\n\n /**\n * 编辑器大小\n */\n size?: 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n\n /**\n * 是否展示全屏模式开关\n */\n allowFullscreen?: boolean;\n}\n\nexport type EditorRendererEvent = 'blur' | 'focus';\n\nexport interface EditorProps extends FormControlProps {\n options?: object;\n}\n\nexport default class EditorControl extends React.Component<EditorProps, any> {\n static defaultProps: Partial<EditorProps> = {\n language: 'javascript',\n editorTheme: 'vs',\n allowFullscreen: true,\n options: {\n automaticLayout: true,\n selectOnLineNumbers: true,\n scrollBeyondLastLine: false,\n folding: true,\n minimap: {\n enabled: false\n }\n }\n };\n\n state = {\n focused: false\n };\n editor: any;\n toDispose: Array<Function> = [];\n divRef = React.createRef<HTMLDivElement>();\n constructor(props: EditorProps) {\n super(props);\n\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleEditorMounted = this.handleEditorMounted.bind(this);\n }\n\n componentWillUnmount() {\n this.toDispose.forEach(fn => fn());\n }\n\n doAction(action: ListenerAction, args: any) {\n const actionType = action?.actionType as string;\n\n if (actionType === 'focus') {\n this.focus();\n }\n }\n\n focus() {\n this.editor.focus();\n this.setState({focused: true});\n\n // 最近一次光标位置\n const position: Position | null = this.editor?.getPosition();\n this.editor?.setPosition(position);\n }\n\n @bindRendererEvent<EditorProps, EditorRendererEvent>('focus')\n handleFocus() {\n this.setState({\n focused: true\n });\n }\n\n @bindRendererEvent<EditorProps, EditorRendererEvent>('blur')\n handleBlur() {\n this.setState({\n focused: false\n });\n }\n\n handleEditorMounted(editor: any, monaco: any) {\n this.editor = editor;\n this.toDispose.push(\n editor.onDidChangeModelDecorations(() => {\n this.updateContainerSize(editor, monaco); // typing\n requestAnimationFrame(\n this.updateContainerSize.bind(this, editor, monaco)\n ); // folding\n }).dispose\n );\n this.props.editorDidMount && this.props.editorDidMount(editor, monaco);\n }\n\n prevHeight = 0;\n @autobind\n updateContainerSize(editor: any, monaco: any) {\n if (!this.divRef.current) {\n return;\n }\n\n const lineHeight = editor.getOption(monaco.editor.EditorOption.lineHeight);\n const lineCount = editor.getModel()?.getLineCount() || 1;\n const height = editor.getTopForLineNumber(lineCount + 1) + lineHeight;\n\n if (this.prevHeight !== height) {\n this.prevHeight = height;\n this.divRef.current.style.height = `${height}px`;\n editor.layout();\n }\n }\n\n render() {\n const {\n className,\n classPrefix: ns,\n classnames: cx,\n value,\n onChange,\n disabled,\n options,\n editorTheme,\n size,\n data,\n allowFullscreen\n } = this.props;\n\n let language = this.props.language;\n\n let finnalValue = value;\n\n if (finnalValue && typeof finnalValue !== 'string') {\n finnalValue = JSON.stringify(finnalValue, null, 2);\n }\n\n if (isPureVariable(language)) {\n language = resolveVariableAndFilter(language, data);\n }\n\n return (\n <div\n ref={this.divRef}\n className={cx(\n `EditorControl`,\n {\n 'is-focused': this.state.focused,\n [`EditorControl--${size}`]: size\n },\n className\n )}\n >\n <LazyComponent\n classPrefix={ns}\n component={Editor}\n allowFullscreen={allowFullscreen}\n value={finnalValue}\n onChange={onChange}\n disabled={disabled}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n language={language}\n editorTheme={editorTheme}\n editorDidMount={this.handleEditorMounted}\n options={{\n ...options,\n readOnly: disabled\n }}\n />\n </div>\n );\n }\n}\n\nexport const availableLanguages = [\n 'bat',\n 'c',\n 'coffeescript',\n 'cpp',\n 'csharp',\n 'css',\n 'dockerfile',\n 'fsharp',\n 'go',\n 'handlebars',\n 'html',\n 'ini',\n 'java',\n 'javascript',\n 'json',\n 'less',\n 'lua',\n 'markdown',\n 'msdax',\n 'objective-c',\n 'php',\n 'plaintext',\n 'postiats',\n 'powershell',\n 'pug',\n 'python',\n 'r',\n 'razor',\n 'ruby',\n 'sb',\n 'scss',\n 'sol',\n 'shell',\n 'sql',\n 'swift',\n 'typescript',\n 'vb',\n 'xml',\n 'yaml'\n];\n\nexport const EditorControls: Array<typeof EditorControl> =\n availableLanguages.map((lang: string) => {\n @FormItem({\n type: `${lang}-editor`,\n sizeMutable: false\n })\n class EditorControlRenderer extends EditorControl {\n static lang = lang;\n static displayName = `${lang[0].toUpperCase()}${lang.substring(\n 1\n )}EditorControlRenderer`;\n static defaultProps = {\n ...EditorControl.defaultProps,\n language: lang\n };\n }\n\n return EditorControlRenderer;\n });\n\n@FormItem({\n type: 'js-editor',\n sizeMutable: false\n})\nclass JavascriptEditorControlRenderer extends EditorControl {\n static defaultProps = {\n ...EditorControl.defaultProps,\n language: 'javascript'\n };\n}\n\n@FormItem({\n type: 'ts-editor',\n sizeMutable: false\n})\nclass TypescriptEditorControlRenderer extends EditorControl {\n static defaultProps = {\n ...EditorControl.defaultProps,\n language: 'typescript'\n };\n}\n\n@FormItem({\n type: `editor`,\n sizeMutable: false\n})\nexport class EditorControlRenderer extends EditorControl {\n static defaultProps = {\n ...EditorControl.defaultProps,\n language: 'javascript'\n };\n}\n"
11
+ "import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport LazyComponent from '../../components/LazyComponent';\nimport debouce from 'lodash/debounce';\nimport Editor from '../../components/Editor';\nimport {autobind} from '../../utils/helper';\nimport {\n isPureVariable,\n resolveVariableAndFilter\n} from '../../utils/tpl-builtin';\nimport {bindRendererEvent} from '../../actions/Decorators';\n\nimport type {Position} from 'monaco-editor';\nimport type {ListenerAction} from '../../actions/Action';\n\n/**\n * Editor 代码编辑器\n * 文档:https://baidu.gitee.io/amis/docs/components/form/editor\n */\nexport interface EditorControlSchema extends Omit<FormBaseControl, 'size'> {\n type:\n | 'editor'\n | 'bat-editor'\n | 'c-editor'\n | 'coffeescript-editor'\n | 'cpp-editor'\n | 'csharp-editor'\n | 'css-editor'\n | 'dockerfile-editor'\n | 'fsharp-editor'\n | 'go-editor'\n | 'handlebars-editor'\n | 'html-editor'\n | 'ini-editor'\n | 'java-editor'\n | 'javascript-editor'\n | 'json-editor'\n | 'less-editor'\n | 'lua-editor'\n | 'markdown-editor'\n | 'msdax-editor'\n | 'objective-c-editor'\n | 'php-editor'\n | 'plaintext-editor'\n | 'postiats-editor'\n | 'powershell-editor'\n | 'pug-editor'\n | 'python-editor'\n | 'r-editor'\n | 'razor-editor'\n | 'ruby-editor'\n | 'sb-editor'\n | 'scss-editor'\n | 'sol-editor'\n | 'sql-editor'\n | 'swift-editor'\n | 'typescript-editor'\n | 'vb-editor'\n | 'xml-editor'\n | 'yaml-editor';\n\n /**\n * 语言类型\n */\n language?:\n | 'bat'\n | 'c'\n | 'coffeescript'\n | 'cpp'\n | 'csharp'\n | 'css'\n | 'dockerfile'\n | 'fsharp'\n | 'go'\n | 'handlebars'\n | 'html'\n | 'ini'\n | 'java'\n | 'javascript'\n | 'json'\n | 'less'\n | 'lua'\n | 'markdown'\n | 'msdax'\n | 'objective-c'\n | 'php'\n | 'plaintext'\n | 'postiats'\n | 'powershell'\n | 'pug'\n | 'python'\n | 'r'\n | 'razor'\n | 'ruby'\n | 'sb'\n | 'scss'\n | 'shell'\n | 'sol'\n | 'sql'\n | 'swift'\n | 'typescript'\n | 'vb'\n | 'xml'\n | 'yaml';\n\n /**\n * 编辑器大小\n */\n size?: 'sm' | 'md' | 'lg' | 'xl' | 'xxl';\n\n /**\n * 是否展示全屏模式开关\n */\n allowFullscreen?: boolean;\n\n /**\n * 获取编辑器底层实例\n */\n editorDidMount?: string;\n}\n\nexport type EditorRendererEvent = 'blur' | 'focus';\n\nexport interface EditorProps extends FormControlProps {\n options?: object;\n}\n\nexport default class EditorControl extends React.Component<EditorProps, any> {\n static defaultProps: Partial<EditorProps> = {\n language: 'javascript',\n editorTheme: 'vs',\n allowFullscreen: true,\n options: {\n automaticLayout: true,\n selectOnLineNumbers: true,\n scrollBeyondLastLine: false,\n folding: true,\n minimap: {\n enabled: false\n }\n }\n };\n\n state = {\n focused: false\n };\n editor: any;\n toDispose: Array<Function> = [];\n divRef = React.createRef<HTMLDivElement>();\n constructor(props: EditorProps) {\n super(props);\n\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleEditorMounted = this.handleEditorMounted.bind(this);\n }\n\n componentWillUnmount() {\n this.toDispose.forEach(fn => fn());\n }\n\n doAction(action: ListenerAction, args: any) {\n const actionType = action?.actionType as string;\n\n if (actionType === 'focus') {\n this.focus();\n }\n }\n\n focus() {\n this.editor.focus();\n this.setState({focused: true});\n\n // 最近一次光标位置\n const position: Position | null = this.editor?.getPosition();\n this.editor?.setPosition(position);\n }\n\n @bindRendererEvent<EditorProps, EditorRendererEvent>('focus')\n handleFocus() {\n this.setState({\n focused: true\n });\n }\n\n @bindRendererEvent<EditorProps, EditorRendererEvent>('blur')\n handleBlur() {\n this.setState({\n focused: false\n });\n }\n\n handleEditorMounted(editor: any, monaco: any) {\n this.editor = editor;\n this.toDispose.push(\n editor.onDidChangeModelDecorations(() => {\n this.updateContainerSize(editor, monaco); // typing\n requestAnimationFrame(\n this.updateContainerSize.bind(this, editor, monaco)\n ); // folding\n }).dispose\n );\n if (this.props.editorDidMount) {\n let editorDidMount = this.props.editorDidMount;\n if (typeof editorDidMount === 'string') {\n editorDidMount = new Function('editor', 'monaco');\n }\n const dispose = editorDidMount(editor, monaco);\n if (typeof dispose === 'function') {\n this.toDispose.push(dispose);\n }\n }\n }\n\n prevHeight = 0;\n @autobind\n updateContainerSize(editor: any, monaco: any) {\n if (!this.divRef.current) {\n return;\n }\n\n const lineHeight = editor.getOption(monaco.editor.EditorOption.lineHeight);\n const lineCount = editor.getModel()?.getLineCount() || 1;\n const height = editor.getTopForLineNumber(lineCount + 1) + lineHeight;\n\n if (this.prevHeight !== height) {\n this.prevHeight = height;\n this.divRef.current.style.height = `${height}px`;\n editor.layout();\n }\n }\n\n render() {\n const {\n className,\n classPrefix: ns,\n classnames: cx,\n value,\n onChange,\n disabled,\n options,\n editorTheme,\n size,\n data,\n allowFullscreen\n } = this.props;\n\n let language = this.props.language;\n\n let finnalValue = value;\n\n if (finnalValue && typeof finnalValue !== 'string') {\n finnalValue = JSON.stringify(finnalValue, null, 2);\n }\n\n if (isPureVariable(language)) {\n language = resolveVariableAndFilter(language, data);\n }\n\n return (\n <div\n ref={this.divRef}\n className={cx(\n `EditorControl`,\n {\n 'is-focused': this.state.focused,\n [`EditorControl--${size}`]: size\n },\n className\n )}\n >\n <LazyComponent\n classPrefix={ns}\n component={Editor}\n allowFullscreen={allowFullscreen}\n value={finnalValue}\n onChange={onChange}\n disabled={disabled}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n language={language}\n editorTheme={editorTheme}\n editorDidMount={this.handleEditorMounted}\n options={{\n ...options,\n readOnly: disabled\n }}\n />\n </div>\n );\n }\n}\n\nexport const availableLanguages = [\n 'bat',\n 'c',\n 'coffeescript',\n 'cpp',\n 'csharp',\n 'css',\n 'dockerfile',\n 'fsharp',\n 'go',\n 'handlebars',\n 'html',\n 'ini',\n 'java',\n 'javascript',\n 'json',\n 'less',\n 'lua',\n 'markdown',\n 'msdax',\n 'objective-c',\n 'php',\n 'plaintext',\n 'postiats',\n 'powershell',\n 'pug',\n 'python',\n 'r',\n 'razor',\n 'ruby',\n 'sb',\n 'scss',\n 'sol',\n 'shell',\n 'sql',\n 'swift',\n 'typescript',\n 'vb',\n 'xml',\n 'yaml'\n];\n\nexport const EditorControls: Array<typeof EditorControl> =\n availableLanguages.map((lang: string) => {\n @FormItem({\n type: `${lang}-editor`,\n sizeMutable: false\n })\n class EditorControlRenderer extends EditorControl {\n static lang = lang;\n static displayName = `${lang[0].toUpperCase()}${lang.substring(\n 1\n )}EditorControlRenderer`;\n static defaultProps = {\n ...EditorControl.defaultProps,\n language: lang\n };\n }\n\n return EditorControlRenderer;\n });\n\n@FormItem({\n type: 'js-editor',\n sizeMutable: false\n})\nclass JavascriptEditorControlRenderer extends EditorControl {\n static defaultProps = {\n ...EditorControl.defaultProps,\n language: 'javascript'\n };\n}\n\n@FormItem({\n type: 'ts-editor',\n sizeMutable: false\n})\nclass TypescriptEditorControlRenderer extends EditorControl {\n static defaultProps = {\n ...EditorControl.defaultProps,\n language: 'typescript'\n };\n}\n\n@FormItem({\n type: `editor`,\n sizeMutable: false\n})\nexport class EditorControlRenderer extends EditorControl {\n static defaultProps = {\n ...EditorControl.defaultProps,\n language: 'javascript'\n };\n}\n"
12
12
  ]
13
13
  }
@@ -87,7 +87,7 @@ var ExcelControl = /** @class */ (function (_super) {
87
87
  ExcelControl.prototype.readWorksheet = function (worksheet) {
88
88
  var _this = this;
89
89
  var result = [];
90
- var _a = this.props, parseMode = _a.parseMode, plainText = _a.plainText;
90
+ var _a = this.props, parseMode = _a.parseMode, plainText = _a.plainText, includeEmpty = _a.includeEmpty;
91
91
  if (parseMode === 'array') {
92
92
  worksheet.eachRow(function (row, rowNumber) {
93
93
  var values = row.values;
@@ -105,6 +105,11 @@ var ExcelControl = /** @class */ (function (_super) {
105
105
  }
106
106
  else {
107
107
  var data_1 = {};
108
+ if (includeEmpty) {
109
+ firstRowValues_1.forEach(function (item) {
110
+ data_1[item] = '';
111
+ });
112
+ }
108
113
  row.eachCell(function (cell, colNumber) {
109
114
  if (firstRowValues_1[colNumber]) {
110
115
  var value = cell.value;
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Form/InputExcel.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React, {Suspense} from 'react';\nimport Dropzone from 'react-dropzone';\nimport {FileRejection} from 'react-dropzone';\nimport {Icon} from '../../components/icons';\nimport {autobind, createObject} from '../../utils/helper';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\n\n/**\n * Excel 解析\n * 文档:https://baidu.gitee.io/amis/docs/components/form/input-excel\n */\nexport interface InputExcelControlSchema extends FormBaseControl {\n /**\n * 指定为 Excel 解析\n */\n type: 'input-excel';\n\n /**\n * 是否解析所有 sheet,默认情况下只解析第一个\n */\n allSheets: boolean;\n\n /**\n * 解析模式,array 是解析成二维数组,object 是将第一列作为字段名,解析为对象数组\n */\n parseMode: 'array' | 'object';\n\n /**\n * 是否包含空内容,主要用于二维数组模式\n */\n includeEmpty: boolean;\n\n /**\n * 纯文本模式\n */\n plainText: boolean;\n}\n\nexport interface ExcelProps\n extends FormControlProps,\n Omit<\n InputExcelControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {}\n\nexport interface ExcelControlState {\n filename: string;\n}\n\nexport type InputExcelRendererEvent = 'change';\nexport type InputExcelRendererAction = 'clear';\nexport default class ExcelControl extends React.PureComponent<\n ExcelProps,\n ExcelControlState\n> {\n static defaultProps: Partial<ExcelProps> = {\n allSheets: false,\n parseMode: 'object',\n includeEmpty: true,\n plainText: true\n };\n\n state: ExcelControlState = {\n filename: ''\n };\n\n ExcelJS: any;\n\n @autobind\n handleDrop(files: File[]) {\n const {allSheets, onChange, dispatchEvent, data} = this.props;\n const excel = files[0];\n const reader = new FileReader();\n reader.readAsArrayBuffer(excel);\n reader.onload = async () => {\n if (reader.result) {\n import('exceljs').then(async (ExcelJS: any) => {\n this.ExcelJS = ExcelJS;\n const workbook = new ExcelJS.Workbook();\n await workbook.xlsx.load(reader.result);\n let sheetsResult: any[] = [];\n if (allSheets) {\n workbook.eachSheet((worksheet: any) => {\n sheetsResult.push({\n sheetName: worksheet.name,\n data: this.readWorksheet(worksheet)\n });\n });\n } else {\n const worksheet = workbook.worksheets[0];\n sheetsResult = this.readWorksheet(worksheet);\n }\n const dispatcher = await this.dispatchEvent('change', sheetsResult);\n if (dispatcher?.prevented) {\n return;\n }\n onChange(sheetsResult);\n this.setState({filename: files[0].name});\n });\n }\n };\n }\n\n async dispatchEvent(eventName: string, eventData?: Record<string, any>) {\n const {dispatchEvent, data} = this.props;\n return await dispatchEvent(\n eventName,\n createObject(data, {\n value: eventData\n })\n );\n }\n /**\n * 读取单个 sheet 的内容\n */\n readWorksheet(worksheet: any) {\n const result: any[] = [];\n const {parseMode, plainText} = this.props;\n\n if (parseMode === 'array') {\n worksheet.eachRow((row: any, rowNumber: number) => {\n const values = row.values;\n values.shift(); // excel 返回的值是从 1 开始的,0 节点永远是 null\n result.push(values);\n });\n return result;\n } else {\n let firstRowValues: any[] = [];\n worksheet.eachRow((row: any, rowNumber: number) => {\n // 将第一列作为字段名\n if (rowNumber == 1) {\n firstRowValues = row.values;\n } else {\n const data: any = {};\n row.eachCell((cell: any, colNumber: any) => {\n if (firstRowValues[colNumber]) {\n let value = cell.value;\n if (plainText) {\n const ExcelValueType = this.ExcelJS.ValueType;\n if (cell.type === ExcelValueType.Hyperlink) {\n value = cell.value.hyperlink;\n } else if (cell.type === ExcelValueType.Formula) {\n value = cell.value.result;\n } else if (cell.type === ExcelValueType.RichText) {\n value = cell.value.richText\n .map((item: any) => item.text)\n .join('');\n } else if (cell.type === ExcelValueType.Error) {\n value = '';\n }\n }\n\n data[firstRowValues[colNumber]] = value;\n }\n });\n result.push(data);\n }\n });\n return result;\n }\n }\n\n doAction(action: any, data: object, throwErrors: boolean) {\n const {onChange} = this.props;\n if (action.actionType === 'clear') {\n onChange('');\n }\n }\n\n render() {\n const {\n className,\n classnames: cx,\n classPrefix: ns,\n value,\n disabled,\n translate: __\n } = this.props;\n\n return (\n <div className={cx('ExcelControl', className)}>\n <Dropzone\n key=\"drop-zone\"\n onDrop={this.handleDrop}\n accept=\".xlsx\"\n multiple={false}\n disabled={disabled}\n >\n {({getRootProps, getInputProps}) => (\n <section className={cx('ExcelControl-container', className)}>\n <div {...getRootProps({className: cx('ExcelControl-dropzone')})}>\n <input {...getInputProps()} />\n {this.state.filename ? (\n __('Excel.parsed', {\n filename: this.state.filename\n })\n ) : (\n <p>{__('Excel.placeholder')}</p>\n )}\n </div>\n </section>\n )}\n </Dropzone>\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-excel'\n})\nexport class ExcelControlRenderer extends ExcelControl {}\n"
11
+ "import React, {Suspense} from 'react';\nimport Dropzone from 'react-dropzone';\nimport {FileRejection} from 'react-dropzone';\nimport {Icon} from '../../components/icons';\nimport {autobind, createObject} from '../../utils/helper';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\n\n/**\n * Excel 解析\n * 文档:https://baidu.gitee.io/amis/docs/components/form/input-excel\n */\nexport interface InputExcelControlSchema extends FormBaseControl {\n /**\n * 指定为 Excel 解析\n */\n type: 'input-excel';\n\n /**\n * 是否解析所有 sheet,默认情况下只解析第一个\n */\n allSheets: boolean;\n\n /**\n * 解析模式,array 是解析成二维数组,object 是将第一列作为字段名,解析为对象数组\n */\n parseMode: 'array' | 'object';\n\n /**\n * 是否包含空内容,主要用于二维数组模式\n */\n includeEmpty: boolean;\n\n /**\n * 纯文本模式\n */\n plainText: boolean;\n}\n\nexport interface ExcelProps\n extends FormControlProps,\n Omit<\n InputExcelControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {}\n\nexport interface ExcelControlState {\n filename: string;\n}\n\nexport type InputExcelRendererEvent = 'change';\nexport type InputExcelRendererAction = 'clear';\nexport default class ExcelControl extends React.PureComponent<\n ExcelProps,\n ExcelControlState\n> {\n static defaultProps: Partial<ExcelProps> = {\n allSheets: false,\n parseMode: 'object',\n includeEmpty: true,\n plainText: true\n };\n\n state: ExcelControlState = {\n filename: ''\n };\n\n ExcelJS: any;\n\n @autobind\n handleDrop(files: File[]) {\n const {allSheets, onChange, dispatchEvent, data} = this.props;\n const excel = files[0];\n const reader = new FileReader();\n reader.readAsArrayBuffer(excel);\n reader.onload = async () => {\n if (reader.result) {\n import('exceljs').then(async (ExcelJS: any) => {\n this.ExcelJS = ExcelJS;\n const workbook = new ExcelJS.Workbook();\n await workbook.xlsx.load(reader.result);\n let sheetsResult: any[] = [];\n if (allSheets) {\n workbook.eachSheet((worksheet: any) => {\n sheetsResult.push({\n sheetName: worksheet.name,\n data: this.readWorksheet(worksheet)\n });\n });\n } else {\n const worksheet = workbook.worksheets[0];\n sheetsResult = this.readWorksheet(worksheet);\n }\n const dispatcher = await this.dispatchEvent('change', sheetsResult);\n if (dispatcher?.prevented) {\n return;\n }\n onChange(sheetsResult);\n this.setState({filename: files[0].name});\n });\n }\n };\n }\n\n async dispatchEvent(eventName: string, eventData?: Record<string, any>) {\n const {dispatchEvent, data} = this.props;\n return await dispatchEvent(\n eventName,\n createObject(data, {\n value: eventData\n })\n );\n }\n /**\n * 读取单个 sheet 的内容\n */\n readWorksheet(worksheet: any) {\n const result: any[] = [];\n const {parseMode, plainText, includeEmpty} = this.props;\n\n if (parseMode === 'array') {\n worksheet.eachRow((row: any, rowNumber: number) => {\n const values = row.values;\n values.shift(); // excel 返回的值是从 1 开始的,0 节点永远是 null\n result.push(values);\n });\n return result;\n } else {\n let firstRowValues: any[] = [];\n worksheet.eachRow((row: any, rowNumber: number) => {\n // 将第一列作为字段名\n if (rowNumber == 1) {\n firstRowValues = row.values;\n } else {\n const data: any = {};\n if (includeEmpty) {\n firstRowValues.forEach((item: any) => {\n data[item] = '';\n });\n }\n row.eachCell((cell: any, colNumber: any) => {\n if (firstRowValues[colNumber]) {\n let value = cell.value;\n if (plainText) {\n const ExcelValueType = this.ExcelJS.ValueType;\n if (cell.type === ExcelValueType.Hyperlink) {\n value = cell.value.hyperlink;\n } else if (cell.type === ExcelValueType.Formula) {\n value = cell.value.result;\n } else if (cell.type === ExcelValueType.RichText) {\n value = cell.value.richText\n .map((item: any) => item.text)\n .join('');\n } else if (cell.type === ExcelValueType.Error) {\n value = '';\n }\n }\n\n data[firstRowValues[colNumber]] = value;\n }\n });\n result.push(data);\n }\n });\n return result;\n }\n }\n\n doAction(action: any, data: object, throwErrors: boolean) {\n const {onChange} = this.props;\n if (action.actionType === 'clear') {\n onChange('');\n }\n }\n\n render() {\n const {\n className,\n classnames: cx,\n classPrefix: ns,\n value,\n disabled,\n translate: __\n } = this.props;\n\n return (\n <div className={cx('ExcelControl', className)}>\n <Dropzone\n key=\"drop-zone\"\n onDrop={this.handleDrop}\n accept=\".xlsx\"\n multiple={false}\n disabled={disabled}\n >\n {({getRootProps, getInputProps}) => (\n <section className={cx('ExcelControl-container', className)}>\n <div {...getRootProps({className: cx('ExcelControl-dropzone')})}>\n <input {...getInputProps()} />\n {this.state.filename ? (\n __('Excel.parsed', {\n filename: this.state.filename\n })\n ) : (\n <p>{__('Excel.placeholder')}</p>\n )}\n </div>\n </section>\n )}\n </Dropzone>\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-excel'\n})\nexport class ExcelControlRenderer extends ExcelControl {}\n"
12
12
  ]
13
13
  }
@@ -809,8 +809,7 @@ var FileControl = /** @class */ (function (_super) {
809
809
  react_1.default.createElement(icons_1.Icon, { icon: "cloud-upload", className: "icon" }),
810
810
  react_1.default.createElement("span", null, __('File.dragDrop')),
811
811
  maxSize ? (react_1.default.createElement("div", { className: cx('FileControl-sizeTip') }, __('File.sizeLimit', { maxSize: maxSize }))) : null)) : (react_1.default.createElement(react_1.default.Fragment, null,
812
- react_1.default.createElement(Button_1.default, { level: "default", disabled: disabled, className: cx('FileControl-selectBtn', {
813
- btnClassName: btnClassName,
812
+ react_1.default.createElement(Button_1.default, { level: "default", disabled: disabled, className: cx('FileControl-selectBtn', btnClassName, {
814
813
  'is-disabled': multiple && !!maxLength && files.length >= maxLength
815
814
  }), tooltip: multiple && maxLength && files.length >= maxLength
816
815
  ? __('File.maxLength', { maxLength: maxLength })
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Form/InputFile.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport find from 'lodash/find';\nimport isPlainObject from 'lodash/isPlainObject';\nimport ImageControl from './InputImage';\nimport {Payload, ApiObject, ApiString, Action} from '../../types';\nimport {filter} from '../../utils/tpl';\nimport Alert from '../../components/Alert2';\nimport {qsstringify, createObject, guid, isEmpty} from '../../utils/helper';\nimport {\n buildApi,\n isEffectiveApi,\n normalizeApi,\n isApiOutdated\n} from '../../utils/api';\nimport Button from '../../components/Button';\nimport {Icon} from '../../components/icons';\nimport TooltipWrapper from '../../components/TooltipWrapper';\nimport DropZone from 'react-dropzone';\nimport {FileRejection} from 'react-dropzone';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport {\n SchemaApi,\n SchemaClassName,\n SchemaTokenizeableString,\n SchemaUrlPath\n} from '../../Schema';\nimport merge from 'lodash/merge';\nimport omit from 'lodash/omit';\n\n/**\n * File 文件上传控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/file\n */\nexport interface FileControlSchema extends FormBaseControl {\n /**\n * 指定为文件上传\n */\n type: 'input-file';\n\n /**\n * 上传文件按钮说明\n * @default 请选择文件\n */\n btnLabel?: string;\n\n /**\n * 默认只支持纯文本,要支持其他类型,请配置此属性。建议直接填写文件后缀\n * 如:.txt,.csv\n *\n * 多个类型用逗号隔开。\n *\n * @default text/plain\n */\n accept?: string;\n\n /**\n * 如果上传的文件比较小可以设置此选项来简单的把文件 base64 的值给 form 一起提交,目前不支持多选。\n */\n asBase64?: boolean;\n\n /**\n * 如果不希望 File 组件上传,可以配置 `asBlob` 或者 `asBase64`,采用这种方式后,组件不再自己上传了,而是直接把文件数据作为表单项的值,文件内容会在 Form 表单提交的接口里面一起带上。\n */\n asBlob?: boolean;\n\n /**\n * 是否自动开始上传\n */\n autoUpload?: boolean;\n\n /**\n * 默认 `/api/upload/chunk` 想自己存储时才需要关注。\n */\n chunkApi?: SchemaApi;\n\n /**\n * 分块大小,默认为 5M.\n *\n * @default 5242880\n */\n chunkSize?: number;\n\n /**\n * 分块上传的并发数\n */\n concurrency?: number;\n\n /**\n * 分割符\n */\n delimiter?: string;\n\n /**\n * 默认显示文件路径的时候会支持直接下载,\n * 可以支持加前缀如:`http://xx.dom/filename=` ,\n * 如果不希望这样,可以把当前配置项设置为 `false`。\n *\n * 1.1.6 版本开始将支持变量 ${xxx} 来自己拼凑个下载地址,并且支持配置成 post.\n */\n downloadUrl?: SchemaApi;\n\n /**\n * 模板下载地址\n */\n templateUrl?: SchemaApi;\n\n /**\n * 默认 `file`, 如果你不想自己存储,则可以忽略此属性。\n * @default file\n */\n fileField?: string;\n\n /**\n * 默认 `/api/upload/finishChunkApi` 想自己存储时才需要关注。\n *\n * @default /api/upload/finishChunkApi\n */\n finishChunkApi?: SchemaApi;\n\n /**\n * 是否隐藏上传按钮\n */\n hideUploadButton?: boolean;\n\n /**\n * 最多的个数\n */\n maxLength?: number;\n\n /**\n * 默认没有限制,当设置后,文件大小大于此值将不允许上传。\n */\n maxSize?: number;\n\n /**\n * 默认 `/api/upload/file` 如果想自己存储,请设置此选项。\n *\n * @default /api/upload/file\n */\n receiver?: SchemaApi;\n\n /**\n * 默认 `/api/upload/startChunk` 想自己存储时才需要关注。\n *\n * @default /api/upload/startChunk\n */\n startChunkApi?: string;\n\n /**\n * 默认为 'auto' amis 所在服务器,限制了文件上传大小不得超出10M,所以 amis 在用户选择大文件的时候,自动会改成分块上传模式。\n */\n useChunk?: 'auto' | boolean;\n\n /**\n * 按钮 CSS 类名\n */\n btnClassName?: SchemaClassName;\n\n /**\n * 上传按钮 CSS 类名\n */\n btnUploadClassName?: SchemaClassName;\n\n /**\n * 是否为多选\n */\n multiple?: boolean;\n\n /**\n * 1. 单选模式:当用户选中某个选项时,选项中的 value 将被作为该表单项的值提交,\n * 否则,整个选项对象都会作为该表单项的值提交。\n * 2. 多选模式:选中的多个选项的 `value` 会通过 `delimiter` 连接起来,\n * 否则直接将以数组的形式提交值。\n */\n joinValues?: boolean;\n\n /**\n * 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。\n */\n extractValue?: boolean;\n\n /**\n * 清除时设置的值\n */\n resetValue?: any;\n\n /**\n * 上传后把其他字段同步到表单内部。\n */\n autoFill?: {\n [propName: string]: SchemaTokenizeableString;\n };\n\n /**\n * 接口返回的数据中,哪个用来当做值\n */\n valueField?: string;\n\n /**\n * 接口返回的数据中,哪个用来展示文件名\n */\n nameField?: string;\n\n /**\n * 接口返回的数据中哪个用来作为下载地址。\n */\n urlField?: string;\n\n /**\n * 按钮状态文案配置。\n */\n stateTextMap?: {\n init: string;\n pending: string;\n uploading: string;\n error: string;\n uploaded: string;\n ready: string;\n };\n\n /**\n * 是否为拖拽上传\n */\n drag?: boolean;\n}\n\nexport interface FileProps\n extends FormControlProps,\n Omit<\n FileControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n stateTextMap: {\n init: string;\n pending: string;\n uploading: string;\n error: string;\n uploaded: string;\n ready: string;\n };\n}\n\nexport interface FileX extends File {\n state?:\n | 'init'\n | 'error'\n | 'pending'\n | 'uploading'\n | 'uploaded'\n | 'invalid'\n | 'ready';\n progress?: number;\n id?: any;\n}\n\nexport interface FileValue {\n filename?: string;\n value?: any;\n name?: string;\n url?: string;\n state:\n | 'init'\n | 'error'\n | 'pending'\n | 'uploading'\n | 'uploaded'\n | 'invalid'\n | 'ready';\n id?: any;\n [propName: string]: any;\n}\n\nexport interface FileState {\n uploading: boolean;\n files: Array<FileX | FileValue>;\n error?: string | null;\n}\nlet preventEvent = (e: any) => e.stopPropagation();\n\nexport function getNameFromUrl(url: string) {\n if (/(?:\\/|^)([^\\/]+?)$/.test(url)) {\n return decodeURIComponent(RegExp.$1);\n }\n\n return url;\n}\nexport type InputFileRendererEvent = 'change' | 'success' | 'fail' | 'remove';\nexport type InputFileRendererAction = 'clear';\n\nexport default class FileControl extends React.Component<FileProps, FileState> {\n static defaultProps: Partial<FileProps> = {\n maxSize: 0,\n maxLength: 0,\n placeholder: '',\n receiver: '/api/upload/file',\n fileField: 'file',\n joinValues: true,\n extractValue: false,\n delimiter: ',',\n downloadUrl: '', // '/api/file/'\n templateUrl: '',\n useChunk: 'auto',\n chunkSize: 5 * 1024 * 1024, // 文件大于5M, 自动分块上传\n startChunkApi: '/api/upload/startChunk',\n chunkApi: '/api/upload/chunk',\n finishChunkApi: '/api/upload/finishChunk',\n concurrency: 3,\n accept: '',\n multiple: false,\n autoUpload: true,\n hideUploadButton: false,\n stateTextMap: {\n init: '',\n pending: '等待上传',\n uploading: '上传中',\n error: '上传出错',\n uploaded: '已上传',\n ready: ''\n },\n asBase64: false,\n drag: false\n };\n\n state: FileState;\n current: FileValue | FileX | null;\n resolve?: (value?: any) => void;\n emitValue: any;\n fileUploadCancelExecutors: Array<{\n file: any;\n executor: () => void;\n }> = [];\n\n static valueToFile(\n value: string | FileValue,\n props: FileProps,\n files?: Array<FileX | FileValue>\n ): FileValue | undefined {\n let file: FileValue | FileX | undefined =\n files && typeof value === 'string'\n ? find(files, item => (item as FileValue).value === value)\n : undefined;\n const valueField = props.valueField || 'value';\n const urlField = props.urlField || 'url';\n const nameField = props.nameField || 'name';\n return value\n ? value instanceof File\n ? {\n state: 'ready',\n [valueField]: value,\n [urlField]: value,\n [nameField]: value.name,\n id: guid()\n }\n : {\n ...(typeof value === 'string'\n ? {\n state: file && file.state ? file.state : 'init',\n [valueField]: value,\n [urlField]: value,\n [nameField]:\n (file && file.name) ||\n (/^data:/.test(value)\n ? 'base64数据'\n : getNameFromUrl(value)),\n id: guid()\n }\n : (value as FileValue))\n }\n : undefined;\n }\n\n dropzone = React.createRef<any>();\n constructor(props: FileProps) {\n super(props);\n\n const value: string | Array<string | FileValue> | FileValue = props.value;\n const valueField = props.valueField || 'value';\n const joinValues = props.joinValues;\n const delimiter = props.delimiter as string;\n let files: Array<FileValue> = [];\n\n if (value && value instanceof Blob) {\n files = [value as any];\n } else if (value) {\n files = (\n Array.isArray(value)\n ? value\n : joinValues\n ? `${(value as any)[valueField] || value}`.split(delimiter)\n : [value as any]\n )\n .map(item => FileControl.valueToFile(item, props) as FileValue)\n .filter(item => item);\n }\n\n this.state = {\n files,\n uploading: false\n };\n\n this.sendFile = this.sendFile.bind(this);\n this.removeFile = this.removeFile.bind(this);\n this.clearError = this.clearError.bind(this);\n this.handleDrop = this.handleDrop.bind(this);\n this.handleDropRejected = this.handleDropRejected.bind(this);\n this.startUpload = this.startUpload.bind(this);\n this.stopUpload = this.stopUpload.bind(this);\n this.retry = this.retry.bind(this);\n this.toggleUpload = this.toggleUpload.bind(this);\n this.tick = this.tick.bind(this);\n this.onChange = this.onChange.bind(this);\n this.uploadFile = this.uploadFile.bind(this);\n this.uploadBigFile = this.uploadBigFile.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.syncAutoFill = this.syncAutoFill.bind(this);\n this.downloadTpl = this.downloadTpl.bind(this);\n }\n\n componentDidMount() {\n this.syncAutoFill();\n }\n\n componentDidUpdate(prevProps: FileProps) {\n const props = this.props;\n\n if (prevProps.value !== props.value && this.emitValue !== props.value) {\n const value: string | Array<string | FileValue> | FileValue = props.value;\n const joinValues = props.joinValues;\n const delimiter = props.delimiter as string;\n let files: Array<FileValue> = [];\n\n if (value) {\n files = (\n Array.isArray(value)\n ? value\n : joinValues && typeof value === 'string'\n ? value.split(delimiter)\n : [value as any]\n )\n .map(item => {\n let obj = FileControl.valueToFile(\n item,\n props,\n this.state.files\n ) as FileValue;\n let org;\n\n if (\n obj &&\n ((org = find(\n this.state.files,\n (item: FileValue) => item.value === obj.value\n )) as FileValue)\n ) {\n obj = {\n ...org,\n ...obj,\n id: obj.id || org!.id\n };\n }\n\n return obj;\n })\n .filter(item => item);\n }\n\n this.setState(\n {\n files: files\n },\n this.syncAutoFill\n );\n }\n }\n\n handleDrop(files: Array<FileX>) {\n if (!files.length) {\n return;\n }\n\n const {maxSize, multiple, maxLength, translate: __} = this.props;\n const nameField = this.props.nameField || 'name';\n let allowed =\n multiple && maxLength\n ? maxLength - this.state.files.length\n : files.length;\n\n const inputFiles: Array<FileX> = [];\n\n [].slice.call(files, 0, allowed).forEach((file: FileX) => {\n if (maxSize && file.size > maxSize) {\n // this.props.env.alert(\n // __('File.maxSize', {\n // filename: file[nameField as keyof typeof file] || file.name,\n // actualSize: ImageControl.formatFileSize(file.size),\n // maxSize: ImageControl.formatFileSize(maxSize)\n // })\n // );\n file.state = 'invalid';\n } else {\n file.state = 'pending';\n }\n\n file.id = guid();\n inputFiles.push(file);\n });\n\n if (!inputFiles.length) {\n return;\n }\n\n this.setState(\n {\n error: null,\n files: multiple ? this.state.files.concat(inputFiles) : inputFiles\n },\n () => {\n const {autoUpload} = this.props;\n\n if (autoUpload) {\n this.startUpload();\n }\n }\n );\n }\n\n handleDropRejected(\n rejectedFiles: FileRejection[],\n evt: React.DragEvent<any>\n ) {\n if (evt.type !== 'change' && evt.type !== 'drop') {\n return;\n }\n const {multiple, env, accept, translate: __} = this.props;\n const nameField = this.props.nameField || 'name';\n\n const files = rejectedFiles.map(fileRejection => ({\n ...fileRejection.file,\n state: 'invalid',\n id: guid(),\n [nameField]: fileRejection.file.name\n }));\n\n // this.setState({\n // files: multiple\n // ? this.state.files.concat(files)\n // : this.state.files.length\n // ? this.state.files\n // : files.slice(0, 1)\n // });\n\n env.alert(\n __('File.invalidType', {\n files: files.map((item: any) => `「${item[nameField]}」`).join(' '),\n accept\n })\n );\n }\n\n handleClickFile(file: FileX | FileValue, e: React.MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const {downloadUrl} = this.props;\n const urlField = this.props.urlField || 'url';\n const valueField = this.props.valueField || 'value';\n\n const fileUrl =\n file[urlField as keyof typeof file] ||\n file[valueField as keyof typeof file];\n\n let api =\n typeof downloadUrl === 'string' && !~downloadUrl.indexOf('$')\n ? `${downloadUrl}${fileUrl}`\n : downloadUrl\n ? downloadUrl\n : `${fileUrl}`;\n\n this.handleApi(api, file);\n }\n\n downloadTpl(e: React.MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n this.handleApi(this.props.templateUrl || '');\n }\n\n handleApi(api: SchemaApi, payload?: object) {\n const {data, env} = this.props;\n if (api) {\n const ctx = createObject(data, {\n ...payload\n });\n\n const apiObject = normalizeApi(api);\n\n if (apiObject.method?.toLowerCase() === 'get' && !apiObject.data) {\n window.open(buildApi(apiObject, ctx).url);\n } else {\n apiObject.responseType = apiObject.responseType ?? 'blob';\n env.fetcher(apiObject, ctx, {\n responseType: 'blob'\n });\n }\n }\n }\n\n handleSelect() {\n const {disabled, multiple, maxLength} = this.props;\n !disabled &&\n !(multiple && maxLength && this.state.files.length >= maxLength) &&\n this.dropzone.current &&\n this.dropzone.current.open();\n }\n\n startUpload(retry: boolean = false) {\n if (this.state.uploading) {\n return;\n }\n\n this.setState(\n {\n uploading: true,\n files: this.state.files.map(file => {\n if (retry && file.state === 'error') {\n file.state = 'pending';\n file.progress = 0;\n }\n\n return file;\n })\n },\n this.tick\n );\n }\n\n toggleUpload(e: React.MouseEvent<HTMLButtonElement>) {\n e.preventDefault();\n return this.state.uploading ? this.stopUpload() : this.startUpload();\n }\n\n stopUpload() {\n if (!this.state.uploading) {\n return;\n }\n\n this.setState({\n uploading: false\n });\n }\n\n retry() {\n this.startUpload(true);\n }\n\n tick() {\n if (this.current || !this.state.uploading) {\n return;\n }\n\n const {translate: __} = this.props;\n const nameField = this.props.nameField || 'name';\n const file = find(\n this.state.files,\n item => item.state === 'pending'\n ) as FileX;\n if (file) {\n this.current = file;\n\n file.state = 'uploading';\n\n this.setState(\n {\n files: this.state.files.concat()\n },\n () =>\n this.sendFile(\n file,\n (error, file, obj) => {\n const files = this.state.files.concat();\n const idx = files.indexOf(file as FileX);\n\n if (!~idx) {\n return;\n }\n\n let newFile: FileValue = file as FileValue;\n\n if (error) {\n newFile.state = 'error';\n newFile.error = error;\n } else {\n newFile = obj as FileValue;\n newFile[nameField] = newFile[nameField] || file!.name;\n }\n files.splice(idx, 1, newFile);\n this.current = null;\n this.setState(\n {\n error: error ? error : null,\n files: files\n },\n this.tick\n );\n },\n progress => {\n const files = this.state.files.concat();\n const idx = files.indexOf(file);\n\n if (!~idx) {\n return;\n }\n\n // file 是个非 File 对象,先不copy了直接改。\n file.progress = progress;\n this.setState({\n files\n });\n }\n )\n );\n } else {\n this.setState(\n {\n uploading: false\n },\n () => {\n this.onChange(!!this.resolve);\n\n if (this.resolve) {\n this.resolve(\n this.state.files.some(file => file.state === 'error')\n ? __('File.errorRetry')\n : null\n );\n this.resolve = undefined;\n }\n }\n );\n }\n }\n\n sendFile(\n file: FileX,\n cb: (error: null | string, file?: FileX, obj?: FileValue) => void,\n onProgress: (progress: number) => void\n ) {\n const {\n receiver,\n fileField,\n useChunk,\n chunkSize,\n startChunkApi,\n chunkApi,\n finishChunkApi,\n asBase64,\n asBlob,\n data,\n translate: __\n } = this.props;\n const nameField = this.props.nameField || 'name';\n const valueField = this.props.valueField || 'value';\n\n if (asBase64) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n file.state = 'ready';\n cb(null, file, {\n [valueField]: reader.result as string,\n [nameField]: file.name,\n state: 'ready',\n id: file.id\n });\n };\n reader.onerror = (error: any) => cb(error.message);\n return;\n } else if (asBlob) {\n file.state = 'ready';\n setTimeout(\n () =>\n cb(null, file, {\n [nameField]: file.name,\n [valueField]: file,\n state: 'ready',\n id: file.id\n }),\n 4\n );\n return;\n }\n\n let fn =\n (useChunk === 'auto' && chunkSize && file.size > chunkSize) ||\n useChunk === true\n ? this.uploadBigFile\n : this.uploadFile;\n\n fn(\n file,\n receiver as string,\n {},\n {\n fieldName: fileField,\n chunkSize,\n startChunkApi,\n chunkApi,\n finishChunkApi,\n data\n },\n onProgress\n )\n .then(async ret => {\n if ((ret.status && (ret as any).status !== '0') || !ret.data) {\n throw new Error(ret.msg || __('File.errorRetry'));\n }\n\n onProgress(1);\n let value =\n (ret.data as any).value || (ret.data as any).url || ret.data;\n\n const dispatcher = await this.dispatchEvent('success', {\n ...file,\n value,\n state: 'uploaded'\n });\n if (dispatcher?.prevented) {\n return;\n }\n cb(null, file, {\n ...(isPlainObject(ret.data) ? ret.data : null),\n value: value,\n state: 'uploaded',\n id: file.id\n });\n })\n .catch(async error => {\n const dispatcher = await this.dispatchEvent('fail', {file, error});\n if (dispatcher?.prevented) {\n return;\n }\n cb(error.message || __('File.errorRetry'), file);\n });\n }\n\n async removeFile(file: FileX | FileValue, index: number) {\n const files = this.state.files.concat();\n const removeFile = files[index];\n // 触发移出文件事件\n const dispatcher = await this.dispatchEvent('remove', removeFile);\n if (dispatcher?.prevented) {\n return;\n }\n this.removeFileCanelExecutor(file, true);\n files.splice(index, 1);\n\n const isUploading = this.current === file;\n if (isUploading) {\n this.current = null;\n }\n\n this.setState(\n {\n files: files\n },\n isUploading ? this.tick : this.onChange\n );\n }\n\n clearError() {\n this.setState({\n error: null\n });\n }\n\n async onChange(changeImmediately?: boolean) {\n const {\n multiple,\n onChange,\n joinValues,\n extractValue,\n valueField,\n delimiter,\n resetValue,\n asBlob,\n autoFill,\n onBulkChange\n } = this.props;\n\n const files = this.state.files.filter(\n file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)\n );\n let value: any = multiple ? files : files[0];\n\n if (value) {\n if (extractValue || asBlob) {\n value = Array.isArray(value)\n ? value.map((item: any) => item[valueField || 'value'])\n : value[valueField || 'value'];\n } else if (joinValues) {\n value = Array.isArray(value)\n ? value\n .map((item: any) => item[valueField || 'value'])\n .join(delimiter || ',')\n : value[valueField || 'value'];\n }\n } else {\n value = typeof resetValue === 'undefined' ? '' : resetValue;\n }\n\n const dispatcher = await this.dispatchEvent('change');\n if (dispatcher?.prevented) {\n return;\n }\n\n onChange((this.emitValue = value), undefined, changeImmediately);\n this.syncAutoFill();\n }\n\n syncAutoFill() {\n const {autoFill, multiple, onBulkChange, data, name} = this.props;\n // 排除自身的字段,否则会无限更新state\n const excludeSelfAutoFill = omit(autoFill, name || '');\n\n if (!isEmpty(excludeSelfAutoFill) && onBulkChange) {\n const files = this.state.files.filter(\n file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)\n );\n const toSync = dataMapping(\n excludeSelfAutoFill,\n multiple\n ? {\n items: files\n }\n : files[0]\n );\n Object.keys(toSync).forEach(key => {\n if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {\n toSync[key] = merge({}, data[key], toSync[key]);\n }\n });\n onBulkChange(toSync);\n }\n }\n\n async uploadFile(\n file: FileX,\n receiver: string,\n params: object,\n config: Partial<FileProps> = {},\n onProgress: (progress: number) => void\n ): Promise<Payload> {\n const fd = new FormData();\n const api = buildApi(receiver, createObject(config.data, params), {\n method: 'post'\n });\n\n qsstringify({...api.data, ...params})\n .split('&')\n .filter(i => !!i)\n .forEach(item => {\n const parts = item.split('=');\n fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fd.append(config.fieldName || 'file', file);\n\n try {\n return await this._send(file, api, fd, {}, onProgress);\n } finally {\n this.removeFileCanelExecutor(file);\n }\n }\n\n uploadBigFile(\n file: FileX,\n receiver: string,\n params: object,\n config: Partial<FileProps> = {},\n onProgress: (progress: number) => void\n ): Promise<Payload> {\n const chunkSize = config.chunkSize || 5 * 1024 * 1024;\n const concurrency = this.props.concurrency;\n const self = this;\n let startProgress = 0.2;\n let endProgress = 0.9;\n let progressArr: Array<number>;\n const __ = this.props.translate;\n const nameField = this.props.nameField || 'name';\n\n interface ObjectState {\n key: string;\n uploadId: string;\n loaded: number;\n total: number;\n [propName: string]: any;\n }\n\n interface Task {\n file: File;\n partNumber: number;\n partSize: number;\n start: number;\n stop: number;\n [propName: string]: any;\n }\n\n return new Promise((resolve, reject) => {\n let state: ObjectState;\n const startApi = buildApi(\n config.startChunkApi!,\n createObject(config.data, {\n ...params,\n filename: file.name,\n [nameField]: file.name\n }),\n {\n method: 'post',\n autoAppend: true\n }\n );\n\n self._send(file, startApi).then(startChunk).catch(reject);\n\n async function startChunk(ret: Payload) {\n onProgress(startProgress);\n const tasks = getTasks(file);\n progressArr = tasks.map(() => 0);\n\n if (!ret.data) {\n throw new Error(__('File.uploadFailed'));\n }\n\n state = {\n key: (ret.data as any).key,\n uploadId: (ret.data as any).uploadId,\n loaded: 0,\n total: tasks.length\n };\n\n let results: any[] = [];\n while (tasks.length) {\n const res = await Promise.all(\n tasks.splice(0, concurrency).map(async task => {\n return await uploadPartFile(state, config)(\n task,\n (err: any, value: any) => {\n if (err) {\n reject(err);\n throw new Error(err);\n }\n return value;\n }\n );\n })\n );\n results = results.concat(res);\n }\n finishChunk(results, state);\n }\n\n function updateProgress(partNumber: number, progress: number) {\n progressArr[partNumber - 1] = progress;\n onProgress(\n startProgress +\n (endProgress - startProgress) *\n (progressArr.reduce((count, progress) => count + progress, 0) /\n progressArr.length)\n );\n }\n\n async function finishChunk(\n partList: Array<any> | undefined,\n state: ObjectState\n ) {\n onProgress(endProgress);\n const endApi = buildApi(\n config.finishChunkApi!,\n createObject(config.data, {\n ...params,\n uploadId: state.uploadId,\n key: state.key,\n [nameField]: file.name,\n filename: file.name,\n partList\n }),\n {\n method: 'post',\n autoAppend: true\n }\n );\n\n try {\n const ret = await self._send(file, endApi);\n resolve(ret);\n } catch (err) {\n reject(err);\n } finally {\n self.removeFileCanelExecutor(file);\n }\n }\n\n function uploadPartFile(state: ObjectState, conf: Partial<FileProps>) {\n return (task: Task, callback: (error: any, value?: any) => void) => {\n const api = buildApi(\n conf.chunkApi!,\n createObject(config.data, params),\n {\n method: 'post'\n }\n );\n\n const fd = new FormData();\n let blob = task.file.slice(task.start, task.stop + 1);\n\n qsstringify({...api.data, ...params})\n .split('&')\n .forEach(item => {\n const parts = item.split('=');\n fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n fd.append('key', state.key);\n fd.append('uploadId', state.uploadId);\n fd.append('partNumber', task.partNumber.toString());\n fd.append('partSize', task.partSize.toString());\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fd.append(config.fieldName || 'file', blob, file.name);\n\n return self\n ._send(file, api, fd, {}, progress =>\n updateProgress(task.partNumber, progress)\n )\n .then(ret => {\n state.loaded++;\n callback(null, {\n partNumber: task.partNumber,\n eTag: (ret.data as any).eTag\n });\n })\n .catch(callback);\n };\n }\n\n function getTasks(file: FileX): Array<Task> {\n let leftSize = file.size;\n let offset = 0;\n let partNumber = 1;\n\n let tasks: Array<Task> = [];\n\n while (leftSize > 0) {\n let partSize = Math.min(leftSize, chunkSize);\n tasks.push({\n file: file,\n partNumber: partNumber,\n partSize: partSize,\n start: offset,\n stop: offset + partSize - 1\n });\n\n leftSize -= partSize;\n offset += partSize;\n partNumber += 1;\n }\n\n return tasks;\n }\n });\n }\n\n _send(\n file: FileX,\n api: ApiObject | ApiString,\n data?: any,\n options?: object,\n onProgress?: (progress: number) => void\n ): Promise<Payload> {\n const env = this.props.env;\n\n if (!env || !env.fetcher) {\n throw new Error('fetcher is required');\n }\n\n return env.fetcher(api, data, {\n method: 'post',\n ...options,\n withCredentials: true,\n cancelExecutor: (cancelExecutor: () => void) => {\n // 记录取消器,取消的时候要调用\n this.fileUploadCancelExecutors.push({\n file: file,\n executor: cancelExecutor\n });\n },\n onUploadProgress: onProgress\n ? (event: {loaded: number; total: number}) =>\n onProgress(event.loaded / event.total)\n : undefined\n });\n }\n\n removeFileCanelExecutor(file: any, execute = false) {\n this.fileUploadCancelExecutors = this.fileUploadCancelExecutors.filter(\n item => {\n if (execute && item.file === file) {\n item.executor();\n }\n\n return item.file !== file;\n }\n );\n }\n\n validate(): any {\n const __ = this.props.translate;\n\n if (\n this.state.uploading ||\n this.state.files.some(item => item.state === 'pending')\n ) {\n return new Promise(resolve => {\n this.resolve = resolve;\n this.startUpload();\n });\n } else if (this.state.files.some(item => item.state === 'error')) {\n return __('File.errorRetry');\n }\n }\n\n async dispatchEvent(e: string, data?: Record<string, any>) {\n const {dispatchEvent} = this.props;\n const getEventData = (item: Record<string, any>) => ({\n name: item.path || item.name,\n value: item.value,\n state: item.state,\n error: item.error\n });\n const value = data\n ? getEventData(data)\n : this.state.files.map(item => getEventData(item));\n return dispatchEvent(\n e,\n createObject(this.props.data, {\n file: value\n })\n );\n }\n\n // 动作\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {onChange} = this.props;\n if (action.actionType === 'clear') {\n this.setState({files: []}, () => {\n onChange('');\n });\n }\n }\n\n render() {\n const {\n btnLabel,\n accept,\n disabled,\n maxLength,\n maxSize,\n multiple,\n autoUpload,\n description,\n descriptionClassName,\n hideUploadButton,\n className,\n btnClassName,\n btnUploadClassName,\n classnames: cx,\n translate: __,\n render,\n downloadUrl,\n templateUrl,\n drag\n } = this.props;\n let {files, uploading, error} = this.state;\n const nameField = this.props.nameField || 'name';\n const valueField = this.props.valueField || 'value';\n const urlField = this.props.urlField || 'url';\n\n const hasPending = files.some(file => file.state == 'pending');\n\n let uploaded = 0;\n let failed = 0;\n\n this.state.uploading ||\n this.state.files.forEach(item => {\n if (item.state === 'error') {\n failed++;\n } else if (item.state === 'uploaded') {\n uploaded++;\n }\n });\n\n return (\n <div className={cx('FileControl', className)}>\n {templateUrl ? (\n <a\n className={cx('FileControl-templateInfo')}\n onClick={this.downloadTpl.bind(this)}\n >\n <Icon icon=\"download\" className=\"icon\" />\n <span>{__('File.downloadTpl')}</span>\n </a>\n ) : null}\n\n <DropZone\n disabled={disabled}\n key=\"drop-zone\"\n ref={this.dropzone}\n onDrop={this.handleDrop}\n onDropRejected={this.handleDropRejected}\n accept={accept === '*' ? '' : accept}\n multiple={multiple}\n >\n {({getRootProps, getInputProps, isDragActive}) => (\n <div\n {...getRootProps({\n onClick: preventEvent\n })}\n className={cx('FileControl-dropzone', {\n 'disabled':\n disabled ||\n (multiple && !!maxLength && files.length >= maxLength),\n 'is-empty': !files.length,\n 'is-active': isDragActive\n })}\n >\n <input disabled={disabled} {...getInputProps()} />\n\n {drag || isDragActive ? (\n <div\n className={cx('FileControl-acceptTip')}\n onClick={this.handleSelect}\n >\n <Icon icon=\"cloud-upload\" className=\"icon\" />\n <span>{__('File.dragDrop')}</span>\n {maxSize ? (\n <div className={cx('FileControl-sizeTip')}>\n {__('File.sizeLimit', {maxSize})}\n </div>\n ) : null}\n </div>\n ) : (\n <>\n <Button\n level=\"default\"\n disabled={disabled}\n className={cx('FileControl-selectBtn', {\n btnClassName,\n 'is-disabled':\n multiple && !!maxLength && files.length >= maxLength\n })}\n tooltip={\n multiple && maxLength && files.length >= maxLength\n ? __('File.maxLength', {maxLength})\n : ''\n }\n onClick={this.handleSelect}\n >\n <Icon icon=\"upload\" className=\"icon\" />\n <span>\n {!multiple && files.length\n ? __('File.repick')\n : multiple && files.length\n ? __('File.continueAdd')\n : btnLabel\n ? btnLabel\n : __('File.upload')}\n </span>\n </Button>\n\n {description\n ? render('desc', description!, {\n className: cx(\n 'FileControl-description',\n descriptionClassName\n )\n })\n : null}\n </>\n )}\n </div>\n )}\n </DropZone>\n\n {maxSize && !drag ? (\n <div className={cx('FileControl-sizeTip')}>\n {__('File.sizeLimit', {maxSize})}\n </div>\n ) : null}\n\n {Array.isArray(files) ? (\n <ul className={cx('FileControl-list')}>\n {files.map((file, index) => {\n const filename =\n file[nameField as keyof typeof file] ||\n (file as FileValue).filename;\n\n return (\n <li key={file.id}>\n <TooltipWrapper\n placement=\"bottom\"\n tooltipClassName={cx('FileControl-list-tooltip')}\n tooltip={\n file.state === 'invalid' || file.state === 'error'\n ? (file as FileValue).error ||\n (maxSize && file.size > maxSize\n ? __('File.maxSize', {\n filename: file.name,\n actualSize: ImageControl.formatFileSize(\n file.size\n ),\n maxSize: ImageControl.formatFileSize(maxSize)\n })\n : '')\n : ''\n }\n >\n <div\n className={cx('FileControl-itemInfo', {\n 'is-invalid':\n file.state === 'invalid' || file.state === 'error'\n })}\n >\n <span className={cx('FileControl-itemInfoIcon')}>\n <Icon icon=\"file\" className=\"icon\" />\n </span>\n\n {(file as FileValue)[urlField] ||\n (file as FileValue)[valueField] ||\n downloadUrl ? (\n <a\n className={cx('FileControl-itemInfoText')}\n target=\"_blank\"\n rel=\"noopener\"\n href=\"#\"\n onClick={this.handleClickFile.bind(this, file)}\n >\n {filename}\n </a>\n ) : (\n <span className={cx('FileControl-itemInfoText')}>\n {filename}\n </span>\n )}\n\n {!disabled ? (\n <a\n data-tooltip={__('Select.clear')}\n data-position=\"left\"\n className={cx('FileControl-clear')}\n onClick={() => this.removeFile(file, index)}\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n </TooltipWrapper>\n\n {file.state === 'uploading' ? (\n <div className={cx('FileControl-progressInfo')}>\n <div className={cx('FileControl-progress')}>\n <span\n style={{width: `${(file.progress || 0) * 100}%`}}\n />\n </div>\n <span>{Math.round((file.progress || 0) * 100)}%</span>\n </div>\n ) : null}\n </li>\n );\n })}\n </ul>\n ) : null}\n\n {failed ? (\n <div className={cx('FileControl-sum')}>\n {__('File.result', {\n uploaded,\n failed\n })}\n <a onClick={this.retry}>{__('File.retry')}</a>\n {__('File.failed')}\n </div>\n ) : null}\n\n {!autoUpload && !hideUploadButton && files.length ? (\n <Button\n level=\"default\"\n disabled={!hasPending}\n className={cx('FileControl-uploadBtn', btnUploadClassName)}\n onClick={this.toggleUpload}\n >\n {__(uploading ? 'File.pause' : 'File.start')}\n </Button>\n ) : null}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-file',\n sizeMutable: false,\n renderDescription: false,\n shouldComponentUpdate: (props: any, prevProps: any) =>\n !!isEffectiveApi(props.receiver, props.data) &&\n isApiOutdated(\n props.receiver,\n prevProps.receiver,\n props.data,\n prevProps.data\n )\n})\nexport class FileControlRenderer extends FileControl {}\n"
11
+ "import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport find from 'lodash/find';\nimport isPlainObject from 'lodash/isPlainObject';\nimport ImageControl from './InputImage';\nimport {Payload, ApiObject, ApiString, Action} from '../../types';\nimport {filter} from '../../utils/tpl';\nimport Alert from '../../components/Alert2';\nimport {qsstringify, createObject, guid, isEmpty} from '../../utils/helper';\nimport {\n buildApi,\n isEffectiveApi,\n normalizeApi,\n isApiOutdated\n} from '../../utils/api';\nimport Button from '../../components/Button';\nimport {Icon} from '../../components/icons';\nimport TooltipWrapper from '../../components/TooltipWrapper';\nimport DropZone from 'react-dropzone';\nimport {FileRejection} from 'react-dropzone';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport {\n SchemaApi,\n SchemaClassName,\n SchemaTokenizeableString,\n SchemaUrlPath\n} from '../../Schema';\nimport merge from 'lodash/merge';\nimport omit from 'lodash/omit';\n\n/**\n * File 文件上传控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/file\n */\nexport interface FileControlSchema extends FormBaseControl {\n /**\n * 指定为文件上传\n */\n type: 'input-file';\n\n /**\n * 上传文件按钮说明\n * @default 请选择文件\n */\n btnLabel?: string;\n\n /**\n * 默认只支持纯文本,要支持其他类型,请配置此属性。建议直接填写文件后缀\n * 如:.txt,.csv\n *\n * 多个类型用逗号隔开。\n *\n * @default text/plain\n */\n accept?: string;\n\n /**\n * 如果上传的文件比较小可以设置此选项来简单的把文件 base64 的值给 form 一起提交,目前不支持多选。\n */\n asBase64?: boolean;\n\n /**\n * 如果不希望 File 组件上传,可以配置 `asBlob` 或者 `asBase64`,采用这种方式后,组件不再自己上传了,而是直接把文件数据作为表单项的值,文件内容会在 Form 表单提交的接口里面一起带上。\n */\n asBlob?: boolean;\n\n /**\n * 是否自动开始上传\n */\n autoUpload?: boolean;\n\n /**\n * 默认 `/api/upload/chunk` 想自己存储时才需要关注。\n */\n chunkApi?: SchemaApi;\n\n /**\n * 分块大小,默认为 5M.\n *\n * @default 5242880\n */\n chunkSize?: number;\n\n /**\n * 分块上传的并发数\n */\n concurrency?: number;\n\n /**\n * 分割符\n */\n delimiter?: string;\n\n /**\n * 默认显示文件路径的时候会支持直接下载,\n * 可以支持加前缀如:`http://xx.dom/filename=` ,\n * 如果不希望这样,可以把当前配置项设置为 `false`。\n *\n * 1.1.6 版本开始将支持变量 ${xxx} 来自己拼凑个下载地址,并且支持配置成 post.\n */\n downloadUrl?: SchemaApi;\n\n /**\n * 模板下载地址\n */\n templateUrl?: SchemaApi;\n\n /**\n * 默认 `file`, 如果你不想自己存储,则可以忽略此属性。\n * @default file\n */\n fileField?: string;\n\n /**\n * 默认 `/api/upload/finishChunkApi` 想自己存储时才需要关注。\n *\n * @default /api/upload/finishChunkApi\n */\n finishChunkApi?: SchemaApi;\n\n /**\n * 是否隐藏上传按钮\n */\n hideUploadButton?: boolean;\n\n /**\n * 最多的个数\n */\n maxLength?: number;\n\n /**\n * 默认没有限制,当设置后,文件大小大于此值将不允许上传。\n */\n maxSize?: number;\n\n /**\n * 默认 `/api/upload/file` 如果想自己存储,请设置此选项。\n *\n * @default /api/upload/file\n */\n receiver?: SchemaApi;\n\n /**\n * 默认 `/api/upload/startChunk` 想自己存储时才需要关注。\n *\n * @default /api/upload/startChunk\n */\n startChunkApi?: string;\n\n /**\n * 默认为 'auto' amis 所在服务器,限制了文件上传大小不得超出10M,所以 amis 在用户选择大文件的时候,自动会改成分块上传模式。\n */\n useChunk?: 'auto' | boolean;\n\n /**\n * 按钮 CSS 类名\n */\n btnClassName?: SchemaClassName;\n\n /**\n * 上传按钮 CSS 类名\n */\n btnUploadClassName?: SchemaClassName;\n\n /**\n * 是否为多选\n */\n multiple?: boolean;\n\n /**\n * 1. 单选模式:当用户选中某个选项时,选项中的 value 将被作为该表单项的值提交,\n * 否则,整个选项对象都会作为该表单项的值提交。\n * 2. 多选模式:选中的多个选项的 `value` 会通过 `delimiter` 连接起来,\n * 否则直接将以数组的形式提交值。\n */\n joinValues?: boolean;\n\n /**\n * 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。\n */\n extractValue?: boolean;\n\n /**\n * 清除时设置的值\n */\n resetValue?: any;\n\n /**\n * 上传后把其他字段同步到表单内部。\n */\n autoFill?: {\n [propName: string]: SchemaTokenizeableString;\n };\n\n /**\n * 接口返回的数据中,哪个用来当做值\n */\n valueField?: string;\n\n /**\n * 接口返回的数据中,哪个用来展示文件名\n */\n nameField?: string;\n\n /**\n * 接口返回的数据中哪个用来作为下载地址。\n */\n urlField?: string;\n\n /**\n * 按钮状态文案配置。\n */\n stateTextMap?: {\n init: string;\n pending: string;\n uploading: string;\n error: string;\n uploaded: string;\n ready: string;\n };\n\n /**\n * 是否为拖拽上传\n */\n drag?: boolean;\n}\n\nexport interface FileProps\n extends FormControlProps,\n Omit<\n FileControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n stateTextMap: {\n init: string;\n pending: string;\n uploading: string;\n error: string;\n uploaded: string;\n ready: string;\n };\n}\n\nexport interface FileX extends File {\n state?:\n | 'init'\n | 'error'\n | 'pending'\n | 'uploading'\n | 'uploaded'\n | 'invalid'\n | 'ready';\n progress?: number;\n id?: any;\n}\n\nexport interface FileValue {\n filename?: string;\n value?: any;\n name?: string;\n url?: string;\n state:\n | 'init'\n | 'error'\n | 'pending'\n | 'uploading'\n | 'uploaded'\n | 'invalid'\n | 'ready';\n id?: any;\n [propName: string]: any;\n}\n\nexport interface FileState {\n uploading: boolean;\n files: Array<FileX | FileValue>;\n error?: string | null;\n}\nlet preventEvent = (e: any) => e.stopPropagation();\n\nexport function getNameFromUrl(url: string) {\n if (/(?:\\/|^)([^\\/]+?)$/.test(url)) {\n return decodeURIComponent(RegExp.$1);\n }\n\n return url;\n}\nexport type InputFileRendererEvent = 'change' | 'success' | 'fail' | 'remove';\nexport type InputFileRendererAction = 'clear';\n\nexport default class FileControl extends React.Component<FileProps, FileState> {\n static defaultProps: Partial<FileProps> = {\n maxSize: 0,\n maxLength: 0,\n placeholder: '',\n receiver: '/api/upload/file',\n fileField: 'file',\n joinValues: true,\n extractValue: false,\n delimiter: ',',\n downloadUrl: '', // '/api/file/'\n templateUrl: '',\n useChunk: 'auto',\n chunkSize: 5 * 1024 * 1024, // 文件大于5M, 自动分块上传\n startChunkApi: '/api/upload/startChunk',\n chunkApi: '/api/upload/chunk',\n finishChunkApi: '/api/upload/finishChunk',\n concurrency: 3,\n accept: '',\n multiple: false,\n autoUpload: true,\n hideUploadButton: false,\n stateTextMap: {\n init: '',\n pending: '等待上传',\n uploading: '上传中',\n error: '上传出错',\n uploaded: '已上传',\n ready: ''\n },\n asBase64: false,\n drag: false\n };\n\n state: FileState;\n current: FileValue | FileX | null;\n resolve?: (value?: any) => void;\n emitValue: any;\n fileUploadCancelExecutors: Array<{\n file: any;\n executor: () => void;\n }> = [];\n\n static valueToFile(\n value: string | FileValue,\n props: FileProps,\n files?: Array<FileX | FileValue>\n ): FileValue | undefined {\n let file: FileValue | FileX | undefined =\n files && typeof value === 'string'\n ? find(files, item => (item as FileValue).value === value)\n : undefined;\n const valueField = props.valueField || 'value';\n const urlField = props.urlField || 'url';\n const nameField = props.nameField || 'name';\n return value\n ? value instanceof File\n ? {\n state: 'ready',\n [valueField]: value,\n [urlField]: value,\n [nameField]: value.name,\n id: guid()\n }\n : {\n ...(typeof value === 'string'\n ? {\n state: file && file.state ? file.state : 'init',\n [valueField]: value,\n [urlField]: value,\n [nameField]:\n (file && file.name) ||\n (/^data:/.test(value)\n ? 'base64数据'\n : getNameFromUrl(value)),\n id: guid()\n }\n : (value as FileValue))\n }\n : undefined;\n }\n\n dropzone = React.createRef<any>();\n constructor(props: FileProps) {\n super(props);\n\n const value: string | Array<string | FileValue> | FileValue = props.value;\n const valueField = props.valueField || 'value';\n const joinValues = props.joinValues;\n const delimiter = props.delimiter as string;\n let files: Array<FileValue> = [];\n\n if (value && value instanceof Blob) {\n files = [value as any];\n } else if (value) {\n files = (\n Array.isArray(value)\n ? value\n : joinValues\n ? `${(value as any)[valueField] || value}`.split(delimiter)\n : [value as any]\n )\n .map(item => FileControl.valueToFile(item, props) as FileValue)\n .filter(item => item);\n }\n\n this.state = {\n files,\n uploading: false\n };\n\n this.sendFile = this.sendFile.bind(this);\n this.removeFile = this.removeFile.bind(this);\n this.clearError = this.clearError.bind(this);\n this.handleDrop = this.handleDrop.bind(this);\n this.handleDropRejected = this.handleDropRejected.bind(this);\n this.startUpload = this.startUpload.bind(this);\n this.stopUpload = this.stopUpload.bind(this);\n this.retry = this.retry.bind(this);\n this.toggleUpload = this.toggleUpload.bind(this);\n this.tick = this.tick.bind(this);\n this.onChange = this.onChange.bind(this);\n this.uploadFile = this.uploadFile.bind(this);\n this.uploadBigFile = this.uploadBigFile.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.syncAutoFill = this.syncAutoFill.bind(this);\n this.downloadTpl = this.downloadTpl.bind(this);\n }\n\n componentDidMount() {\n this.syncAutoFill();\n }\n\n componentDidUpdate(prevProps: FileProps) {\n const props = this.props;\n\n if (prevProps.value !== props.value && this.emitValue !== props.value) {\n const value: string | Array<string | FileValue> | FileValue = props.value;\n const joinValues = props.joinValues;\n const delimiter = props.delimiter as string;\n let files: Array<FileValue> = [];\n\n if (value) {\n files = (\n Array.isArray(value)\n ? value\n : joinValues && typeof value === 'string'\n ? value.split(delimiter)\n : [value as any]\n )\n .map(item => {\n let obj = FileControl.valueToFile(\n item,\n props,\n this.state.files\n ) as FileValue;\n let org;\n\n if (\n obj &&\n ((org = find(\n this.state.files,\n (item: FileValue) => item.value === obj.value\n )) as FileValue)\n ) {\n obj = {\n ...org,\n ...obj,\n id: obj.id || org!.id\n };\n }\n\n return obj;\n })\n .filter(item => item);\n }\n\n this.setState(\n {\n files: files\n },\n this.syncAutoFill\n );\n }\n }\n\n handleDrop(files: Array<FileX>) {\n if (!files.length) {\n return;\n }\n\n const {maxSize, multiple, maxLength, translate: __} = this.props;\n const nameField = this.props.nameField || 'name';\n let allowed =\n multiple && maxLength\n ? maxLength - this.state.files.length\n : files.length;\n\n const inputFiles: Array<FileX> = [];\n\n [].slice.call(files, 0, allowed).forEach((file: FileX) => {\n if (maxSize && file.size > maxSize) {\n // this.props.env.alert(\n // __('File.maxSize', {\n // filename: file[nameField as keyof typeof file] || file.name,\n // actualSize: ImageControl.formatFileSize(file.size),\n // maxSize: ImageControl.formatFileSize(maxSize)\n // })\n // );\n file.state = 'invalid';\n } else {\n file.state = 'pending';\n }\n\n file.id = guid();\n inputFiles.push(file);\n });\n\n if (!inputFiles.length) {\n return;\n }\n\n this.setState(\n {\n error: null,\n files: multiple ? this.state.files.concat(inputFiles) : inputFiles\n },\n () => {\n const {autoUpload} = this.props;\n\n if (autoUpload) {\n this.startUpload();\n }\n }\n );\n }\n\n handleDropRejected(\n rejectedFiles: FileRejection[],\n evt: React.DragEvent<any>\n ) {\n if (evt.type !== 'change' && evt.type !== 'drop') {\n return;\n }\n const {multiple, env, accept, translate: __} = this.props;\n const nameField = this.props.nameField || 'name';\n\n const files = rejectedFiles.map(fileRejection => ({\n ...fileRejection.file,\n state: 'invalid',\n id: guid(),\n [nameField]: fileRejection.file.name\n }));\n\n // this.setState({\n // files: multiple\n // ? this.state.files.concat(files)\n // : this.state.files.length\n // ? this.state.files\n // : files.slice(0, 1)\n // });\n\n env.alert(\n __('File.invalidType', {\n files: files.map((item: any) => `「${item[nameField]}」`).join(' '),\n accept\n })\n );\n }\n\n handleClickFile(file: FileX | FileValue, e: React.MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const {downloadUrl} = this.props;\n const urlField = this.props.urlField || 'url';\n const valueField = this.props.valueField || 'value';\n\n const fileUrl =\n file[urlField as keyof typeof file] ||\n file[valueField as keyof typeof file];\n\n let api =\n typeof downloadUrl === 'string' && !~downloadUrl.indexOf('$')\n ? `${downloadUrl}${fileUrl}`\n : downloadUrl\n ? downloadUrl\n : `${fileUrl}`;\n\n this.handleApi(api, file);\n }\n\n downloadTpl(e: React.MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n this.handleApi(this.props.templateUrl || '');\n }\n\n handleApi(api: SchemaApi, payload?: object) {\n const {data, env} = this.props;\n if (api) {\n const ctx = createObject(data, {\n ...payload\n });\n\n const apiObject = normalizeApi(api);\n\n if (apiObject.method?.toLowerCase() === 'get' && !apiObject.data) {\n window.open(buildApi(apiObject, ctx).url);\n } else {\n apiObject.responseType = apiObject.responseType ?? 'blob';\n env.fetcher(apiObject, ctx, {\n responseType: 'blob'\n });\n }\n }\n }\n\n handleSelect() {\n const {disabled, multiple, maxLength} = this.props;\n !disabled &&\n !(multiple && maxLength && this.state.files.length >= maxLength) &&\n this.dropzone.current &&\n this.dropzone.current.open();\n }\n\n startUpload(retry: boolean = false) {\n if (this.state.uploading) {\n return;\n }\n\n this.setState(\n {\n uploading: true,\n files: this.state.files.map(file => {\n if (retry && file.state === 'error') {\n file.state = 'pending';\n file.progress = 0;\n }\n\n return file;\n })\n },\n this.tick\n );\n }\n\n toggleUpload(e: React.MouseEvent<HTMLButtonElement>) {\n e.preventDefault();\n return this.state.uploading ? this.stopUpload() : this.startUpload();\n }\n\n stopUpload() {\n if (!this.state.uploading) {\n return;\n }\n\n this.setState({\n uploading: false\n });\n }\n\n retry() {\n this.startUpload(true);\n }\n\n tick() {\n if (this.current || !this.state.uploading) {\n return;\n }\n\n const {translate: __} = this.props;\n const nameField = this.props.nameField || 'name';\n const file = find(\n this.state.files,\n item => item.state === 'pending'\n ) as FileX;\n if (file) {\n this.current = file;\n\n file.state = 'uploading';\n\n this.setState(\n {\n files: this.state.files.concat()\n },\n () =>\n this.sendFile(\n file,\n (error, file, obj) => {\n const files = this.state.files.concat();\n const idx = files.indexOf(file as FileX);\n\n if (!~idx) {\n return;\n }\n\n let newFile: FileValue = file as FileValue;\n\n if (error) {\n newFile.state = 'error';\n newFile.error = error;\n } else {\n newFile = obj as FileValue;\n newFile[nameField] = newFile[nameField] || file!.name;\n }\n files.splice(idx, 1, newFile);\n this.current = null;\n this.setState(\n {\n error: error ? error : null,\n files: files\n },\n this.tick\n );\n },\n progress => {\n const files = this.state.files.concat();\n const idx = files.indexOf(file);\n\n if (!~idx) {\n return;\n }\n\n // file 是个非 File 对象,先不copy了直接改。\n file.progress = progress;\n this.setState({\n files\n });\n }\n )\n );\n } else {\n this.setState(\n {\n uploading: false\n },\n () => {\n this.onChange(!!this.resolve);\n\n if (this.resolve) {\n this.resolve(\n this.state.files.some(file => file.state === 'error')\n ? __('File.errorRetry')\n : null\n );\n this.resolve = undefined;\n }\n }\n );\n }\n }\n\n sendFile(\n file: FileX,\n cb: (error: null | string, file?: FileX, obj?: FileValue) => void,\n onProgress: (progress: number) => void\n ) {\n const {\n receiver,\n fileField,\n useChunk,\n chunkSize,\n startChunkApi,\n chunkApi,\n finishChunkApi,\n asBase64,\n asBlob,\n data,\n translate: __\n } = this.props;\n const nameField = this.props.nameField || 'name';\n const valueField = this.props.valueField || 'value';\n\n if (asBase64) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n file.state = 'ready';\n cb(null, file, {\n [valueField]: reader.result as string,\n [nameField]: file.name,\n state: 'ready',\n id: file.id\n });\n };\n reader.onerror = (error: any) => cb(error.message);\n return;\n } else if (asBlob) {\n file.state = 'ready';\n setTimeout(\n () =>\n cb(null, file, {\n [nameField]: file.name,\n [valueField]: file,\n state: 'ready',\n id: file.id\n }),\n 4\n );\n return;\n }\n\n let fn =\n (useChunk === 'auto' && chunkSize && file.size > chunkSize) ||\n useChunk === true\n ? this.uploadBigFile\n : this.uploadFile;\n\n fn(\n file,\n receiver as string,\n {},\n {\n fieldName: fileField,\n chunkSize,\n startChunkApi,\n chunkApi,\n finishChunkApi,\n data\n },\n onProgress\n )\n .then(async ret => {\n if ((ret.status && (ret as any).status !== '0') || !ret.data) {\n throw new Error(ret.msg || __('File.errorRetry'));\n }\n\n onProgress(1);\n let value =\n (ret.data as any).value || (ret.data as any).url || ret.data;\n\n const dispatcher = await this.dispatchEvent('success', {\n ...file,\n value,\n state: 'uploaded'\n });\n if (dispatcher?.prevented) {\n return;\n }\n cb(null, file, {\n ...(isPlainObject(ret.data) ? ret.data : null),\n value: value,\n state: 'uploaded',\n id: file.id\n });\n })\n .catch(async error => {\n const dispatcher = await this.dispatchEvent('fail', {file, error});\n if (dispatcher?.prevented) {\n return;\n }\n cb(error.message || __('File.errorRetry'), file);\n });\n }\n\n async removeFile(file: FileX | FileValue, index: number) {\n const files = this.state.files.concat();\n const removeFile = files[index];\n // 触发移出文件事件\n const dispatcher = await this.dispatchEvent('remove', removeFile);\n if (dispatcher?.prevented) {\n return;\n }\n this.removeFileCanelExecutor(file, true);\n files.splice(index, 1);\n\n const isUploading = this.current === file;\n if (isUploading) {\n this.current = null;\n }\n\n this.setState(\n {\n files: files\n },\n isUploading ? this.tick : this.onChange\n );\n }\n\n clearError() {\n this.setState({\n error: null\n });\n }\n\n async onChange(changeImmediately?: boolean) {\n const {\n multiple,\n onChange,\n joinValues,\n extractValue,\n valueField,\n delimiter,\n resetValue,\n asBlob,\n autoFill,\n onBulkChange\n } = this.props;\n\n const files = this.state.files.filter(\n file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)\n );\n let value: any = multiple ? files : files[0];\n\n if (value) {\n if (extractValue || asBlob) {\n value = Array.isArray(value)\n ? value.map((item: any) => item[valueField || 'value'])\n : value[valueField || 'value'];\n } else if (joinValues) {\n value = Array.isArray(value)\n ? value\n .map((item: any) => item[valueField || 'value'])\n .join(delimiter || ',')\n : value[valueField || 'value'];\n }\n } else {\n value = typeof resetValue === 'undefined' ? '' : resetValue;\n }\n\n const dispatcher = await this.dispatchEvent('change');\n if (dispatcher?.prevented) {\n return;\n }\n\n onChange((this.emitValue = value), undefined, changeImmediately);\n this.syncAutoFill();\n }\n\n syncAutoFill() {\n const {autoFill, multiple, onBulkChange, data, name} = this.props;\n // 排除自身的字段,否则会无限更新state\n const excludeSelfAutoFill = omit(autoFill, name || '');\n\n if (!isEmpty(excludeSelfAutoFill) && onBulkChange) {\n const files = this.state.files.filter(\n file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)\n );\n const toSync = dataMapping(\n excludeSelfAutoFill,\n multiple\n ? {\n items: files\n }\n : files[0]\n );\n Object.keys(toSync).forEach(key => {\n if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {\n toSync[key] = merge({}, data[key], toSync[key]);\n }\n });\n onBulkChange(toSync);\n }\n }\n\n async uploadFile(\n file: FileX,\n receiver: string,\n params: object,\n config: Partial<FileProps> = {},\n onProgress: (progress: number) => void\n ): Promise<Payload> {\n const fd = new FormData();\n const api = buildApi(receiver, createObject(config.data, params), {\n method: 'post'\n });\n\n qsstringify({...api.data, ...params})\n .split('&')\n .filter(i => !!i)\n .forEach(item => {\n const parts = item.split('=');\n fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fd.append(config.fieldName || 'file', file);\n\n try {\n return await this._send(file, api, fd, {}, onProgress);\n } finally {\n this.removeFileCanelExecutor(file);\n }\n }\n\n uploadBigFile(\n file: FileX,\n receiver: string,\n params: object,\n config: Partial<FileProps> = {},\n onProgress: (progress: number) => void\n ): Promise<Payload> {\n const chunkSize = config.chunkSize || 5 * 1024 * 1024;\n const concurrency = this.props.concurrency;\n const self = this;\n let startProgress = 0.2;\n let endProgress = 0.9;\n let progressArr: Array<number>;\n const __ = this.props.translate;\n const nameField = this.props.nameField || 'name';\n\n interface ObjectState {\n key: string;\n uploadId: string;\n loaded: number;\n total: number;\n [propName: string]: any;\n }\n\n interface Task {\n file: File;\n partNumber: number;\n partSize: number;\n start: number;\n stop: number;\n [propName: string]: any;\n }\n\n return new Promise((resolve, reject) => {\n let state: ObjectState;\n const startApi = buildApi(\n config.startChunkApi!,\n createObject(config.data, {\n ...params,\n filename: file.name,\n [nameField]: file.name\n }),\n {\n method: 'post',\n autoAppend: true\n }\n );\n\n self._send(file, startApi).then(startChunk).catch(reject);\n\n async function startChunk(ret: Payload) {\n onProgress(startProgress);\n const tasks = getTasks(file);\n progressArr = tasks.map(() => 0);\n\n if (!ret.data) {\n throw new Error(__('File.uploadFailed'));\n }\n\n state = {\n key: (ret.data as any).key,\n uploadId: (ret.data as any).uploadId,\n loaded: 0,\n total: tasks.length\n };\n\n let results: any[] = [];\n while (tasks.length) {\n const res = await Promise.all(\n tasks.splice(0, concurrency).map(async task => {\n return await uploadPartFile(state, config)(\n task,\n (err: any, value: any) => {\n if (err) {\n reject(err);\n throw new Error(err);\n }\n return value;\n }\n );\n })\n );\n results = results.concat(res);\n }\n finishChunk(results, state);\n }\n\n function updateProgress(partNumber: number, progress: number) {\n progressArr[partNumber - 1] = progress;\n onProgress(\n startProgress +\n (endProgress - startProgress) *\n (progressArr.reduce((count, progress) => count + progress, 0) /\n progressArr.length)\n );\n }\n\n async function finishChunk(\n partList: Array<any> | undefined,\n state: ObjectState\n ) {\n onProgress(endProgress);\n const endApi = buildApi(\n config.finishChunkApi!,\n createObject(config.data, {\n ...params,\n uploadId: state.uploadId,\n key: state.key,\n [nameField]: file.name,\n filename: file.name,\n partList\n }),\n {\n method: 'post',\n autoAppend: true\n }\n );\n\n try {\n const ret = await self._send(file, endApi);\n resolve(ret);\n } catch (err) {\n reject(err);\n } finally {\n self.removeFileCanelExecutor(file);\n }\n }\n\n function uploadPartFile(state: ObjectState, conf: Partial<FileProps>) {\n return (task: Task, callback: (error: any, value?: any) => void) => {\n const api = buildApi(\n conf.chunkApi!,\n createObject(config.data, params),\n {\n method: 'post'\n }\n );\n\n const fd = new FormData();\n let blob = task.file.slice(task.start, task.stop + 1);\n\n qsstringify({...api.data, ...params})\n .split('&')\n .forEach(item => {\n const parts = item.split('=');\n fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n fd.append('key', state.key);\n fd.append('uploadId', state.uploadId);\n fd.append('partNumber', task.partNumber.toString());\n fd.append('partSize', task.partSize.toString());\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fd.append(config.fieldName || 'file', blob, file.name);\n\n return self\n ._send(file, api, fd, {}, progress =>\n updateProgress(task.partNumber, progress)\n )\n .then(ret => {\n state.loaded++;\n callback(null, {\n partNumber: task.partNumber,\n eTag: (ret.data as any).eTag\n });\n })\n .catch(callback);\n };\n }\n\n function getTasks(file: FileX): Array<Task> {\n let leftSize = file.size;\n let offset = 0;\n let partNumber = 1;\n\n let tasks: Array<Task> = [];\n\n while (leftSize > 0) {\n let partSize = Math.min(leftSize, chunkSize);\n tasks.push({\n file: file,\n partNumber: partNumber,\n partSize: partSize,\n start: offset,\n stop: offset + partSize - 1\n });\n\n leftSize -= partSize;\n offset += partSize;\n partNumber += 1;\n }\n\n return tasks;\n }\n });\n }\n\n _send(\n file: FileX,\n api: ApiObject | ApiString,\n data?: any,\n options?: object,\n onProgress?: (progress: number) => void\n ): Promise<Payload> {\n const env = this.props.env;\n\n if (!env || !env.fetcher) {\n throw new Error('fetcher is required');\n }\n\n return env.fetcher(api, data, {\n method: 'post',\n ...options,\n withCredentials: true,\n cancelExecutor: (cancelExecutor: () => void) => {\n // 记录取消器,取消的时候要调用\n this.fileUploadCancelExecutors.push({\n file: file,\n executor: cancelExecutor\n });\n },\n onUploadProgress: onProgress\n ? (event: {loaded: number; total: number}) =>\n onProgress(event.loaded / event.total)\n : undefined\n });\n }\n\n removeFileCanelExecutor(file: any, execute = false) {\n this.fileUploadCancelExecutors = this.fileUploadCancelExecutors.filter(\n item => {\n if (execute && item.file === file) {\n item.executor();\n }\n\n return item.file !== file;\n }\n );\n }\n\n validate(): any {\n const __ = this.props.translate;\n\n if (\n this.state.uploading ||\n this.state.files.some(item => item.state === 'pending')\n ) {\n return new Promise(resolve => {\n this.resolve = resolve;\n this.startUpload();\n });\n } else if (this.state.files.some(item => item.state === 'error')) {\n return __('File.errorRetry');\n }\n }\n\n async dispatchEvent(e: string, data?: Record<string, any>) {\n const {dispatchEvent} = this.props;\n const getEventData = (item: Record<string, any>) => ({\n name: item.path || item.name,\n value: item.value,\n state: item.state,\n error: item.error\n });\n const value = data\n ? getEventData(data)\n : this.state.files.map(item => getEventData(item));\n return dispatchEvent(\n e,\n createObject(this.props.data, {\n file: value\n })\n );\n }\n\n // 动作\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {onChange} = this.props;\n if (action.actionType === 'clear') {\n this.setState({files: []}, () => {\n onChange('');\n });\n }\n }\n\n render() {\n const {\n btnLabel,\n accept,\n disabled,\n maxLength,\n maxSize,\n multiple,\n autoUpload,\n description,\n descriptionClassName,\n hideUploadButton,\n className,\n btnClassName,\n btnUploadClassName,\n classnames: cx,\n translate: __,\n render,\n downloadUrl,\n templateUrl,\n drag\n } = this.props;\n let {files, uploading, error} = this.state;\n const nameField = this.props.nameField || 'name';\n const valueField = this.props.valueField || 'value';\n const urlField = this.props.urlField || 'url';\n\n const hasPending = files.some(file => file.state == 'pending');\n\n let uploaded = 0;\n let failed = 0;\n\n this.state.uploading ||\n this.state.files.forEach(item => {\n if (item.state === 'error') {\n failed++;\n } else if (item.state === 'uploaded') {\n uploaded++;\n }\n });\n\n return (\n <div className={cx('FileControl', className)}>\n {templateUrl ? (\n <a\n className={cx('FileControl-templateInfo')}\n onClick={this.downloadTpl.bind(this)}\n >\n <Icon icon=\"download\" className=\"icon\" />\n <span>{__('File.downloadTpl')}</span>\n </a>\n ) : null}\n\n <DropZone\n disabled={disabled}\n key=\"drop-zone\"\n ref={this.dropzone}\n onDrop={this.handleDrop}\n onDropRejected={this.handleDropRejected}\n accept={accept === '*' ? '' : accept}\n multiple={multiple}\n >\n {({getRootProps, getInputProps, isDragActive}) => (\n <div\n {...getRootProps({\n onClick: preventEvent\n })}\n className={cx('FileControl-dropzone', {\n 'disabled':\n disabled ||\n (multiple && !!maxLength && files.length >= maxLength),\n 'is-empty': !files.length,\n 'is-active': isDragActive\n })}\n >\n <input disabled={disabled} {...getInputProps()} />\n\n {drag || isDragActive ? (\n <div\n className={cx('FileControl-acceptTip')}\n onClick={this.handleSelect}\n >\n <Icon icon=\"cloud-upload\" className=\"icon\" />\n <span>{__('File.dragDrop')}</span>\n {maxSize ? (\n <div className={cx('FileControl-sizeTip')}>\n {__('File.sizeLimit', {maxSize})}\n </div>\n ) : null}\n </div>\n ) : (\n <>\n <Button\n level=\"default\"\n disabled={disabled}\n className={cx('FileControl-selectBtn', btnClassName, {\n 'is-disabled':\n multiple && !!maxLength && files.length >= maxLength\n })}\n tooltip={\n multiple && maxLength && files.length >= maxLength\n ? __('File.maxLength', {maxLength})\n : ''\n }\n onClick={this.handleSelect}\n >\n <Icon icon=\"upload\" className=\"icon\" />\n <span>\n {!multiple && files.length\n ? __('File.repick')\n : multiple && files.length\n ? __('File.continueAdd')\n : btnLabel\n ? btnLabel\n : __('File.upload')}\n </span>\n </Button>\n\n {description\n ? render('desc', description!, {\n className: cx(\n 'FileControl-description',\n descriptionClassName\n )\n })\n : null}\n </>\n )}\n </div>\n )}\n </DropZone>\n\n {maxSize && !drag ? (\n <div className={cx('FileControl-sizeTip')}>\n {__('File.sizeLimit', {maxSize})}\n </div>\n ) : null}\n\n {Array.isArray(files) ? (\n <ul className={cx('FileControl-list')}>\n {files.map((file, index) => {\n const filename =\n file[nameField as keyof typeof file] ||\n (file as FileValue).filename;\n\n return (\n <li key={file.id}>\n <TooltipWrapper\n placement=\"bottom\"\n tooltipClassName={cx('FileControl-list-tooltip')}\n tooltip={\n file.state === 'invalid' || file.state === 'error'\n ? (file as FileValue).error ||\n (maxSize && file.size > maxSize\n ? __('File.maxSize', {\n filename: file.name,\n actualSize: ImageControl.formatFileSize(\n file.size\n ),\n maxSize: ImageControl.formatFileSize(maxSize)\n })\n : '')\n : ''\n }\n >\n <div\n className={cx('FileControl-itemInfo', {\n 'is-invalid':\n file.state === 'invalid' || file.state === 'error'\n })}\n >\n <span className={cx('FileControl-itemInfoIcon')}>\n <Icon icon=\"file\" className=\"icon\" />\n </span>\n\n {(file as FileValue)[urlField] ||\n (file as FileValue)[valueField] ||\n downloadUrl ? (\n <a\n className={cx('FileControl-itemInfoText')}\n target=\"_blank\"\n rel=\"noopener\"\n href=\"#\"\n onClick={this.handleClickFile.bind(this, file)}\n >\n {filename}\n </a>\n ) : (\n <span className={cx('FileControl-itemInfoText')}>\n {filename}\n </span>\n )}\n\n {!disabled ? (\n <a\n data-tooltip={__('Select.clear')}\n data-position=\"left\"\n className={cx('FileControl-clear')}\n onClick={() => this.removeFile(file, index)}\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n </TooltipWrapper>\n\n {file.state === 'uploading' ? (\n <div className={cx('FileControl-progressInfo')}>\n <div className={cx('FileControl-progress')}>\n <span\n style={{width: `${(file.progress || 0) * 100}%`}}\n />\n </div>\n <span>{Math.round((file.progress || 0) * 100)}%</span>\n </div>\n ) : null}\n </li>\n );\n })}\n </ul>\n ) : null}\n\n {failed ? (\n <div className={cx('FileControl-sum')}>\n {__('File.result', {\n uploaded,\n failed\n })}\n <a onClick={this.retry}>{__('File.retry')}</a>\n {__('File.failed')}\n </div>\n ) : null}\n\n {!autoUpload && !hideUploadButton && files.length ? (\n <Button\n level=\"default\"\n disabled={!hasPending}\n className={cx('FileControl-uploadBtn', btnUploadClassName)}\n onClick={this.toggleUpload}\n >\n {__(uploading ? 'File.pause' : 'File.start')}\n </Button>\n ) : null}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-file',\n sizeMutable: false,\n renderDescription: false,\n shouldComponentUpdate: (props: any, prevProps: any) =>\n !!isEffectiveApi(props.receiver, props.data) &&\n isApiOutdated(\n props.receiver,\n prevProps.receiver,\n props.data,\n prevProps.data\n )\n})\nexport class FileControlRenderer extends FileControl {}\n"
12
12
  ]
13
13
  }
@@ -23,7 +23,7 @@ var TreeControl = /** @class */ (function (_super) {
23
23
  onChange && onChange(resetValue !== null && resetValue !== void 0 ? resetValue : '');
24
24
  }
25
25
  if (action.actionType === 'expand') {
26
- this.treeRef.syncUnFolded(this.props, action.openLevel);
26
+ this.treeRef.syncUnFolded(this.props, action.args.openLevel);
27
27
  }
28
28
  if (action.actionType === 'collapse') {
29
29
  this.treeRef.syncUnFolded(this.props, 0);