amis-editor 4.1.0-beta.4 → 5.2.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (420) hide show
  1. package/lib/component/BaseControl.d.ts +1831 -0
  2. package/lib/component/BaseControl.js +366 -0
  3. package/{dist/component/base → lib/component}/InputComponentName.d.ts +1 -1
  4. package/lib/component/InputComponentName.js +44 -0
  5. package/{dist → lib}/component/TableViewEditor.d.ts +2 -2
  6. package/lib/component/TableViewEditor.js +528 -0
  7. package/lib/event-action/actions.d.ts +3 -0
  8. package/lib/event-action/actions.js +188 -0
  9. package/lib/event-action/schema.d.ts +13 -0
  10. package/lib/event-action/schema.js +134 -0
  11. package/{dist → lib}/index.d.ts +27 -31
  12. package/lib/index.js +181 -0
  13. package/{dist → lib}/plugin/Alert.d.ts +5 -3
  14. package/lib/plugin/Alert.js +113 -0
  15. package/lib/plugin/AnchorNav.d.ts +48 -0
  16. package/lib/plugin/AnchorNav.js +297 -0
  17. package/{dist → lib}/plugin/Audio.d.ts +1 -1
  18. package/lib/plugin/Audio.js +157 -0
  19. package/{dist → lib}/plugin/Avatar.d.ts +11 -2
  20. package/lib/plugin/Avatar.js +305 -0
  21. package/{dist → lib}/plugin/Breadcrumb.d.ts +1 -1
  22. package/lib/plugin/Breadcrumb.js +116 -0
  23. package/{dist → lib}/plugin/Button.d.ts +7 -3
  24. package/lib/plugin/Button.js +297 -0
  25. package/lib/plugin/ButtonGroup.d.ts +39 -0
  26. package/lib/plugin/ButtonGroup.js +139 -0
  27. package/{dist → lib}/plugin/ButtonToolbar.d.ts +5 -11
  28. package/lib/plugin/ButtonToolbar.js +89 -0
  29. package/{dist → lib}/plugin/CRUD.d.ts +3 -1
  30. package/lib/plugin/CRUD.js +1528 -0
  31. package/{dist → lib}/plugin/Card.d.ts +2 -1
  32. package/lib/plugin/Card.js +233 -0
  33. package/{dist → lib}/plugin/Cards.d.ts +3 -2
  34. package/lib/plugin/Cards.js +254 -0
  35. package/{dist → lib}/plugin/Carousel.d.ts +2 -1
  36. package/lib/plugin/Carousel.js +358 -0
  37. package/{dist → lib}/plugin/Chart.d.ts +4 -1
  38. package/lib/plugin/Chart.js +192 -0
  39. package/{dist → lib}/plugin/CodeView.d.ts +1 -1
  40. package/lib/plugin/CodeView.js +68 -0
  41. package/{dist → lib}/plugin/Collapse.d.ts +3 -1
  42. package/lib/plugin/Collapse.js +138 -0
  43. package/{dist → lib}/plugin/CollapseGroup.d.ts +29 -5
  44. package/lib/plugin/CollapseGroup.js +237 -0
  45. package/{dist → lib}/plugin/Container.d.ts +3 -2
  46. package/lib/plugin/Container.js +100 -0
  47. package/{dist → lib}/plugin/Custom.d.ts +4 -1
  48. package/lib/plugin/Custom.js +109 -0
  49. package/lib/plugin/CustomRegion.d.ts +40 -0
  50. package/lib/plugin/CustomRegion.js +154 -0
  51. package/{dist → lib}/plugin/Date.d.ts +1 -1
  52. package/lib/plugin/Date.js +82 -0
  53. package/{dist → lib}/plugin/Datetime.d.ts +1 -1
  54. package/lib/plugin/Datetime.js +77 -0
  55. package/{dist → lib}/plugin/Dialog.d.ts +13 -3
  56. package/lib/plugin/Dialog.js +214 -0
  57. package/{dist → lib}/plugin/Divider.d.ts +1 -1
  58. package/lib/plugin/Divider.js +49 -0
  59. package/{dist → lib}/plugin/Drawer.d.ts +13 -3
  60. package/lib/plugin/Drawer.js +240 -0
  61. package/{dist → lib}/plugin/DropDownButton.d.ts +13 -12
  62. package/lib/plugin/DropDownButton.js +229 -0
  63. package/{dist → lib}/plugin/Each.d.ts +2 -2
  64. package/lib/plugin/Each.js +131 -0
  65. package/{dist → lib}/plugin/Flex.d.ts +2 -1
  66. package/lib/plugin/Flex.js +203 -0
  67. package/{dist → lib}/plugin/Form/ButtonGroupSelect.d.ts +7 -2
  68. package/lib/plugin/Form/ButtonGroupSelect.js +161 -0
  69. package/{dist → lib}/plugin/Form/ButtonToolbar.d.ts +8 -7
  70. package/lib/plugin/Form/ButtonToolbar.js +107 -0
  71. package/{dist → lib}/plugin/Form/ChainedSelect.d.ts +8 -2
  72. package/lib/plugin/Form/ChainedSelect.js +183 -0
  73. package/{dist → lib}/plugin/Form/Checkbox.d.ts +7 -2
  74. package/lib/plugin/Form/Checkbox.js +174 -0
  75. package/{dist → lib}/plugin/Form/Checkboxes.d.ts +8 -2
  76. package/lib/plugin/Form/Checkboxes.js +213 -0
  77. package/lib/plugin/Form/CodeEditor.d.ts +25 -0
  78. package/lib/plugin/Form/CodeEditor.js +201 -0
  79. package/{dist → lib}/plugin/Form/Combo.d.ts +4 -1
  80. package/lib/plugin/Form/Combo.js +546 -0
  81. package/{dist → lib}/plugin/Form/ConditionBuilder.d.ts +1 -1
  82. package/lib/plugin/Form/ConditionBuilder.js +302 -0
  83. package/{dist → lib}/plugin/Form/Control.d.ts +7 -2
  84. package/lib/plugin/Form/Control.js +88 -0
  85. package/{dist → lib}/plugin/Form/DiffEditor.d.ts +8 -2
  86. package/lib/plugin/Form/DiffEditor.js +204 -0
  87. package/{dist → lib}/plugin/Form/FieldSet.d.ts +1 -1
  88. package/lib/plugin/Form/FieldSet.js +152 -0
  89. package/lib/plugin/Form/Form.d.ts +42 -0
  90. package/lib/plugin/Form/Form.js +846 -0
  91. package/lib/plugin/Form/Formula.d.ts +27 -0
  92. package/lib/plugin/Form/Formula.js +82 -0
  93. package/{dist → lib}/plugin/Form/Group.d.ts +1 -1
  94. package/lib/plugin/Form/Group.js +252 -0
  95. package/{dist → lib}/plugin/Form/Hidden.d.ts +1 -1
  96. package/lib/plugin/Form/Hidden.js +58 -0
  97. package/{dist → lib}/plugin/Form/InputArray.d.ts +1 -1
  98. package/lib/plugin/Form/InputArray.js +181 -0
  99. package/{dist → lib}/plugin/Form/InputCity.d.ts +6 -2
  100. package/lib/plugin/Form/InputCity.js +139 -0
  101. package/{dist → lib}/plugin/Form/InputColor.d.ts +20 -18
  102. package/lib/plugin/Form/InputColor.js +295 -0
  103. package/lib/plugin/Form/InputDate.d.ts +26 -0
  104. package/lib/plugin/Form/InputDate.js +357 -0
  105. package/lib/plugin/Form/InputDateRange.d.ts +26 -0
  106. package/lib/plugin/Form/InputDateRange.js +350 -0
  107. package/{dist → lib}/plugin/Form/InputDateTime.d.ts +4 -4
  108. package/lib/plugin/Form/InputDateTime.js +50 -0
  109. package/lib/plugin/Form/InputDateTimeRange.d.ts +20 -0
  110. package/lib/plugin/Form/InputDateTimeRange.js +51 -0
  111. package/{dist → lib}/plugin/Form/InputEmail.d.ts +1 -0
  112. package/lib/plugin/Form/InputEmail.js +45 -0
  113. package/lib/plugin/Form/InputExcel.d.ts +23 -0
  114. package/lib/plugin/Form/InputExcel.js +121 -0
  115. package/{dist → lib}/plugin/Form/InputFile.d.ts +7 -3
  116. package/lib/plugin/Form/InputFile.js +354 -0
  117. package/{dist → lib}/plugin/Form/InputGroup.d.ts +1 -1
  118. package/lib/plugin/Form/InputGroup.js +100 -0
  119. package/{dist → lib}/plugin/Form/InputImage.d.ts +6 -2
  120. package/lib/plugin/Form/InputImage.js +271 -0
  121. package/{dist → lib}/plugin/Form/InputKV.d.ts +7 -1
  122. package/lib/plugin/Form/InputKV.js +129 -0
  123. package/{dist → lib}/plugin/Form/InputMonth.d.ts +1 -0
  124. package/lib/plugin/Form/InputMonth.js +48 -0
  125. package/{dist/plugin/Form/InputDate.d.ts → lib/plugin/Form/InputMonthRange.d.ts} +4 -4
  126. package/lib/plugin/Form/InputMonthRange.js +51 -0
  127. package/{dist → lib}/plugin/Form/InputNumber.d.ts +7 -2
  128. package/lib/plugin/Form/InputNumber.js +263 -0
  129. package/{dist → lib}/plugin/Form/InputPassword.d.ts +1 -0
  130. package/lib/plugin/Form/InputPassword.js +45 -0
  131. package/{dist → lib}/plugin/Form/InputQuarter.d.ts +1 -0
  132. package/lib/plugin/Form/InputQuarter.js +48 -0
  133. package/{dist → lib}/plugin/Form/InputQuarterRange.d.ts +4 -4
  134. package/lib/plugin/Form/InputQuarterRange.js +51 -0
  135. package/{dist → lib}/plugin/Form/InputRange.d.ts +7 -2
  136. package/lib/plugin/Form/InputRange.js +292 -0
  137. package/lib/plugin/Form/InputRating.d.ts +25 -0
  138. package/lib/plugin/Form/InputRating.js +357 -0
  139. package/{dist → lib}/plugin/Form/InputRepeat.d.ts +1 -1
  140. package/lib/plugin/Form/InputRepeat.js +65 -0
  141. package/{dist → lib}/plugin/Form/InputRichText.d.ts +1 -1
  142. package/lib/plugin/Form/InputRichText.js +193 -0
  143. package/{dist → lib}/plugin/Form/InputSubForm.d.ts +2 -1
  144. package/lib/plugin/Form/InputSubForm.js +160 -0
  145. package/{dist → lib}/plugin/Form/InputTable.d.ts +1 -1
  146. package/lib/plugin/Form/InputTable.js +400 -0
  147. package/{dist → lib}/plugin/Form/InputTag.d.ts +6 -2
  148. package/lib/plugin/Form/InputTag.js +155 -0
  149. package/lib/plugin/Form/InputText.d.ts +42 -0
  150. package/lib/plugin/Form/InputText.js +328 -0
  151. package/{dist → lib}/plugin/Form/InputTime.d.ts +3 -3
  152. package/lib/plugin/Form/InputTime.js +48 -0
  153. package/{dist/plugin/Form/InputDateTimeRange.d.ts → lib/plugin/Form/InputTimeRange.d.ts} +4 -4
  154. package/lib/plugin/Form/InputTimeRange.js +51 -0
  155. package/{dist → lib}/plugin/Form/InputTree.d.ts +6 -2
  156. package/lib/plugin/Form/InputTree.js +375 -0
  157. package/{dist → lib}/plugin/Form/InputURL.d.ts +2 -0
  158. package/lib/plugin/Form/InputURL.js +46 -0
  159. package/{dist → lib}/plugin/Form/InputYear.d.ts +1 -0
  160. package/lib/plugin/Form/InputYear.js +48 -0
  161. package/{dist/plugin/Form/InputMonthRange.d.ts → lib/plugin/Form/InputYearRange.d.ts} +4 -4
  162. package/lib/plugin/Form/InputYearRange.js +51 -0
  163. package/{dist → lib}/plugin/Form/Item.d.ts +2 -2
  164. package/lib/plugin/Form/Item.js +265 -0
  165. package/{dist → lib}/plugin/Form/ListSelect.d.ts +6 -2
  166. package/lib/plugin/Form/ListSelect.js +130 -0
  167. package/{dist/plugin/Form/InputDateRange.d.ts → lib/plugin/Form/LocationPicker.d.ts} +5 -6
  168. package/lib/plugin/Form/LocationPicker.js +74 -0
  169. package/{dist → lib}/plugin/Form/MatrixCheckboxes.d.ts +7 -2
  170. package/lib/plugin/Form/MatrixCheckboxes.js +234 -0
  171. package/{dist → lib}/plugin/Form/NestedSelect.d.ts +8 -2
  172. package/lib/plugin/Form/NestedSelect.js +328 -0
  173. package/{dist → lib}/plugin/Form/Picker.d.ts +1 -1
  174. package/lib/plugin/Form/Picker.js +169 -0
  175. package/{dist → lib}/plugin/Form/Radios.d.ts +7 -2
  176. package/lib/plugin/Form/Radios.js +189 -0
  177. package/{dist → lib}/plugin/Form/Select.d.ts +7 -2
  178. package/lib/plugin/Form/Select.js +304 -0
  179. package/{dist → lib}/plugin/Form/Static.d.ts +4 -3
  180. package/lib/plugin/Form/Static.js +312 -0
  181. package/{dist → lib}/plugin/Form/Switch.d.ts +9 -2
  182. package/lib/plugin/Form/Switch.js +219 -0
  183. package/{dist → lib}/plugin/Form/TabsTransfer.d.ts +5 -2
  184. package/lib/plugin/Form/TabsTransfer.js +348 -0
  185. package/{dist → lib}/plugin/Form/Textarea.d.ts +8 -2
  186. package/lib/plugin/Form/Textarea.js +190 -0
  187. package/{dist → lib}/plugin/Form/Transfer.d.ts +5 -2
  188. package/lib/plugin/Form/Transfer.js +414 -0
  189. package/{dist → lib}/plugin/Form/TreeSelect.d.ts +6 -2
  190. package/lib/plugin/Form/TreeSelect.js +375 -0
  191. package/{dist → lib}/plugin/Form/UUID.d.ts +1 -1
  192. package/lib/plugin/Form/UUID.js +55 -0
  193. package/{dist → lib}/plugin/Grid.d.ts +3 -2
  194. package/lib/plugin/Grid.js +680 -0
  195. package/{dist → lib}/plugin/HBox.d.ts +3 -2
  196. package/lib/plugin/HBox.js +594 -0
  197. package/{dist → lib}/plugin/IFrame.d.ts +6 -5
  198. package/lib/plugin/IFrame.js +94 -0
  199. package/{dist → lib}/plugin/Image.d.ts +1 -1
  200. package/lib/plugin/Image.js +264 -0
  201. package/{dist → lib}/plugin/Images.d.ts +1 -1
  202. package/lib/plugin/Images.js +214 -0
  203. package/{dist → lib}/plugin/Json.d.ts +2 -1
  204. package/lib/plugin/Json.js +82 -0
  205. package/{dist → lib}/plugin/Link.d.ts +2 -1
  206. package/lib/plugin/Link.js +120 -0
  207. package/{dist → lib}/plugin/List.d.ts +3 -2
  208. package/lib/plugin/List.js +220 -0
  209. package/{dist → lib}/plugin/ListItem.d.ts +1 -1
  210. package/lib/plugin/ListItem.js +195 -0
  211. package/{dist → lib}/plugin/Log.d.ts +1 -1
  212. package/lib/plugin/Log.js +62 -0
  213. package/{dist → lib}/plugin/Mapping.d.ts +2 -1
  214. package/lib/plugin/Mapping.js +149 -0
  215. package/{dist → lib}/plugin/Markdown.d.ts +2 -1
  216. package/lib/plugin/Markdown.js +58 -0
  217. package/lib/plugin/Nav.d.ts +48 -0
  218. package/lib/plugin/Nav.js +181 -0
  219. package/{dist → lib}/plugin/Operation.d.ts +1 -1
  220. package/lib/plugin/Operation.js +84 -0
  221. package/{dist → lib}/plugin/Others/Action.d.ts +6 -2
  222. package/lib/plugin/Others/Action.js +350 -0
  223. package/{dist → lib}/plugin/Others/TableCell.d.ts +1 -1
  224. package/lib/plugin/Others/TableCell.js +393 -0
  225. package/{dist → lib}/plugin/Page.d.ts +7 -4
  226. package/lib/plugin/Page.js +363 -0
  227. package/lib/plugin/Pagination.d.ts +51 -0
  228. package/lib/plugin/Pagination.js +247 -0
  229. package/{dist → lib}/plugin/Panel.d.ts +1 -1
  230. package/lib/plugin/Panel.js +222 -0
  231. package/{dist → lib}/plugin/Plain.d.ts +1 -1
  232. package/lib/plugin/Plain.js +88 -0
  233. package/{dist → lib}/plugin/Progress.d.ts +7 -2
  234. package/lib/plugin/Progress.js +258 -0
  235. package/{dist → lib}/plugin/Property.d.ts +1 -1
  236. package/lib/plugin/Property.js +147 -0
  237. package/{dist → lib}/plugin/QRCode.d.ts +2 -1
  238. package/lib/plugin/QRCode.js +107 -0
  239. package/{dist → lib}/plugin/Reset.d.ts +0 -1
  240. package/lib/plugin/Reset.js +38 -0
  241. package/{dist → lib}/plugin/Service.d.ts +5 -1
  242. package/lib/plugin/Service.js +217 -0
  243. package/{dist → lib}/plugin/Sparkline.d.ts +2 -1
  244. package/lib/plugin/Sparkline.js +50 -0
  245. package/{dist → lib}/plugin/Status.d.ts +2 -1
  246. package/lib/plugin/Status.js +86 -0
  247. package/{dist → lib}/plugin/Steps.d.ts +2 -1
  248. package/lib/plugin/Steps.js +136 -0
  249. package/{dist → lib}/plugin/Submit.d.ts +0 -1
  250. package/lib/plugin/Submit.js +38 -0
  251. package/{dist → lib}/plugin/Table.d.ts +7 -2
  252. package/lib/plugin/Table.js +594 -0
  253. package/{dist → lib}/plugin/TableView.d.ts +2 -1
  254. package/lib/plugin/TableView.js +744 -0
  255. package/{dist → lib}/plugin/Tabs.d.ts +34 -2
  256. package/lib/plugin/Tabs.js +429 -0
  257. package/{dist → lib}/plugin/Tasks.d.ts +2 -1
  258. package/lib/plugin/Tasks.js +263 -0
  259. package/{dist → lib}/plugin/Time.d.ts +1 -1
  260. package/lib/plugin/Time.js +77 -0
  261. package/{dist → lib}/plugin/TooltipWrapper.d.ts +12 -1
  262. package/lib/plugin/TooltipWrapper.js +281 -0
  263. package/{dist → lib}/plugin/Tpl.d.ts +3 -2
  264. package/lib/plugin/Tpl.js +183 -0
  265. package/{dist → lib}/plugin/Video.d.ts +2 -1
  266. package/lib/plugin/Video.js +140 -0
  267. package/{dist → lib}/plugin/WebComponent.d.ts +2 -1
  268. package/lib/plugin/WebComponent.js +70 -0
  269. package/{dist → lib}/plugin/Wizard.d.ts +16 -4
  270. package/lib/plugin/Wizard.js +799 -0
  271. package/{dist → lib}/plugin/Wrapper.d.ts +2 -1
  272. package/lib/plugin/Wrapper.js +136 -0
  273. package/lib/renderer/APIControl.d.ts +7526 -0
  274. package/lib/renderer/APIControl.js +791 -0
  275. package/lib/renderer/BadgeControl.d.ts +134 -0
  276. package/lib/renderer/BadgeControl.js +290 -0
  277. package/lib/renderer/DataBindingControl.d.ts +14 -0
  278. package/lib/renderer/DataBindingControl.js +91 -0
  279. package/lib/renderer/DataMappingControl.d.ts +11 -0
  280. package/lib/renderer/DataMappingControl.js +73 -0
  281. package/lib/renderer/DataPickerControl.d.ts +13 -0
  282. package/lib/renderer/DataPickerControl.js +83 -0
  283. package/lib/renderer/DateShortCutControl.d.ts +83 -0
  284. package/lib/renderer/DateShortCutControl.js +254 -0
  285. package/lib/renderer/FormulaControl.d.ts +96 -0
  286. package/lib/renderer/FormulaControl.js +324 -0
  287. package/{dist/component/Control → lib/renderer}/OptionControl.d.ts +25 -36
  288. package/lib/renderer/OptionControl.js +672 -0
  289. package/{dist/component/Control → lib/renderer}/PopoverEdit.d.ts +4 -4
  290. package/lib/renderer/RangePartsControl.d.ts +91 -0
  291. package/lib/renderer/RangePartsControl.js +392 -0
  292. package/lib/renderer/StatusControl.d.ts +39 -0
  293. package/lib/renderer/StatusControl.js +171 -0
  294. package/lib/renderer/SwitchMoreControl.d.ts +222 -0
  295. package/lib/renderer/SwitchMoreControl.js +302 -0
  296. package/lib/renderer/ValidationControl.d.ts +65 -0
  297. package/lib/renderer/ValidationControl.js +279 -0
  298. package/lib/renderer/ValidationItem.d.ts +46 -0
  299. package/lib/renderer/ValidationItem.js +147 -0
  300. package/lib/renderer/style-control/Background.d.ts +17 -0
  301. package/lib/renderer/style-control/Background.js +493 -0
  302. package/lib/renderer/style-control/Border.d.ts +18 -0
  303. package/lib/renderer/style-control/Border.js +191 -0
  304. package/lib/renderer/style-control/BoxModel.d.ts +17 -0
  305. package/lib/renderer/style-control/BoxModel.js +73 -0
  306. package/lib/renderer/style-control/BoxShadow.d.ts +18 -0
  307. package/lib/renderer/style-control/BoxShadow.js +125 -0
  308. package/lib/renderer/style-control/Display.d.ts +14 -0
  309. package/lib/renderer/style-control/Display.js +233 -0
  310. package/lib/renderer/style-control/Font.d.ts +16 -0
  311. package/lib/renderer/style-control/Font.js +239 -0
  312. package/lib/renderer/style-control/font-family.d.ts +11 -0
  313. package/lib/renderer/style-control/font-family.js +149 -0
  314. package/lib/renderer/style-control/transformation.d.ts +29 -0
  315. package/lib/renderer/style-control/transformation.js +84 -0
  316. package/lib/renderer/style-control/types.d.ts +8 -0
  317. package/lib/tpl/api.d.ts +1 -0
  318. package/lib/tpl/api.js +378 -0
  319. package/lib/tpl/common.d.ts +1 -0
  320. package/lib/tpl/common.js +808 -0
  321. package/lib/tpl/horizontal.d.ts +1 -0
  322. package/lib/tpl/horizontal.js +260 -0
  323. package/lib/tpl/index.d.ts +7 -0
  324. package/lib/tpl/options.d.ts +1 -0
  325. package/lib/tpl/options.js +265 -0
  326. package/{dist/component/schemaTpl.d.ts → lib/tpl/style.d.ts} +0 -4
  327. package/lib/tpl/style.js +372 -0
  328. package/lib/tpl/validations.d.ts +1 -0
  329. package/lib/tpl/validations.js +568 -0
  330. package/lib/util.d.ts +24 -0
  331. package/lib/util.js +64 -0
  332. package/lib/validator.d.ts +62 -0
  333. package/lib/validator.js +417 -0
  334. package/package.json +36 -25
  335. package/dist/150a58f3318ca7541ed9.png +0 -0
  336. package/dist/471adb97c322b226e589.png +0 -0
  337. package/dist/4de5f42360bc5946c3c2.png +0 -0
  338. package/dist/4e9968bba3855f088fed.png +0 -0
  339. package/dist/7f09c38ebc687fea847a.png +0 -0
  340. package/dist/c94073576487510314ea.png +0 -0
  341. package/dist/cebfe0bc5a1dbde02da1.svg +0 -10
  342. package/dist/compat.d.ts +0 -30
  343. package/dist/component/Breadcrumb.d.ts +0 -12
  344. package/dist/component/ClassNameControl.d.ts +0 -31
  345. package/dist/component/CommonConfigWrapper.d.ts +0 -6
  346. package/dist/component/ContainerWrapper.d.ts +0 -12
  347. package/dist/component/Control/APIControl.d.ts +0 -504
  348. package/dist/component/Control/ValidationControl.d.ts +0 -30
  349. package/dist/component/Editor.d.ts +0 -62
  350. package/dist/component/HighlightBox.d.ts +0 -29
  351. package/dist/component/IFrameBridge.d.ts +0 -32
  352. package/dist/component/IFramePreview.d.ts +0 -37
  353. package/dist/component/MiniEditor.d.ts +0 -9
  354. package/dist/component/NodeWrapper.d.ts +0 -20
  355. package/dist/component/Panel/AMisCodeEditor.d.ts +0 -37
  356. package/dist/component/Panel/AvailableRenderersPanel.d.ts +0 -10
  357. package/dist/component/Panel/CodeEditorPanel.d.ts +0 -6
  358. package/dist/component/Panel/ContextMenuPanel.d.ts +0 -8
  359. package/dist/component/Panel/DrawerPanel.d.ts +0 -15
  360. package/dist/component/Panel/DrawerRendererPanel.d.ts +0 -15
  361. package/dist/component/Panel/InsertSubRendererPanel.d.ts +0 -11
  362. package/dist/component/Panel/LeftPanels.d.ts +0 -20
  363. package/dist/component/Panel/Outline.d.ts +0 -18
  364. package/dist/component/Panel/RenderersPanel.d.ts +0 -32
  365. package/dist/component/Panel/RightPanels.d.ts +0 -21
  366. package/dist/component/Panel/TargetNamePanel.d.ts +0 -7
  367. package/dist/component/PopOverForm.d.ts +0 -22
  368. package/dist/component/Preview.d.ts +0 -65
  369. package/dist/component/RegionHLBox.d.ts +0 -20
  370. package/dist/component/RegionWrapper.d.ts +0 -192
  371. package/dist/component/RendererThumb.d.ts +0 -22
  372. package/dist/component/ScaffoldModal.d.ts +0 -24
  373. package/dist/component/SubEditor.d.ts +0 -67
  374. package/dist/component/VRenderer.d.ts +0 -177
  375. package/dist/component/base/BackTop.d.ts +0 -26
  376. package/dist/component/base/ErrorRenderer.d.ts +0 -4
  377. package/dist/component/base/SearchRendererPanel.d.ts +0 -59
  378. package/dist/component/base/WidthDraggableBtn.d.ts +0 -16
  379. package/dist/component/base/WidthDraggableContainer.d.ts +0 -2
  380. package/dist/component/remarkTpl.d.ts +0 -150
  381. package/dist/dnd/default.d.ts +0 -47
  382. package/dist/dnd/index.d.ts +0 -119
  383. package/dist/dnd/interface.d.ts +0 -14
  384. package/dist/dnd/position-h.d.ts +0 -7
  385. package/dist/env.d.ts +0 -5
  386. package/dist/exports.d.ts +0 -8
  387. package/dist/exports.min.js +0 -1
  388. package/dist/icons/index.d.ts +0 -2
  389. package/dist/index.min.js +0 -1
  390. package/dist/manager.d.ts +0 -445
  391. package/dist/mocker.d.ts +0 -1
  392. package/dist/plugin/AnchorNav.d.ts +0 -67
  393. package/dist/plugin/ButtonGroup.d.ts +0 -60
  394. package/dist/plugin/ErrorRenderer.d.ts +0 -7
  395. package/dist/plugin/Form/CodeEditor.d.ts +0 -40
  396. package/dist/plugin/Form/Form.d.ts +0 -20
  397. package/dist/plugin/Form/Formula.d.ts +0 -51
  398. package/dist/plugin/Form/InputExcel.d.ts +0 -58
  399. package/dist/plugin/Form/InputRating.d.ts +0 -19
  400. package/dist/plugin/Form/InputText.d.ts +0 -20
  401. package/dist/plugin/Form/LocationPicker.d.ts +0 -48
  402. package/dist/plugin/Nav.d.ts +0 -162
  403. package/dist/plugin/Others/BasicToolbar.d.ts +0 -11
  404. package/dist/plugin/Others/DataDebug.d.ts +0 -19
  405. package/dist/plugin/Others/Unknown.d.ts +0 -5
  406. package/dist/plugin/Panel/AvailableRenderers.d.ts +0 -8
  407. package/dist/plugin/Panel/Code.d.ts +0 -9
  408. package/dist/plugin/Panel/Name.d.ts +0 -8
  409. package/dist/plugin.d.ts +0 -600
  410. package/dist/store/editor.d.ts +0 -985
  411. package/dist/store/node.d.ts +0 -259
  412. package/dist/style.css +0 -1
  413. package/dist/util.d.ts +0 -72
  414. package/static/Code-hover.png +0 -0
  415. package/static/Code.png +0 -0
  416. package/static/Outline-hover.png +0 -0
  417. package/static/Outline.png +0 -0
  418. package/static/Renderers-hover.png +0 -0
  419. package/static/Renderers.png +0 -0
  420. package/static/side_hide_left.svg +0 -10
@@ -0,0 +1,744 @@
1
+ /**
2
+ * amis-editor v5.2.0-beta.1
3
+ * Copyright 2018-2022 @fex
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ Object.defineProperty(exports, '__esModule', { value: true });
9
+
10
+ var tslib = require('tslib');
11
+ var React = require('react');
12
+ var AMisCodeEditor = require('amis-editor-core');
13
+ var TableViewEditor = require('../component/TableViewEditor.js');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
+
19
+ /**
20
+ * @file table view 组件的可视化编辑
21
+ */
22
+ /**
23
+ * 尚未实现的功能:
24
+ * * 按列删除,需要将一些 colspan 减一
25
+ * * 水平/垂直拆分单元格,增加周围节点的 colspan 和 rowspan
26
+ */
27
+ // td 节点模板
28
+ var TD_TEMPLATE = {
29
+ body: {
30
+ type: 'tpl',
31
+ tpl: '---'
32
+ }
33
+ };
34
+ /**
35
+ * 遍历表格,算出每个单元格在最终渲染时的实际行和列,后续许多操作都需要以这个作为依据
36
+ * 比如插入列的时候,不能根据单元格在数组的位置,而是要根据单元格实际渲染时所属列
37
+ */
38
+ function getCellRealPosition(table) {
39
+ if (!table) {
40
+ return {
41
+ trs: []
42
+ };
43
+ }
44
+ // 记录有哪些行列被合并了,这样后续计算的时候就要跳过这些行列
45
+ var spannedCell = [];
46
+ var trs = table.trs || [];
47
+ var currentRow = 0; // 当前渲染的实际行
48
+ for (var _i = 0, trs_1 = trs; _i < trs_1.length; _i++) {
49
+ var tr = trs_1[_i];
50
+ var tds = tr.tds || [];
51
+ var currentCol = 0; // 当前渲染的实际列
52
+ for (var _a = 0, tds_1 = tds; _a < tds_1.length; _a++) {
53
+ var td = tds_1[_a];
54
+ // 跳过被合并的行
55
+ while (spannedCell[currentRow] && spannedCell[currentRow][currentCol]) {
56
+ currentCol = currentCol + 1;
57
+ }
58
+ var rowspan = td.rowspan || 1;
59
+ var colspan = td.colspan || 1;
60
+ // 标记后续行合并情况
61
+ if (rowspan > 1 || colspan > 1) {
62
+ for (var i = 0; i < rowspan; i++) {
63
+ var spanRow = currentRow + i;
64
+ if (!spannedCell[spanRow]) {
65
+ spannedCell[spanRow] = [];
66
+ }
67
+ for (var j = 0; j < colspan; j++) {
68
+ var spanCol = currentCol + j;
69
+ spannedCell[spanRow][spanCol] = true;
70
+ }
71
+ }
72
+ }
73
+ td.$$row = currentRow;
74
+ td.$$col = currentCol;
75
+ currentCol = currentCol + 1;
76
+ }
77
+ currentRow = currentRow + 1;
78
+ }
79
+ return table;
80
+ }
81
+ var TableViewPlugin = /** @class */ (function (_super) {
82
+ tslib.__extends(TableViewPlugin, _super);
83
+ function TableViewPlugin() {
84
+ var _this = _super !== null && _super.apply(this, arguments) || this;
85
+ // 关联渲染器名字
86
+ _this.rendererName = 'table-view';
87
+ _this.$schema = '/schemas/TableViewSchema.json';
88
+ // 组件名称
89
+ _this.name = '表格视图';
90
+ _this.isBaseComponent = true;
91
+ _this.icon = 'fa fa-columns';
92
+ _this.description = '表格类型的展现';
93
+ _this.docLink = '/amis/zh-CN/components/table-view';
94
+ _this.tags = ['容器'];
95
+ _this.scaffold = {
96
+ type: 'table-view',
97
+ trs: [
98
+ {
99
+ background: '#F7F7F7',
100
+ tds: [
101
+ {
102
+ body: {
103
+ type: 'tpl',
104
+ tpl: '地区'
105
+ }
106
+ },
107
+ {
108
+ body: {
109
+ type: 'tpl',
110
+ tpl: '城市'
111
+ }
112
+ },
113
+ {
114
+ body: {
115
+ type: 'tpl',
116
+ tpl: '销量'
117
+ }
118
+ }
119
+ ]
120
+ },
121
+ {
122
+ tds: [
123
+ {
124
+ rowspan: 2,
125
+ body: {
126
+ type: 'tpl',
127
+ tpl: '华北'
128
+ }
129
+ },
130
+ {
131
+ body: {
132
+ type: 'tpl',
133
+ tpl: '北京'
134
+ }
135
+ },
136
+ {
137
+ body: {
138
+ type: 'tpl',
139
+ tpl: '${beijing}'
140
+ }
141
+ }
142
+ ]
143
+ },
144
+ {
145
+ tds: [
146
+ {
147
+ body: {
148
+ type: 'tpl',
149
+ tpl: '天津'
150
+ }
151
+ },
152
+ {
153
+ body: {
154
+ type: 'tpl',
155
+ tpl: '${tianjing}'
156
+ }
157
+ }
158
+ ]
159
+ }
160
+ ]
161
+ };
162
+ _this.previewSchema = tslib.__assign({}, _this.scaffold);
163
+ _this.regions = [
164
+ {
165
+ key: 'body',
166
+ label: '内容区',
167
+ renderMethod: 'renderTdBody',
168
+ preferTag: '展示'
169
+ }
170
+ ];
171
+ _this.panelTitle = '表格视图';
172
+ _this.panelBody = [
173
+ AMisCodeEditor.getSchemaTpl('tabs', [
174
+ {
175
+ title: '属性',
176
+ className: 'p-none',
177
+ body: [
178
+ AMisCodeEditor.getSchemaTpl('collapseGroup', [
179
+ {
180
+ title: '常用',
181
+ body: [
182
+ {
183
+ label: '标题',
184
+ name: 'caption',
185
+ type: 'input-text'
186
+ },
187
+ {
188
+ label: '标题位置',
189
+ name: 'captionSide',
190
+ type: 'button-group-select',
191
+ size: 'sm',
192
+ mode: 'row',
193
+ className: 'ae-buttonGroupSelect--justify',
194
+ visibleOn: 'this.caption',
195
+ options: [
196
+ { label: '顶部', value: 'top' },
197
+ { label: '底部', value: 'bottom' }
198
+ ]
199
+ },
200
+ {
201
+ type: 'input-text',
202
+ label: '视图宽度',
203
+ name: 'width',
204
+ clearable: true
205
+ },
206
+ {
207
+ type: 'input-text',
208
+ label: '单元格默认内间距',
209
+ name: 'padding',
210
+ clearable: true
211
+ },
212
+ {
213
+ label: '显示边框',
214
+ name: 'border',
215
+ type: 'switch',
216
+ mode: 'row',
217
+ inputClassName: 'inline-flex justify-between flex-row-reverse'
218
+ },
219
+ {
220
+ label: '边框颜色',
221
+ type: 'input-color',
222
+ name: 'borderColor',
223
+ visibleOn: 'this.border',
224
+ pipeIn: AMisCodeEditor.defaultValue('#eceff8')
225
+ }
226
+ ]
227
+ }
228
+ ])
229
+ ]
230
+ },
231
+ {
232
+ title: '外观',
233
+ className: 'p-none',
234
+ body: AMisCodeEditor.getSchemaTpl('collapseGroup', tslib.__spreadArray(tslib.__spreadArray([], AMisCodeEditor.getSchemaTpl('style:common'), true), [
235
+ {
236
+ title: 'CSS 类名',
237
+ body: [AMisCodeEditor.getSchemaTpl('className')]
238
+ }
239
+ ], false))
240
+ },
241
+ {
242
+ title: '状态',
243
+ body: [AMisCodeEditor.getSchemaTpl('visible')]
244
+ }
245
+ ])
246
+ ];
247
+ _this.fieldWrapperResolve = function (dom) { return dom; };
248
+ _this.overrides = {
249
+ renderTd: function (td, colIndex, rowIndex) {
250
+ var dom = this.super(td, colIndex, rowIndex);
251
+ var info = this.props.$$editor;
252
+ if (!info || !td.$$id) {
253
+ return dom;
254
+ }
255
+ var plugin = info.plugin;
256
+ var id = td.$$id;
257
+ return (React__default["default"].createElement(AMisCodeEditor.VRenderer, { type: info.type, plugin: info.plugin, renderer: info.renderer, key: id, "$schema": "/schemas/TdObject.json", hostId: info.id, memberIndex: colIndex, name: "".concat("\u5355\u5143\u683C ".concat(rowIndex + 1, ",").concat(colIndex + 1)), id: id, draggable: false, wrapperResolve: plugin.fieldWrapperResolve, schemaPath: "".concat(info.schemaPath, "/td"), path: "".concat(this.props.$path, "/tr/").concat(rowIndex, "/td/").concat(colIndex), data: this.props.data, children: dom }));
258
+ },
259
+ renderTr: function (tr, rowIndex) {
260
+ var dom = this.super(tr, rowIndex);
261
+ var info = this.props.$$editor;
262
+ if (!info || !tr.$$id) {
263
+ return dom;
264
+ }
265
+ var plugin = info.plugin;
266
+ var id = tr.$$id;
267
+ return (React__default["default"].createElement(AMisCodeEditor.VRenderer, { type: info.type, plugin: info.plugin, renderer: info.renderer, key: id, "$schema": "/schemas/TrObject.json", hostId: info.id, memberIndex: rowIndex, name: "".concat("\u884C ".concat(rowIndex + 1)), id: id, draggable: false, wrapperResolve: plugin.fieldWrapperResolve, schemaPath: "".concat(info.schemaPath, "/tr"), path: "".concat(this.props.$path, "/tr/").concat(rowIndex), data: this.props.data, children: dom }));
268
+ }
269
+ };
270
+ _this.tdVRendererConfig = {
271
+ panelTitle: '单元格',
272
+ panelBodyCreator: function (context) {
273
+ return [
274
+ AMisCodeEditor.getSchemaTpl('tabs', [
275
+ {
276
+ title: '属性',
277
+ className: 'p-none',
278
+ body: [
279
+ AMisCodeEditor.getSchemaTpl('collapseGroup', [
280
+ {
281
+ title: '显示',
282
+ body: [
283
+ {
284
+ label: '背景色',
285
+ type: 'input-color',
286
+ name: 'background'
287
+ },
288
+ {
289
+ label: '文字颜色',
290
+ type: 'input-color',
291
+ name: 'color'
292
+ },
293
+ {
294
+ label: '文字加粗',
295
+ name: 'bold',
296
+ type: 'switch',
297
+ mode: 'row',
298
+ inputClassName: 'inline-flex justify-between flex-row-reverse'
299
+ }
300
+ ]
301
+ },
302
+ {
303
+ title: '布局',
304
+ body: [
305
+ {
306
+ type: 'input-text',
307
+ label: '单元格宽度',
308
+ name: 'width',
309
+ clearable: true
310
+ },
311
+ {
312
+ type: 'input-number',
313
+ name: 'padding',
314
+ label: '单元格内边距'
315
+ },
316
+ {
317
+ label: '水平对齐',
318
+ name: 'align',
319
+ type: 'button-group-select',
320
+ size: 'sm',
321
+ mode: 'row',
322
+ className: 'ae-buttonGroupSelect--justify',
323
+ options: [
324
+ {
325
+ label: '',
326
+ value: 'left',
327
+ icon: 'fa fa-align-left'
328
+ },
329
+ {
330
+ label: '',
331
+ value: 'center',
332
+ icon: 'fa fa-align-center'
333
+ },
334
+ {
335
+ label: '',
336
+ value: 'right',
337
+ icon: 'fa fa-align-right'
338
+ },
339
+ {
340
+ label: '',
341
+ value: 'justify',
342
+ icon: 'fa fa-align-justify'
343
+ }
344
+ ]
345
+ },
346
+ {
347
+ label: '垂直对齐',
348
+ name: 'valign',
349
+ type: 'button-group-select',
350
+ size: 'sm',
351
+ mode: 'row',
352
+ className: 'ae-buttonGroupSelect--justify',
353
+ options: [
354
+ {
355
+ label: '顶部',
356
+ value: 'top'
357
+ },
358
+ {
359
+ label: '居中',
360
+ value: 'middle'
361
+ },
362
+ {
363
+ label: '底部',
364
+ value: 'bottom'
365
+ },
366
+ {
367
+ label: '基线对齐',
368
+ value: 'baseline'
369
+ }
370
+ ]
371
+ },
372
+ {
373
+ type: 'input-number',
374
+ name: 'colspan',
375
+ label: '水平合并列数'
376
+ },
377
+ {
378
+ type: 'input-number',
379
+ name: 'rowspan',
380
+ label: '垂直合并列数'
381
+ }
382
+ ]
383
+ }
384
+ ])
385
+ ]
386
+ },
387
+ {
388
+ title: '外观',
389
+ className: 'p-none',
390
+ body: AMisCodeEditor.getSchemaTpl('collapseGroup', AMisCodeEditor.getSchemaTpl('style:common'))
391
+ }
392
+ ])
393
+ ];
394
+ }
395
+ };
396
+ _this.trVRendererConfig = {
397
+ panelTitle: ' 行',
398
+ panelBodyCreator: function (context) {
399
+ return [
400
+ AMisCodeEditor.getSchemaTpl('tabs', [
401
+ {
402
+ title: '属性',
403
+ body: [
404
+ {
405
+ label: '行高度',
406
+ type: 'input-number',
407
+ name: 'height'
408
+ },
409
+ {
410
+ label: '行背景色',
411
+ type: 'input-color',
412
+ name: 'background'
413
+ }
414
+ ]
415
+ },
416
+ {
417
+ title: '外观',
418
+ className: 'p-none',
419
+ body: AMisCodeEditor.getSchemaTpl('collapseGroup', AMisCodeEditor.getSchemaTpl('style:common'))
420
+ }
421
+ ])
422
+ ];
423
+ }
424
+ };
425
+ return _this;
426
+ }
427
+ TableViewPlugin.prototype.renderRenderer = function (props) {
428
+ var $$editor = props.$$editor;
429
+ var renderer = $$editor.renderer;
430
+ var schema = props.$schema;
431
+ getCellRealPosition(schema);
432
+ return (React__default["default"].createElement(TableViewEditor.TableViewEditor, { schema: schema, manager: this.manager },
433
+ React__default["default"].createElement(renderer.component, tslib.__assign({}, props))));
434
+ };
435
+ // 根据路径判断是选中单元格还是行
436
+ TableViewPlugin.prototype.buildEditorPanel = function (context, panels) {
437
+ _super.prototype.buildEditorPanel.call(this, context, panels);
438
+ var plugin = this;
439
+ if (context.info.schemaPath.endsWith('/td')) {
440
+ panels.push({
441
+ key: 'td',
442
+ order: 100,
443
+ icon: this.tdVRendererConfig.panelIcon || 'fa fa-tablet',
444
+ title: this.tdVRendererConfig.panelTitle || '格子',
445
+ render: this.manager.makeSchemaFormRender({
446
+ controls: this.tdVRendererConfig.panelControlsCreator
447
+ ? this.tdVRendererConfig.panelControlsCreator(context)
448
+ : this.tdVRendererConfig.panelControls,
449
+ body: this.tdVRendererConfig.panelBodyCreator
450
+ ? this.tdVRendererConfig.panelBodyCreator(context)
451
+ : this.tdVRendererConfig.panelBody,
452
+ rendererName: plugin.rendererName
453
+ })
454
+ });
455
+ }
456
+ else if (context.info.schemaPath.endsWith('/tr')) {
457
+ panels.push({
458
+ key: 'tr',
459
+ order: 100,
460
+ icon: this.trVRendererConfig.panelIcon || 'fa fa-tablet',
461
+ title: this.trVRendererConfig.panelTitle || '格子',
462
+ render: this.manager.makeSchemaFormRender({
463
+ controls: this.trVRendererConfig.panelControlsCreator
464
+ ? this.trVRendererConfig.panelControlsCreator(context)
465
+ : this.trVRendererConfig.panelControls,
466
+ body: this.trVRendererConfig.panelBodyCreator
467
+ ? this.trVRendererConfig.panelBodyCreator(context)
468
+ : this.trVRendererConfig.panelBody,
469
+ rendererName: plugin.rendererName
470
+ })
471
+ });
472
+ }
473
+ };
474
+ /**
475
+ * 插入行,需要处理前面有 rowspan 的情况
476
+ *
477
+ * +---+---+---+
478
+ * | a | b | c |
479
+ * + +---+---+
480
+ * | | d | e |
481
+ * + +---+---+
482
+ * | | f | g |
483
+ * +---+---+---+
484
+ *
485
+ * 比如在 d 位置的前面插入行,需要将 a 的 rowspan 加一,然后再插入两个单元格
486
+ */
487
+ TableViewPlugin.prototype.insertRow = function (tdId, position) {
488
+ var store = this.manager.store;
489
+ var paths = store.getNodePathById(tdId);
490
+ var tableId = paths[paths.length - 3].id;
491
+ var table = store.getSchema(tableId);
492
+ getCellRealPosition(table);
493
+ var td = AMisCodeEditor.JSONGetById(table, tdId);
494
+ if (!td) {
495
+ console.warn('找不到对应的 td id');
496
+ return;
497
+ }
498
+ var insertRow = td.$$row;
499
+ if (position === 'below') {
500
+ insertRow = insertRow + 1;
501
+ }
502
+ // 通过第一行来确认表格一共多少列
503
+ var firstRow = table.trs[0];
504
+ var firstRowLastTd = firstRow.tds[firstRow.tds.length - 1];
505
+ if (!firstRowLastTd) {
506
+ console.warn('第一列没内容');
507
+ return;
508
+ }
509
+ var colSize = firstRowLastTd.$$col + (firstRowLastTd.colspan || 1);
510
+ var insertIndex = table.trs.length;
511
+ for (var trIndex = 0; trIndex < table.trs.length; trIndex++) {
512
+ for (var _i = 0, _a = table.trs[trIndex].tds || []; _i < _a.length; _i++) {
513
+ var td_1 = _a[_i];
514
+ var tdRow = td_1.$$row;
515
+ var rowspan = td_1.rowspan || 1;
516
+ var colspan = td_1.colspan || 1;
517
+ // 如果覆盖到要插入的行,则增加 rowspan,并在这个插入的行中减去对应
518
+ if (rowspan > 1) {
519
+ var isOverlapping = tdRow + rowspan > insertRow;
520
+ if (isOverlapping) {
521
+ td_1.rowspan = rowspan + 1;
522
+ colSize = colSize - colspan;
523
+ }
524
+ }
525
+ if (tdRow === insertRow) {
526
+ insertIndex = trIndex;
527
+ break;
528
+ }
529
+ }
530
+ }
531
+ var insertTds = [];
532
+ for (var i = 0; i < colSize; i++) {
533
+ insertTds.push(TD_TEMPLATE);
534
+ }
535
+ table.trs.splice(insertIndex, 0, { tds: insertTds });
536
+ this.manager.store.changeValueById(tableId, table);
537
+ };
538
+ /**
539
+ * 插入列
540
+ *
541
+ * +---+---+---+
542
+ * | a | b |
543
+ * + +---+
544
+ * | | c |
545
+ * +---+---+---+
546
+ * | d | e | f |
547
+ * +---+---+---+
548
+ *
549
+ * 比如在 c 位置左侧插入列,应该将 a 的 colspan 加一,然后在最后一行增加一个单元格
550
+ */
551
+ TableViewPlugin.prototype.insertCol = function (tdId, position) {
552
+ var store = this.manager.store;
553
+ var paths = store.getNodePathById(tdId);
554
+ var tableId = paths[paths.length - 3].id;
555
+ var table = store.getSchema(tableId);
556
+ getCellRealPosition(table);
557
+ var td = AMisCodeEditor.JSONGetById(table, tdId);
558
+ if (!td) {
559
+ console.warn('找不到对应的 td id');
560
+ return;
561
+ }
562
+ var insertCol = td.$$col;
563
+ if (position === 'right') {
564
+ insertCol = insertCol + 1;
565
+ }
566
+ for (var _i = 0, _a = table.trs || []; _i < _a.length; _i++) {
567
+ var tr = _a[_i];
568
+ var tds = tr.tds || [];
569
+ var isInserted = false;
570
+ for (var tdIndex = 0; tdIndex < tds.length; tdIndex++) {
571
+ var td_2 = tds[tdIndex];
572
+ var tdColspan = td_2.colspan || 1;
573
+ var tdCol = td_2.$$col;
574
+ // 如果要插入的行被覆盖了,则对节点加一并跳过插入
575
+ if (tdColspan > 1) {
576
+ var isOverlapping = tdCol + tdColspan > insertCol;
577
+ if (isOverlapping) {
578
+ td_2.colspan = tdColspan + 1;
579
+ isInserted = true;
580
+ break;
581
+ }
582
+ }
583
+ if (insertCol <= tdCol) {
584
+ tds.splice(tdIndex, 0, TD_TEMPLATE);
585
+ isInserted = true;
586
+ break;
587
+ }
588
+ }
589
+ // 如果没找到对应的节点,那可能是插入到最后一条或者这一列节点数量不够,此时就要插入到最后
590
+ if (!isInserted) {
591
+ tds.push(TD_TEMPLATE);
592
+ }
593
+ }
594
+ this.manager.store.changeValueById(tableId, table);
595
+ };
596
+ /**
597
+ * 拆分有跨行或跨列的单元格
598
+ *
599
+ * +---+---+---+
600
+ * | a | b |
601
+ * + +---+
602
+ * | | c |
603
+ * +---+---+---+
604
+ * | d | e | f |
605
+ * +---+---+---+
606
+ *
607
+ * 比如拆分 a,最后要变成
608
+ *
609
+ * +---+---+---+
610
+ * | a | g | b |
611
+ * +---+---+---+
612
+ * | h | i | c |
613
+ * +---+---+---+
614
+ * | d | e | f |
615
+ * +---+---+---+
616
+ *
617
+ * 因此要新增 g、h、i 三个单元格
618
+ */
619
+ TableViewPlugin.prototype.splitCell = function (tdId) {
620
+ var store = this.manager.store;
621
+ var paths = store.getNodePathById(tdId);
622
+ var tableId = paths[paths.length - 3].id;
623
+ var table = store.getSchema(tableId);
624
+ getCellRealPosition(table);
625
+ var td = AMisCodeEditor.JSONGetById(table, tdId);
626
+ if (!td) {
627
+ console.warn('找不到对应的 td id');
628
+ return;
629
+ }
630
+ var rowspan = td.rowspan || 1;
631
+ var colspan = td.colspan || 1;
632
+ // 将这个单元格的跨行和跨列都设置为 1
633
+ td.colspan = 1;
634
+ td.rowspan = 1;
635
+ // 算出需要补充哪些单元格及位置
636
+ var tdRow = td.$$row;
637
+ var tdCol = td.$$col;
638
+ var insertTds = [];
639
+ for (var i = 0; i < rowspan; i++) {
640
+ for (var j = 0; j < colspan; j++) {
641
+ // 跳过第一个,也就是这个单元格自己的位置
642
+ if (i === 0 && j === 0) {
643
+ continue;
644
+ }
645
+ insertTds.push({ row: tdRow + i, col: tdCol + j });
646
+ }
647
+ }
648
+ // 需要将列大的放前面,主要是因为后面需要反向遍历才能动态删数据
649
+ insertTds.sort(function (a, b) {
650
+ return b.col - a.col;
651
+ });
652
+ for (var _i = 0, _a = table.trs; _i < _a.length; _i++) {
653
+ var tr = _a[_i];
654
+ for (var tdIndex = 0; tdIndex < tr.tds.length; tdIndex++) {
655
+ var td_3 = tr.tds[tdIndex];
656
+ var currentRow = td_3.$$row;
657
+ var currentCol = td_3.$$col;
658
+ var insertIndex = insertTds.length;
659
+ while (insertIndex--) {
660
+ var insertTd = insertTds[insertIndex];
661
+ if (currentRow === insertTd.row) {
662
+ if (insertTd.col <= currentCol) {
663
+ tr.tds.splice(tdIndex, 0, TD_TEMPLATE);
664
+ }
665
+ else {
666
+ tr.tds.push(TD_TEMPLATE);
667
+ }
668
+ insertTds.splice(insertIndex, 1);
669
+ }
670
+ }
671
+ }
672
+ }
673
+ // 如果前面有单元格找不到位置,那意味着是下面这种情况,这个单元格跨两行且是最后一行
674
+ // 这时 table.tr 其实只有一行数据,需要在添加一行数据
675
+ // +---+---+
676
+ // | a |
677
+ // + +
678
+ // | |
679
+ // +---+---+
680
+ if (insertTds.length) {
681
+ var newTds = [];
682
+ for (var i = 0; i < insertTds.length; i++) {
683
+ newTds.push(TD_TEMPLATE);
684
+ }
685
+ table.trs.push({ tds: newTds });
686
+ }
687
+ this.manager.store.changeValueById(tableId, table);
688
+ };
689
+ TableViewPlugin.prototype.buildEditorToolbar = function (_a, toolbars) {
690
+ var _this = this;
691
+ var schema = _a.schema, info = _a.info;
692
+ if (info.schemaPath.endsWith('/td')) {
693
+ var tdId_1 = schema.$$id;
694
+ toolbars.push({
695
+ icon: 'fa fa-chevron-left',
696
+ order: 100,
697
+ tooltip: '左侧新增列',
698
+ onClick: function () {
699
+ _this.insertCol(tdId_1, 'left');
700
+ }
701
+ });
702
+ toolbars.push({
703
+ icon: 'fa fa-chevron-down',
704
+ order: 100,
705
+ tooltip: '下方新增行',
706
+ onClick: function () {
707
+ _this.insertRow(tdId_1, 'below');
708
+ }
709
+ });
710
+ toolbars.push({
711
+ icon: 'fa fa-chevron-up',
712
+ order: 100,
713
+ tooltip: '上方新增行',
714
+ onClick: function () {
715
+ _this.insertRow(tdId_1, 'above');
716
+ }
717
+ });
718
+ toolbars.push({
719
+ icon: 'fa fa-chevron-right',
720
+ order: 100,
721
+ tooltip: '右侧新增列',
722
+ onClick: function () {
723
+ _this.insertCol(tdId_1, 'right');
724
+ }
725
+ });
726
+ var colspan = schema.colspan || 1;
727
+ var rowspan = schema.rowspan || 1;
728
+ if (colspan > 1 || rowspan > 1) {
729
+ toolbars.push({
730
+ icon: 'fa fa-columns',
731
+ order: 100,
732
+ tooltip: '拆分单元格',
733
+ onClick: function () {
734
+ _this.splitCell(tdId_1);
735
+ }
736
+ });
737
+ }
738
+ }
739
+ };
740
+ return TableViewPlugin;
741
+ }(AMisCodeEditor.BasePlugin));
742
+ AMisCodeEditor.registerEditorPlugin(TableViewPlugin);
743
+
744
+ exports.TableViewPlugin = TableViewPlugin;