amis 1.7.0 → 1.8.0-beta.13

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 (469) hide show
  1. package/lib/Schema.d.ts +10 -2
  2. package/lib/Schema.js +0 -1
  3. package/lib/Schema.js.map +2 -2
  4. package/lib/SchemaRenderer.js +19 -3
  5. package/lib/SchemaRenderer.js.map +2 -2
  6. package/lib/WithRootStore.d.ts +18 -0
  7. package/lib/WithStore.js +2 -1
  8. package/lib/WithStore.js.map +2 -2
  9. package/lib/actions/CmptAction.js +26 -4
  10. package/lib/actions/CmptAction.js.map +2 -2
  11. package/lib/actions/PageAction.d.ts +32 -0
  12. package/lib/actions/PageAction.js +72 -0
  13. package/lib/actions/PageAction.js.map +13 -0
  14. package/lib/actions/index.d.ts +1 -0
  15. package/lib/actions/index.js +1 -0
  16. package/lib/actions/index.js.map +2 -2
  17. package/lib/components/Alert2.js +4 -2
  18. package/lib/components/Alert2.js.map +2 -2
  19. package/lib/components/AssociatedSelection.js +9 -2
  20. package/lib/components/AssociatedSelection.js.map +2 -2
  21. package/lib/components/Avatar.d.ts +20 -20
  22. package/lib/components/BarCode.js +1 -1
  23. package/lib/components/BarCode.js.map +2 -2
  24. package/lib/components/CalendarMobile.d.ts +84 -84
  25. package/lib/components/Card.d.ts +20 -20
  26. package/lib/components/Cascader.d.ts +2 -0
  27. package/lib/components/Cascader.js +28 -12
  28. package/lib/components/Cascader.js.map +2 -2
  29. package/lib/components/Checkbox.d.ts +24 -23
  30. package/lib/components/Checkbox.js +5 -1
  31. package/lib/components/Checkbox.js.map +2 -2
  32. package/lib/components/CityArea.js +3 -0
  33. package/lib/components/CityArea.js.map +2 -2
  34. package/lib/components/Collapse.d.ts +20 -20
  35. package/lib/components/DatePicker.d.ts +87 -84
  36. package/lib/components/DatePicker.js +48 -11
  37. package/lib/components/DatePicker.js.map +2 -2
  38. package/lib/components/DateRangePicker.d.ts +285 -171
  39. package/lib/components/DateRangePicker.js +471 -66
  40. package/lib/components/DateRangePicker.js.map +2 -2
  41. package/lib/components/Drawer.js +1 -1
  42. package/lib/components/Drawer.js.map +2 -2
  43. package/lib/components/ListGroup.d.ts +21 -21
  44. package/lib/components/Modal.js +1 -1
  45. package/lib/components/Modal.js.map +2 -2
  46. package/lib/components/MonthRangePicker.d.ts +84 -84
  47. package/lib/components/Overlay.d.ts +1 -0
  48. package/lib/components/Overlay.js +4 -3
  49. package/lib/components/Overlay.js.map +2 -2
  50. package/lib/components/Progress.d.ts +29 -24
  51. package/lib/components/Progress.js +52 -21
  52. package/lib/components/Progress.js.map +2 -2
  53. package/lib/components/PullRefresh.d.ts +86 -0
  54. package/lib/components/PullRefresh.js +135 -0
  55. package/lib/components/PullRefresh.js.map +13 -0
  56. package/lib/components/Radios.d.ts +22 -22
  57. package/lib/components/Radios.js +3 -5
  58. package/lib/components/Radios.js.map +2 -2
  59. package/lib/components/Range.d.ts +2 -2
  60. package/lib/components/Range.js +24 -11
  61. package/lib/components/Range.js.map +2 -2
  62. package/lib/components/Spinner.d.ts +200 -107
  63. package/lib/components/Spinner.js +30 -26
  64. package/lib/components/Spinner.js.map +2 -2
  65. package/lib/components/Steps.d.ts +6 -0
  66. package/lib/components/Steps.js +13 -9
  67. package/lib/components/Steps.js.map +2 -2
  68. package/lib/components/Tabs.d.ts +27 -23
  69. package/lib/components/Tabs.js +37 -22
  70. package/lib/components/Tabs.js.map +2 -2
  71. package/lib/components/Tooltip.d.ts +4 -0
  72. package/lib/components/Tooltip.js +6 -4
  73. package/lib/components/Tooltip.js.map +2 -2
  74. package/lib/components/TooltipWrapper.d.ts +87 -24
  75. package/lib/components/TooltipWrapper.js +40 -8
  76. package/lib/components/TooltipWrapper.js.map +2 -2
  77. package/lib/components/Transfer.d.ts +84 -84
  78. package/lib/components/TransferDropDown.d.ts +84 -84
  79. package/lib/components/Tree.d.ts +87 -85
  80. package/lib/components/Tree.js +13 -5
  81. package/lib/components/Tree.js.map +2 -2
  82. package/lib/components/TreeSelection.d.ts +84 -84
  83. package/lib/components/calendar/Calendar.js +3 -12
  84. package/lib/components/calendar/Calendar.js.map +2 -2
  85. package/lib/components/calendar/TimeView.d.ts +1 -0
  86. package/lib/components/calendar/TimeView.js +7 -0
  87. package/lib/components/calendar/TimeView.js.map +2 -2
  88. package/lib/components/calendar/YearsView.js +3 -3
  89. package/lib/components/calendar/YearsView.js.map +2 -2
  90. package/lib/components/condition-builder/Expression.d.ts +1 -0
  91. package/lib/components/condition-builder/Expression.js +4 -4
  92. package/lib/components/condition-builder/Expression.js.map +2 -2
  93. package/lib/components/condition-builder/Field.d.ts +1 -0
  94. package/lib/components/condition-builder/Field.js +3 -2
  95. package/lib/components/condition-builder/Field.js.map +2 -2
  96. package/lib/components/condition-builder/Group.d.ts +1 -0
  97. package/lib/components/condition-builder/Group.js +2 -2
  98. package/lib/components/condition-builder/Group.js.map +2 -2
  99. package/lib/components/condition-builder/GroupOrItem.d.ts +1 -0
  100. package/lib/components/condition-builder/GroupOrItem.js +2 -2
  101. package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
  102. package/lib/components/condition-builder/InputSwitch.d.ts +2 -1
  103. package/lib/components/condition-builder/InputSwitch.js +2 -2
  104. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  105. package/lib/components/condition-builder/Item.d.ts +1 -0
  106. package/lib/components/condition-builder/Item.js +9 -8
  107. package/lib/components/condition-builder/Item.js.map +2 -2
  108. package/lib/components/condition-builder/Value.d.ts +1 -0
  109. package/lib/components/condition-builder/Value.js +5 -5
  110. package/lib/components/condition-builder/Value.js.map +2 -2
  111. package/lib/components/condition-builder/index.d.ts +1 -0
  112. package/lib/components/condition-builder/index.js +2 -2
  113. package/lib/components/condition-builder/index.js.map +2 -2
  114. package/lib/components/formula/Editor.d.ts +90 -86
  115. package/lib/components/formula/Editor.js +26 -4
  116. package/lib/components/formula/Editor.js.map +2 -2
  117. package/lib/components/formula/Picker.d.ts +5 -0
  118. package/lib/components/formula/Picker.js +21 -4
  119. package/lib/components/formula/Picker.js.map +2 -2
  120. package/lib/components/icons.js +2 -0
  121. package/lib/components/icons.js.map +2 -2
  122. package/lib/factory.d.ts +5 -0
  123. package/lib/factory.js +24 -3
  124. package/lib/factory.js.map +2 -2
  125. package/lib/icons/trash.js +10 -0
  126. package/lib/index.d.ts +1 -0
  127. package/lib/index.js +2 -1
  128. package/lib/index.js.map +2 -2
  129. package/lib/locale/de-DE.js +18 -1
  130. package/lib/locale/de-DE.js.map +2 -2
  131. package/lib/locale/en-US.js +18 -1
  132. package/lib/locale/en-US.js.map +2 -2
  133. package/lib/locale/zh-CN.js +18 -1
  134. package/lib/locale/zh-CN.js.map +2 -2
  135. package/lib/renderers/Action.d.ts +3 -1
  136. package/lib/renderers/Action.js +23 -5
  137. package/lib/renderers/Action.js.map +2 -2
  138. package/lib/renderers/App.d.ts +1 -0
  139. package/lib/renderers/App.js +3 -0
  140. package/lib/renderers/App.js.map +2 -2
  141. package/lib/renderers/ButtonGroup.d.ts +2 -2
  142. package/lib/renderers/ButtonGroup.js.map +1 -1
  143. package/lib/renderers/CRUD.d.ts +8 -0
  144. package/lib/renderers/CRUD.js +12 -5
  145. package/lib/renderers/CRUD.js.map +2 -2
  146. package/lib/renderers/Carousel.d.ts +1 -0
  147. package/lib/renderers/Carousel.js +13 -1
  148. package/lib/renderers/Carousel.js.map +2 -2
  149. package/lib/renderers/Chart.d.ts +1 -0
  150. package/lib/renderers/Chart.js +3 -0
  151. package/lib/renderers/Chart.js.map +2 -2
  152. package/lib/renderers/Dialog.d.ts +5 -0
  153. package/lib/renderers/Dialog.js +7 -3
  154. package/lib/renderers/Dialog.js.map +2 -2
  155. package/lib/renderers/Drawer.d.ts +1 -0
  156. package/lib/renderers/Drawer.js +6 -1
  157. package/lib/renderers/Drawer.js.map +2 -2
  158. package/lib/renderers/DropDownButton.d.ts +2 -0
  159. package/lib/renderers/DropDownButton.js +13 -4
  160. package/lib/renderers/DropDownButton.js.map +2 -2
  161. package/lib/renderers/Form/Checkbox.d.ts +5 -2
  162. package/lib/renderers/Form/Checkbox.js +2 -2
  163. package/lib/renderers/Form/Checkbox.js.map +2 -2
  164. package/lib/renderers/Form/Checkboxes.d.ts +7 -2
  165. package/lib/renderers/Form/Checkboxes.js +101 -12
  166. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  167. package/lib/renderers/Form/Combo.d.ts +6 -4
  168. package/lib/renderers/Form/Combo.js +132 -45
  169. package/lib/renderers/Form/Combo.js.map +2 -2
  170. package/lib/renderers/Form/DiffEditor.d.ts +3 -2
  171. package/lib/renderers/Form/Editor.d.ts +2 -2
  172. package/lib/renderers/Form/InputCity.d.ts +87 -84
  173. package/lib/renderers/Form/InputCity.js +48 -3
  174. package/lib/renderers/Form/InputCity.js.map +2 -2
  175. package/lib/renderers/Form/InputDate.js +10 -3
  176. package/lib/renderers/Form/InputDate.js.map +2 -2
  177. package/lib/renderers/Form/InputDateRange.d.ts +5 -0
  178. package/lib/renderers/Form/InputDateRange.js +12 -3
  179. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  180. package/lib/renderers/Form/InputFile.js +19 -8
  181. package/lib/renderers/Form/InputFile.js.map +2 -2
  182. package/lib/renderers/Form/InputFormula.d.ts +4 -0
  183. package/lib/renderers/Form/InputFormula.js +2 -2
  184. package/lib/renderers/Form/InputFormula.js.map +2 -2
  185. package/lib/renderers/Form/InputImage.js +18 -7
  186. package/lib/renderers/Form/InputImage.js.map +2 -2
  187. package/lib/renderers/Form/InputMonthRange.js +5 -1
  188. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  189. package/lib/renderers/Form/InputRange.d.ts +2 -2
  190. package/lib/renderers/Form/InputRange.js +13 -14
  191. package/lib/renderers/Form/InputRange.js.map +2 -2
  192. package/lib/renderers/Form/InputTable.js +4 -2
  193. package/lib/renderers/Form/InputTable.js.map +2 -2
  194. package/lib/renderers/Form/InputText.d.ts +1 -1
  195. package/lib/renderers/Form/InputText.js +8 -10
  196. package/lib/renderers/Form/InputText.js.map +2 -2
  197. package/lib/renderers/Form/InputTree.d.ts +5 -0
  198. package/lib/renderers/Form/InputTree.js +51 -2
  199. package/lib/renderers/Form/InputTree.js.map +2 -2
  200. package/lib/renderers/Form/Item.d.ts +79 -76
  201. package/lib/renderers/Form/Item.js +3 -1
  202. package/lib/renderers/Form/Item.js.map +2 -2
  203. package/lib/renderers/Form/NestedSelect.d.ts +4 -0
  204. package/lib/renderers/Form/NestedSelect.js +14 -5
  205. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  206. package/lib/renderers/Form/Options.js +61 -27
  207. package/lib/renderers/Form/Options.js.map +2 -2
  208. package/lib/renderers/Form/Select.js +4 -2
  209. package/lib/renderers/Form/Select.js.map +2 -2
  210. package/lib/renderers/Form/Textarea.js +2 -1
  211. package/lib/renderers/Form/Textarea.js.map +2 -2
  212. package/lib/renderers/Form/TreeSelect.d.ts +11 -2
  213. package/lib/renderers/Form/TreeSelect.js +56 -10
  214. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  215. package/lib/renderers/Form/index.d.ts +3 -0
  216. package/lib/renderers/Form/index.js +53 -16
  217. package/lib/renderers/Form/index.js.map +2 -2
  218. package/lib/renderers/Form/wrapControl.d.ts +10 -0
  219. package/lib/renderers/Form/wrapControl.js +41 -19
  220. package/lib/renderers/Form/wrapControl.js.map +2 -2
  221. package/lib/renderers/Nav.d.ts +82 -67
  222. package/lib/renderers/Nav.js +49 -13
  223. package/lib/renderers/Nav.js.map +2 -2
  224. package/lib/renderers/Page.d.ts +21 -0
  225. package/lib/renderers/Page.js +56 -17
  226. package/lib/renderers/Page.js.map +2 -2
  227. package/lib/renderers/Progress.d.ts +4 -7
  228. package/lib/renderers/Progress.js +3 -3
  229. package/lib/renderers/Progress.js.map +2 -2
  230. package/lib/renderers/Service.d.ts +3 -0
  231. package/lib/renderers/Service.js +55 -20
  232. package/lib/renderers/Service.js.map +2 -2
  233. package/lib/renderers/Spinner.d.ts +58 -2
  234. package/lib/renderers/Spinner.js +8 -1
  235. package/lib/renderers/Spinner.js.map +2 -2
  236. package/lib/renderers/Steps.d.ts +8 -0
  237. package/lib/renderers/Steps.js +2 -2
  238. package/lib/renderers/Steps.js.map +2 -2
  239. package/lib/renderers/Table/ColumnToggler.d.ts +4 -0
  240. package/lib/renderers/Table/ColumnToggler.js +11 -6
  241. package/lib/renderers/Table/ColumnToggler.js.map +2 -2
  242. package/lib/renderers/Table/TableCell.js +27 -1
  243. package/lib/renderers/Table/TableCell.js.map +2 -2
  244. package/lib/renderers/Table/TableRow.js +1 -1
  245. package/lib/renderers/Table/TableRow.js.map +2 -2
  246. package/lib/renderers/Table/index.d.ts +2 -0
  247. package/lib/renderers/Table/index.js +23 -10
  248. package/lib/renderers/Table/index.js.map +2 -2
  249. package/lib/renderers/Tabs.d.ts +14 -2
  250. package/lib/renderers/Tabs.js +24 -8
  251. package/lib/renderers/Tabs.js.map +2 -2
  252. package/lib/renderers/TooltipWrapper.d.ts +133 -0
  253. package/lib/renderers/TooltipWrapper.js +70 -0
  254. package/lib/renderers/TooltipWrapper.js.map +13 -0
  255. package/lib/renderers/Wizard.d.ts +7 -3
  256. package/lib/renderers/Wizard.js +269 -152
  257. package/lib/renderers/Wizard.js.map +2 -2
  258. package/lib/store/combo.d.ts +2 -2
  259. package/lib/store/crud.d.ts +1 -0
  260. package/lib/store/crud.js +55 -19
  261. package/lib/store/crud.js.map +2 -2
  262. package/lib/store/form.d.ts +1 -1
  263. package/lib/store/form.js +5 -1
  264. package/lib/store/form.js.map +2 -2
  265. package/lib/store/formItem.js +1 -1
  266. package/lib/store/formItem.js.map +2 -2
  267. package/lib/store/index.d.ts +5 -0
  268. package/lib/store/index.js +14 -0
  269. package/lib/store/index.js.map +2 -2
  270. package/lib/store/table.d.ts +2 -2
  271. package/lib/store/table.js +4 -4
  272. package/lib/store/table.js.map +2 -2
  273. package/lib/themes/ang-ie11.css +965 -210
  274. package/lib/themes/ang.css +955 -175
  275. package/lib/themes/ang.css.map +1 -1
  276. package/lib/themes/antd-ie11.css +1080 -325
  277. package/lib/themes/antd.css +956 -176
  278. package/lib/themes/antd.css.map +1 -1
  279. package/lib/themes/cxd-ie11.css +1048 -293
  280. package/lib/themes/cxd.css +961 -180
  281. package/lib/themes/cxd.css.map +1 -1
  282. package/lib/themes/dark-ie11.css +965 -210
  283. package/lib/themes/dark.css +955 -175
  284. package/lib/themes/dark.css.map +1 -1
  285. package/lib/themes/default-ie11.css +1048 -293
  286. package/lib/themes/default.css +961 -180
  287. package/lib/themes/default.css.map +1 -1
  288. package/lib/types.d.ts +3 -1
  289. package/lib/types.js.map +1 -1
  290. package/lib/utils/ColorScale.d.ts +19 -0
  291. package/lib/utils/ColorScale.js +104 -0
  292. package/lib/utils/ColorScale.js.map +13 -0
  293. package/lib/utils/api.js +20 -4
  294. package/lib/utils/api.js.map +2 -2
  295. package/lib/utils/columnsSplit.d.ts +1 -0
  296. package/lib/utils/columnsSplit.js +40 -0
  297. package/lib/utils/columnsSplit.js.map +13 -0
  298. package/lib/utils/debug.d.ts +1 -1
  299. package/lib/utils/debug.js +16 -22
  300. package/lib/utils/debug.js.map +2 -2
  301. package/lib/utils/dom.d.ts +1 -1
  302. package/lib/utils/dom.js +7 -5
  303. package/lib/utils/dom.js.map +2 -2
  304. package/lib/utils/position.js +0 -1
  305. package/lib/utils/position.js.map +2 -2
  306. package/lib/utils/scrollPosition.d.ts +6 -0
  307. package/lib/utils/scrollPosition.js +31 -0
  308. package/lib/utils/scrollPosition.js.map +13 -0
  309. package/package.json +3 -2
  310. package/schema.json +30213 -29222
  311. package/scss/_properties.scss +67 -25
  312. package/scss/components/_alert.scss +1 -1
  313. package/scss/components/_barcode.scss +1 -1
  314. package/scss/components/_button-group.scss +15 -0
  315. package/scss/components/_carousel.scss +1 -0
  316. package/scss/components/_column-toggler.scss +21 -11
  317. package/scss/components/_debug.scss +3 -3
  318. package/scss/components/_formula.scss +19 -1
  319. package/scss/components/_nav.scss +51 -6
  320. package/scss/components/_progress.scss +7 -14
  321. package/scss/components/_pull-refresh.scss +25 -0
  322. package/scss/components/_spinner.scss +134 -56
  323. package/scss/components/_steps.scss +199 -8
  324. package/scss/components/_tabs.scss +145 -13
  325. package/scss/components/_tooltip.scss +76 -9
  326. package/scss/components/form/_checks.scss +125 -2
  327. package/scss/components/form/_combo.scss +13 -1
  328. package/scss/components/form/_date-range.scss +27 -2
  329. package/scss/components/form/_date.scss +25 -0
  330. package/scss/components/form/_editor.scss +2 -1
  331. package/scss/components/form/_file.scss +4 -0
  332. package/scss/components/form/_form.scss +31 -8
  333. package/scss/components/form/_number.scss +5 -2
  334. package/scss/components/form/_select.scss +0 -1
  335. package/scss/components/form/_textarea.scss +1 -23
  336. package/scss/components/form/_transfer.scss +3 -2
  337. package/scss/themes/_antd-variables.scss +1 -1
  338. package/scss/themes/_common.scss +1 -0
  339. package/scss/themes/_cxd-variables.scss +6 -5
  340. package/sdk/ang-ie11.css +1059 -198
  341. package/sdk/ang.css +1050 -164
  342. package/sdk/antd-ie11.css +1167 -306
  343. package/sdk/antd.css +1051 -165
  344. package/sdk/barcode.js +51 -51
  345. package/sdk/charts.js +14 -14
  346. package/sdk/codemirror.js +7 -7
  347. package/sdk/color-picker.js +65 -65
  348. package/sdk/cropperjs.js +2 -2
  349. package/sdk/cxd-ie11.css +1145 -284
  350. package/sdk/cxd.css +1056 -169
  351. package/sdk/dark-ie11.css +1056 -195
  352. package/sdk/dark.css +1050 -164
  353. package/sdk/exceljs.js +1 -1
  354. package/sdk/locale/de-DE.js +18 -1
  355. package/sdk/markdown.js +69 -69
  356. package/sdk/papaparse.js +1 -1
  357. package/sdk/renderers/Form/CityDB.js +1 -1
  358. package/sdk/rest.js +17 -17
  359. package/sdk/rich-text.js +62 -62
  360. package/sdk/sdk-ie11.css +1145 -284
  361. package/sdk/sdk.css +1056 -169
  362. package/sdk/sdk.js +1321 -1273
  363. package/sdk/thirds/hls.js/hls.js +1 -1
  364. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  365. package/sdk/tinymce.js +57 -57
  366. package/src/Schema.ts +15 -2
  367. package/src/SchemaRenderer.tsx +32 -14
  368. package/src/WithStore.tsx +3 -1
  369. package/src/actions/CmptAction.ts +28 -0
  370. package/src/actions/PageAction.ts +62 -0
  371. package/src/actions/index.ts +1 -0
  372. package/src/components/Alert2.tsx +9 -3
  373. package/src/components/AssociatedSelection.tsx +9 -3
  374. package/src/components/BarCode.tsx +2 -2
  375. package/src/components/Cascader.tsx +37 -11
  376. package/src/components/Checkbox.tsx +11 -5
  377. package/src/components/CityArea.tsx +3 -0
  378. package/src/components/DatePicker.tsx +68 -22
  379. package/src/components/DateRangePicker.tsx +551 -88
  380. package/src/components/Drawer.tsx +1 -0
  381. package/src/components/Modal.tsx +1 -0
  382. package/src/components/Overlay.tsx +6 -3
  383. package/src/components/Progress.tsx +64 -33
  384. package/src/components/PullRefresh.tsx +197 -0
  385. package/src/components/Radios.tsx +6 -17
  386. package/src/components/Range.tsx +26 -12
  387. package/src/components/Spinner.tsx +77 -42
  388. package/src/components/Steps.tsx +28 -27
  389. package/src/components/Tabs.tsx +51 -21
  390. package/src/components/Tooltip.tsx +12 -3
  391. package/src/components/TooltipWrapper.tsx +140 -33
  392. package/src/components/Tree.tsx +19 -5
  393. package/src/components/calendar/Calendar.tsx +4 -13
  394. package/src/components/calendar/TimeView.tsx +12 -0
  395. package/src/components/calendar/YearsView.tsx +3 -4
  396. package/src/components/condition-builder/Expression.tsx +6 -1
  397. package/src/components/condition-builder/Field.tsx +5 -1
  398. package/src/components/condition-builder/Group.tsx +4 -1
  399. package/src/components/condition-builder/GroupOrItem.tsx +4 -1
  400. package/src/components/condition-builder/InputSwitch.tsx +4 -1
  401. package/src/components/condition-builder/Item.tsx +28 -4
  402. package/src/components/condition-builder/Value.tsx +7 -1
  403. package/src/components/condition-builder/index.tsx +4 -2
  404. package/src/components/formula/Editor.tsx +46 -10
  405. package/src/components/formula/Picker.tsx +32 -1
  406. package/src/components/icons.tsx +2 -0
  407. package/src/factory.tsx +31 -3
  408. package/src/icons/trash.svg +8 -0
  409. package/src/index.tsx +1 -0
  410. package/src/locale/de-DE.ts +18 -1
  411. package/src/locale/en-US.ts +18 -1
  412. package/src/locale/zh-CN.ts +18 -1
  413. package/src/renderers/Action.tsx +24 -2
  414. package/src/renderers/App.tsx +4 -0
  415. package/src/renderers/ButtonGroup.tsx +2 -2
  416. package/src/renderers/CRUD.tsx +23 -5
  417. package/src/renderers/Carousel.tsx +8 -0
  418. package/src/renderers/Chart.tsx +4 -0
  419. package/src/renderers/Dialog.tsx +21 -3
  420. package/src/renderers/Drawer.tsx +14 -2
  421. package/src/renderers/DropDownButton.tsx +14 -3
  422. package/src/renderers/Form/Checkbox.tsx +11 -2
  423. package/src/renderers/Form/Checkboxes.tsx +106 -23
  424. package/src/renderers/Form/Combo.tsx +179 -66
  425. package/src/renderers/Form/InputCity.tsx +46 -5
  426. package/src/renderers/Form/InputDate.tsx +18 -4
  427. package/src/renderers/Form/InputDateRange.tsx +27 -3
  428. package/src/renderers/Form/InputFile.tsx +23 -7
  429. package/src/renderers/Form/InputFormula.tsx +7 -0
  430. package/src/renderers/Form/InputImage.tsx +22 -6
  431. package/src/renderers/Form/InputMonthRange.tsx +7 -1
  432. package/src/renderers/Form/InputRange.tsx +20 -22
  433. package/src/renderers/Form/InputTable.tsx +6 -2
  434. package/src/renderers/Form/InputText.tsx +14 -4
  435. package/src/renderers/Form/InputTree.tsx +40 -2
  436. package/src/renderers/Form/Item.tsx +7 -0
  437. package/src/renderers/Form/NestedSelect.tsx +23 -4
  438. package/src/renderers/Form/Options.tsx +26 -7
  439. package/src/renderers/Form/Select.tsx +5 -3
  440. package/src/renderers/Form/Textarea.tsx +3 -1
  441. package/src/renderers/Form/TreeSelect.tsx +47 -9
  442. package/src/renderers/Form/index.tsx +56 -25
  443. package/src/renderers/Form/wrapControl.tsx +23 -12
  444. package/src/renderers/Nav.tsx +231 -33
  445. package/src/renderers/Page.tsx +97 -35
  446. package/src/renderers/Progress.tsx +9 -11
  447. package/src/renderers/Service.tsx +66 -27
  448. package/src/renderers/Spinner.tsx +85 -3
  449. package/src/renderers/Steps.tsx +14 -0
  450. package/src/renderers/Table/ColumnToggler.tsx +36 -11
  451. package/src/renderers/Table/TableCell.tsx +39 -1
  452. package/src/renderers/Table/TableRow.tsx +1 -1
  453. package/src/renderers/Table/index.tsx +43 -19
  454. package/src/renderers/Tabs.tsx +90 -31
  455. package/src/renderers/TooltipWrapper.tsx +262 -0
  456. package/src/renderers/Wizard.tsx +169 -93
  457. package/src/store/crud.ts +50 -5
  458. package/src/store/form.ts +8 -3
  459. package/src/store/formItem.ts +1 -2
  460. package/src/store/index.ts +20 -0
  461. package/src/store/table.ts +4 -4
  462. package/src/types.ts +8 -1
  463. package/src/utils/ColorScale.ts +138 -0
  464. package/src/utils/api.ts +26 -4
  465. package/src/utils/columnsSplit.tsx +57 -0
  466. package/src/utils/debug.tsx +17 -24
  467. package/src/utils/dom.tsx +7 -6
  468. package/src/utils/position.ts +0 -1
  469. package/src/utils/scrollPosition.ts +29 -0
@@ -11,21 +11,82 @@ import {findDOMNode} from 'react-dom';
11
11
  import Tooltip from './Tooltip';
12
12
  import {ClassNamesFn, themeable} from '../theme';
13
13
  import Overlay from './Overlay';
14
+ import {isObject} from '../utils/helper';
15
+
16
+ export type Trigger = 'hover' | 'click' | 'focus';
14
17
 
15
18
  export interface TooltipObject {
19
+ /**
20
+ * 文字提示标题
21
+ */
16
22
  title?: string;
23
+ /**
24
+ * 文字提示内容
25
+ */
17
26
  content?: string;
18
- render?: () => JSX.Element;
19
- dom?: JSX.Element;
27
+ /**
28
+ * 浮层出现位置
29
+ */
30
+ placement?: 'top' | 'right' | 'bottom' | 'left';
31
+ /**
32
+ * 主题样式
33
+ */
34
+ tooltipTheme?: 'light' | 'dark';
35
+ /**
36
+ * 浮层位置相对偏移量
37
+ */
38
+ offset?: [number, number];
39
+ /**
40
+ * 内容区自定义样式
41
+ */
42
+ style?: React.CSSProperties;
43
+ /**
44
+ * 是否可以移入浮层中, 默认true
45
+ */
46
+ enterable?: boolean;
47
+ /**
48
+ * 是否展示浮层指向箭头
49
+ */
50
+ showArrow?: boolean;
51
+ /**
52
+ * 是否禁用提示
53
+ */
54
+ disabled?: boolean;
55
+ /**
56
+ * 浮层延迟显示时间, 单位 ms
57
+ */
58
+ mouseEnterDelay?: number;
59
+ /**
60
+ * 浮层延迟隐藏时间, 单位 ms
61
+ */
62
+ mouseLeaveDelay?: number;
63
+ /**
64
+ * 浮层内容可通过JSX渲染
65
+ */
66
+ children?: () => JSX.Element | JSX.Element;
67
+ /**
68
+ * 挂载容器元素
69
+ */
70
+ container?: React.ReactNode;
71
+ /**
72
+ * 浮层触发方式
73
+ */
74
+ trigger?: Trigger | Array<Trigger>;
75
+ /**
76
+ * 是否点击非内容区域关闭提示,默认为true
77
+ */
78
+ rootClose?: boolean;
79
+ /**
80
+ * 文字提示浮层CSS类名
81
+ */
82
+ tooltipClassName?: string;
20
83
  }
21
84
 
22
- export type Trigger = 'hover' | 'click' | 'focus';
23
-
24
85
  export interface TooltipWrapperProps {
86
+ tooltip?: string | TooltipObject;
25
87
  classPrefix: string;
26
88
  classnames: ClassNamesFn;
27
89
  placement: 'top' | 'right' | 'bottom' | 'left';
28
- tooltip?: string | TooltipObject;
29
90
  container?: React.ReactNode;
30
91
  trigger: Trigger | Array<Trigger>;
31
92
  rootClose: boolean;
@@ -33,6 +94,7 @@ export interface TooltipWrapperProps {
33
94
  delay: number;
34
95
  theme?: string;
35
96
  tooltipClassName?: string;
97
+ style?: React.CSSProperties;
36
98
  }
37
99
 
38
100
  interface TooltipWrapperState {
@@ -105,18 +167,42 @@ export class TooltipWrapper extends React.Component<
105
167
  return child && (child as any).props;
106
168
  }
107
169
 
170
+ tooltipMouseEnter = (e: MouseEvent) => {
171
+ const tooltip = this.props.tooltip;
172
+ const enterable = (tooltip as any)?.enterable ?? true;
173
+ enterable && clearTimeout(this.timer);
174
+ };
175
+
176
+ tooltipMouseLeave = (e: MouseEvent) => {
177
+ const tooltip = this.props.tooltip;
178
+ const enterable = (tooltip as any)?.enterable ?? true;
179
+ enterable && clearTimeout(this.timer);
180
+ this.hide();
181
+ };
182
+
108
183
  handleShow() {
109
184
  this.timer && clearTimeout(this.timer);
110
185
  waitToHide && waitToHide();
111
- this.show();
186
+ const tooltip = this.props.tooltip;
187
+ if (isObject(tooltip)) {
188
+ const {mouseEnterDelay = 0} = tooltip as TooltipObject;
189
+ this.timer = setTimeout(this.show, mouseEnterDelay);
190
+ } else {
191
+ this.timer = setTimeout(this.show, 0);
192
+ }
112
193
  }
113
194
 
114
195
  handleHide() {
115
196
  clearTimeout(this.timer);
116
- const {delay} = this.props;
197
+ const {delay, tooltip} = this.props;
117
198
 
118
199
  waitToHide = this.hide.bind(this);
119
- this.timer = setTimeout(this.hide, delay);
200
+ if (isObject(tooltip)) {
201
+ const {mouseLeaveDelay = 300} = tooltip as TooltipObject;
202
+ this.timer = setTimeout(this.hide, mouseLeaveDelay);
203
+ } else {
204
+ this.timer = setTimeout(this.hide, delay);
205
+ }
120
206
  }
121
207
 
122
208
  handleFocus(e: any) {
@@ -160,21 +246,42 @@ export class TooltipWrapper extends React.Component<
160
246
  }
161
247
 
162
248
  render() {
249
+ const props = this.props;
250
+
251
+ const child = React.Children.only(props.children);
252
+ if (!props.tooltip) {
253
+ return child;
254
+ }
255
+
256
+ // tooltip 对象内属性优先级更高
257
+ const tooltipObj: TooltipObject = {
258
+ placement: props.placement,
259
+ container: props.container,
260
+ trigger: props.trigger,
261
+ rootClose: props.rootClose,
262
+ tooltipClassName: props.tooltipClassName,
263
+ style: props.style,
264
+ mouseLeaveDelay: props.delay,
265
+ ...(typeof props.tooltip === 'string'
266
+ ? {content: props.tooltip}
267
+ : props.tooltip)
268
+ };
269
+
163
270
  const {
164
- tooltip,
165
- children,
271
+ title,
272
+ content,
166
273
  placement,
167
274
  container,
168
275
  trigger,
169
276
  rootClose,
170
- tooltipClassName
171
- } = this.props;
172
-
173
- const child = React.Children.only(children);
174
-
175
- if (!tooltip) {
176
- return child;
177
- }
277
+ tooltipClassName,
278
+ style,
279
+ disabled = false,
280
+ offset,
281
+ tooltipTheme = 'light',
282
+ showArrow = true,
283
+ children
284
+ } = tooltipObj;
178
285
 
179
286
  const childProps: any = {
180
287
  key: 'target'
@@ -202,30 +309,30 @@ export class TooltipWrapper extends React.Component<
202
309
  <Overlay
203
310
  key="overlay"
204
311
  target={this.getTarget}
205
- show={this.state.show}
312
+ show={this.state.show && !disabled}
206
313
  onHide={this.handleHide}
207
314
  rootClose={rootClose}
208
315
  placement={placement}
209
316
  container={container}
317
+ offset={Array.isArray(offset) ? offset : [0, 0]}
210
318
  >
211
319
  <Tooltip
212
- title={typeof tooltip !== 'string' ? tooltip.title : undefined}
320
+ title={typeof title === 'string' ? title : undefined}
321
+ style={style}
213
322
  className={tooltipClassName}
214
- onMouseEnter={~triggers.indexOf('hover') && this.handleMouseOver}
215
- onMouseLeave={~triggers.indexOf('hover') && this.handleMouseOut}
323
+ tooltipTheme={tooltipTheme}
324
+ showArrow={showArrow}
325
+ onMouseEnter={
326
+ ~triggers.indexOf('hover') ? this.tooltipMouseEnter : () => {}
327
+ }
328
+ onMouseLeave={
329
+ ~triggers.indexOf('hover') ? this.tooltipMouseLeave : () => {}
330
+ }
216
331
  >
217
- {tooltip && (tooltip as TooltipObject).render ? (
218
- this.state.show ? (
219
- (tooltip as TooltipObject).render!()
220
- ) : null
221
- ) : tooltip && (tooltip as TooltipObject).dom ? (
222
- (tooltip as TooltipObject).dom!
332
+ {children ? (
333
+ <>{typeof children === 'function' ? children() : children}</>
223
334
  ) : (
224
- <Html
225
- html={
226
- typeof tooltip === 'string' ? tooltip : tooltip.content || ''
227
- }
228
- />
335
+ <Html html={typeof content === 'string' ? content : ''} />
229
336
  )}
230
337
  </Tooltip>
231
338
  </Overlay>
@@ -41,6 +41,8 @@ export interface IDropInfo {
41
41
  interface TreeSelectorProps extends ThemeProps, LocaleProps {
42
42
  highlightTxt?: string;
43
43
 
44
+ onRef: any;
45
+
44
46
  showIcon?: boolean;
45
47
  // 是否默认都展开
46
48
  initiallyOpen?: boolean;
@@ -55,6 +57,8 @@ interface TreeSelectorProps extends ThemeProps, LocaleProps {
55
57
  withChildren?: boolean;
56
58
  // 多选时,选中父节点时,是否只将起子节点加入到值中。
57
59
  onlyChildren?: boolean;
60
+ // 单选时,只运行选择子节点
61
+ onlyLeaf?: boolean;
58
62
  // 名称、取值等字段名映射
59
63
  labelField: string;
60
64
  valueField: string;
@@ -206,6 +210,7 @@ export class TreeSelector extends React.Component<
206
210
 
207
211
  componentDidMount() {
208
212
  const {enableNodePath} = this.props;
213
+ this.props.onRef(this)
209
214
  enableNodePath && this.expandLazyLoadNodes();
210
215
  }
211
216
 
@@ -246,20 +251,23 @@ export class TreeSelector extends React.Component<
246
251
  onExpandTree?.(nodePathArr);
247
252
  }
248
253
 
249
- syncUnFolded(props: TreeSelectorProps) {
254
+ syncUnFolded(props: TreeSelectorProps, unfoldedLevel?: Number) {
255
+ // 传入默认展开层级需要重新初始化unfolded
256
+ let initFoldedLevel = typeof unfoldedLevel !== 'undefined';
257
+ let expandLevel = initFoldedLevel ? unfoldedLevel : props.unfoldedLevel;
250
258
  // 初始化树节点的展开状态
251
259
  let unfolded = this.unfolded;
252
260
  const {foldedField, unfoldedField} = this.props;
253
261
 
254
262
  eachTree(props.options, (node: Option, index, level) => {
255
- if (unfolded.has(node)) {
263
+ if (unfolded.has(node) && !initFoldedLevel) {
256
264
  return;
257
265
  }
258
266
 
259
267
  if (node.children && node.children.length) {
260
268
  let ret: any = true;
261
269
 
262
- if (node.defer && node.loaded) {
270
+ if (node.defer && node.loaded && !initFoldedLevel) {
263
271
  ret = true;
264
272
  } else if (
265
273
  unfoldedField &&
@@ -270,7 +278,7 @@ export class TreeSelector extends React.Component<
270
278
  ret = !node[foldedField];
271
279
  } else {
272
280
  ret = !!props.initiallyOpen;
273
- if (!ret && level <= (props.unfoldedLevel as number)) {
281
+ if (!ret && level <= (expandLevel as number)) {
274
282
  ret = true;
275
283
  }
276
284
  }
@@ -278,6 +286,8 @@ export class TreeSelector extends React.Component<
278
286
  }
279
287
  });
280
288
 
289
+ initFoldedLevel && this.forceUpdate();
290
+
281
291
  return unfolded;
282
292
  }
283
293
 
@@ -365,13 +375,17 @@ export class TreeSelector extends React.Component<
365
375
 
366
376
  @autobind
367
377
  handleSelect(node: any, value?: any) {
368
- const {joinValues, valueField, onChange, enableNodePath} = this.props;
378
+ const {joinValues, valueField, onChange, enableNodePath, onlyLeaf} =
379
+ this.props;
369
380
 
370
381
  if (node[valueField as string] === undefined) {
371
382
  if (node.defer && !node.loaded) {
372
383
  this.toggleUnfolded(node);
373
384
  }
385
+ return;
386
+ }
374
387
 
388
+ if (onlyLeaf && node.children) {
375
389
  return;
376
390
  }
377
391
 
@@ -161,19 +161,6 @@ class BaseDatePicker extends React.Component<
161
161
  updatedState = this.getStateFromProps(props);
162
162
  }
163
163
 
164
- if (updatedState.open === undefined) {
165
- if (typeof props.open !== 'undefined') {
166
- updatedState.open = props.open;
167
- } else if (
168
- prevProps.closeOnSelect &&
169
- this.state.currentView !== viewModes.TIME
170
- ) {
171
- updatedState.open = false;
172
- } else {
173
- updatedState.open = this.state.open;
174
- }
175
- }
176
-
177
164
  if (props.viewMode !== prevProps.viewMode) {
178
165
  updatedState.currentView = props.viewMode;
179
166
  }
@@ -236,6 +223,10 @@ class BaseDatePicker extends React.Component<
236
223
  updatedState.viewDate = moment(props.viewDate);
237
224
  }
238
225
 
226
+ if (Object.keys(updatedState).length) {
227
+ this.setState(updatedState);
228
+ }
229
+
239
230
  this.checkTZ(props);
240
231
  }
241
232
 
@@ -1,5 +1,6 @@
1
1
  import moment from 'moment';
2
2
  import React from 'react';
3
+ import merge from 'lodash/merge';
3
4
  import {LocaleProps, localeable} from '../../locale';
4
5
  import {Icon} from '../icons';
5
6
  import {ClassNamesFn} from '../../theme';
@@ -30,6 +31,7 @@ interface CustomTimeViewProps extends LocaleProps {
30
31
  useMobileUI: boolean;
31
32
  showToolbar?: boolean;
32
33
  onChange?: (value: any) => void;
34
+ timeConstraints?: any;
33
35
  }
34
36
 
35
37
  interface CustomTimeViewState {
@@ -85,6 +87,13 @@ export class CustomTimeView extends React.Component<
85
87
  constructor(props: any) {
86
88
  super(props);
87
89
  this.state = this.calculateState(this.props);
90
+
91
+ if (this.props.timeConstraints) {
92
+ this.timeConstraints = merge(
93
+ this.timeConstraints,
94
+ this.props.timeConstraints
95
+ );
96
+ }
88
97
  }
89
98
 
90
99
  componentDidUpdate(preProps: CustomTimeViewProps) {
@@ -173,6 +182,9 @@ export class CustomTimeView extends React.Component<
173
182
  value =
174
183
  this.timeConstraints[type].min +
175
184
  (value - (this.timeConstraints[type].max + 1));
185
+ if (value < this.timeConstraints[type].min) {
186
+ value = this.timeConstraints[type].min;
187
+ }
176
188
  return this.pad(type, value);
177
189
  }
178
190
 
@@ -75,10 +75,6 @@ export class CustomYearsView extends React.Component<CustomYearsViewProps> {
75
75
  .clone()
76
76
  .set({year: year, month: irrelevantMonth, date: irrelevantDate});
77
77
 
78
- // Not sure what 'rdtOld' is for, commenting out for now as it's not working properly
79
- // if ( i === -1 | i === 10 )
80
- // classes += ' rdtOld';
81
-
82
78
  noOfDaysInYear = parseInt(currentYear.endOf('year').format('DDD'), 10);
83
79
  daysInYear = Array.from({length: noOfDaysInYear}, function (e, i) {
84
80
  return i + 1;
@@ -95,6 +91,9 @@ export class CustomYearsView extends React.Component<CustomYearsViewProps> {
95
91
 
96
92
  if (selectedDate && selectedDate.year() === year) classes += ' rdtActive';
97
93
 
94
+ // 第一个和最后一个置灰
95
+ if (i === -1 || i === 10) classes += ' text-muted';
96
+
98
97
  props = {
99
98
  'key': year,
100
99
  'data-value': year,
@@ -45,6 +45,7 @@ export interface ExpressionProps extends ThemeProps {
45
45
  searchable?: boolean;
46
46
  fieldClassName?: string;
47
47
  formula?: FormulaPickerProps;
48
+ popOverContainer?: any;
48
49
  }
49
50
 
50
51
  const fieldMap = {
@@ -135,7 +136,8 @@ export class Expression extends React.Component<ExpressionProps> {
135
136
  data,
136
137
  disabled,
137
138
  searchable,
138
- formula
139
+ formula,
140
+ popOverContainer
139
141
  } = this.props;
140
142
  const inputType =
141
143
  ((value as any)?.type === 'field'
@@ -166,6 +168,7 @@ export class Expression extends React.Component<ExpressionProps> {
166
168
  data={data}
167
169
  disabled={disabled}
168
170
  formula={formula}
171
+ popOverContainer={popOverContainer}
169
172
  />
170
173
  ) : null}
171
174
 
@@ -176,6 +179,7 @@ export class Expression extends React.Component<ExpressionProps> {
176
179
  fieldClassName={fieldClassName}
177
180
  disabled={disabled}
178
181
  searchable={searchable}
182
+ popOverContainer={popOverContainer}
179
183
  options={
180
184
  valueField
181
185
  ? filterTree(
@@ -214,6 +218,7 @@ export class Expression extends React.Component<ExpressionProps> {
214
218
  <InputSwitch
215
219
  disabled={disabled}
216
220
  value={inputType}
221
+ popOverContainer={popOverContainer}
217
222
  onChange={this.handleInputTypeChange}
218
223
  options={types.map(item => ({
219
224
  label: fieldMap[item],
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import {findDOMNode} from 'react-dom';
2
3
  import PopOverContainer from '../PopOverContainer';
3
4
  import ListSelection from '../GroupedSelection';
4
5
  import ResultBox from '../ResultBox';
@@ -15,6 +16,7 @@ export interface ConditionFieldProps extends ThemeProps, LocaleProps {
15
16
  disabled?: boolean;
16
17
  fieldClassName?: string;
17
18
  searchable?: boolean;
19
+ popOverContainer?: any;
18
20
  }
19
21
 
20
22
  export interface ConditionFieldState {
@@ -86,11 +88,13 @@ export class ConditionField extends React.Component<
86
88
  fieldClassName,
87
89
  disabled,
88
90
  translate: __,
89
- searchable
91
+ searchable,
92
+ popOverContainer
90
93
  } = this.props;
91
94
 
92
95
  return (
93
96
  <PopOverContainer
97
+ popOverContainer={popOverContainer || (() => findDOMNode(this))}
94
98
  popOverRender={({onClose}) => (
95
99
  <>
96
100
  {searchable ? (
@@ -26,6 +26,7 @@ export interface ConditionGroupProps extends ThemeProps, LocaleProps {
26
26
  onDragStart?: (e: React.MouseEvent) => void;
27
27
  fieldClassName?: string;
28
28
  formula?: FormulaPickerProps;
29
+ popOverContainer?: any;
29
30
  }
30
31
 
31
32
  export class ConditionGroup extends React.Component<ConditionGroupProps> {
@@ -134,7 +135,8 @@ export class ConditionGroup extends React.Component<ConditionGroupProps> {
134
135
  disabled,
135
136
  searchable,
136
137
  translate: __,
137
- formula
138
+ formula,
139
+ popOverContainer
138
140
  } = this.props;
139
141
  return (
140
142
  <div className={cx('CBGroup')} data-group-id={value?.id}>
@@ -222,6 +224,7 @@ export class ConditionGroup extends React.Component<ConditionGroupProps> {
222
224
  searchable={searchable}
223
225
  builderMode={builderMode}
224
226
  formula={formula}
227
+ popOverContainer={popOverContainer}
225
228
  />
226
229
  ))
227
230
  ) : (
@@ -25,6 +25,7 @@ export interface CBGroupOrItemProps extends ThemeProps {
25
25
  onRemove?: (index: number) => void;
26
26
  fieldClassName?: string;
27
27
  formula?: FormulaPickerProps;
28
+ popOverContainer?: any;
28
29
  }
29
30
 
30
31
  export class CBGroupOrItem extends React.Component<CBGroupOrItemProps> {
@@ -52,7 +53,8 @@ export class CBGroupOrItem extends React.Component<CBGroupOrItemProps> {
52
53
  disabled,
53
54
  searchable,
54
55
  onDragStart,
55
- formula
56
+ formula,
57
+ popOverContainer
56
58
  } = this.props;
57
59
 
58
60
  return (
@@ -101,6 +103,7 @@ export class CBGroupOrItem extends React.Component<CBGroupOrItemProps> {
101
103
  funcs={funcs}
102
104
  data={data}
103
105
  formula={formula}
106
+ popOverContainer={popOverContainer}
104
107
  />
105
108
  <a className={cx('CBDelete')} onClick={this.handleItemRemove}>
106
109
  <Icon icon="close" className="icon" />
@@ -7,6 +7,7 @@ import {ClassNamesFn, themeable, ThemeProps} from '../../theme';
7
7
  export interface InputSwitchProps extends ThemeProps {
8
8
  options: Array<any>;
9
9
  disabled?: boolean;
10
+ popOverContainer?: any;
10
11
  value: any;
11
12
  onChange: (value: any) => void;
12
13
  }
@@ -18,10 +19,12 @@ export function InputSwitch({
18
19
  value,
19
20
  onChange,
20
21
  classnames: cx,
21
- disabled
22
+ disabled,
23
+ popOverContainer
22
24
  }: InputSwitchProps) {
23
25
  return (
24
26
  <PopOverContainer
27
+ popOverContainer={popOverContainer}
25
28
  popOverRender={({onClose}) => (
26
29
  <GroupedSelection
27
30
  onClick={onClose}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import {findDOMNode} from 'react-dom';
2
3
  import {
3
4
  Fields,
4
5
  ConditionRule,
@@ -37,6 +38,7 @@ export interface ConditionItemProps extends ThemeProps, LocaleProps {
37
38
  onChange: (value: ConditionRule, index?: number) => void;
38
39
  fieldClassName?: string;
39
40
  formula?: FormulaPickerProps;
41
+ popOverContainer?: any;
40
42
  }
41
43
 
42
44
  export class ConditionItem extends React.Component<ConditionItemProps> {
@@ -102,8 +104,16 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
102
104
  }
103
105
 
104
106
  renderLeft() {
105
- const {value, fields, funcs, config, disabled, fieldClassName, searchable} =
106
- this.props;
107
+ const {
108
+ value,
109
+ fields,
110
+ funcs,
111
+ config,
112
+ disabled,
113
+ fieldClassName,
114
+ searchable,
115
+ popOverContainer
116
+ } = this.props;
107
117
  return (
108
118
  <Expression
109
119
  config={config}
@@ -114,6 +124,7 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
114
124
  fields={fields}
115
125
  disabled={disabled}
116
126
  searchable={searchable}
127
+ popOverContainer={popOverContainer}
117
128
  allowedTypes={
118
129
  ['field', 'func'].filter(
119
130
  type => type === 'field' || type === 'func'
@@ -124,7 +135,15 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
124
135
  }
125
136
 
126
137
  renderOperator() {
127
- const {funcs, config, fields, value, classnames: cx, disabled} = this.props;
138
+ const {
139
+ funcs,
140
+ config,
141
+ fields,
142
+ value,
143
+ classnames: cx,
144
+ disabled,
145
+ popOverContainer
146
+ } = this.props;
128
147
  const left = value?.left;
129
148
  let operators: Array<string> = [];
130
149
 
@@ -152,6 +171,7 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
152
171
  const __ = this.props.translate;
153
172
  return (
154
173
  <PopOverContainer
174
+ popOverContainer={popOverContainer || (() => findDOMNode(this))}
155
175
  popOverRender={({onClose}) => (
156
176
  <GroupedSelection
157
177
  onClick={onClose}
@@ -242,7 +262,8 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
242
262
  config,
243
263
  classnames: cx,
244
264
  disabled,
245
- formula
265
+ formula,
266
+ popOverContainer
246
267
  } = this.props;
247
268
  let field = {
248
269
  ...config.types[type],
@@ -282,6 +303,7 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
282
303
  }
283
304
  disabled={disabled}
284
305
  formula={formula}
306
+ popOverContainer={popOverContainer}
285
307
  />
286
308
 
287
309
  <span className={cx('CBSeprator')}>~</span>
@@ -300,6 +322,7 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
300
322
  }
301
323
  disabled={disabled}
302
324
  formula={formula}
325
+ popOverContainer={popOverContainer}
303
326
  />
304
327
  </>
305
328
  );
@@ -321,6 +344,7 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
321
344
  }
322
345
  disabled={disabled}
323
346
  formula={formula}
347
+ popOverContainer={popOverContainer}
324
348
  />
325
349
  );
326
350
  }