amis-editor 4.1.0-beta.28 → 5.2.0-beta.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (553) 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 +26 -33
  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 +1 -1
  32. package/lib/plugin/Card.js +233 -0
  33. package/{dist → lib}/plugin/Cards.d.ts +1 -1
  34. package/lib/plugin/Cards.js +254 -0
  35. package/{dist → lib}/plugin/Carousel.d.ts +1 -1
  36. package/lib/plugin/Carousel.js +358 -0
  37. package/{dist → lib}/plugin/Chart.d.ts +3 -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 +2 -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 +1 -1
  48. package/lib/plugin/Custom.js +109 -0
  49. package/{dist → lib}/plugin/CustomRegion.d.ts +1 -1
  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 +12 -11
  62. package/lib/plugin/DropDownButton.js +229 -0
  63. package/{dist → lib}/plugin/Each.d.ts +1 -1
  64. package/lib/plugin/Each.js +131 -0
  65. package/{dist → lib}/plugin/Flex.d.ts +1 -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 +6 -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/{dist → lib}/plugin/Form/Form.d.ts +7 -1
  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 → 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 +1 -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 +1 -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/InputDate.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 +7 -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 +2 -2
  194. package/lib/plugin/Grid.js +680 -0
  195. package/{dist → lib}/plugin/HBox.d.ts +2 -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 +1 -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 +1 -1
  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 +1 -1
  214. package/lib/plugin/Mapping.js +149 -0
  215. package/{dist → lib}/plugin/Markdown.d.ts +1 -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 +6 -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 +1 -1
  238. package/lib/plugin/QRCode.js +107 -0
  239. package/{dist → lib}/plugin/Reset.d.ts +0 -0
  240. package/lib/plugin/Reset.js +38 -0
  241. package/{dist → lib}/plugin/Service.d.ts +4 -1
  242. package/lib/plugin/Service.js +217 -0
  243. package/{dist → lib}/plugin/Sparkline.d.ts +1 -1
  244. package/lib/plugin/Sparkline.js +50 -0
  245. package/{dist → lib}/plugin/Status.d.ts +1 -1
  246. package/lib/plugin/Status.js +86 -0
  247. package/{dist → lib}/plugin/Steps.d.ts +1 -1
  248. package/lib/plugin/Steps.js +136 -0
  249. package/{dist → lib}/plugin/Submit.d.ts +0 -0
  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 +1 -1
  254. package/lib/plugin/TableView.js +744 -0
  255. package/{dist → lib}/plugin/Tabs.d.ts +33 -2
  256. package/lib/plugin/Tabs.js +429 -0
  257. package/{dist → lib}/plugin/Tasks.d.ts +1 -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 +11 -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 +1 -1
  266. package/lib/plugin/Video.js +140 -0
  267. package/{dist → lib}/plugin/WebComponent.d.ts +1 -1
  268. package/lib/plugin/WebComponent.js +70 -0
  269. package/{dist → lib}/plugin/Wizard.d.ts +5 -2
  270. package/lib/plugin/Wizard.js +799 -0
  271. package/{dist → lib}/plugin/Wrapper.d.ts +1 -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 +133 -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 +23 -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 -29
  335. package/dist/cebfe0bc5a1dbde02da1.svg +0 -10
  336. package/dist/compat.d.ts +0 -30
  337. package/dist/component/Breadcrumb.d.ts +0 -33
  338. package/dist/component/ClassNameControl.d.ts +0 -31
  339. package/dist/component/CommonConfigWrapper.d.ts +0 -6
  340. package/dist/component/ContainerWrapper.d.ts +0 -12
  341. package/dist/component/Control/APIControl.d.ts +0 -504
  342. package/dist/component/Control/ValidationControl.d.ts +0 -30
  343. package/dist/component/Editor.d.ts +0 -81
  344. package/dist/component/HighlightBox.d.ts +0 -29
  345. package/dist/component/IFrameBridge.d.ts +0 -32
  346. package/dist/component/IFramePreview.d.ts +0 -37
  347. package/dist/component/MiniEditor.d.ts +0 -9
  348. package/dist/component/NodeWrapper.d.ts +0 -20
  349. package/dist/component/Panel/AMisCodeEditor.d.ts +0 -37
  350. package/dist/component/Panel/AvailableRenderersPanel.d.ts +0 -10
  351. package/dist/component/Panel/CodeEditorPanel.d.ts +0 -6
  352. package/dist/component/Panel/ContextMenuPanel.d.ts +0 -8
  353. package/dist/component/Panel/DrawerPanel.d.ts +0 -15
  354. package/dist/component/Panel/DrawerRendererPanel.d.ts +0 -15
  355. package/dist/component/Panel/InsertSubRendererPanel.d.ts +0 -11
  356. package/dist/component/Panel/LeftPanels.d.ts +0 -20
  357. package/dist/component/Panel/Outline.d.ts +0 -18
  358. package/dist/component/Panel/RenderersPanel.d.ts +0 -31
  359. package/dist/component/Panel/RightPanels.d.ts +0 -21
  360. package/dist/component/Panel/TargetNamePanel.d.ts +0 -7
  361. package/dist/component/PopOverForm.d.ts +0 -22
  362. package/dist/component/Preview.d.ts +0 -66
  363. package/dist/component/RegionHLBox.d.ts +0 -20
  364. package/dist/component/RegionWrapper.d.ts +0 -196
  365. package/dist/component/RendererThumb.d.ts +0 -22
  366. package/dist/component/ScaffoldModal.d.ts +0 -24
  367. package/dist/component/SubEditor.d.ts +0 -67
  368. package/dist/component/VRenderer.d.ts +0 -181
  369. package/dist/component/base/BackTop.d.ts +0 -26
  370. package/dist/component/base/ErrorRenderer.d.ts +0 -4
  371. package/dist/component/base/SearchCustomRendererPanel.d.ts +0 -15
  372. package/dist/component/base/SearchPanel.d.ts +0 -83
  373. package/dist/component/base/SearchRendererPanel.d.ts +0 -19
  374. package/dist/component/base/WidthDraggableBtn.d.ts +0 -16
  375. package/dist/component/base/WidthDraggableContainer.d.ts +0 -2
  376. package/dist/component/remarkTpl.d.ts +0 -150
  377. package/dist/dnd/default.d.ts +0 -47
  378. package/dist/dnd/index.d.ts +0 -119
  379. package/dist/dnd/interface.d.ts +0 -14
  380. package/dist/dnd/position-h.d.ts +0 -7
  381. package/dist/env.d.ts +0 -5
  382. package/dist/exports.d.ts +0 -8
  383. package/dist/exports.min.js +0 -1
  384. package/dist/icons/index.d.ts +0 -2
  385. package/dist/index.min.js +0 -1
  386. package/dist/manager.d.ts +0 -456
  387. package/dist/mocker.d.ts +0 -1
  388. package/dist/plugin/AnchorNav.d.ts +0 -67
  389. package/dist/plugin/ButtonGroup.d.ts +0 -60
  390. package/dist/plugin/ErrorRenderer.d.ts +0 -7
  391. package/dist/plugin/Form/CodeEditor.d.ts +0 -40
  392. package/dist/plugin/Form/Formula.d.ts +0 -51
  393. package/dist/plugin/Form/InputExcel.d.ts +0 -58
  394. package/dist/plugin/Form/InputRating.d.ts +0 -19
  395. package/dist/plugin/Form/InputText.d.ts +0 -20
  396. package/dist/plugin/Form/LocationPicker.d.ts +0 -48
  397. package/dist/plugin/Nav.d.ts +0 -163
  398. package/dist/plugin/Others/BasicToolbar.d.ts +0 -11
  399. package/dist/plugin/Others/DataDebug.d.ts +0 -19
  400. package/dist/plugin/Others/Unknown.d.ts +0 -5
  401. package/dist/plugin/Panel/AvailableRenderers.d.ts +0 -8
  402. package/dist/plugin/Panel/Code.d.ts +0 -9
  403. package/dist/plugin/Panel/Name.d.ts +0 -8
  404. package/dist/plugin/Panel/Outline.d.ts +0 -8
  405. package/dist/plugin.d.ts +0 -601
  406. package/dist/store/editor.d.ts +0 -1003
  407. package/dist/store/node.d.ts +0 -265
  408. package/dist/style.css +0 -1
  409. package/dist/util.d.ts +0 -72
  410. package/src/component/schemaTpl.tsx +0 -2157
  411. package/src/plugin/Alert.tsx +0 -87
  412. package/src/plugin/AnchorNav.tsx +0 -233
  413. package/src/plugin/Audio.tsx +0 -161
  414. package/src/plugin/Avatar.tsx +0 -77
  415. package/src/plugin/Breadcrumb.tsx +0 -107
  416. package/src/plugin/Button.tsx +0 -283
  417. package/src/plugin/ButtonGroup.tsx +0 -88
  418. package/src/plugin/ButtonToolbar.tsx +0 -89
  419. package/src/plugin/CRUD.tsx +0 -1835
  420. package/src/plugin/Card.tsx +0 -290
  421. package/src/plugin/Cards.tsx +0 -318
  422. package/src/plugin/Carousel.tsx +0 -386
  423. package/src/plugin/Chart.tsx +0 -218
  424. package/src/plugin/CodeView.tsx +0 -60
  425. package/src/plugin/Collapse.tsx +0 -143
  426. package/src/plugin/CollapseGroup.tsx +0 -167
  427. package/src/plugin/Container.tsx +0 -44
  428. package/src/plugin/Custom.tsx +0 -128
  429. package/src/plugin/CustomRegion.tsx +0 -156
  430. package/src/plugin/Date.tsx +0 -81
  431. package/src/plugin/Datetime.tsx +0 -75
  432. package/src/plugin/Dialog.tsx +0 -178
  433. package/src/plugin/Divider.tsx +0 -36
  434. package/src/plugin/Drawer.tsx +0 -217
  435. package/src/plugin/DropDownButton.tsx +0 -237
  436. package/src/plugin/Each.tsx +0 -155
  437. package/src/plugin/ErrorRenderer.tsx +0 -15
  438. package/src/plugin/Flex.tsx +0 -156
  439. package/src/plugin/Form/ButtonGroupSelect.tsx +0 -86
  440. package/src/plugin/Form/ButtonToolbar.tsx +0 -121
  441. package/src/plugin/Form/ChainedSelect.tsx +0 -70
  442. package/src/plugin/Form/Checkbox.tsx +0 -87
  443. package/src/plugin/Form/Checkboxes.tsx +0 -167
  444. package/src/plugin/Form/CodeEditor.tsx +0 -91
  445. package/src/plugin/Form/Combo.tsx +0 -582
  446. package/src/plugin/Form/ConditionBuilder.tsx +0 -324
  447. package/src/plugin/Form/Control.tsx +0 -139
  448. package/src/plugin/Form/DiffEditor.tsx +0 -117
  449. package/src/plugin/Form/FieldSet.tsx +0 -175
  450. package/src/plugin/Form/Form.tsx +0 -692
  451. package/src/plugin/Form/Formula.tsx +0 -91
  452. package/src/plugin/Form/Group.tsx +0 -300
  453. package/src/plugin/Form/Hidden.tsx +0 -56
  454. package/src/plugin/Form/InputArray.tsx +0 -228
  455. package/src/plugin/Form/InputCity.tsx +0 -93
  456. package/src/plugin/Form/InputColor.tsx +0 -123
  457. package/src/plugin/Form/InputDate.tsx +0 -175
  458. package/src/plugin/Form/InputDateRange.tsx +0 -225
  459. package/src/plugin/Form/InputDateTime.tsx +0 -183
  460. package/src/plugin/Form/InputDateTimeRange.tsx +0 -221
  461. package/src/plugin/Form/InputEmail.tsx +0 -33
  462. package/src/plugin/Form/InputExcel.tsx +0 -85
  463. package/src/plugin/Form/InputFile.tsx +0 -228
  464. package/src/plugin/Form/InputGroup.tsx +0 -105
  465. package/src/plugin/Form/InputImage.tsx +0 -277
  466. package/src/plugin/Form/InputKV.tsx +0 -72
  467. package/src/plugin/Form/InputMonth.tsx +0 -35
  468. package/src/plugin/Form/InputMonthRange.tsx +0 -195
  469. package/src/plugin/Form/InputNumber.tsx +0 -97
  470. package/src/plugin/Form/InputPassword.tsx +0 -33
  471. package/src/plugin/Form/InputQuarter.tsx +0 -35
  472. package/src/plugin/Form/InputQuarterRange.tsx +0 -195
  473. package/src/plugin/Form/InputRange.tsx +0 -121
  474. package/src/plugin/Form/InputRating.tsx +0 -78
  475. package/src/plugin/Form/InputRepeat.tsx +0 -69
  476. package/src/plugin/Form/InputRichText.tsx +0 -197
  477. package/src/plugin/Form/InputSubForm.tsx +0 -198
  478. package/src/plugin/Form/InputTable.tsx +0 -434
  479. package/src/plugin/Form/InputTag.tsx +0 -81
  480. package/src/plugin/Form/InputText.tsx +0 -186
  481. package/src/plugin/Form/InputTime.tsx +0 -95
  482. package/src/plugin/Form/InputTree.tsx +0 -240
  483. package/src/plugin/Form/InputURL.tsx +0 -34
  484. package/src/plugin/Form/InputYear.tsx +0 -35
  485. package/src/plugin/Form/Item.tsx +0 -327
  486. package/src/plugin/Form/ListSelect.tsx +0 -84
  487. package/src/plugin/Form/LocationPicker.tsx +0 -75
  488. package/src/plugin/Form/MatrixCheckboxes.tsx +0 -147
  489. package/src/plugin/Form/NestedSelect.tsx +0 -222
  490. package/src/plugin/Form/Picker.tsx +0 -217
  491. package/src/plugin/Form/Radios.tsx +0 -130
  492. package/src/plugin/Form/Select.tsx +0 -233
  493. package/src/plugin/Form/Static.tsx +0 -335
  494. package/src/plugin/Form/Switch.tsx +0 -118
  495. package/src/plugin/Form/TabsTransfer.tsx +0 -270
  496. package/src/plugin/Form/Textarea.tsx +0 -94
  497. package/src/plugin/Form/Transfer.tsx +0 -379
  498. package/src/plugin/Form/TreeSelect.tsx +0 -263
  499. package/src/plugin/Form/UUID.tsx +0 -48
  500. package/src/plugin/Grid.tsx +0 -799
  501. package/src/plugin/HBox.tsx +0 -727
  502. package/src/plugin/IFrame.tsx +0 -72
  503. package/src/plugin/Image.tsx +0 -318
  504. package/src/plugin/Images.tsx +0 -238
  505. package/src/plugin/Json.tsx +0 -76
  506. package/src/plugin/Link.tsx +0 -95
  507. package/src/plugin/List.tsx +0 -281
  508. package/src/plugin/ListItem.tsx +0 -233
  509. package/src/plugin/Log.tsx +0 -52
  510. package/src/plugin/Mapping.tsx +0 -156
  511. package/src/plugin/Markdown.tsx +0 -47
  512. package/src/plugin/Nav.tsx +0 -186
  513. package/src/plugin/Operation.tsx +0 -97
  514. package/src/plugin/Others/Action.tsx +0 -428
  515. package/src/plugin/Others/BasicToolbar.tsx +0 -591
  516. package/src/plugin/Others/DataDebug.tsx +0 -134
  517. package/src/plugin/Others/TableCell.tsx +0 -480
  518. package/src/plugin/Others/Unknown.tsx +0 -37
  519. package/src/plugin/Page.tsx +0 -308
  520. package/src/plugin/Panel/AvailableRenderers.tsx +0 -41
  521. package/src/plugin/Panel/Code.tsx +0 -44
  522. package/src/plugin/Panel/Name.tsx +0 -26
  523. package/src/plugin/Panel/Outline.tsx +0 -40
  524. package/src/plugin/Panel.tsx +0 -243
  525. package/src/plugin/Plain.tsx +0 -91
  526. package/src/plugin/Progress.tsx +0 -132
  527. package/src/plugin/Property.tsx +0 -139
  528. package/src/plugin/QRCode.tsx +0 -98
  529. package/src/plugin/Reset.tsx +0 -23
  530. package/src/plugin/Service.tsx +0 -167
  531. package/src/plugin/Sparkline.tsx +0 -40
  532. package/src/plugin/Status.tsx +0 -78
  533. package/src/plugin/Steps.tsx +0 -140
  534. package/src/plugin/Submit.tsx +0 -23
  535. package/src/plugin/Table.tsx +0 -440
  536. package/src/plugin/TableView.tsx +0 -711
  537. package/src/plugin/Tabs.tsx +0 -364
  538. package/src/plugin/Tasks.tsx +0 -276
  539. package/src/plugin/Time.tsx +0 -75
  540. package/src/plugin/TooltipWrapper.tsx +0 -193
  541. package/src/plugin/Tpl.tsx +0 -162
  542. package/src/plugin/Video.tsx +0 -160
  543. package/src/plugin/WebComponent.tsx +0 -56
  544. package/src/plugin/Wizard.tsx +0 -743
  545. package/src/plugin/Wrapper.tsx +0 -107
  546. package/src/plugin.ts +0 -1049
  547. package/static/Code-hover.png +0 -0
  548. package/static/Code.png +0 -0
  549. package/static/Outline-hover.png +0 -0
  550. package/static/Outline.png +0 -0
  551. package/static/Renderers-hover.png +0 -0
  552. package/static/Renderers.png +0 -0
  553. package/static/side_hide_left.svg +0 -10
package/src/plugin.ts DELETED
@@ -1,1049 +0,0 @@
1
- /**
2
- * @file 定义插件的 interface,以及提供一个 BasePlugin 基类,把一些通用的方法放在这。
3
- */
4
- import {BaseSchema, SchemaObject} from 'amis';
5
- import {MenuDivider, MenuItem} from 'amis/lib/components/ContextMenu';
6
- import {RendererConfig} from 'amis/lib/factory';
7
- import {RegionWrapperProps} from './component/RegionWrapper';
8
- import {EditorManager} from './manager';
9
- import {EditorStoreType} from './store/editor';
10
- import {EditorNodeType} from './store/node';
11
- import {DNDModeInterface} from './dnd/interface';
12
- import {EditorDNDManager} from './dnd';
13
- import React from 'react';
14
- import {DiffChange} from './util';
15
- import find from 'lodash/find';
16
-
17
- /**
18
- * 区域的定义,容器渲染器都需要定义区域信息。
19
- */
20
- export interface RegionConfig {
21
- /**
22
- * 简单情况,如果区域直接用的 render('region', subSchema)
23
- * 这种只需要配置 key 就能简单插入 Region 节点。
24
- */
25
- key: string;
26
-
27
- /**
28
- * 区域用来显示的名字。
29
- */
30
- label: string;
31
-
32
- /**
33
- * 区域占位字符,用于提示
34
- */
35
- placeholder?: string;
36
-
37
- /**
38
- * 对于复杂的控件需要用到这个配置。
39
- * 如果配置了,则遍历 react dom 直到目标节点调换成 Region 节点
40
- *
41
- * 如果没有配置这个,但是又配置了 renderMethod 方法,
42
- * 那就直接将 renderMethod 里面返回的 react dom 直接包一层 Region
43
- */
44
- matchRegion?: (
45
- elem: JSX.Element | undefined | null,
46
- component: JSX.Element
47
- ) => boolean;
48
-
49
- /**
50
- * 指定要覆盖哪个方法。
51
- */
52
- renderMethod?: string;
53
-
54
- /**
55
- * 通常是hack 当前渲染器,单有时候当前渲染器其实是组合的别的渲染器。
56
- */
57
- rendererName?: string;
58
-
59
- /**
60
- * 当配置 renderMethod 的时候会自动把 Region 插入进去。
61
- * 默认是 outter 模式,有时候可能需要配置成 inner,
62
- * 比如 renderMethod 为 render 的时候。
63
- */
64
- insertPosition?: 'outter' | 'inner';
65
-
66
- /**
67
- * 是否为可选容器,如果是可选容器,不会强制自动创建成员
68
- */
69
- optional?: boolean;
70
-
71
- /**
72
- * 有时候有些包括是需要其他条件的,所以要自己写包裹逻辑。
73
- * 比如 Panel 里面的 renderBody
74
- */
75
- renderMethodOverride?: (
76
- regions: Array<RegionConfig>,
77
- insertRegion: (
78
- component: JSX.Element,
79
- dom: JSX.Element,
80
- regions: Array<RegionConfig>,
81
- info: RendererInfo,
82
- manager: EditorManager
83
- ) => JSX.Element
84
- ) => Function;
85
-
86
- /**
87
- * 偏好什么类型的组件?比如表单里面,controls 容器偏向表单项。
88
- */
89
- preferTag?: string;
90
-
91
- /**
92
- * 用来指定用什么组件包裹,默认是 RegionWrapper
93
- */
94
- wrapper?: React.ComponentType<RegionWrapperProps>;
95
-
96
- /**
97
- * 返回需要添加 data-region 的 dom 节点。
98
- */
99
- wrapperResolve?: (dom: HTMLElement) => HTMLElement;
100
-
101
- /**
102
- * 当拖入到这个容器时,是否需要修改一下 ghost 结构?
103
- */
104
- modifyGhost?: (ghost: HTMLElement, schema?: any) => void;
105
-
106
- /**
107
- * dnd 拖拽模式。比如 table 那种需要配置成 position-h
108
- */
109
- dndMode?:
110
- | 'default'
111
- | 'position-h'
112
- | 'position-v'
113
- | (new (dnd: EditorDNDManager) => DNDModeInterface);
114
-
115
- /**
116
- * 可以用来判断是否允许拖入当前节点。
117
- */
118
- accept?: (json: any) => boolean;
119
- }
120
-
121
- export interface VRendererConfig {
122
- /**
123
- * 配置了这些会自动创建编辑面板。
124
- */
125
- panelIcon?: string;
126
- panelTitle?: string;
127
- /**
128
- * @deprecated 用 panelBody 代替
129
- */
130
- panelControls?: Array<any>;
131
- panelDefinitions?: any;
132
- /**
133
- * @deprecated 用panelBodyCreator 代替
134
- */
135
- panelControlsCreator?: (context: BaseEventContext) => Array<any>;
136
- panelBody?: Array<any>;
137
- panelBodyCreator?: (context: BaseEventContext) => Array<any>;
138
-
139
- /**
140
- * 配置了,要是不在 overides 里面使用也是没用的。
141
- */
142
- regions?: {
143
- [propName: string]: RegionConfig;
144
- };
145
- }
146
-
147
- export interface RendererScaffoldInfo {
148
- /**
149
- * 组件名称
150
- */
151
- name: string;
152
-
153
- // 图标
154
- icon?: string;
155
-
156
- // 组件描述信息
157
- description?: string;
158
-
159
- // 文档链接
160
- docLink?: string;
161
-
162
- // 用来生成预览图
163
- previewSchema?: any;
164
-
165
- // 分类
166
- tags?: string | Array<string>;
167
-
168
- // type 和 scaffold 二选一
169
- type?: string;
170
- scaffold?: any;
171
- }
172
-
173
- /**
174
- * 渲染器信息。
175
- */
176
- export interface RendererInfo extends RendererScaffoldInfo {
177
- scaffolds?: Array<Partial<RendererScaffoldInfo>>;
178
-
179
- rendererName?: string;
180
-
181
- /**
182
- * json schema 协议
183
- */
184
- $schema?: string;
185
-
186
- isBaseComponent?: boolean;
187
-
188
- disabledRendererPlugin?: boolean;
189
-
190
- /**
191
- * 配置区域。
192
- */
193
- regions?: Array<RegionConfig>;
194
-
195
- /**
196
- * 哪些容器属性需要自动转成数组的。如果不配置默认就从 regions 里面读取。
197
- */
198
- patchContainers?: Array<string>;
199
-
200
- /**
201
- * 覆盖的目标渲染器名称
202
- */
203
- overrideTargetRendererName?: string;
204
-
205
- /**
206
- * 覆写某些方法,一般用来插入虚拟的渲染器编辑器。
207
- */
208
- overrides?: {
209
- [propName: string]: Function;
210
- };
211
-
212
- /**
213
- * 虚拟渲染器的配置项,有时候需要给那些并不是渲染器的组件添加点选编辑功能。
214
- * 比如: Tabs 下面的 Tab, 这个并不是个渲染器,但是需要可以点选修改内容。
215
- */
216
- vRendererConfig?: VRendererConfig;
217
-
218
- /**
219
- * 默认为 BaseWrapper, 容器类的指定为 BaseContainerWrapper 或者再实现一个
220
- * 暂时没有需要配置的所以注释掉。
221
- * wrapper?: React.ComponentType<NodeWrapperProps>;
222
- *
223
- * 返回哪些 dom 节点,需要自动加上 data-editor-id 属性
224
- * 目前只有 TableCell 里面用到了,就它需要同时给某一列下所有 td 都加上那个属性。
225
- */
226
- wrapperResolve?: (dom: HTMLElement) => HTMLElement | Array<HTMLElement>;
227
-
228
- /**
229
- * 默认下发哪些属性,如果要动态下发,请使用 filterProps
230
- */
231
- wrapperProps?: any;
232
-
233
- /**
234
- * 修改一些属性,一般用来干掉 $$id
235
- * 这样它的孩子节点就不能直接点选编辑了,比如 Combo。
236
- */
237
- filterProps?: (props: any, node: EditorNodeType) => any;
238
-
239
- /**
240
- * 有些没有视图的组件,可以自己输出点内容,否则没办法点选编辑。
241
- */
242
- renderRenderer?: (props: any, info: RendererInfo) => JSX.Element;
243
-
244
- /**
245
- * 是否有多重身份?
246
- * 比如 CRUD 即是 CRUD 又可能是 Table
247
- *
248
- * 表格的列,即是表格列,也可能是其他文本框。
249
- *
250
- * 配置了这个后会自动添加多个 Panel 面板来编辑。
251
- */
252
- multifactor?: boolean;
253
-
254
- /**
255
- * 右键的时候是否出现重新构建,靠这个。
256
- */
257
- scaffoldForm?: ScaffoldForm;
258
-
259
- // 自动填入,不用配置
260
- id: string;
261
- plugin: PluginInterface;
262
- extraPlugin?: PluginInterface; // 辅助插件,看需求。
263
- renderer: RendererConfig;
264
- schemaPath: string;
265
-
266
- // 给 subEditor 用的,别直接配置
267
- editable?: boolean; // 是否可编辑。
268
- removable?: boolean; // 是否可被删除
269
- draggable?: boolean; // 是否可被拖动
270
- movable?: boolean; // 是否可被移动
271
- replaceable?: boolean; // 是否可被替换
272
- duplicatable?: boolean; // 是否可以重复一份
273
- memberImmutable?: boolean | Array<string>; // 成员节点固定,意味着不能新增成员
274
- typeMutable?: boolean; // 类型是否可被修改
275
-
276
- // 如果是虚拟的渲染器
277
- hostId?: string;
278
- memberIndex?: number;
279
- }
280
-
281
- export type BasicRendererInfo = Omit<
282
- RendererInfo,
283
- 'id' | 'plugin' | 'renderer' | 'schemaPath'
284
- >;
285
-
286
- export interface PopOverForm {
287
- title?: string;
288
-
289
- /**
290
- * 脚手架配置项。
291
- */
292
- body: Array<any>;
293
-
294
- /**
295
- * @deprecated 改用 body 代替
296
- */
297
- controls?: Array<any>;
298
- }
299
-
300
- export interface ScaffoldForm extends PopOverForm {
301
- mode?: 'normal' | 'horizontal' | 'inline';
302
-
303
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
304
- initApi?: any;
305
- api?: any;
306
-
307
- /**
308
- * 整体验证脚手架配置,如果有错误返回错误对象。
309
- * key 是配置的字段名。
310
- * value 是具体错误信息。
311
- */
312
- validate?: (
313
- values: any
314
- ) =>
315
- | void
316
- | {[propName: string]: string}
317
- | Promise<void | {[propName: string]: string}>;
318
-
319
- /**
320
- * schema 配置转脚手架配置
321
- */
322
- pipeIn?: (value: any) => any;
323
-
324
- /**
325
- * 脚手架配置转 schema 配置。
326
- */
327
- pipeOut?: (value: any) => any;
328
-
329
- /**
330
- * 是否允许重新构建;
331
- */
332
- canRebuild?: boolean;
333
- }
334
-
335
- /**
336
- * 子渲染器信息
337
- */
338
- export interface SubRendererInfo extends RendererScaffoldInfo {
339
- /**
340
- * 用于判断是否是平台预置组件,平台预置组件为true。
341
- */
342
- isBaseComponent?: boolean;
343
-
344
- rendererName?: string;
345
- /**
346
- * 首次拖入的时候可以用来配置个表单。
347
- */
348
- scaffoldForm?: ScaffoldForm;
349
- /**
350
- * 新增属性,用于判断是否出现在组件面板中,默认为false,为ture则不展示
351
- */
352
- disabledRendererPlugin?: boolean;
353
-
354
- // 自动填入,不用配置
355
- plugin: PluginInterface;
356
- parent: RendererInfo;
357
- id: string;
358
- order: number;
359
- }
360
-
361
- export type BasicSubRenderInfo = Omit<
362
- SubRendererInfo,
363
- 'plugin' | 'parent' | 'id' | 'order'
364
- > &
365
- Partial<Pick<SubRendererInfo, 'order'>>;
366
-
367
- /**
368
- * 工具按钮信息。
369
- */
370
- export interface ToolbarItem {
371
- label?: string;
372
- id?: string;
373
- order: number;
374
- level?: 'primary' | 'secondary' | 'special';
375
- className?: string;
376
- draggable?: boolean;
377
- onDragStart?: (e: any) => void;
378
- icon?: string;
379
- iconSvg?: string; // 自定义icon(svg格式)
380
- onClick?: (e: any) => void;
381
- tooltip?: string;
382
- placement?: 'top' | 'bottom' | 'right' | 'left';
383
- }
384
-
385
- export type BasicToolbarItem = Partial<ToolbarItem>;
386
-
387
- export type ContextMenuItem = MenuItem | MenuDivider;
388
-
389
- /**
390
- * 面板的属性定义
391
- */
392
- export interface PanelProps {
393
- id?: string;
394
- info?: RendererInfo;
395
- path?: string;
396
- node?: EditorNodeType;
397
- value: BaseSchema;
398
- onChange: (value: BaseSchema, diff?: Array<DiffChange>) => void;
399
- store: EditorStoreType;
400
- manager: EditorManager;
401
- popOverContainer?: () => HTMLElement | void;
402
- }
403
-
404
- /**
405
- * 面板信息定义
406
- */
407
- export interface PanelItem {
408
- nodeId?: string;
409
- key: string;
410
- icon: string;
411
- title: string | JSX.Element; // 标题
412
- component?: React.ComponentType<PanelProps | any>;
413
- order: number;
414
- position?: 'left' | 'right';
415
- render?:(props: PanelProps) => JSX.Element;
416
- menus?: Array<any>;
417
- }
418
-
419
- export type BasicPanelItem = Omit<PanelItem, 'order'> &
420
- Partial<Pick<PanelItem, 'order'>>;
421
-
422
- export interface EventContext {
423
- data?: any;
424
- [propName: string]: any;
425
- }
426
-
427
- /**
428
- * 事件上下文
429
- */
430
- export interface BaseEventContext extends EventContext {
431
- node: EditorNodeType;
432
- id: string;
433
- info: RendererInfo;
434
- path: string;
435
- schema: any;
436
- schemaPath: string;
437
- secondFactor?: boolean;
438
- }
439
-
440
- export interface RendererInfoResolveEventContext extends EventContext {
441
- renderer: RendererConfig;
442
- path: string;
443
- schema: any;
444
- schemaPath: string;
445
- data?: RendererInfo;
446
- }
447
-
448
- export interface RendererJSONSchemaResolveEventContext
449
- extends BaseEventContext {
450
- data: string;
451
- }
452
-
453
- /**
454
- * 右键菜单事件的上下文。
455
- */
456
- export interface ContextMenuEventContext extends BaseEventContext {
457
- region: string;
458
- selections: Array<BaseEventContext>;
459
- data: Array<ContextMenuItem>;
460
- }
461
-
462
- export interface SelectionEventContext extends BaseEventContext {
463
- selections: Array<BaseEventContext>;
464
- data: Array<string>;
465
- }
466
-
467
- export interface RendererEventContext extends BaseEventContext {
468
- region?: string;
469
- }
470
-
471
- export interface ActiveEventContext extends Partial<BaseEventContext> {
472
- active?: boolean;
473
- }
474
-
475
- export interface DeleteEventContext extends BaseEventContext {
476
- data?: Array<string>;
477
- }
478
-
479
- /**
480
- * 插入节点的事件上下文信息
481
- */
482
- export interface InsertEventContext extends BaseEventContext {
483
- region: string;
484
- beforeId?: string;
485
- index: number;
486
- data: any;
487
- subRenderer?: SubRendererInfo;
488
- dragInfo?: {
489
- id: string;
490
- type: string;
491
- data: any;
492
- };
493
- }
494
-
495
- export interface ReplaceEventContext extends BaseEventContext {
496
- data: any;
497
- subRenderer?: SubRendererInfo;
498
- region?: string;
499
- }
500
-
501
- export interface MoveEventContext extends BaseEventContext {
502
- region: string;
503
- sourceId: string;
504
- beforeId?: string;
505
- direction?: 'up' | 'down';
506
- }
507
-
508
- /**
509
- * 更新节点的事件上下文
510
- */
511
- export interface ChangeEventContext extends BaseEventContext {
512
- value: any;
513
- readonly diff: Array<DiffChange>;
514
- }
515
-
516
- export interface DragEventContext extends EventContext {
517
- mode: 'move' | 'copy';
518
- sourceType: 'schema' | 'subrenderer' | string;
519
- sourceId: string;
520
- data: any;
521
-
522
- targetId?: string;
523
- targetRegion?: string;
524
- }
525
-
526
- export interface BuildPanelEventContext extends BaseEventContext {
527
- data: Array<BasicPanelItem>;
528
- selections: Array<BaseEventContext>;
529
- }
530
-
531
- export interface PreventClickEventContext extends EventContext {
532
- data: MouseEvent;
533
- }
534
-
535
- export interface ResizeMoveEventContext extends EventContext {
536
- data: Object;
537
- nativeEvent: MouseEvent;
538
- dom: HTMLElement;
539
- resizer: HTMLElement;
540
- node: EditorNodeType;
541
- }
542
-
543
- /**
544
- * 将事件上下文转成事件对象。
545
- */
546
- export type PluginEvent<T, P = any> = {
547
- context: T;
548
- type: string;
549
- preventDefault: () => void;
550
- stopPropagation: () => void;
551
- setData: (data: P) => void;
552
-
553
- // 是否被阻止?
554
- prevented?: boolean;
555
- stoped?: boolean;
556
-
557
- // 当前值
558
- data?: P;
559
- };
560
-
561
- export type PluginEventFn = (e: PluginEvent<EventContext>) => false | void;
562
-
563
- /**
564
- * 创建事件。
565
- * @param type
566
- * @param context
567
- */
568
- export function createEvent<T extends EventContext>(
569
- type: string,
570
- context: T
571
- ): PluginEvent<T> {
572
- const event = {
573
- context,
574
- type,
575
- prevented: false,
576
- stoped: false,
577
- preventDefault() {
578
- event.prevented = true;
579
- },
580
- stopPropagation() {
581
- event.stoped = true;
582
- },
583
- get data() {
584
- return event.context.data;
585
- },
586
- setData(data: any) {
587
- event.context.data = data;
588
- }
589
- };
590
-
591
- return event;
592
- }
593
-
594
- export interface PluginEventListener {
595
- onActive?: (event: PluginEvent<ActiveEventContext>) => void;
596
-
597
- /**
598
- * 事件,当有配置项插入前调用。通过 event.preventDefault() 可以干预。
599
- */
600
- beforeInsert?: (event: PluginEvent<InsertEventContext>) => false | void;
601
- afterInsert?: (event: PluginEvent<InsertEventContext>) => void;
602
-
603
- /**
604
- * 面板里面编辑修改的事件。
605
- */
606
- beforeUpdate?: (event: PluginEvent<ChangeEventContext>) => false | void;
607
- afterUpdate?: (event: PluginEvent<ChangeEventContext>) => void;
608
-
609
- /**
610
- * 更新渲染器,或者右键粘贴配置。
611
- */
612
- beforeReplace?: (event: PluginEvent<ReplaceEventContext>) => false | void;
613
- afterReplace?: (event: PluginEvent<ReplaceEventContext>) => void;
614
-
615
- /**
616
- * 移动节点的时候触发,包括上移,下移
617
- */
618
- beforeMove?: (event: PluginEvent<MoveEventContext>) => false | void;
619
- aftterMove?: (event: PluginEvent<MoveEventContext>) => void;
620
-
621
- /**
622
- * 删除的时候触发
623
- */
624
- beforeDelete?: (event: PluginEvent<DeleteEventContext>) => false | void;
625
- afterDelete?: (event: PluginEvent<DeleteEventContext>) => void;
626
-
627
- beforeResolveEditorInfo?: (
628
- event: PluginEvent<RendererInfoResolveEventContext>
629
- ) => false | void;
630
- afterResolveEditorInfo?: (
631
- event: PluginEvent<RendererInfoResolveEventContext>
632
- ) => void;
633
-
634
- beforeResolveJsonSchema?: (
635
- event: PluginEvent<RendererJSONSchemaResolveEventContext>
636
- ) => false | void;
637
- afterResolveJsonSchema?: (
638
- event: PluginEvent<RendererJSONSchemaResolveEventContext>
639
- ) => void;
640
-
641
- onDndAccept?: (event: PluginEvent<DragEventContext>) => false | void;
642
-
643
- onBuildPanels?: (event: PluginEvent<BuildPanelEventContext>) => void;
644
-
645
- onBuildContextMenus?: (event: PluginEvent<ContextMenuEventContext>) => void;
646
-
647
- onBuildToolbars?: (event: PluginEvent<BaseEventContext>) => void;
648
-
649
- onSelectionChange?: (event: PluginEvent<SelectionEventContext>) => void;
650
-
651
- onPreventClick?: (
652
- event: PluginEvent<PreventClickEventContext>
653
- ) => false | void;
654
-
655
- onWidthChangeStart?: (
656
- event: PluginEvent<
657
- ResizeMoveEventContext,
658
- {
659
- onMove(e: MouseEvent): void;
660
- onEnd(e: MouseEvent): void;
661
- }
662
- >
663
- ) => void;
664
-
665
- onHeightChangeStart?: (
666
- event: PluginEvent<
667
- ResizeMoveEventContext,
668
- {
669
- onMove(e: MouseEvent): void;
670
- onEnd(e: MouseEvent): void;
671
- }
672
- >
673
- ) => void;
674
-
675
- onSizeChangeStart?: (
676
- event: PluginEvent<
677
- ResizeMoveEventContext,
678
- {
679
- onMove(e: MouseEvent): void;
680
- onEnd(e: MouseEvent): void;
681
- }
682
- >
683
- ) => void;
684
- }
685
-
686
- /**
687
- * 插件的 interface 定义
688
- */
689
- export interface PluginInterface
690
- extends Partial<BasicRendererInfo>,
691
- Partial<BasicSubRenderInfo>,
692
- PluginEventListener {
693
- readonly manager: EditorManager;
694
-
695
- order?: number;
696
-
697
- /**
698
- * 渲染器的名字,关联后不用自己实现 getRendererInfo 了。
699
- */
700
- rendererName?: string;
701
-
702
- /**
703
- * 默认的配置面板信息
704
- */
705
- panelIcon?: string;
706
- panelTitle?: string;
707
-
708
- /**
709
- * 新增属性,用于判断是否出现在组件面板中,默认为false,为ture则不展示
710
- */
711
- disabledRendererPlugin?: boolean;
712
-
713
- /**
714
- * @deprecated 用 panelBody
715
- */
716
- panelControls?: Array<any>;
717
- panelBody?: Array<any>;
718
- panelDefinitions?: any;
719
- panelApi?: any;
720
- panelSubmitOnChange?: boolean;
721
-
722
- /**
723
- * @deprecated 用 panelBodyCreator
724
- */
725
- panelControlsCreator?: (context: BaseEventContext) => Array<any>;
726
- panelBodyCreator?: (context: BaseEventContext) => Array<any>;
727
-
728
- popOverBody?: Array<any>;
729
- popOverBodyCreator?: (context: BaseEventContext) => Array<any>;
730
-
731
- /**
732
- * 返回渲染器信息。不是每个插件都需要。
733
- */
734
- getRendererInfo?: (
735
- context: RendererInfoResolveEventContext
736
- ) => BasicRendererInfo | void;
737
-
738
- /**
739
- * 生成节点的 JSON Schema 的 uri 地址。
740
- */
741
- buildJSONSchema?: (
742
- context: RendererJSONSchemaResolveEventContext
743
- ) => void | string;
744
-
745
- /**
746
- * 构建右上角功能按钮集合
747
- */
748
- buildEditorToolbar?: (
749
- context: BaseEventContext,
750
- toolbars: Array<BasicToolbarItem>
751
- ) => void;
752
-
753
- /**
754
- * 构建右键菜单项
755
- */
756
- buildEditorContextMenu?: (
757
- context: ContextMenuEventContext,
758
- menus: Array<ContextMenuItem>
759
- ) => void;
760
-
761
- /**
762
- * 构建编辑器面板。
763
- */
764
- buildEditorPanel?: (
765
- context: BuildPanelEventContext,
766
- panels: Array<BasicPanelItem>
767
- ) => void;
768
-
769
- /**
770
- * 构建子渲染器信息集合。
771
- */
772
- buildSubRenderers?: (
773
- context: RendererEventContext,
774
- subRenderers: Array<SubRendererInfo>,
775
- renderers: Array<RendererConfig>
776
- ) => BasicSubRenderInfo | Array<BasicSubRenderInfo> | void;
777
-
778
- /**
779
- * 更新NPM自定义组件分类和排序[异步方法]
780
- * 备注:目前主要在npm自定义组件的分类和排序更新中使用
781
- */
782
- asyncUpdateCustomSubRenderersInfo?: (
783
- context: RendererEventContext,
784
- subRenderers: Array<SubRendererInfo>,
785
- renderers: Array<RendererConfig>
786
- ) => void;
787
-
788
- markDom?: (dom: HTMLElement | Array<HTMLElement>, props: any) => void;
789
- }
790
-
791
- /**
792
- * 基类,所有插件都继承这个好了,可以少写些逻辑。
793
- */
794
- export abstract class BasePlugin implements PluginInterface {
795
- constructor(readonly manager: EditorManager) {}
796
-
797
- /**
798
- * 如果配置里面有 rendererName 自动返回渲染器信息。
799
- * @param renderer
800
- */
801
- getRendererInfo({
802
- renderer,
803
- schema
804
- }: RendererInfoResolveEventContext): BasicRendererInfo | void {
805
- const plugin: PluginInterface = this;
806
-
807
- if (
808
- schema.$$id &&
809
- plugin.name &&
810
- plugin.rendererName &&
811
- plugin.rendererName === renderer.name // renderer.name 会从 renderer.type 中取值
812
- ) {
813
- // 复制部分信息出去
814
- return {
815
- name: plugin.name,
816
- regions: plugin.regions,
817
- patchContainers: plugin.patchContainers,
818
- // wrapper: plugin.wrapper,
819
- vRendererConfig: plugin.vRendererConfig,
820
- wrapperProps: plugin.wrapperProps,
821
- wrapperResolve: plugin.wrapperResolve,
822
- filterProps: plugin.filterProps,
823
- $schema: plugin.$schema,
824
- renderRenderer: plugin.renderRenderer,
825
- multifactor: plugin.multifactor,
826
- scaffoldForm: plugin.scaffoldForm,
827
- disabledRendererPlugin: plugin.disabledRendererPlugin,
828
- isBaseComponent: plugin.isBaseComponent,
829
- rendererName: plugin.rendererName
830
- };
831
- }
832
- }
833
-
834
- /**
835
- * 配置了 panelControls 自动生成配置面板
836
- * @param context
837
- * @param panels
838
- */
839
- buildEditorPanel(
840
- context: BuildPanelEventContext,
841
- panels: Array<BasicPanelItem>
842
- ) {
843
- const plugin: PluginInterface = this;
844
- const store = this.manager.store;
845
-
846
- // 没有选中元素 或者 多选时不处理
847
- if (!store.activeId || context.selections.length) {
848
- return;
849
- }
850
-
851
- if (
852
- !context.info.hostId &&
853
- (plugin.panelControls ||
854
- plugin.panelControlsCreator ||
855
- plugin.panelBody ||
856
- plugin.panelBodyCreator) &&
857
- context.info.plugin === this
858
- ) {
859
- panels.push({
860
- key: 'config',
861
- icon: plugin.panelIcon || plugin.icon || 'fa fa-cog',
862
- title: plugin.panelTitle || '设置',
863
- render: this.manager.makeSchemaFormRender({
864
- definitions: plugin.panelDefinitions,
865
- submitOnChange: plugin.panelSubmitOnChange,
866
- api: plugin.panelApi,
867
- body: plugin.panelBodyCreator
868
- ? plugin.panelBodyCreator(context)
869
- : plugin.panelBody!,
870
- controls: plugin.panelControlsCreator
871
- ? plugin.panelControlsCreator(context)
872
- : plugin.panelControls!
873
- })
874
- });
875
- } else if (
876
- context.info.plugin === this &&
877
- context.info.hostId &&
878
- (plugin.vRendererConfig?.panelControls ||
879
- plugin.vRendererConfig?.panelControlsCreator ||
880
- plugin.vRendererConfig?.panelBody ||
881
- plugin.vRendererConfig?.panelBodyCreator)
882
- ) {
883
- panels.push({
884
- key: context.info.multifactor ? 'vconfig' : 'config',
885
- icon: plugin.vRendererConfig.panelIcon || 'fa fa-cog',
886
- title: plugin.vRendererConfig.panelTitle || '设置',
887
- render: this.manager.makeSchemaFormRender({
888
- submitOnChange: plugin.panelSubmitOnChange,
889
- api: plugin.panelApi,
890
- definitions: plugin.vRendererConfig.panelDefinitions,
891
- controls: plugin.vRendererConfig.panelControlsCreator
892
- ? plugin.vRendererConfig.panelControlsCreator(context)
893
- : plugin.vRendererConfig.panelControls!,
894
- body: plugin.vRendererConfig.panelBodyCreator
895
- ? plugin.vRendererConfig.panelBodyCreator(context)
896
- : plugin.vRendererConfig.panelBody!
897
- })
898
- });
899
- }
900
-
901
- // 如果是个多重身份证
902
- if (context.info.plugin === this && context.info.multifactor) {
903
- const sameIdChild: EditorNodeType = context.node.sameIdChild;
904
-
905
- if (sameIdChild) {
906
- const subPanels = this.manager.collectPanels(sameIdChild, false, true);
907
- subPanels.forEach(panel => {
908
- if (panel.key === 'code') {
909
- const exists = panels.some(panel => panel.key === 'code');
910
- exists || panels.push(panel);
911
- } else if (panel.key === 'renderers') {
912
- const exists = panels.some(panel => panel.key === 'renderers');
913
- exists || panels.push(panel);
914
- } else if (
915
- panel.key === 'outline' ||
916
- panel.key === 'commonConfig' ||
917
- panel.key === 'name-list'
918
- ) {
919
- // do nothing
920
- } else {
921
- panels.push({
922
- ...panel,
923
- key: `sub-${panel.key}`,
924
- icon: sameIdChild.info?.plugin?.icon || panel.icon
925
- });
926
- }
927
- });
928
- }
929
- }
930
- }
931
-
932
- /**
933
- * 默认什么组件都加入的子组件里面,子类里面可以复写这个改变行为。
934
- * @param context
935
- * @param subRenderers
936
- */
937
- buildSubRenderers(
938
- context: RendererEventContext,
939
- subRenderers: Array<SubRendererInfo>,
940
- renderers: Array<RendererConfig>
941
- ): BasicSubRenderInfo | Array<BasicSubRenderInfo> | void {
942
- const plugin: PluginInterface = this;
943
-
944
- if (Array.isArray(plugin.scaffolds)) {
945
- return plugin.scaffolds.map(scaffold => ({
946
- name: (scaffold.name ?? plugin.name)!,
947
- icon: scaffold.icon ?? plugin.icon,
948
- description: scaffold.description ?? plugin.description,
949
- previewSchema: scaffold.previewSchema ?? plugin.previewSchema,
950
- tags: scaffold.tags ?? plugin.tags,
951
- docLink: scaffold.docLink ?? plugin.docLink,
952
- type: scaffold.type ?? plugin.type,
953
- scaffold: scaffold.scaffold ?? plugin.scaffold,
954
- scaffoldForm: plugin.scaffoldForm,
955
- disabledRendererPlugin: plugin.disabledRendererPlugin,
956
- isBaseComponent: plugin.isBaseComponent,
957
- rendererName: plugin.rendererName
958
- }));
959
- } else if (plugin.name && plugin.description) {
960
- return {
961
- name: plugin.name,
962
- icon: plugin.icon,
963
- description: plugin.description,
964
- previewSchema: plugin.previewSchema,
965
- tags: plugin.tags,
966
- docLink: plugin.docLink,
967
- type: plugin.type,
968
- scaffold: plugin.scaffold,
969
- scaffoldForm: plugin.scaffoldForm,
970
- disabledRendererPlugin: plugin.disabledRendererPlugin,
971
- isBaseComponent: plugin.isBaseComponent,
972
- rendererName: plugin.rendererName
973
- };
974
- }
975
- }
976
-
977
- /**
978
- * 构建当前选中组件的右键菜单
979
- * @param id
980
- * @param schema
981
- * @param region
982
- * @param info
983
- * @param menus
984
- */
985
- buildEditorContextMenu(
986
- {id, schema, region, info, selections}: ContextMenuEventContext,
987
- menus: Array<ContextMenuItem>
988
- ) {
989
- const plugin: PluginInterface = this;
990
- if (
991
- info.plugin === plugin &&
992
- !selections.length &&
993
- (plugin.scaffoldForm?.canRebuild || info.scaffoldForm?.canRebuild)
994
- ) {
995
- menus.push({
996
- label: `快速构建「${info.plugin.name}」`,
997
- disabled: schema.$$commonSchema,
998
- onSelect: () =>
999
- this.manager.reScaffold(
1000
- id,
1001
- info.scaffoldForm || plugin.scaffoldForm!,
1002
- schema
1003
- )
1004
- });
1005
- }
1006
- }
1007
-
1008
- buildEditorToolbar(
1009
- {id, schema, info}: BaseEventContext,
1010
- toolbars: Array<BasicToolbarItem>
1011
- ) {
1012
- const plugin: PluginInterface = this;
1013
- if (
1014
- info.plugin === plugin &&
1015
- (plugin.scaffoldForm?.canRebuild || info.scaffoldForm?.canRebuild)
1016
- ) {
1017
- toolbars.push({
1018
- iconSvg: 'harmmer',
1019
- tooltip: `快速构建「${info.plugin.name}」`,
1020
- placement: 'bottom',
1021
- onClick: () =>
1022
- this.manager.reScaffold(
1023
- id,
1024
- info.scaffoldForm || plugin.scaffoldForm!,
1025
- schema
1026
- )
1027
- });
1028
- }
1029
- }
1030
-
1031
- renderPlaceholder(text: string, key?: any) {
1032
- return React.createElement('div', {
1033
- key,
1034
- className: 'wrapper-sm b-a b-light m-b-sm',
1035
- children: React.createElement('span', {
1036
- className: 'text-muted',
1037
- children: text
1038
- })
1039
- });
1040
- }
1041
-
1042
- getPlugin(rendererNameOrKlass: string | typeof BasePlugin) {
1043
- return find(this.manager.plugins, plugin =>
1044
- typeof rendererNameOrKlass === 'string'
1045
- ? plugin.rendererName === rendererNameOrKlass
1046
- : plugin instanceof rendererNameOrKlass
1047
- );
1048
- }
1049
- }