amis 1.5.6 → 1.6.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/.husky/pre-commit +1 -1
  2. package/README.md +1 -0
  3. package/lib/RootRenderer.d.ts +2 -0
  4. package/lib/RootRenderer.js +19 -1
  5. package/lib/RootRenderer.js.map +2 -2
  6. package/lib/Schema.d.ts +3 -2
  7. package/lib/Schema.js.map +1 -1
  8. package/lib/SchemaRenderer.js +52 -1
  9. package/lib/SchemaRenderer.js.map +2 -2
  10. package/lib/Scoped.d.ts +2 -0
  11. package/lib/Scoped.js +27 -1
  12. package/lib/Scoped.js.map +2 -2
  13. package/lib/actions/Action.d.ts +33 -0
  14. package/lib/actions/Action.js +100 -0
  15. package/lib/actions/Action.js.map +13 -0
  16. package/lib/actions/AjaxAction.d.ts +14 -0
  17. package/lib/actions/AjaxAction.js +68 -0
  18. package/lib/actions/AjaxAction.js.map +13 -0
  19. package/lib/actions/BreakAction.d.ts +12 -0
  20. package/lib/actions/BreakAction.js +28 -0
  21. package/lib/actions/BreakAction.js.map +13 -0
  22. package/lib/actions/BroadcastAction.d.ts +12 -0
  23. package/lib/actions/BroadcastAction.js +40 -0
  24. package/lib/actions/BroadcastAction.js.map +13 -0
  25. package/lib/actions/CmptAction.d.ts +12 -0
  26. package/lib/actions/CmptAction.js +40 -0
  27. package/lib/actions/CmptAction.js.map +13 -0
  28. package/lib/actions/ContinueAction.d.ts +12 -0
  29. package/lib/actions/ContinueAction.js +28 -0
  30. package/lib/actions/ContinueAction.js.map +13 -0
  31. package/lib/actions/CopyAction.d.ts +12 -0
  32. package/lib/actions/CopyAction.js +35 -0
  33. package/lib/actions/CopyAction.js.map +13 -0
  34. package/lib/actions/CustomAction.d.ts +12 -0
  35. package/lib/actions/CustomAction.js +43 -0
  36. package/lib/actions/CustomAction.js.map +13 -0
  37. package/lib/actions/DialogAction.d.ts +12 -0
  38. package/lib/actions/DialogAction.js +31 -0
  39. package/lib/actions/DialogAction.js.map +13 -0
  40. package/lib/actions/DrawerAction.d.ts +12 -0
  41. package/lib/actions/DrawerAction.js +31 -0
  42. package/lib/actions/DrawerAction.js.map +13 -0
  43. package/lib/actions/EmailAction.d.ts +12 -0
  44. package/lib/actions/EmailAction.js +37 -0
  45. package/lib/actions/EmailAction.js.map +13 -0
  46. package/lib/actions/LoopAction.d.ts +12 -0
  47. package/lib/actions/LoopAction.js +93 -0
  48. package/lib/actions/LoopAction.js.map +13 -0
  49. package/lib/actions/OpenPageAction.d.ts +12 -0
  50. package/lib/actions/OpenPageAction.js +33 -0
  51. package/lib/actions/OpenPageAction.js.map +13 -0
  52. package/lib/actions/ParallelAction.d.ts +5 -0
  53. package/lib/actions/ParallelAction.js +33 -0
  54. package/lib/actions/ParallelAction.js.map +13 -0
  55. package/lib/actions/SwitchAction.d.ts +8 -0
  56. package/lib/actions/SwitchAction.js +45 -0
  57. package/lib/actions/SwitchAction.js.map +13 -0
  58. package/lib/actions/index.d.ts +18 -0
  59. package/lib/actions/index.js +22 -0
  60. package/lib/actions/index.js.map +13 -0
  61. package/lib/components/AnchorNav.d.ts +20 -20
  62. package/lib/components/AssociatedSelection.d.ts +84 -84
  63. package/lib/components/AssociatedSelection.js +2 -2
  64. package/lib/components/AssociatedSelection.js.map +2 -2
  65. package/lib/components/Avatar.d.ts +135 -0
  66. package/lib/components/Avatar.js +120 -0
  67. package/lib/components/Avatar.js.map +13 -0
  68. package/lib/components/BaiduMapPicker.js.map +2 -2
  69. package/lib/components/Button.d.ts +20 -20
  70. package/lib/components/CalendarMobile.d.ts +573 -0
  71. package/lib/components/CalendarMobile.js +486 -0
  72. package/lib/components/CalendarMobile.js.map +13 -0
  73. package/lib/components/Cascader.d.ts +123 -0
  74. package/lib/components/Cascader.js +487 -0
  75. package/lib/components/Cascader.js.map +13 -0
  76. package/lib/components/ChainedSelection.d.ts +84 -84
  77. package/lib/components/ChainedSelection.js +15 -3
  78. package/lib/components/ChainedSelection.js.map +2 -2
  79. package/lib/components/CityArea.d.ts +527 -0
  80. package/lib/components/CityArea.js +177 -0
  81. package/lib/components/CityArea.js.map +13 -0
  82. package/lib/components/Collapse.d.ts +20 -20
  83. package/lib/components/ColorPicker.d.ts +84 -84
  84. package/lib/components/ColorPicker.js +4 -3
  85. package/lib/components/ColorPicker.js.map +2 -2
  86. package/lib/components/DatePicker.d.ts +85 -84
  87. package/lib/components/DatePicker.js +21 -8
  88. package/lib/components/DatePicker.js.map +2 -2
  89. package/lib/components/DateRangePicker.d.ts +85 -84
  90. package/lib/components/DateRangePicker.js +19 -6
  91. package/lib/components/DateRangePicker.js.map +2 -2
  92. package/lib/components/GroupedSelection.d.ts +84 -84
  93. package/lib/components/GroupedSelection.js +14 -2
  94. package/lib/components/GroupedSelection.js.map +2 -2
  95. package/lib/components/InputBox.d.ts +21 -21
  96. package/lib/components/ListGroup.d.ts +21 -21
  97. package/lib/components/ListMenu.d.ts +84 -84
  98. package/lib/components/MonthRangePicker.d.ts +85 -84
  99. package/lib/components/MonthRangePicker.js +18 -7
  100. package/lib/components/MonthRangePicker.js.map +2 -2
  101. package/lib/components/Overlay.d.ts +1 -1
  102. package/lib/components/Overlay.js.map +1 -1
  103. package/lib/components/Picker.d.ts +1 -0
  104. package/lib/components/Picker.js +16 -7
  105. package/lib/components/Picker.js.map +2 -2
  106. package/lib/components/PickerColumn.d.ts +1 -0
  107. package/lib/components/PickerColumn.js +21 -18
  108. package/lib/components/PickerColumn.js.map +2 -2
  109. package/lib/components/PickerContainer.d.ts +3 -0
  110. package/lib/components/PickerContainer.js +12 -5
  111. package/lib/components/PickerContainer.js.map +2 -2
  112. package/lib/components/PopOverContainer.d.ts +1 -0
  113. package/lib/components/PopOverContainer.js +5 -3
  114. package/lib/components/PopOverContainer.js.map +2 -2
  115. package/lib/components/PopUp.d.ts +1041 -28
  116. package/lib/components/PopUp.js +32 -8
  117. package/lib/components/PopUp.js.map +2 -2
  118. package/lib/components/Radios.d.ts +21 -21
  119. package/lib/components/Rating.d.ts +21 -21
  120. package/lib/components/ResultBox.d.ts +85 -84
  121. package/lib/components/ResultBox.js +9 -4
  122. package/lib/components/ResultBox.js.map +2 -2
  123. package/lib/components/ResultList.d.ts +9 -2
  124. package/lib/components/ResultList.js +22 -2
  125. package/lib/components/ResultList.js.map +2 -2
  126. package/lib/components/Select.d.ts +238 -238
  127. package/lib/components/Select.js +13 -9
  128. package/lib/components/Select.js.map +2 -2
  129. package/lib/components/Selection.d.ts +94 -86
  130. package/lib/components/Selection.js +11 -2
  131. package/lib/components/Selection.js.map +2 -2
  132. package/lib/components/Steps.js.map +2 -2
  133. package/lib/components/TableSelection.d.ts +85 -85
  134. package/lib/components/TableSelection.js +1 -9
  135. package/lib/components/TableSelection.js.map +2 -2
  136. package/lib/components/Tabs.js +31 -33
  137. package/lib/components/Tabs.js.map +2 -2
  138. package/lib/components/TabsTransfer.d.ts +87 -256
  139. package/lib/components/TabsTransfer.js +52 -9
  140. package/lib/components/TabsTransfer.js.map +2 -2
  141. package/lib/components/TabsTransferPicker.d.ts +1 -1
  142. package/lib/components/TabsTransferPicker.js +20 -18
  143. package/lib/components/TabsTransferPicker.js.map +2 -2
  144. package/lib/components/Timeline.d.ts +69 -0
  145. package/lib/components/Timeline.js +16 -0
  146. package/lib/components/Timeline.js.map +13 -0
  147. package/lib/components/TimelineItem.d.ts +517 -0
  148. package/lib/components/TimelineItem.js +40 -0
  149. package/lib/components/TimelineItem.js.map +13 -0
  150. package/lib/components/Transfer.d.ts +100 -98
  151. package/lib/components/Transfer.js +2 -3
  152. package/lib/components/Transfer.js.map +2 -2
  153. package/lib/components/TransferDropDown.d.ts +85 -84
  154. package/lib/components/TransferDropDown.js +9 -10
  155. package/lib/components/TransferDropDown.js.map +2 -2
  156. package/lib/components/TransferPicker.d.ts +1 -0
  157. package/lib/components/TransferPicker.js +19 -4
  158. package/lib/components/TransferPicker.js.map +2 -2
  159. package/lib/components/Tree.d.ts +84 -84
  160. package/lib/components/TreeSelection.d.ts +85 -85
  161. package/lib/components/TreeSelection.js +7 -1
  162. package/lib/components/TreeSelection.js.map +2 -2
  163. package/lib/components/calendar/Calendar.d.ts +19 -0
  164. package/lib/components/calendar/Calendar.js +71 -1
  165. package/lib/components/calendar/Calendar.js.map +2 -2
  166. package/lib/components/calendar/DaysView.d.ts +21 -0
  167. package/lib/components/calendar/DaysView.js +76 -17
  168. package/lib/components/calendar/DaysView.js.map +2 -2
  169. package/lib/components/calendar/MonthsView.d.ts +34 -0
  170. package/lib/components/calendar/MonthsView.js +68 -3
  171. package/lib/components/calendar/MonthsView.js.map +2 -2
  172. package/lib/components/calendar/QuartersView.d.ts +1 -0
  173. package/lib/components/calendar/QuartersView.js +2 -2
  174. package/lib/components/calendar/QuartersView.js.map +2 -2
  175. package/lib/components/calendar/TimeView.d.ts +30 -18
  176. package/lib/components/calendar/TimeView.js +47 -8
  177. package/lib/components/calendar/TimeView.js.map +2 -2
  178. package/lib/components/calendar/YearsView.d.ts +6 -0
  179. package/lib/components/calendar/YearsView.js +21 -10
  180. package/lib/components/calendar/YearsView.js.map +2 -2
  181. package/lib/components/condition-builder/Field.js +1 -4
  182. package/lib/components/condition-builder/Field.js.map +2 -2
  183. package/lib/components/condition-builder/Func.js +1 -1
  184. package/lib/components/condition-builder/Func.js.map +2 -2
  185. package/lib/components/formula/Editor.d.ts +3 -0
  186. package/lib/components/formula/Editor.js +3 -2
  187. package/lib/components/formula/Editor.js.map +2 -2
  188. package/lib/components/formula/FuncList.js +2 -1
  189. package/lib/components/formula/FuncList.js.map +2 -2
  190. package/lib/components/formula/Picker.js +1 -1
  191. package/lib/components/formula/Picker.js.map +2 -2
  192. package/lib/components/formula/plugin.js +0 -1
  193. package/lib/components/formula/plugin.js.map +2 -2
  194. package/lib/components/icons.js +2 -0
  195. package/lib/components/icons.js.map +2 -2
  196. package/lib/components/index.d.ts +2 -1
  197. package/lib/components/index.js +4 -2
  198. package/lib/components/index.js.map +2 -2
  199. package/lib/components/virtual-list/SizeAndPositionManager.js.map +2 -2
  200. package/lib/components/virtual-list/index.js +1 -2
  201. package/lib/components/virtual-list/index.js.map +2 -2
  202. package/lib/env.d.ts +4 -0
  203. package/lib/env.js.map +2 -2
  204. package/lib/factory.d.ts +2 -1
  205. package/lib/factory.js +83 -0
  206. package/lib/factory.js.map +2 -2
  207. package/lib/helper.css.map +1 -1
  208. package/lib/icons/tree-down.js +7 -0
  209. package/lib/index.d.ts +3 -0
  210. package/lib/index.js +4 -1
  211. package/lib/index.js.map +2 -2
  212. package/lib/locale/de-DE.js +17 -2
  213. package/lib/locale/de-DE.js.map +2 -2
  214. package/lib/locale/en-US.js +17 -2
  215. package/lib/locale/en-US.js.map +2 -2
  216. package/lib/locale/zh-CN.js +16 -1
  217. package/lib/locale/zh-CN.js.map +2 -2
  218. package/lib/renderers/Action.d.ts +1 -1
  219. package/lib/renderers/Action.js +26 -10
  220. package/lib/renderers/Action.js.map +2 -2
  221. package/lib/renderers/Avatar.d.ts +35 -26
  222. package/lib/renderers/Avatar.js +14 -19
  223. package/lib/renderers/Avatar.js.map +2 -2
  224. package/lib/renderers/CRUD.js +1 -2
  225. package/lib/renderers/CRUD.js.map +2 -2
  226. package/lib/renderers/Card.js +6 -5
  227. package/lib/renderers/Card.js.map +2 -2
  228. package/lib/renderers/Custom.d.ts +1 -1
  229. package/lib/renderers/Custom.js +1 -1
  230. package/lib/renderers/Custom.js.map +2 -2
  231. package/lib/renderers/DropDownButton.d.ts +11 -2
  232. package/lib/renderers/DropDownButton.js +30 -12
  233. package/lib/renderers/DropDownButton.js.map +2 -2
  234. package/lib/renderers/Each.js +5 -2
  235. package/lib/renderers/Each.js.map +2 -2
  236. package/lib/renderers/Flex.js +1 -5
  237. package/lib/renderers/Flex.js.map +2 -2
  238. package/lib/renderers/Form/ChartRadios.js.map +2 -2
  239. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  240. package/lib/renderers/Form/CityDB.js +526 -2
  241. package/lib/renderers/Form/CityDB.js.map +2 -2
  242. package/lib/renderers/Form/DiffEditor.d.ts +6 -0
  243. package/lib/renderers/Form/DiffEditor.js +2 -1
  244. package/lib/renderers/Form/DiffEditor.js.map +2 -2
  245. package/lib/renderers/Form/Editor.d.ts +6 -0
  246. package/lib/renderers/Form/InputCity.d.ts +85 -84
  247. package/lib/renderers/Form/InputCity.js +4 -2
  248. package/lib/renderers/Form/InputCity.js.map +2 -2
  249. package/lib/renderers/Form/InputColor.d.ts +84 -84
  250. package/lib/renderers/Form/InputColor.js +6 -2
  251. package/lib/renderers/Form/InputColor.js.map +2 -2
  252. package/lib/renderers/Form/InputDate.js +10 -5
  253. package/lib/renderers/Form/InputDate.js.map +2 -2
  254. package/lib/renderers/Form/InputDateRange.js +6 -2
  255. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  256. package/lib/renderers/Form/InputFormula.d.ts +4 -1
  257. package/lib/renderers/Form/InputFormula.js +2 -2
  258. package/lib/renderers/Form/InputFormula.js.map +2 -2
  259. package/lib/renderers/Form/InputImage.d.ts +1 -0
  260. package/lib/renderers/Form/InputImage.js +8 -4
  261. package/lib/renderers/Form/InputImage.js.map +2 -2
  262. package/lib/renderers/Form/InputMonthRange.js +1 -1
  263. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  264. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  265. package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
  266. package/lib/renderers/Form/InputYearRange.js +1 -1
  267. package/lib/renderers/Form/InputYearRange.js.map +2 -2
  268. package/lib/renderers/Form/Item.d.ts +10 -14
  269. package/lib/renderers/Form/Item.js +18 -9
  270. package/lib/renderers/Form/Item.js.map +2 -2
  271. package/lib/renderers/Form/NestedSelect.d.ts +1 -0
  272. package/lib/renderers/Form/NestedSelect.js +8 -4
  273. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  274. package/lib/renderers/Form/Options.js +9 -7
  275. package/lib/renderers/Form/Options.js.map +2 -2
  276. package/lib/renderers/Form/Select.d.ts +2 -0
  277. package/lib/renderers/Form/Select.js +9 -6
  278. package/lib/renderers/Form/Select.js.map +2 -2
  279. package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
  280. package/lib/renderers/Form/TabsTransfer.js +20 -1
  281. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  282. package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
  283. package/lib/renderers/Form/TabsTransferPicker.js +21 -2
  284. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  285. package/lib/renderers/Form/Transfer.d.ts +15 -4
  286. package/lib/renderers/Form/Transfer.js +55 -18
  287. package/lib/renderers/Form/Transfer.js.map +2 -2
  288. package/lib/renderers/Form/TransferPicker.d.ts +3 -32
  289. package/lib/renderers/Form/TransferPicker.js +1 -1
  290. package/lib/renderers/Form/TransferPicker.js.map +2 -2
  291. package/lib/renderers/Form/TreeSelect.js +4 -4
  292. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  293. package/lib/renderers/Form/index.js +10 -2
  294. package/lib/renderers/Form/index.js.map +2 -2
  295. package/lib/renderers/IFrame.js +0 -2
  296. package/lib/renderers/IFrame.js.map +2 -2
  297. package/lib/renderers/Link.d.ts +1 -1
  298. package/lib/renderers/Link.js +27 -6
  299. package/lib/renderers/Link.js.map +2 -2
  300. package/lib/renderers/Nav.d.ts +21 -21
  301. package/lib/renderers/Nav.js +4 -1
  302. package/lib/renderers/Nav.js.map +2 -2
  303. package/lib/renderers/Remark.d.ts +5 -1
  304. package/lib/renderers/Remark.js +39 -7
  305. package/lib/renderers/Remark.js.map +2 -2
  306. package/lib/renderers/Steps.js +5 -5
  307. package/lib/renderers/Steps.js.map +2 -2
  308. package/lib/renderers/Table/TableRow.js +4 -1
  309. package/lib/renderers/Table/TableRow.js.map +2 -2
  310. package/lib/renderers/Table/index.js +4 -1
  311. package/lib/renderers/Table/index.js.map +2 -2
  312. package/lib/renderers/Tabs.js +1 -1
  313. package/lib/renderers/Tabs.js.map +2 -2
  314. package/lib/renderers/Timeline.d.ts +65 -0
  315. package/lib/renderers/Timeline.js +54 -0
  316. package/lib/renderers/Timeline.js.map +13 -0
  317. package/lib/renderers/Video.js.map +2 -2
  318. package/lib/schemaExtend.js +23 -9
  319. package/lib/schemaExtend.js.map +2 -2
  320. package/lib/store/combo.js.map +2 -2
  321. package/lib/store/formItem.js +7 -7
  322. package/lib/store/formItem.js.map +2 -2
  323. package/lib/store/table.js +1 -1
  324. package/lib/store/table.js.map +2 -2
  325. package/lib/themes/ang-ie11.css +1149 -53
  326. package/lib/themes/ang.css +1149 -53
  327. package/lib/themes/ang.css.map +1 -1
  328. package/lib/themes/antd-ie11.css +1187 -53
  329. package/lib/themes/antd.css +1187 -53
  330. package/lib/themes/antd.css.map +1 -1
  331. package/lib/themes/cxd-ie11.css +1190 -71
  332. package/lib/themes/cxd.css +1190 -71
  333. package/lib/themes/cxd.css.map +1 -1
  334. package/lib/themes/dark-ie11.css +1152 -53
  335. package/lib/themes/dark.css +1152 -53
  336. package/lib/themes/dark.css.map +1 -1
  337. package/lib/themes/default.css +1190 -71
  338. package/lib/themes/default.css.map +1 -1
  339. package/lib/utils/RootClose.js +3 -1
  340. package/lib/utils/RootClose.js.map +2 -2
  341. package/lib/utils/api.js +14 -3
  342. package/lib/utils/api.js.map +2 -2
  343. package/lib/utils/debug.d.ts +26 -0
  344. package/lib/utils/debug.js +351 -0
  345. package/lib/utils/debug.js.map +13 -0
  346. package/lib/utils/helper.d.ts +1 -6
  347. package/lib/utils/helper.js +6 -17
  348. package/lib/utils/helper.js.map +2 -2
  349. package/lib/utils/renderer-event.d.ts +38 -0
  350. package/lib/utils/renderer-event.js +28 -0
  351. package/lib/utils/renderer-event.js.map +13 -0
  352. package/package.json +12 -6
  353. package/schema.json +3483 -810
  354. package/scss/_properties.scss +20 -6
  355. package/scss/_variables.scss +1 -0
  356. package/scss/components/_avatar.scss +27 -9
  357. package/scss/components/_calendar.scss +291 -0
  358. package/scss/components/_card.scss +1 -1
  359. package/scss/components/_cascader.scss +102 -0
  360. package/scss/components/_city-area.scss +27 -0
  361. package/scss/components/_collapse-group.scss +1 -3
  362. package/scss/components/_debug.scss +167 -0
  363. package/scss/components/_dropdown.scss +39 -9
  364. package/scss/components/_formula.scss +30 -6
  365. package/scss/components/_modal.scss +18 -0
  366. package/scss/components/_panel.scss +45 -0
  367. package/scss/components/_picker-columns.scss +15 -5
  368. package/scss/components/_popup.scss +43 -16
  369. package/scss/components/_result-box.scss +31 -0
  370. package/scss/components/_timeline.scss +198 -0
  371. package/scss/components/form/_checks.scss +2 -0
  372. package/scss/components/form/_color.scss +2 -2
  373. package/scss/components/form/_date-range.scss +34 -1
  374. package/scss/components/form/_date.scss +46 -1
  375. package/scss/components/form/_form.scss +170 -0
  376. package/scss/components/form/_nested-select.scss +3 -0
  377. package/scss/components/form/_result-list.scss +2 -0
  378. package/scss/components/form/_select.scss +32 -3
  379. package/scss/components/form/_selection.scss +5 -4
  380. package/scss/components/form/_transfer.scss +3 -0
  381. package/scss/components/form/_tree-select.scss +1 -1
  382. package/scss/themes/_antd-variables.scss +45 -0
  383. package/scss/themes/_common.scss +5 -0
  384. package/scss/themes/_cxd-variables.scss +51 -2
  385. package/scss/themes/_dark-variables.scss +4 -0
  386. package/scss/themes/cxd.scss +0 -19
  387. package/sdk/ang-ie11.css +1450 -142
  388. package/sdk/ang.css +1473 -159
  389. package/sdk/antd-ie11.css +1451 -142
  390. package/sdk/antd.css +1511 -159
  391. package/sdk/charts.js +15 -15
  392. package/sdk/codemirror.js +7 -7
  393. package/sdk/color-picker.js +65 -65
  394. package/sdk/cropperjs.js +2 -2
  395. package/sdk/cxd-ie11.css +1449 -159
  396. package/sdk/cxd.css +1514 -179
  397. package/sdk/dark-ie11.css +1450 -142
  398. package/sdk/dark.css +1476 -159
  399. package/sdk/exceljs.js +1 -1
  400. package/sdk/helper.css.map +1 -1
  401. package/sdk/locale/de-DE.js +17 -2
  402. package/sdk/markdown.js +69 -69
  403. package/sdk/papaparse.js +1 -1
  404. package/sdk/renderers/Form/CityDB.js +1 -1
  405. package/sdk/rest.js +18 -18
  406. package/sdk/rich-text.js +62 -62
  407. package/sdk/sdk-ie11.css +1449 -159
  408. package/sdk/sdk.css +1514 -179
  409. package/sdk/sdk.js +1311 -1253
  410. package/sdk/thirds/hls.js/hls.js +1 -1
  411. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  412. package/sdk/tinymce.js +57 -57
  413. package/src/RootRenderer.tsx +27 -1
  414. package/src/Schema.ts +3 -0
  415. package/src/SchemaRenderer.tsx +70 -4
  416. package/src/Scoped.tsx +46 -4
  417. package/src/actions/Action.ts +138 -0
  418. package/src/actions/AjaxAction.ts +58 -0
  419. package/src/actions/BreakAction.ts +27 -0
  420. package/src/actions/BroadcastAction.ts +41 -0
  421. package/src/actions/CmptAction.ts +36 -0
  422. package/src/actions/ContinueAction.ts +27 -0
  423. package/src/actions/CopyAction.ts +41 -0
  424. package/src/actions/CustomAction.ts +46 -0
  425. package/src/actions/DialogAction.ts +28 -0
  426. package/src/actions/DrawerAction.ts +28 -0
  427. package/src/actions/EmailAction.ts +38 -0
  428. package/src/actions/LoopAction.ts +77 -0
  429. package/src/actions/OpenPageAction.ts +39 -0
  430. package/src/actions/ParallelAction.ts +26 -0
  431. package/src/actions/SwitchAction.ts +35 -0
  432. package/src/actions/index.ts +20 -0
  433. package/src/components/AssociatedSelection.tsx +5 -1
  434. package/src/components/Avatar.tsx +253 -0
  435. package/src/components/BaiduMapPicker.tsx +19 -14
  436. package/src/components/CalendarMobile.tsx +658 -0
  437. package/src/components/Cascader.tsx +564 -0
  438. package/src/components/ChainedSelection.tsx +16 -3
  439. package/src/components/CityArea.tsx +315 -0
  440. package/src/components/ColorPicker.tsx +41 -40
  441. package/src/components/DatePicker.tsx +80 -34
  442. package/src/components/DateRangePicker.tsx +85 -30
  443. package/src/components/GroupedSelection.tsx +14 -2
  444. package/src/components/MonthRangePicker.tsx +78 -31
  445. package/src/components/Overlay.tsx +1 -1
  446. package/src/components/Picker.tsx +55 -35
  447. package/src/components/PickerColumn.tsx +43 -36
  448. package/src/components/PickerContainer.tsx +13 -1
  449. package/src/components/PopOverContainer.tsx +31 -17
  450. package/src/components/PopUp.tsx +84 -57
  451. package/src/components/ResultBox.tsx +14 -2
  452. package/src/components/ResultList.tsx +36 -6
  453. package/src/components/Select.tsx +24 -26
  454. package/src/components/Selection.tsx +21 -3
  455. package/src/components/Steps.tsx +23 -10
  456. package/src/components/TableSelection.tsx +1 -44
  457. package/src/components/Tabs.tsx +65 -54
  458. package/src/components/TabsTransfer.tsx +78 -9
  459. package/src/components/TabsTransferPicker.tsx +25 -13
  460. package/src/components/Timeline.tsx +36 -0
  461. package/src/components/TimelineItem.tsx +140 -0
  462. package/src/components/Transfer.tsx +11 -8
  463. package/src/components/TransferDropDown.tsx +20 -12
  464. package/src/components/TransferPicker.tsx +25 -4
  465. package/src/components/TreeSelection.tsx +7 -1
  466. package/src/components/calendar/Calendar.tsx +101 -4
  467. package/src/components/calendar/DaysView.tsx +165 -33
  468. package/src/components/calendar/MonthsView.tsx +108 -1
  469. package/src/components/calendar/QuartersView.tsx +3 -2
  470. package/src/components/calendar/TimeView.tsx +104 -41
  471. package/src/components/calendar/YearsView.tsx +34 -17
  472. package/src/components/condition-builder/Field.tsx +1 -3
  473. package/src/components/condition-builder/Func.tsx +1 -1
  474. package/src/components/formula/Editor.tsx +16 -11
  475. package/src/components/formula/FuncList.tsx +3 -1
  476. package/src/components/formula/Picker.tsx +2 -1
  477. package/src/components/formula/plugin.ts +0 -2
  478. package/src/components/icons.tsx +2 -0
  479. package/src/components/index.tsx +2 -0
  480. package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
  481. package/src/components/virtual-list/index.tsx +4 -6
  482. package/src/env.tsx +22 -0
  483. package/src/factory.tsx +93 -1
  484. package/src/icons/tree-down.svg +5 -0
  485. package/src/index.tsx +5 -0
  486. package/src/locale/de-DE.ts +17 -2
  487. package/src/locale/en-US.ts +17 -2
  488. package/src/locale/zh-CN.ts +16 -1
  489. package/src/renderers/Action.tsx +11 -2
  490. package/src/renderers/Avatar.tsx +83 -74
  491. package/src/renderers/CRUD.tsx +1 -3
  492. package/src/renderers/Card.tsx +10 -6
  493. package/src/renderers/Custom.tsx +7 -4
  494. package/src/renderers/DropDownButton.tsx +69 -35
  495. package/src/renderers/Each.tsx +4 -4
  496. package/src/renderers/Flex.tsx +3 -7
  497. package/src/renderers/Form/ChartRadios.tsx +2 -7
  498. package/src/renderers/Form/Checkboxes.tsx +1 -1
  499. package/src/renderers/Form/CityDB.ts +526 -2
  500. package/src/renderers/Form/DiffEditor.tsx +2 -3
  501. package/src/renderers/Form/InputCity.tsx +23 -3
  502. package/src/renderers/Form/InputColor.tsx +21 -2
  503. package/src/renderers/Form/InputDate.tsx +48 -20
  504. package/src/renderers/Form/InputDateRange.tsx +9 -2
  505. package/src/renderers/Form/InputFormula.tsx +9 -4
  506. package/src/renderers/Form/InputImage.tsx +9 -4
  507. package/src/renderers/Form/InputMonthRange.tsx +0 -1
  508. package/src/renderers/Form/InputQuarterRange.tsx +0 -1
  509. package/src/renderers/Form/InputYearRange.tsx +0 -1
  510. package/src/renderers/Form/Item.tsx +29 -8
  511. package/src/renderers/Form/NestedSelect.tsx +32 -4
  512. package/src/renderers/Form/Options.tsx +15 -7
  513. package/src/renderers/Form/Select.tsx +21 -5
  514. package/src/renderers/Form/TabsTransfer.tsx +28 -38
  515. package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
  516. package/src/renderers/Form/Transfer.tsx +75 -24
  517. package/src/renderers/Form/TransferPicker.tsx +6 -38
  518. package/src/renderers/Form/TreeSelect.tsx +18 -16
  519. package/src/renderers/Form/index.tsx +9 -2
  520. package/src/renderers/IFrame.tsx +0 -2
  521. package/src/renderers/Link.tsx +18 -3
  522. package/src/renderers/Nav.tsx +4 -1
  523. package/src/renderers/Remark.tsx +68 -18
  524. package/src/renderers/Steps.tsx +11 -13
  525. package/src/renderers/Table/TableRow.tsx +3 -1
  526. package/src/renderers/Table/index.tsx +7 -1
  527. package/src/renderers/Tabs.tsx +6 -2
  528. package/src/renderers/Timeline.tsx +141 -0
  529. package/src/renderers/Video.tsx +4 -20
  530. package/src/schemaExtend.ts +22 -10
  531. package/src/store/combo.ts +1 -3
  532. package/src/store/formItem.ts +3 -3
  533. package/src/store/table.ts +2 -1
  534. package/src/utils/RootClose.ts +5 -1
  535. package/src/utils/api.ts +15 -2
  536. package/src/utils/debug.tsx +438 -0
  537. package/src/utils/helper.ts +6 -16
  538. package/src/utils/renderer-event.ts +75 -0
@@ -21,6 +21,7 @@ import useTouch from '../hooks/use-touch';
21
21
 
22
22
  export interface PickerColumnItem {
23
23
  labelField?: string;
24
+ valueField?: string;
24
25
  readonly?: boolean;
25
26
  value?: PickerOption;
26
27
  swipeDuration?: number;
@@ -33,7 +34,7 @@ export interface PickerColumnItem {
33
34
  index?: number,
34
35
  confirm?: boolean
35
36
  ) => void;
36
- };
37
+ }
37
38
 
38
39
  export interface PickerColumnProps extends PickerColumnItem, ThemeProps {}
39
40
 
@@ -64,12 +65,13 @@ function getElementTranslateY(element: HTMLElement | null) {
64
65
  function isOptionDisabled(option: PickerOption) {
65
66
  return isObject(option) && option.disabled;
66
67
  }
67
-
68
+
68
69
  const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
69
70
  const {
70
71
  visibleItemCount = 5,
71
- itemHeight = 30,
72
+ itemHeight = 48,
72
73
  value,
74
+ valueField = 'value',
73
75
  swipeDuration = 1000,
74
76
  labelField = 'text',
75
77
  options = [],
@@ -88,7 +90,24 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
88
90
 
89
91
  const touch = useTouch();
90
92
  const count = options.length;
91
- const defaultIndex = options.findIndex(item => item === value);
93
+
94
+ const getOptionText = (option: [] | PickerOption) => {
95
+ if (isObject(option) && labelField in option) {
96
+ //@ts-ignore
97
+ return option[labelField];
98
+ }
99
+ return option;
100
+ };
101
+
102
+ const getOptionValue = (option: [] | PickerOption) => {
103
+ if (isObject(option) && valueField in option) {
104
+ //@ts-ignore
105
+ return option[valueField];
106
+ }
107
+ return option;
108
+ };
109
+
110
+ const defaultIndex = options.findIndex(item => getOptionValue(item) === value);
92
111
 
93
112
  const baseOffset = useMemo(() => {
94
113
  // 默认转入第一个选项的位置
@@ -134,12 +153,9 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
134
153
  if (emitChange && props.onChange) {
135
154
  requestAnimationFrame(
136
155
  () => {
137
- props.onChange?.(options[index], index, confirm);
156
+ props.onChange?.(getOptionValue(options[index]), index, confirm);
138
157
  }
139
158
  );
140
- // setTimeout(() => {
141
- // props.onChange?.(options[index], index, confirm);
142
- // }, 0);
143
159
  }
144
160
  };
145
161
 
@@ -156,7 +172,7 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
156
172
  const setOptions = (options: Array<PickerOption>) => {
157
173
  if (JSON.stringify(options) !== JSON.stringify(state.options)) {
158
174
  updateState({options});
159
- const index = options.findIndex(item => item === value) || 0;
175
+ const index = options.findIndex(item => getOptionValue(item) === value) || 0;
160
176
  setIndex(index, true, true);
161
177
  }
162
178
  };
@@ -170,14 +186,6 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
170
186
  setIndex(index, true, true);
171
187
  };
172
188
 
173
- const getOptionText = (option: [] | PickerOption) => {
174
- if (isObject(option) && labelField in option) {
175
- //@ts-ignore
176
- return option[labelField];
177
- }
178
- return option;
179
- };
180
-
181
189
  const getIndexByOffset = (offset: number) =>
182
190
  range(Math.round(-offset / itemHeight), 0, count - 1);
183
191
 
@@ -301,7 +309,7 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
301
309
  onClickItem(index);
302
310
  }
303
311
  };
304
-
312
+
305
313
  const childData = {
306
314
  className: 'text-ellipsis',
307
315
  children: text
@@ -357,23 +365,23 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
357
365
  transitionProperty: state.duration ? 'all' : 'none'
358
366
  };
359
367
  return (
360
- <div
361
- ref={root}
362
- className={props.classnames('PickerColumns', props.className)}
363
- onTouchStart={onTouchStart}
364
- onTouchMove={onTouchMove}
365
- onTouchEnd={onTouchEnd}
366
- onTouchCancel={onTouchEnd}
368
+ <div
369
+ ref={root}
370
+ className={props.classnames('PickerColumns', props.className)}
371
+ onTouchStart={onTouchStart}
372
+ onTouchMove={onTouchMove}
373
+ onTouchEnd={onTouchEnd}
374
+ onTouchCancel={onTouchEnd}
375
+ >
376
+ <ul
377
+ ref={wrapper}
378
+ style={wrapperStyle}
379
+ className={props.classnames('PickerColumns-columnWrapper')}
380
+ onTransitionEnd={stopMomentum}
367
381
  >
368
- <ul
369
- ref={wrapper}
370
- style={wrapperStyle}
371
- className={props.classnames('PickerColumns-columnWrapper')}
372
- onTransitionEnd={stopMomentum}
373
- >
374
- {renderOptions()}
375
- </ul>
376
- </div>
382
+ {renderOptions()}
383
+ </ul>
384
+ </div>
377
385
  );
378
386
  });
379
387
 
@@ -381,7 +389,7 @@ PickerColumn.defaultProps = {
381
389
  options: [],
382
390
  visibleItemCount: 5,
383
391
  swipeDuration: 1000,
384
- itemHeight: 30
392
+ itemHeight: 48
385
393
  };
386
394
 
387
395
  export default themeable(
@@ -389,4 +397,3 @@ export default themeable(
389
397
  value: 'onChange'
390
398
  })
391
399
  );
392
-
@@ -19,6 +19,8 @@ export interface PickerContainerProps extends ThemeProps, LocaleProps {
19
19
  onClose: () => void;
20
20
  value: any;
21
21
  onChange: (value: any) => void;
22
+ setState: (state: any) => void;
23
+ [propName: string]: any;
22
24
  }) => JSX.Element;
23
25
  value?: any;
24
26
  onConfirm?: (value?: any) => void;
@@ -83,6 +85,15 @@ export class PickerContainer extends React.Component<
83
85
  this.close(undefined, () => onConfirm?.(this.state.value));
84
86
  }
85
87
 
88
+ @autobind
89
+ updateState(state: any = {}) {
90
+ const {isOpened, ...rest} = state;
91
+ this.setState({
92
+ ...this.state,
93
+ ...rest
94
+ });
95
+ }
96
+
86
97
  render() {
87
98
  const {
88
99
  children,
@@ -112,8 +123,9 @@ export class PickerContainer extends React.Component<
112
123
  ) : null}
113
124
  <Modal.Body>
114
125
  {popOverRender({
126
+ ...(this.state as any),
127
+ setState: this.updateState,
115
128
  onClose: this.close,
116
- value: this.state.value,
117
129
  onChange: this.handleChange
118
130
  })}
119
131
  </Modal.Body>
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
- import {autobind} from '../utils/helper';
2
+ import {autobind, isMobile} from '../utils/helper';
3
3
  import Overlay from './Overlay';
4
4
  import PopOver from './PopOver';
5
+ import PopUp from './PopUp';
5
6
  import {findDOMNode} from 'react-dom';
6
7
 
7
8
  export interface PopOverContainerProps {
@@ -13,6 +14,7 @@ export interface PopOverContainerProps {
13
14
  popOverRender: (props: {onClose: () => void}) => JSX.Element;
14
15
  popOverContainer?: any;
15
16
  popOverClassName?: string;
17
+ useMobileUI?: boolean;
16
18
  }
17
19
 
18
20
  export interface PopOverContainerState {
@@ -60,11 +62,13 @@ export class PopOverContainer extends React.Component<
60
62
 
61
63
  render() {
62
64
  const {
65
+ useMobileUI,
63
66
  children,
64
67
  popOverContainer,
65
68
  popOverClassName,
66
69
  popOverRender: dropdownRender
67
70
  } = this.props;
71
+ const mobileUI = useMobileUI && isMobile();
68
72
  return (
69
73
  <>
70
74
  {children({
@@ -72,26 +76,36 @@ export class PopOverContainer extends React.Component<
72
76
  onClick: this.handleClick,
73
77
  ref: this.targetRef
74
78
  })}
75
-
76
- <Overlay
77
- container={popOverContainer || this.getParent}
78
- target={this.getTarget}
79
- placement={'auto'}
80
- show={this.state.isOpened}
81
- >
82
- <PopOver
83
- overlay
79
+ {mobileUI ? (
80
+ <PopUp
81
+ isShow={this.state.isOpened}
82
+ container={popOverContainer}
84
83
  className={popOverClassName}
85
- style={{
86
- minWidth: this.target
87
- ? Math.max(this.target.offsetWidth, 100)
88
- : 'auto'
89
- }}
90
84
  onHide={this.close}
91
85
  >
92
86
  {dropdownRender({onClose: this.close})}
93
- </PopOver>
94
- </Overlay>
87
+ </PopUp>
88
+ ) : (
89
+ <Overlay
90
+ container={popOverContainer || this.getParent}
91
+ target={this.getTarget}
92
+ placement={'auto'}
93
+ show={this.state.isOpened}
94
+ >
95
+ <PopOver
96
+ overlay
97
+ className={popOverClassName}
98
+ style={{
99
+ minWidth: this.target
100
+ ? Math.max(this.target.offsetWidth, 100)
101
+ : 'auto'
102
+ }}
103
+ onHide={this.close}
104
+ >
105
+ {dropdownRender({onClose: this.close})}
106
+ </PopOver>
107
+ </Overlay>
108
+ )}
95
109
  </>
96
110
  );
97
111
  }
@@ -5,7 +5,8 @@
5
5
  */
6
6
 
7
7
  import React from 'react';
8
- import {ClassNamesFn, themeable} from '../theme';
8
+ import {themeable, ThemeProps} from '../theme';
9
+ import {localeable, LocaleProps} from '../locale';
9
10
  import Transition, {
10
11
  ENTERED,
11
12
  EXITING,
@@ -13,23 +14,24 @@ import Transition, {
13
14
  ENTERING
14
15
  } from 'react-transition-group/Transition';
15
16
  import Portal from 'react-overlays/Portal';
16
- import { Icon } from './icons';
17
+ import {Icon} from './icons';
18
+ import Button from './Button';
17
19
 
18
-
19
- export interface PopUpPorps {
20
+ export interface PopUpPorps extends ThemeProps, LocaleProps {
21
+ title?: string;
20
22
  className?: string;
21
23
  style?: {
22
24
  [styleName: string]: string;
23
25
  };
24
26
  overlay?: boolean;
25
27
  onHide?: () => void;
26
- classPrefix: string;
27
- classnames: ClassNamesFn;
28
- [propName: string]: any;
29
28
  isShow?: boolean;
30
29
  container?: any;
31
- hideClose?: boolean;
30
+ showConfirm?: boolean;
31
+ onConfirm?: (value: any) => void;
32
+ showClose?: boolean;
32
33
  placement?: 'left' | 'center' | 'right';
34
+ header?: JSX.Element;
33
35
  }
34
36
 
35
37
  const fadeStyles: {
@@ -41,16 +43,28 @@ const fadeStyles: {
41
43
  [ENTERING]: 'in'
42
44
  };
43
45
  export class PopUp extends React.PureComponent<PopUpPorps> {
46
+ scrollTop: number = 0;
44
47
  static defaultProps = {
45
48
  className: '',
46
49
  overlay: true,
47
50
  isShow: false,
48
51
  container: document.body,
49
- hideClose: false,
52
+ showClose: true,
53
+ onConfirm: () => {}
50
54
  };
51
-
52
- componentDidMount() {
53
-
55
+ componentDidUpdate() {
56
+ if (this.props.isShow) {
57
+ this.scrollTop =
58
+ document.body.scrollTop || document.documentElement.scrollTop;
59
+ document.body.style.overflow = 'hidden';
60
+ } else {
61
+ document.body.style.overflow = 'auto';
62
+ document.body.scrollTop = this.scrollTop;
63
+ }
64
+ }
65
+ componentWillUnmount() {
66
+ document.body.style.overflow = 'auto';
67
+ document.body.scrollTop = this.scrollTop;
54
68
  }
55
69
  handleClick(e: React.MouseEvent) {
56
70
  e.stopPropagation();
@@ -59,75 +73,88 @@ export class PopUp extends React.PureComponent<PopUpPorps> {
59
73
  render() {
60
74
  const {
61
75
  style,
76
+ title,
62
77
  children,
63
78
  overlay,
64
79
  onHide,
80
+ onConfirm,
65
81
  classPrefix: ns,
66
82
  classnames: cx,
67
83
  className,
68
84
  isShow,
69
85
  container,
70
- hideClose,
71
- placement='center',
86
+ showConfirm,
87
+ translate: __,
88
+ showClose,
89
+ header,
90
+ placement = 'center',
72
91
  ...rest
73
92
  } = this.props;
74
93
 
75
94
  const outerStyle: any = {
76
- ...style,
95
+ ...style
77
96
  };
78
97
  delete outerStyle.top;
79
98
  return (
80
99
  <Portal container={container}>
81
- <Transition
82
- mountOnEnter
83
- unmountOnExit
84
- in={isShow}
85
- timeout={500}
86
- appear
87
- >
100
+ <Transition mountOnEnter unmountOnExit in={isShow} timeout={500} appear>
88
101
  {(status: string) => {
89
- return (
90
- <div
91
- className={cx(
92
- `${ns}PopUp`,
93
- className,
94
- fadeStyles[status]
95
- )}
96
- style={outerStyle}
97
- {...rest}
98
- onClick={this.handleClick}
99
- >
100
- {overlay && (
101
- <div className={`${ns}PopUp-overlay`} onClick={onHide}/>
102
- )}
103
- <div className={cx(
104
- `${ns}PopUp-inner`
102
+ return (
103
+ <div
104
+ className={cx(`${ns}PopUp`, className, fadeStyles[status])}
105
+ style={outerStyle}
106
+ {...rest}
107
+ onClick={this.handleClick}
108
+ >
109
+ {overlay && (
110
+ <div className={`${ns}PopUp-overlay`} onClick={onHide} />
111
+ )}
112
+ <div className={cx(`${ns}PopUp-inner`)}>
113
+ {!showConfirm && showClose ? (
114
+ <div className={cx(`${ns}PopUp-closeWrap`)}>
115
+ {header}
116
+ <Icon
117
+ icon="close"
118
+ className={cx('icon', `${ns}PopUp-close`)}
119
+ onClick={onHide}
120
+ />
121
+ </div>
122
+ ) : null}
123
+ {showConfirm && (
124
+ <div className={cx(`${ns}PopUp-toolbar`)}>
125
+ <Button
126
+ className={cx(`${ns}PopUp-cancel`)}
127
+ level="text"
128
+ onClick={onHide}
129
+ >
130
+ {__('cancel')}
131
+ </Button>
132
+ {title && (
133
+ <span className={cx(`${ns}PopUp-title`)}>{title}</span>
134
+ )}
135
+ <Button
136
+ className={cx(`${ns}PopUp-confirm`)}
137
+ level="text"
138
+ onClick={onConfirm}
139
+ >
140
+ {__('confirm')}
141
+ </Button>
142
+ </div>
105
143
  )}
144
+ <div
145
+ className={cx(`${ns}PopUp-content`, `justify-${placement}`)}
106
146
  >
107
- {
108
- !hideClose && (
109
- <div className={cx(`${ns}PopUp-closeWrap`, 'text-right')}>
110
- <Icon
111
- icon="close"
112
- className={cx('icon', `${ns}PopUp-close`)}
113
- onClick={onHide}
114
- />
115
- </div>
116
- )
117
- }
118
- <div
119
- className={cx(`${ns}PopUp-content`, `justify-${placement}`)}
120
- >
121
- {children}
122
- </div>
147
+ {isShow ? children : null}
123
148
  </div>
149
+ <div className={cx(`PopUp-safearea`)}></div>
124
150
  </div>
125
- )
151
+ </div>
152
+ );
126
153
  }}
127
154
  </Transition>
128
155
  </Portal>
129
- )
156
+ );
130
157
  }
131
158
  }
132
159
 
133
- export default themeable(PopUp);
160
+ export default themeable(localeable(PopUp));
@@ -4,8 +4,9 @@ import {InputBoxProps} from './InputBox';
4
4
  import {uncontrollable} from 'uncontrollable';
5
5
  import {Icon} from './icons';
6
6
  import Input from './Input';
7
- import {autobind, ucFirst} from '../utils/helper';
7
+ import {autobind, isMobile, ucFirst} from '../utils/helper';
8
8
  import {LocaleProps, localeable} from '../locale';
9
+ import isPlainObject = require('lodash/isPlainObject');
9
10
 
10
11
  export interface ResultBoxProps
11
12
  extends ThemeProps,
@@ -18,6 +19,7 @@ export interface ResultBoxProps
18
19
  onResultChange?: (value: Array<any>) => void;
19
20
  allowInput?: boolean;
20
21
  inputPlaceholder: string;
22
+ useMobileUI?: boolean;
21
23
  }
22
24
 
23
25
  export class ResultBox extends React.Component<ResultBoxProps> {
@@ -114,9 +116,11 @@ export class ResultBox extends React.Component<ResultBoxProps> {
114
116
  onFocus,
115
117
  onBlur,
116
118
  borderMode,
119
+ useMobileUI,
117
120
  ...rest
118
121
  } = this.props;
119
122
  const isFocused = this.state.isFocused;
123
+ const mobileUI = useMobileUI && isMobile();
120
124
 
121
125
  return (
122
126
  <div
@@ -125,6 +129,7 @@ export class ResultBox extends React.Component<ResultBoxProps> {
125
129
  'is-disabled': disabled,
126
130
  'is-error': hasError,
127
131
  'is-clickable': onResultClick,
132
+ 'is-mobile': mobileUI,
128
133
  [`ResultBox--border${ucFirst(borderMode)}`]: borderMode
129
134
  })}
130
135
  onClick={onResultClick}
@@ -147,7 +152,9 @@ export class ResultBox extends React.Component<ResultBoxProps> {
147
152
  </div>
148
153
  ))
149
154
  ) : result && !Array.isArray(result) ? (
150
- <span className={cx('ResultBox-singleValue')}>{result}</span>
155
+ <span className={cx('ResultBox-singleValue')}>
156
+ {isPlainObject(result) ? itemRender(result) : result}
157
+ </span>
151
158
  ) : allowInput && !disabled ? null : (
152
159
  <span className={cx('ResultBox-placeholder')}>
153
160
  {__(placeholder || 'placeholder.noData')}
@@ -180,6 +187,11 @@ export class ResultBox extends React.Component<ResultBoxProps> {
180
187
  <Icon icon="close" className="icon" />
181
188
  </a>
182
189
  ) : null}
190
+ {!allowInput && mobileUI ? (
191
+ <span className={cx('ResultBox-arrow')}>
192
+ <Icon icon="caret" className="icon" />
193
+ </span>
194
+ ) : null}
183
195
  </div>
184
196
  );
185
197
  }
@@ -13,21 +13,28 @@ import {LocaleProps, localeable} from '../locale';
13
13
  export interface ResultListProps extends ThemeProps, LocaleProps {
14
14
  className?: string;
15
15
  value?: Array<Option>;
16
- onChange?: (value: Array<Option>) => void;
16
+ onChange?: (value: Array<Option>, optionModified?: boolean) => void;
17
17
  sortable?: boolean;
18
18
  disabled?: boolean;
19
19
  title?: string;
20
20
  placeholder: string;
21
- itemRender: (option: Option) => JSX.Element;
21
+ itemRender: (option: Option, states: ItemRenderStates) => JSX.Element;
22
22
  itemClassName?: string;
23
23
  }
24
24
 
25
+ export interface ItemRenderStates {
26
+ index: number;
27
+ disabled?: boolean;
28
+ onChange: (value: any, name: string) => void;
29
+ }
30
+
25
31
  export class ResultList extends React.Component<ResultListProps> {
32
+ static itemRender(option: any) {
33
+ return <span>{`${option.scopeLabel || ''}${option.label}`}</span>;
34
+ }
26
35
  static defaultProps: Pick<ResultListProps, 'placeholder' | 'itemRender'> = {
27
36
  placeholder: 'placeholder.selectData',
28
- itemRender: (option: any) => (
29
- <span>{`${option.scopeLabel || ''}${option.label}`}</span>
30
- )
37
+ itemRender: ResultList.itemRender
31
38
  };
32
39
 
33
40
  id = guid();
@@ -114,6 +121,23 @@ export class ResultList extends React.Component<ResultListProps> {
114
121
  delete this.sortable;
115
122
  }
116
123
 
124
+ handleValueChange(index: number, value: any, name: string) {
125
+ if (typeof name !== 'string') {
126
+ return;
127
+ }
128
+ const {value: list, onChange} = this.props;
129
+
130
+ const result = Array.isArray(list) ? list.concat() : [];
131
+ if (!result[index]) {
132
+ return;
133
+ }
134
+ result.splice(index, 1, {
135
+ ...result[index],
136
+ [name]: value
137
+ });
138
+ onChange?.(result, true);
139
+ }
140
+
117
141
  render() {
118
142
  const {
119
143
  classnames: cx,
@@ -150,7 +174,13 @@ export class ResultList extends React.Component<ResultListProps> {
150
174
  />
151
175
  ) : null}
152
176
 
153
- <label>{itemRender(option)}</label>
177
+ <label>
178
+ {itemRender(option, {
179
+ index,
180
+ disabled,
181
+ onChange: this.handleValueChange.bind(this, index)
182
+ })}
183
+ </label>
154
184
 
155
185
  {!disabled ? (
156
186
  <a