amis 1.8.0-beta.1 → 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 (426) hide show
  1. package/lib/Schema.d.ts +9 -2
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/SchemaRenderer.js +19 -3
  4. package/lib/SchemaRenderer.js.map +2 -2
  5. package/lib/WithRootStore.d.ts +18 -0
  6. package/lib/WithStore.js +2 -1
  7. package/lib/WithStore.js.map +2 -2
  8. package/lib/actions/CmptAction.js +26 -4
  9. package/lib/actions/CmptAction.js.map +2 -2
  10. package/lib/actions/PageAction.d.ts +32 -0
  11. package/lib/actions/PageAction.js +72 -0
  12. package/lib/actions/PageAction.js.map +13 -0
  13. package/lib/actions/index.d.ts +1 -0
  14. package/lib/actions/index.js +1 -0
  15. package/lib/actions/index.js.map +2 -2
  16. package/lib/components/AssociatedSelection.js +9 -2
  17. package/lib/components/AssociatedSelection.js.map +2 -2
  18. package/lib/components/BarCode.js +1 -1
  19. package/lib/components/BarCode.js.map +2 -2
  20. package/lib/components/CalendarMobile.d.ts +84 -84
  21. package/lib/components/Cascader.d.ts +2 -0
  22. package/lib/components/Cascader.js +28 -12
  23. package/lib/components/Cascader.js.map +2 -2
  24. package/lib/components/Checkbox.d.ts +24 -23
  25. package/lib/components/Checkbox.js +5 -1
  26. package/lib/components/Checkbox.js.map +2 -2
  27. package/lib/components/Collapse.d.ts +20 -20
  28. package/lib/components/DatePicker.d.ts +84 -84
  29. package/lib/components/DatePicker.js +8 -5
  30. package/lib/components/DatePicker.js.map +2 -2
  31. package/lib/components/DateRangePicker.d.ts +285 -171
  32. package/lib/components/DateRangePicker.js +471 -66
  33. package/lib/components/DateRangePicker.js.map +2 -2
  34. package/lib/components/Drawer.js +1 -1
  35. package/lib/components/Drawer.js.map +2 -2
  36. package/lib/components/ListGroup.d.ts +21 -21
  37. package/lib/components/Modal.js +1 -1
  38. package/lib/components/Modal.js.map +2 -2
  39. package/lib/components/MonthRangePicker.d.ts +84 -84
  40. package/lib/components/Overlay.d.ts +1 -0
  41. package/lib/components/Overlay.js +4 -3
  42. package/lib/components/Overlay.js.map +2 -2
  43. package/lib/components/Progress.d.ts +29 -24
  44. package/lib/components/Progress.js +44 -16
  45. package/lib/components/Progress.js.map +2 -2
  46. package/lib/components/PullRefresh.d.ts +86 -0
  47. package/lib/components/PullRefresh.js +135 -0
  48. package/lib/components/PullRefresh.js.map +13 -0
  49. package/lib/components/Radios.d.ts +22 -22
  50. package/lib/components/Radios.js +3 -5
  51. package/lib/components/Radios.js.map +2 -2
  52. package/lib/components/Range.d.ts +2 -2
  53. package/lib/components/Range.js +24 -11
  54. package/lib/components/Range.js.map +2 -2
  55. package/lib/components/Spinner.d.ts +200 -107
  56. package/lib/components/Spinner.js +30 -26
  57. package/lib/components/Spinner.js.map +2 -2
  58. package/lib/components/Steps.d.ts +6 -0
  59. package/lib/components/Steps.js +13 -9
  60. package/lib/components/Steps.js.map +2 -2
  61. package/lib/components/Tooltip.d.ts +4 -0
  62. package/lib/components/Tooltip.js +6 -4
  63. package/lib/components/Tooltip.js.map +2 -2
  64. package/lib/components/TooltipWrapper.d.ts +66 -4
  65. package/lib/components/TooltipWrapper.js +40 -8
  66. package/lib/components/TooltipWrapper.js.map +2 -2
  67. package/lib/components/Transfer.d.ts +84 -84
  68. package/lib/components/TransferDropDown.d.ts +84 -84
  69. package/lib/components/Tree.d.ts +87 -85
  70. package/lib/components/Tree.js +13 -5
  71. package/lib/components/Tree.js.map +2 -2
  72. package/lib/components/TreeSelection.d.ts +84 -84
  73. package/lib/components/calendar/Calendar.js +0 -13
  74. package/lib/components/calendar/Calendar.js.map +2 -2
  75. package/lib/components/calendar/TimeView.d.ts +1 -0
  76. package/lib/components/calendar/TimeView.js +7 -0
  77. package/lib/components/calendar/TimeView.js.map +2 -2
  78. package/lib/components/calendar/YearsView.js +3 -3
  79. package/lib/components/calendar/YearsView.js.map +2 -2
  80. package/lib/components/condition-builder/Expression.d.ts +1 -0
  81. package/lib/components/condition-builder/Expression.js +4 -4
  82. package/lib/components/condition-builder/Expression.js.map +2 -2
  83. package/lib/components/condition-builder/Field.d.ts +1 -0
  84. package/lib/components/condition-builder/Field.js +3 -2
  85. package/lib/components/condition-builder/Field.js.map +2 -2
  86. package/lib/components/condition-builder/Group.d.ts +1 -0
  87. package/lib/components/condition-builder/Group.js +2 -2
  88. package/lib/components/condition-builder/Group.js.map +2 -2
  89. package/lib/components/condition-builder/GroupOrItem.d.ts +1 -0
  90. package/lib/components/condition-builder/GroupOrItem.js +2 -2
  91. package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
  92. package/lib/components/condition-builder/InputSwitch.d.ts +2 -1
  93. package/lib/components/condition-builder/InputSwitch.js +2 -2
  94. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  95. package/lib/components/condition-builder/Item.d.ts +1 -0
  96. package/lib/components/condition-builder/Item.js +9 -8
  97. package/lib/components/condition-builder/Item.js.map +2 -2
  98. package/lib/components/condition-builder/Value.d.ts +1 -0
  99. package/lib/components/condition-builder/Value.js +5 -5
  100. package/lib/components/condition-builder/Value.js.map +2 -2
  101. package/lib/components/condition-builder/index.d.ts +1 -0
  102. package/lib/components/condition-builder/index.js +2 -2
  103. package/lib/components/condition-builder/index.js.map +2 -2
  104. package/lib/components/formula/Editor.d.ts +87 -85
  105. package/lib/components/formula/Editor.js +10 -6
  106. package/lib/components/formula/Editor.js.map +2 -2
  107. package/lib/components/formula/Picker.js +3 -1
  108. package/lib/components/formula/Picker.js.map +2 -2
  109. package/lib/factory.d.ts +5 -0
  110. package/lib/factory.js +22 -1
  111. package/lib/factory.js.map +2 -2
  112. package/lib/index.js +1 -1
  113. package/lib/locale/de-DE.js +18 -1
  114. package/lib/locale/de-DE.js.map +2 -2
  115. package/lib/locale/en-US.js +18 -1
  116. package/lib/locale/en-US.js.map +2 -2
  117. package/lib/locale/zh-CN.js +18 -1
  118. package/lib/locale/zh-CN.js.map +2 -2
  119. package/lib/renderers/Action.d.ts +2 -0
  120. package/lib/renderers/Action.js +23 -5
  121. package/lib/renderers/Action.js.map +2 -2
  122. package/lib/renderers/App.d.ts +1 -0
  123. package/lib/renderers/App.js +3 -0
  124. package/lib/renderers/App.js.map +2 -2
  125. package/lib/renderers/CRUD.d.ts +8 -0
  126. package/lib/renderers/CRUD.js +12 -5
  127. package/lib/renderers/CRUD.js.map +2 -2
  128. package/lib/renderers/Carousel.d.ts +1 -0
  129. package/lib/renderers/Carousel.js +13 -1
  130. package/lib/renderers/Carousel.js.map +2 -2
  131. package/lib/renderers/Chart.d.ts +1 -0
  132. package/lib/renderers/Chart.js +3 -0
  133. package/lib/renderers/Chart.js.map +2 -2
  134. package/lib/renderers/Dialog.d.ts +1 -0
  135. package/lib/renderers/Dialog.js +3 -0
  136. package/lib/renderers/Dialog.js.map +2 -2
  137. package/lib/renderers/Drawer.d.ts +1 -0
  138. package/lib/renderers/Drawer.js +6 -1
  139. package/lib/renderers/Drawer.js.map +2 -2
  140. package/lib/renderers/Form/Checkbox.d.ts +5 -2
  141. package/lib/renderers/Form/Checkbox.js +2 -2
  142. package/lib/renderers/Form/Checkbox.js.map +2 -2
  143. package/lib/renderers/Form/Checkboxes.d.ts +7 -2
  144. package/lib/renderers/Form/Checkboxes.js +101 -12
  145. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  146. package/lib/renderers/Form/Combo.d.ts +2 -1
  147. package/lib/renderers/Form/Combo.js +54 -16
  148. package/lib/renderers/Form/Combo.js.map +2 -2
  149. package/lib/renderers/Form/DiffEditor.d.ts +3 -2
  150. package/lib/renderers/Form/Editor.d.ts +2 -2
  151. package/lib/renderers/Form/InputCity.d.ts +87 -84
  152. package/lib/renderers/Form/InputCity.js +44 -2
  153. package/lib/renderers/Form/InputCity.js.map +2 -2
  154. package/lib/renderers/Form/InputDate.js +10 -3
  155. package/lib/renderers/Form/InputDate.js.map +2 -2
  156. package/lib/renderers/Form/InputDateRange.d.ts +5 -0
  157. package/lib/renderers/Form/InputDateRange.js +12 -3
  158. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  159. package/lib/renderers/Form/InputFile.js +19 -8
  160. package/lib/renderers/Form/InputFile.js.map +2 -2
  161. package/lib/renderers/Form/InputImage.js +18 -7
  162. package/lib/renderers/Form/InputImage.js.map +2 -2
  163. package/lib/renderers/Form/InputMonthRange.js +5 -1
  164. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  165. package/lib/renderers/Form/InputRange.js +13 -14
  166. package/lib/renderers/Form/InputRange.js.map +2 -2
  167. package/lib/renderers/Form/InputText.d.ts +1 -1
  168. package/lib/renderers/Form/InputText.js +8 -10
  169. package/lib/renderers/Form/InputText.js.map +2 -2
  170. package/lib/renderers/Form/InputTree.d.ts +5 -0
  171. package/lib/renderers/Form/InputTree.js +51 -2
  172. package/lib/renderers/Form/InputTree.js.map +2 -2
  173. package/lib/renderers/Form/Item.d.ts +79 -76
  174. package/lib/renderers/Form/Item.js +3 -1
  175. package/lib/renderers/Form/Item.js.map +2 -2
  176. package/lib/renderers/Form/NestedSelect.d.ts +4 -0
  177. package/lib/renderers/Form/NestedSelect.js +14 -5
  178. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  179. package/lib/renderers/Form/Options.js +61 -27
  180. package/lib/renderers/Form/Options.js.map +2 -2
  181. package/lib/renderers/Form/Select.js +4 -2
  182. package/lib/renderers/Form/Select.js.map +2 -2
  183. package/lib/renderers/Form/Textarea.js +2 -1
  184. package/lib/renderers/Form/Textarea.js.map +2 -2
  185. package/lib/renderers/Form/TreeSelect.d.ts +11 -2
  186. package/lib/renderers/Form/TreeSelect.js +56 -10
  187. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  188. package/lib/renderers/Form/index.d.ts +3 -0
  189. package/lib/renderers/Form/index.js +53 -16
  190. package/lib/renderers/Form/index.js.map +2 -2
  191. package/lib/renderers/Form/wrapControl.d.ts +10 -0
  192. package/lib/renderers/Form/wrapControl.js +41 -19
  193. package/lib/renderers/Form/wrapControl.js.map +2 -2
  194. package/lib/renderers/Nav.d.ts +82 -67
  195. package/lib/renderers/Nav.js +49 -13
  196. package/lib/renderers/Nav.js.map +2 -2
  197. package/lib/renderers/Page.d.ts +21 -0
  198. package/lib/renderers/Page.js +54 -14
  199. package/lib/renderers/Page.js.map +2 -2
  200. package/lib/renderers/Progress.d.ts +3 -6
  201. package/lib/renderers/Progress.js +2 -2
  202. package/lib/renderers/Progress.js.map +2 -2
  203. package/lib/renderers/Service.d.ts +3 -0
  204. package/lib/renderers/Service.js +55 -20
  205. package/lib/renderers/Service.js.map +2 -2
  206. package/lib/renderers/Spinner.d.ts +58 -2
  207. package/lib/renderers/Spinner.js +8 -1
  208. package/lib/renderers/Spinner.js.map +2 -2
  209. package/lib/renderers/Steps.d.ts +8 -0
  210. package/lib/renderers/Steps.js +2 -2
  211. package/lib/renderers/Steps.js.map +2 -2
  212. package/lib/renderers/Table/ColumnToggler.d.ts +4 -0
  213. package/lib/renderers/Table/ColumnToggler.js +11 -6
  214. package/lib/renderers/Table/ColumnToggler.js.map +2 -2
  215. package/lib/renderers/Table/TableCell.js +27 -1
  216. package/lib/renderers/Table/TableCell.js.map +2 -2
  217. package/lib/renderers/Table/index.d.ts +2 -0
  218. package/lib/renderers/Table/index.js +23 -10
  219. package/lib/renderers/Table/index.js.map +2 -2
  220. package/lib/renderers/Tabs.d.ts +4 -0
  221. package/lib/renderers/Tabs.js +22 -6
  222. package/lib/renderers/Tabs.js.map +2 -2
  223. package/lib/renderers/TooltipWrapper.d.ts +35 -6
  224. package/lib/renderers/TooltipWrapper.js +19 -8
  225. package/lib/renderers/TooltipWrapper.js.map +2 -2
  226. package/lib/renderers/Wizard.d.ts +7 -3
  227. package/lib/renderers/Wizard.js +269 -152
  228. package/lib/renderers/Wizard.js.map +2 -2
  229. package/lib/store/combo.d.ts +2 -2
  230. package/lib/store/crud.d.ts +1 -0
  231. package/lib/store/crud.js +55 -19
  232. package/lib/store/crud.js.map +2 -2
  233. package/lib/store/form.d.ts +1 -1
  234. package/lib/store/form.js +5 -1
  235. package/lib/store/form.js.map +2 -2
  236. package/lib/store/formItem.js +1 -1
  237. package/lib/store/formItem.js.map +2 -2
  238. package/lib/store/index.d.ts +5 -0
  239. package/lib/store/index.js +14 -0
  240. package/lib/store/index.js.map +2 -2
  241. package/lib/store/table.d.ts +2 -2
  242. package/lib/store/table.js +2 -2
  243. package/lib/store/table.js.map +2 -2
  244. package/lib/themes/ang-ie11.css +768 -199
  245. package/lib/themes/ang.css +723 -142
  246. package/lib/themes/ang.css.map +1 -1
  247. package/lib/themes/antd-ie11.css +851 -282
  248. package/lib/themes/antd.css +724 -143
  249. package/lib/themes/antd.css.map +1 -1
  250. package/lib/themes/cxd-ie11.css +879 -310
  251. package/lib/themes/cxd.css +727 -146
  252. package/lib/themes/cxd.css.map +1 -1
  253. package/lib/themes/dark-ie11.css +769 -200
  254. package/lib/themes/dark.css +723 -142
  255. package/lib/themes/dark.css.map +1 -1
  256. package/lib/themes/default-ie11.css +879 -310
  257. package/lib/themes/default.css +727 -146
  258. package/lib/themes/default.css.map +1 -1
  259. package/lib/types.d.ts +3 -1
  260. package/lib/types.js.map +1 -1
  261. package/lib/utils/ColorScale.d.ts +19 -0
  262. package/lib/utils/ColorScale.js +104 -0
  263. package/lib/utils/ColorScale.js.map +13 -0
  264. package/lib/utils/api.js +20 -4
  265. package/lib/utils/api.js.map +2 -2
  266. package/lib/utils/columnsSplit.d.ts +1 -0
  267. package/lib/utils/columnsSplit.js +40 -0
  268. package/lib/utils/columnsSplit.js.map +13 -0
  269. package/lib/utils/debug.d.ts +1 -1
  270. package/lib/utils/debug.js +16 -22
  271. package/lib/utils/debug.js.map +2 -2
  272. package/lib/utils/dom.d.ts +1 -1
  273. package/lib/utils/dom.js +7 -5
  274. package/lib/utils/dom.js.map +2 -2
  275. package/lib/utils/position.js +0 -1
  276. package/lib/utils/position.js.map +2 -2
  277. package/lib/utils/scrollPosition.d.ts +6 -0
  278. package/lib/utils/scrollPosition.js +31 -0
  279. package/lib/utils/scrollPosition.js.map +13 -0
  280. package/package.json +3 -2
  281. package/schema.json +29681 -28936
  282. package/scss/_properties.scss +44 -13
  283. package/scss/components/_barcode.scss +1 -1
  284. package/scss/components/_carousel.scss +1 -0
  285. package/scss/components/_column-toggler.scss +21 -11
  286. package/scss/components/_debug.scss +3 -3
  287. package/scss/components/_formula.scss +1 -1
  288. package/scss/components/_nav.scss +51 -6
  289. package/scss/components/_progress.scss +4 -6
  290. package/scss/components/_pull-refresh.scss +25 -0
  291. package/scss/components/_spinner.scss +134 -56
  292. package/scss/components/_steps.scss +199 -8
  293. package/scss/components/_tooltip.scss +4 -9
  294. package/scss/components/form/_checks.scss +125 -2
  295. package/scss/components/form/_combo.scss +13 -1
  296. package/scss/components/form/_date-range.scss +27 -2
  297. package/scss/components/form/_date.scss +13 -1
  298. package/scss/components/form/_editor.scss +2 -1
  299. package/scss/components/form/_file.scss +4 -0
  300. package/scss/components/form/_form.scss +31 -8
  301. package/scss/components/form/_number.scss +3 -2
  302. package/scss/components/form/_select.scss +0 -1
  303. package/scss/components/form/_textarea.scss +1 -23
  304. package/scss/components/form/_transfer.scss +3 -2
  305. package/scss/themes/_antd-variables.scss +1 -1
  306. package/scss/themes/_common.scss +1 -0
  307. package/scss/themes/_cxd-variables.scss +4 -4
  308. package/sdk/ang-ie11.css +816 -182
  309. package/sdk/ang.css +775 -129
  310. package/sdk/antd-ie11.css +896 -262
  311. package/sdk/antd.css +776 -130
  312. package/sdk/barcode.js +51 -51
  313. package/sdk/charts.js +14 -14
  314. package/sdk/codemirror.js +7 -7
  315. package/sdk/color-picker.js +65 -65
  316. package/sdk/cropperjs.js +2 -2
  317. package/sdk/cxd-ie11.css +907 -273
  318. package/sdk/cxd.css +779 -133
  319. package/sdk/dark-ie11.css +817 -183
  320. package/sdk/dark.css +775 -129
  321. package/sdk/exceljs.js +1 -1
  322. package/sdk/locale/de-DE.js +18 -1
  323. package/sdk/markdown.js +69 -69
  324. package/sdk/papaparse.js +1 -1
  325. package/sdk/renderers/Form/CityDB.js +1 -1
  326. package/sdk/rest.js +17 -17
  327. package/sdk/rich-text.js +62 -62
  328. package/sdk/sdk-ie11.css +907 -273
  329. package/sdk/sdk.css +779 -133
  330. package/sdk/sdk.js +1317 -1273
  331. package/sdk/thirds/hls.js/hls.js +1 -1
  332. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  333. package/sdk/tinymce.js +57 -57
  334. package/src/Schema.ts +10 -0
  335. package/src/SchemaRenderer.tsx +32 -14
  336. package/src/WithStore.tsx +3 -1
  337. package/src/actions/CmptAction.ts +28 -0
  338. package/src/actions/PageAction.ts +62 -0
  339. package/src/actions/index.ts +1 -0
  340. package/src/components/AssociatedSelection.tsx +9 -3
  341. package/src/components/BarCode.tsx +2 -2
  342. package/src/components/Cascader.tsx +37 -11
  343. package/src/components/Checkbox.tsx +11 -5
  344. package/src/components/DatePicker.tsx +12 -4
  345. package/src/components/DateRangePicker.tsx +551 -88
  346. package/src/components/Drawer.tsx +1 -0
  347. package/src/components/Modal.tsx +1 -0
  348. package/src/components/Overlay.tsx +6 -3
  349. package/src/components/Progress.tsx +57 -22
  350. package/src/components/PullRefresh.tsx +197 -0
  351. package/src/components/Radios.tsx +6 -17
  352. package/src/components/Range.tsx +26 -12
  353. package/src/components/Spinner.tsx +77 -42
  354. package/src/components/Steps.tsx +28 -27
  355. package/src/components/Tooltip.tsx +12 -3
  356. package/src/components/TooltipWrapper.tsx +137 -33
  357. package/src/components/Tree.tsx +19 -5
  358. package/src/components/calendar/Calendar.tsx +0 -14
  359. package/src/components/calendar/TimeView.tsx +12 -0
  360. package/src/components/calendar/YearsView.tsx +3 -4
  361. package/src/components/condition-builder/Expression.tsx +6 -1
  362. package/src/components/condition-builder/Field.tsx +5 -1
  363. package/src/components/condition-builder/Group.tsx +4 -1
  364. package/src/components/condition-builder/GroupOrItem.tsx +4 -1
  365. package/src/components/condition-builder/InputSwitch.tsx +4 -1
  366. package/src/components/condition-builder/Item.tsx +28 -4
  367. package/src/components/condition-builder/Value.tsx +7 -1
  368. package/src/components/condition-builder/index.tsx +4 -2
  369. package/src/components/formula/Editor.tsx +20 -15
  370. package/src/components/formula/Picker.tsx +9 -5
  371. package/src/factory.tsx +29 -1
  372. package/src/locale/de-DE.ts +18 -1
  373. package/src/locale/en-US.ts +18 -1
  374. package/src/locale/zh-CN.ts +18 -1
  375. package/src/renderers/Action.tsx +22 -1
  376. package/src/renderers/App.tsx +4 -0
  377. package/src/renderers/CRUD.tsx +23 -5
  378. package/src/renderers/Carousel.tsx +8 -0
  379. package/src/renderers/Chart.tsx +4 -0
  380. package/src/renderers/Dialog.tsx +4 -0
  381. package/src/renderers/Drawer.tsx +14 -2
  382. package/src/renderers/Form/Checkbox.tsx +11 -2
  383. package/src/renderers/Form/Checkboxes.tsx +106 -23
  384. package/src/renderers/Form/Combo.tsx +104 -49
  385. package/src/renderers/Form/InputCity.tsx +33 -4
  386. package/src/renderers/Form/InputDate.tsx +18 -4
  387. package/src/renderers/Form/InputDateRange.tsx +27 -3
  388. package/src/renderers/Form/InputFile.tsx +23 -7
  389. package/src/renderers/Form/InputImage.tsx +22 -6
  390. package/src/renderers/Form/InputMonthRange.tsx +7 -1
  391. package/src/renderers/Form/InputRange.tsx +18 -16
  392. package/src/renderers/Form/InputText.tsx +14 -4
  393. package/src/renderers/Form/InputTree.tsx +40 -2
  394. package/src/renderers/Form/Item.tsx +7 -0
  395. package/src/renderers/Form/NestedSelect.tsx +23 -4
  396. package/src/renderers/Form/Options.tsx +26 -7
  397. package/src/renderers/Form/Select.tsx +5 -3
  398. package/src/renderers/Form/Textarea.tsx +3 -1
  399. package/src/renderers/Form/TreeSelect.tsx +47 -9
  400. package/src/renderers/Form/index.tsx +56 -25
  401. package/src/renderers/Form/wrapControl.tsx +23 -12
  402. package/src/renderers/Nav.tsx +231 -33
  403. package/src/renderers/Page.tsx +96 -33
  404. package/src/renderers/Progress.tsx +7 -9
  405. package/src/renderers/Service.tsx +66 -27
  406. package/src/renderers/Spinner.tsx +85 -3
  407. package/src/renderers/Steps.tsx +14 -0
  408. package/src/renderers/Table/ColumnToggler.tsx +36 -11
  409. package/src/renderers/Table/TableCell.tsx +39 -1
  410. package/src/renderers/Table/index.tsx +43 -19
  411. package/src/renderers/Tabs.tsx +75 -28
  412. package/src/renderers/TooltipWrapper.tsx +71 -28
  413. package/src/renderers/Wizard.tsx +169 -93
  414. package/src/store/crud.ts +50 -5
  415. package/src/store/form.ts +8 -3
  416. package/src/store/formItem.ts +1 -2
  417. package/src/store/index.ts +20 -0
  418. package/src/store/table.ts +2 -2
  419. package/src/types.ts +8 -1
  420. package/src/utils/ColorScale.ts +138 -0
  421. package/src/utils/api.ts +26 -4
  422. package/src/utils/columnsSplit.tsx +57 -0
  423. package/src/utils/debug.tsx +17 -24
  424. package/src/utils/dom.tsx +7 -6
  425. package/src/utils/position.ts +0 -1
  426. package/src/utils/scrollPosition.ts +29 -0
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Nav.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport {Renderer, RendererEnv, RendererProps} from '../factory';\nimport getExprProperties from '../utils/filter-schema';\nimport {filter, evalExpression} from '../utils/tpl';\nimport {\n guid,\n autobind,\n createObject,\n findTree,\n isUnfolded,\n mapTree,\n someTree,\n spliceTree,\n findTreeIndex\n} from '../utils/helper';\nimport {ScopedContext, IScopedContext} from '../Scoped';\nimport {themeable, ThemeProps} from '../theme';\nimport {Icon} from '../components/icons';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaIcon,\n SchemaUrlPath,\n SchemaCollection\n} from '../Schema';\nimport {generateIcon} from '../utils/icon';\nimport {\n RemoteOptionsProps,\n withRemoteConfig\n} from '../components/WithRemoteConfig';\nimport {Payload} from '../types';\nimport Spinner from '../components/Spinner';\nimport {isEffectiveApi} from '../utils/api';\nimport {Badge, BadgeSchema} from '../components/Badge';\n\nexport type NavItemSchema = {\n /**\n * 文字说明\n */\n label?: string | SchemaCollection;\n\n /**\n * 图标类名,参考 fontawesome 4。\n */\n icon?: SchemaIcon;\n\n to?: SchemaUrlPath;\n\n target?: string;\n\n unfolded?: boolean;\n active?: boolean;\n\n defer?: boolean;\n deferApi?: SchemaApi;\n\n children?: Array<NavItemSchema>;\n} & Omit<BaseSchema, 'type'>;\n\n/**\n * Nav 导航渲染器\n * 文档:https://baidu.gitee.io/amis/docs/components/nav\n */\nexport interface NavSchema extends BaseSchema {\n /**\n * 指定为 Nav 导航渲染器\n */\n type: 'nav';\n\n /**\n * 链接地址集合\n */\n links?: Array<NavItemSchema>;\n\n /**\n * @default 24\n */\n indentSize: number;\n\n /**\n * 可以通过 API 拉取。\n */\n source?: SchemaApi;\n\n /**\n * 懒加载 api,如果不配置复用 source 接口。\n */\n deferApi?: SchemaApi;\n\n /**\n * true 为垂直排列,false 为水平排列类似如 tabs。\n */\n stacked?: boolean;\n\n /**\n * 更多操作菜单列表\n */\n itemActions?: SchemaCollection;\n\n /**\n * 可拖拽\n */\n draggable?: boolean;\n\n /**\n * 保存排序的 api\n */\n saveOrderApi?: SchemaApi;\n\n /**\n * 角标\n */\n itemBadge?: BadgeSchema;\n\n /**\n * 仅允许同层级拖拽\n */\n dragOnSameLevel?: boolean;\n}\n\nexport interface Link {\n className?: string;\n label?: string | SchemaCollection;\n to?: string;\n target?: string;\n icon?: string;\n active?: boolean;\n activeOn?: string;\n unfolded?: boolean;\n children?: Links;\n defer?: boolean;\n loading?: boolean;\n loaded?: boolean;\n [propName: string]: any;\n itemBadge?: BadgeSchema;\n}\nexport interface Links extends Array<Link> {}\n\nexport interface NavigationState {\n links?: Links;\n error?: string;\n dropIndicator?: {\n top: number;\n left: number;\n width: number;\n height?: number;\n opacity?: number;\n };\n}\n\nexport interface NavigationProps\n extends ThemeProps,\n Omit<NavSchema, 'type' | 'className'> {\n onSelect?: (item: Link) => void | false;\n onToggle?: (item: Link, forceFold?: boolean) => void;\n onDragUpdate?: (dropInfo: IDropInfo) => void;\n togglerClassName?: string;\n links?: Array<Link>;\n loading?: boolean;\n render: RendererProps['render'];\n env: RendererEnv;\n data: Object;\n reload?: any;\n}\n\nexport interface IDropInfo {\n dragLink: Link | null;\n nodeId: string;\n position: string;\n rect: DOMRect;\n height: number;\n left: number;\n}\n\nexport class Navigation extends React.Component<\n NavigationProps,\n NavigationState\n> {\n static defaultProps = {\n indentSize: 24\n };\n\n dragNode: {\n node: HTMLElement;\n link: Link | null;\n } | null;\n dropInfo: IDropInfo | null;\n startPoint: {\n y: number;\n x: number;\n } = {\n y: 0,\n x: 0\n };\n state: NavigationState = {};\n\n @autobind\n handleClick(link: Link) {\n const {env, onSelect} = this.props;\n // 和 action 里命名一致方便分析\n if (link && link.to) {\n env?.tracker({\n eventType: 'link',\n eventData: {\n label: link.label,\n link: link.to\n }\n });\n }\n\n onSelect?.(link);\n }\n\n @autobind\n toggleLink(target: Link, forceFold?: boolean) {\n this.props.onToggle?.(target, forceFold);\n }\n\n @autobind\n getDropInfo(e: DragEvent, id: string, depth: number): IDropInfo {\n const {dragOnSameLevel, indentSize} = this.props;\n let rect = (e.target as HTMLElement).getBoundingClientRect();\n const dragLink = this.dragNode?.link as Link;\n const {top, height, width} = rect;\n let {clientY, clientX} = e;\n const left = depth * (parseInt(indentSize as any, 10) ?? 24);\n const deltaX = left + width * 0.2;\n let position;\n if (clientY >= top + height / 2) {\n position = 'bottom';\n } else {\n position = 'top';\n }\n if (\n !dragOnSameLevel &&\n position === 'bottom' &&\n clientX >= this.startPoint.x + deltaX\n ) {\n position = 'self';\n }\n return {\n nodeId: id,\n dragLink,\n position,\n rect,\n height,\n left\n };\n }\n @autobind\n updateDropIndicator(e: DragEvent) {\n const {dragOnSameLevel} = this.props;\n const target = e.target as HTMLElement; // a标签\n const targetId = target.getAttribute('data-id') as string;\n const targetDepth = Number(target.getAttribute('data-depth'));\n if (\n dragOnSameLevel &&\n this.dragNode?.node.parentElement !== target.parentElement?.parentElement\n ) {\n this.setState({dropIndicator: undefined});\n this.dropInfo = null;\n return;\n }\n this.dropInfo = this.getDropInfo(e, targetId, targetDepth);\n let {position, rect, dragLink, height, left} = this.dropInfo;\n if (targetId === dragLink?.__id) {\n this.setState({dropIndicator: undefined});\n this.dropInfo = null;\n return;\n }\n const ul = (findDOMNode(this) as HTMLElement).firstChild as HTMLElement;\n if (position === 'self') {\n this.setState({\n dropIndicator: {\n top: rect.top - ul.getBoundingClientRect().top,\n left,\n width: ul.getBoundingClientRect().width - left,\n height,\n opacity: 0.2\n }\n });\n } else {\n this.setState({\n dropIndicator: {\n top:\n (position === 'bottom' ? rect.top + rect.height : rect.top) -\n ul.getBoundingClientRect().top,\n left,\n width: ul.getBoundingClientRect().width - left\n }\n });\n }\n }\n\n @autobind\n handleDragStart(link: Link) {\n return (e: React.DragEvent) => {\n e.stopPropagation();\n const currentTarget = e.currentTarget as HTMLElement;\n e.dataTransfer.effectAllowed = 'copyMove';\n e.dataTransfer.setDragImage(currentTarget, 0, 0);\n this.dragNode = {\n node: currentTarget,\n link: link\n };\n this.dropInfo = null;\n this.startPoint = {\n x: e.clientX,\n y: e.clientY\n };\n currentTarget.addEventListener('dragend', this.handleDragEnd);\n document.body.addEventListener('dragover', this.handleDragOver);\n };\n }\n\n @autobind\n handleDragOver(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n if (!this.dragNode) {\n return;\n }\n const target = e.target as HTMLElement;\n const id = target.getAttribute('data-id');\n if (!id) {\n return;\n }\n this.updateDropIndicator(e);\n }\n\n @autobind\n handleDragEnd(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dropIndicator: undefined\n });\n const currentTarget = e.currentTarget as HTMLElement;\n const id = currentTarget.getAttribute('data-id');\n let nodeId = this.dropInfo?.nodeId;\n if (!this.dropInfo || !nodeId || id === nodeId) {\n return;\n }\n currentTarget.removeEventListener('dragend', this.handleDragEnd);\n document.body.removeEventListener('dragover', this.handleDragOver);\n\n this.props.onDragUpdate?.(this.dropInfo);\n this.dragNode = null;\n this.dropInfo = null;\n }\n\n renderItem(link: Link, index: number, depth = 1) {\n if (link.hidden === true || link.visible === false) {\n return null;\n }\n const isActive: boolean = !!link.active;\n const {\n disabled,\n togglerClassName,\n classnames: cx,\n indentSize,\n render,\n itemActions,\n draggable,\n links,\n itemBadge,\n data: defaultData\n } = this.props;\n const hasSub =\n (link.defer && !link.loaded) || (link.children && link.children.length);\n return (\n <li\n key={link.__id}\n data-id={link.__id}\n className={cx('Nav-item', link.className, {\n 'is-disabled': disabled || link.disabled || link.loading,\n 'is-active': isActive,\n 'is-unfolded': link.unfolded,\n 'has-sub': hasSub\n })}\n onDragStart={this.handleDragStart(link)}\n >\n <Badge\n classnames={cx}\n badge={itemBadge}\n data={createObject(defaultData, link)}\n >\n <a\n data-id={link.__id}\n data-depth={depth}\n onClick={this.handleClick.bind(this, link)}\n style={{\n paddingLeft: depth * (parseInt(indentSize as any, 10) ?? 24)\n }}\n >\n {!disabled && draggable ? (\n <div\n className={cx('Nav-itemDrager')}\n draggable\n onMouseDown={e => {\n this.toggleLink(link, true);\n e.stopPropagation();\n }}\n >\n <Icon icon=\"drag-bar\" className=\"icon\" />\n </div>\n ) : null}\n {link.loading ? (\n <Spinner\n size=\"sm\"\n show\n icon=\"reload\"\n spinnerClassName={cx('Nav-spinner')}\n />\n ) : hasSub ? (\n <span\n onClick={e => {\n this.toggleLink(link);\n e.stopPropagation();\n }}\n className={cx('Nav-itemToggler', togglerClassName)}\n >\n <Icon icon=\"caret\" className=\"icon\" />\n </span>\n ) : null}\n {generateIcon(cx, link.icon, 'Nav-itemIcon')}\n {link.label &&\n (typeof link.label === 'string'\n ? link.label\n : render('inline', link.label as SchemaCollection))}\n </a>\n {\n // 更多操作\n itemActions ? (\n <div className={cx('Nav-item-atcions')}>\n {render('inline', itemActions, {\n data: createObject(defaultData, link)\n })}\n </div>\n ) : null\n }\n {Array.isArray(link.children) && link.children.length ? (\n <ul className={cx('Nav-subItems')}>\n {link.children.map((link, index) =>\n this.renderItem(link, index, depth + 1)\n )}\n </ul>\n ) : null}\n </Badge>\n </li>\n );\n }\n\n render(): JSX.Element {\n const {className, stacked, classnames: cx, links, loading} = this.props;\n const {dropIndicator} = this.state;\n return (\n <div className={cx('Nav')}>\n <ul\n className={cx(\n 'Nav-list',\n className,\n stacked ? 'Nav-list--stacked' : 'Nav-list--tabs'\n )}\n >\n {Array.isArray(links)\n ? links.map((item, index) => this.renderItem(item, index))\n : null}\n\n <Spinner show={!!loading} overlay icon=\"reload\" />\n </ul>\n {dropIndicator ? (\n <div className={cx('Nav-dropIndicator')} style={dropIndicator} />\n ) : null}\n </div>\n );\n }\n}\n\nconst ThemedNavigation = themeable(Navigation);\n\nconst ConditionBuilderWithRemoteOptions = withRemoteConfig({\n adaptor: (config: any, props: any) => {\n const links = Array.isArray(config)\n ? config\n : config.links || config.options || config.items || config.rows;\n\n if (!Array.isArray(links)) {\n throw new Error('payload.data.options is not array.');\n }\n\n return links;\n },\n afterLoad: (response: any, config: any, props: any) => {\n if (response.value && !someTree(config, item => item.active)) {\n const {env} = props;\n\n env.jumpTo(filter(response.value as string, props.data));\n }\n },\n normalizeConfig(\n links: Array<Link>,\n origin: Array<Link> | undefined,\n props: any,\n motivation?: string\n ) {\n if (Array.isArray(links) && motivation !== 'toggle') {\n const {data, env, unfoldedField, foldedField} = props;\n\n links = mapTree(\n links,\n (link: Link) => {\n const item: any = {\n ...link,\n ...getExprProperties(link, data as object),\n active:\n (motivation !== 'location-change' && link.active) ||\n (link.activeOn\n ? evalExpression(link.activeOn as string, data)\n : !!(\n link.hasOwnProperty('to') &&\n env &&\n env.isCurrentUrl(filter(link.to as string, data))\n )),\n __id: link.id ?? link.__id ?? guid()\n };\n\n item.unfolded =\n isUnfolded(item, {unfoldedField, foldedField}) ||\n (link.children && link.children.some(link => !!link.active));\n\n return item;\n },\n 1,\n true\n );\n }\n\n return links;\n },\n\n beforeDeferLoad(item: Link, indexes: Array<number>, links: Array<Link>) {\n return spliceTree(links, indexes, 1, {\n ...item,\n loading: true\n });\n },\n\n afterDeferLoad(\n item: Link,\n indexes: Array<number>,\n ret: Payload,\n links: Array<Link>\n ) {\n const newItem = {\n ...item,\n loading: false,\n loaded: true,\n error: ret.ok ? undefined : ret.msg\n };\n\n const children = Array.isArray(ret.data)\n ? ret.data\n : ret.data.links || ret.data.options || ret.data.items || ret.data.rows;\n\n if (Array.isArray(children)) {\n newItem.children = children.concat();\n newItem.unfolded = true;\n }\n\n return spliceTree(links, indexes, 1, newItem);\n }\n})(\n class extends React.Component<\n RemoteOptionsProps &\n React.ComponentProps<typeof ThemedNavigation> & {\n location?: any;\n env?: RendererEnv;\n data?: any;\n unfoldedField?: string;\n foldedField?: string;\n reload?: any;\n }\n > {\n constructor(props: any) {\n super(props);\n this.toggleLink = this.toggleLink.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.dragUpdate = this.dragUpdate.bind(this);\n }\n\n componentDidMount() {\n if (Array.isArray(this.props.links)) {\n this.props.updateConfig(this.props.links, 'mount');\n }\n }\n\n componentDidUpdate(prevProps: any) {\n if (this.props.location !== prevProps.location) {\n this.props.updateConfig(this.props.config, 'location-change');\n } else if (this.props.links !== prevProps.links) {\n this.props.updateConfig(this.props.links, 'update');\n }\n }\n\n toggleLink(target: Link, forceFold?: boolean) {\n const {config, updateConfig, deferLoad} = this.props;\n\n if (target.defer && !target.loaded) {\n deferLoad(target);\n } else {\n updateConfig(\n mapTree(config, (link: Link) =>\n target === link\n ? {\n ...link,\n unfolded: forceFold ? false : !link.unfolded\n }\n : link\n ),\n 'toggle'\n );\n }\n }\n\n async dragUpdate(dropInfo: IDropInfo) {\n let links = this.props.config;\n const {nodeId, dragLink, position} = dropInfo;\n if (dragLink) {\n // 删除原节点\n const sourceIdx = findTreeIndex(\n links,\n link => link.__id === dragLink.__id\n ) as number[];\n links = spliceTree(links, sourceIdx, 1);\n\n if (position === 'self') {\n // 插入到对应节点的children中\n mapTree(links, link => {\n if (link.__id === nodeId) {\n if (!link.children) {\n link.children = [];\n }\n link.children.push(dragLink);\n }\n return link;\n });\n } else {\n // 找到需要插入的节点\n const idx = findTreeIndex(\n links,\n link => link.__id === nodeId\n ) as number[];\n // 插入节点之后\n if (position === 'bottom') {\n idx.push((idx.pop() as number) + 1);\n }\n links = spliceTree(links, idx, 0, dragLink);\n }\n }\n this.props.updateConfig(links, 'update');\n await this.saveOrder(\n mapTree(links, (link: Link) => {\n // 清除内部加的字段\n for (let key in link) {\n if (/^__.*$/.test(key)) {\n delete link[key];\n }\n }\n return link;\n })\n );\n }\n\n async saveOrder(links: Links) {\n const {saveOrderApi, env, data, reload} = this.props;\n if (saveOrderApi && isEffectiveApi(saveOrderApi)) {\n await env.fetcher(\n saveOrderApi as SchemaApi,\n createObject(data, {data: links}),\n {method: 'post'}\n );\n reload();\n } else {\n env.alert('NAV saveOrderApi is required!');\n }\n }\n\n handleSelect(link: Link) {\n const {onSelect, env, data} = this.props;\n if (onSelect && onSelect(link) === false) {\n return;\n }\n\n if (\n !link.to &&\n ((link.children && link.children.length) ||\n (link.defer && !link.loaded))\n ) {\n this.toggleLink(link);\n return;\n }\n\n env?.jumpTo(filter(link.to as string, data), link as any);\n }\n\n render() {\n const {loading, config, deferLoad, updateConfig, ...rest} = this.props;\n return (\n <ThemedNavigation\n {...rest}\n loading={loading}\n links={config || []}\n disabled={loading}\n onSelect={this.handleSelect}\n onToggle={this.toggleLink}\n onDragUpdate={this.dragUpdate}\n />\n );\n }\n }\n);\n\nexport default ThemedNavigation;\n@Renderer({\n test: /(^|\\/)(?:nav|navigation)$/,\n name: 'nav'\n})\nexport class NavigationRenderer extends React.Component<RendererProps> {\n static contextType = ScopedContext;\n\n remoteRef:\n | {\n loadConfig: (ctx?: any) => Promise<any> | void;\n setConfig: (value: any) => void;\n }\n | undefined = undefined;\n\n @autobind\n remoteConfigRef(ref: any) {\n this.remoteRef = ref;\n }\n\n constructor(props: RendererProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n @autobind\n reload(target?: string, query?: any, values?: object) {\n if (query) {\n return this.receive(query);\n }\n\n const {data, env, source, translate: __} = this.props;\n const finalData = values ? createObject(data, values) : data;\n\n this.remoteRef?.loadConfig(finalData);\n }\n\n @autobind\n receive(values: object) {\n this.reload(undefined, undefined, values);\n }\n\n render() {\n const {...rest} = this.props;\n return (\n <ConditionBuilderWithRemoteOptions\n {...rest}\n reload={this.reload}\n remoteConfigRef={this.remoteConfigRef}\n />\n );\n }\n}\n"
11
+ "import React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport Overflow from 'rc-overflow';\nimport {Renderer, RendererEnv, RendererProps} from '../factory';\nimport getExprProperties from '../utils/filter-schema';\nimport {filter, evalExpression} from '../utils/tpl';\nimport {\n guid,\n autobind,\n createObject,\n isUnfolded,\n mapTree,\n someTree,\n spliceTree,\n findTreeIndex,\n isObject\n} from '../utils/helper';\nimport {generateIcon} from '../utils/icon';\nimport {isEffectiveApi} from '../utils/api';\nimport {themeable, ThemeProps} from '../theme';\nimport {Icon, getIcon} from '../components/icons';\nimport {Badge, BadgeSchema} from '../components/Badge';\nimport {\n RemoteOptionsProps,\n withRemoteConfig\n} from '../components/WithRemoteConfig';\nimport Spinner from '../components/Spinner';\nimport PopOverContainer from '../components/PopOverContainer';\nimport {ScopedContext, IScopedContext} from '../Scoped';\n\nimport type {Payload} from '../types';\nimport type {\n BaseSchema,\n SchemaObject,\n SchemaApi,\n SchemaIcon,\n SchemaUrlPath,\n SchemaCollection,\n SchemaClassName\n} from '../Schema';\n\nexport type NavItemSchema = {\n /**\n * 文字说明\n */\n label?: string | SchemaCollection;\n\n /**\n * 图标类名,参考 fontawesome 4。\n */\n icon?: SchemaIcon;\n\n to?: SchemaUrlPath;\n\n target?: string;\n\n unfolded?: boolean;\n active?: boolean;\n\n defer?: boolean;\n deferApi?: SchemaApi;\n\n children?: Array<NavItemSchema>;\n} & Omit<BaseSchema, 'type'>;\n\nexport interface NavOverflow {\n /**\n * 是否开启响应式收纳\n */\n enable: boolean;\n\n /**\n * 菜单触发按钮的文字\n */\n overflowLabel?: string | SchemaObject;\n\n /**\n * 菜单触发按钮的图标\n * @default \"fa fa-ellipsis\"\n */\n overflowIndicator?: SchemaIcon;\n\n /**\n * 菜单触发按钮CSS类名\n */\n overflowClassName?: SchemaClassName;\n\n /**\n * Popover浮层CSS类名\n */\n overflowPopoverClassName?: SchemaClassName;\n\n /**\n * 菜单外层CSS类名\n */\n overflowListClassName?: SchemaClassName;\n\n /**\n * 导航横向布局时,开启开启响应式收纳后最大可显示数量,超出此数量的导航将被收纳到下拉菜单中\n */\n maxVisibleCount?: number;\n\n /**\n * 包裹导航的外层标签名,可以使用其他标签渲染\n * @default \"ul\"\n */\n wrapperComponent?: string;\n\n /**\n * 导航项目宽度\n * @default 160\n */\n itemWidth?: number;\n\n /**\n * 导航列表后缀节点\n */\n overflowSuffix?: SchemaCollection;\n\n /**\n * 自定义样式\n */\n style?: React.CSSProperties;\n\n /**\n * 菜单DOM挂载点\n */\n popOverContainer?: any;\n}\n\n/**\n * Nav 导航渲染器\n * 文档:https://baidu.gitee.io/amis/docs/components/nav\n */\nexport interface NavSchema extends BaseSchema {\n /**\n * 指定为 Nav 导航渲染器\n */\n type: 'nav';\n\n /**\n * 链接地址集合\n */\n links?: Array<NavItemSchema>;\n\n /**\n * @default 24\n */\n indentSize: number;\n\n /**\n * 可以通过 API 拉取。\n */\n source?: SchemaApi;\n\n /**\n * 懒加载 api,如果不配置复用 source 接口。\n */\n deferApi?: SchemaApi;\n\n /**\n * true 为垂直排列,false 为水平排列类似如 tabs。\n */\n stacked?: boolean;\n\n /**\n * 更多操作菜单列表\n */\n itemActions?: SchemaCollection;\n\n /**\n * 可拖拽\n */\n draggable?: boolean;\n\n /**\n * 保存排序的 api\n */\n saveOrderApi?: SchemaApi;\n\n /**\n * 角标\n */\n itemBadge?: BadgeSchema;\n\n /**\n * 仅允许同层级拖拽\n */\n dragOnSameLevel?: boolean;\n\n /**\n * 横向导航时自动收纳配置\n */\n overflow?: NavOverflow;\n}\n\nexport interface Link {\n className?: string;\n label?: string | SchemaCollection;\n to?: string;\n target?: string;\n icon?: string;\n active?: boolean;\n activeOn?: string;\n unfolded?: boolean;\n children?: Links;\n defer?: boolean;\n loading?: boolean;\n loaded?: boolean;\n [propName: string]: any;\n itemBadge?: BadgeSchema;\n}\nexport interface Links extends Array<Link> {}\n\nexport interface NavigationState {\n links?: Links;\n error?: string;\n dropIndicator?: {\n top: number;\n left: number;\n width: number;\n height?: number;\n opacity?: number;\n };\n}\n\nexport interface NavigationProps\n extends ThemeProps,\n Omit<NavSchema, 'type' | 'className'> {\n onSelect?: (item: Link) => void | false;\n onToggle?: (item: Link, forceFold?: boolean) => void;\n onDragUpdate?: (dropInfo: IDropInfo) => void;\n togglerClassName?: string;\n links?: Array<Link>;\n loading?: boolean;\n render: RendererProps['render'];\n env: RendererEnv;\n data: Object;\n reload?: any;\n overflow?: NavOverflow;\n}\n\nexport interface IDropInfo {\n dragLink: Link | null;\n nodeId: string;\n position: string;\n rect: DOMRect;\n height: number;\n left: number;\n}\n\nexport class Navigation extends React.Component<\n NavigationProps,\n NavigationState\n> {\n static defaultProps: Pick<NavigationProps, 'indentSize'> = {\n indentSize: 24\n };\n\n dragNode: {\n node: HTMLElement;\n link: Link | null;\n } | null;\n dropInfo: IDropInfo | null;\n startPoint: {\n y: number;\n x: number;\n } = {\n y: 0,\n x: 0\n };\n state: NavigationState = {};\n\n @autobind\n handleClick(link: Link) {\n const {env, onSelect} = this.props;\n // 和 action 里命名一致方便分析\n if (link && link.to) {\n env?.tracker({\n eventType: 'link',\n eventData: {\n label: link.label,\n link: link.to\n }\n });\n }\n\n onSelect?.(link);\n }\n\n @autobind\n toggleLink(target: Link, forceFold?: boolean) {\n this.props.onToggle?.(target, forceFold);\n }\n\n @autobind\n getDropInfo(e: DragEvent, id: string, depth: number): IDropInfo {\n const {dragOnSameLevel, indentSize} = this.props;\n let rect = (e.target as HTMLElement).getBoundingClientRect();\n const dragLink = this.dragNode?.link as Link;\n const {top, height, width} = rect;\n let {clientY, clientX} = e;\n const left = depth * (parseInt(indentSize as any, 10) ?? 24);\n const deltaX = left + width * 0.2;\n let position;\n if (clientY >= top + height / 2) {\n position = 'bottom';\n } else {\n position = 'top';\n }\n if (\n !dragOnSameLevel &&\n position === 'bottom' &&\n clientX >= this.startPoint.x + deltaX\n ) {\n position = 'self';\n }\n return {\n nodeId: id,\n dragLink,\n position,\n rect,\n height,\n left\n };\n }\n @autobind\n updateDropIndicator(e: DragEvent) {\n const {dragOnSameLevel} = this.props;\n const target = e.target as HTMLElement; // a标签\n const targetId = target.getAttribute('data-id') as string;\n const targetDepth = Number(target.getAttribute('data-depth'));\n if (\n dragOnSameLevel &&\n this.dragNode?.node.parentElement !== target.parentElement?.parentElement\n ) {\n this.setState({dropIndicator: undefined});\n this.dropInfo = null;\n return;\n }\n this.dropInfo = this.getDropInfo(e, targetId, targetDepth);\n let {position, rect, dragLink, height, left} = this.dropInfo;\n if (targetId === dragLink?.__id) {\n this.setState({dropIndicator: undefined});\n this.dropInfo = null;\n return;\n }\n const ul = (findDOMNode(this) as HTMLElement).firstChild as HTMLElement;\n if (position === 'self') {\n this.setState({\n dropIndicator: {\n top: rect.top - ul.getBoundingClientRect().top,\n left,\n width: ul.getBoundingClientRect().width - left,\n height,\n opacity: 0.2\n }\n });\n } else {\n this.setState({\n dropIndicator: {\n top:\n (position === 'bottom' ? rect.top + rect.height : rect.top) -\n ul.getBoundingClientRect().top,\n left,\n width: ul.getBoundingClientRect().width - left\n }\n });\n }\n }\n\n @autobind\n handleDragStart(link: Link) {\n return (e: React.DragEvent) => {\n e.stopPropagation();\n const currentTarget = e.currentTarget as HTMLElement;\n e.dataTransfer.effectAllowed = 'copyMove';\n e.dataTransfer.setDragImage(currentTarget, 0, 0);\n this.dragNode = {\n node: currentTarget,\n link: link\n };\n this.dropInfo = null;\n this.startPoint = {\n x: e.clientX,\n y: e.clientY\n };\n currentTarget.addEventListener('dragend', this.handleDragEnd);\n document.body.addEventListener('dragover', this.handleDragOver);\n };\n }\n\n @autobind\n handleDragOver(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n if (!this.dragNode) {\n return;\n }\n const target = e.target as HTMLElement;\n const id = target.getAttribute('data-id');\n if (!id) {\n return;\n }\n this.updateDropIndicator(e);\n }\n\n @autobind\n handleDragEnd(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.setState({\n dropIndicator: undefined\n });\n const currentTarget = e.currentTarget as HTMLElement;\n const id = currentTarget.getAttribute('data-id');\n let nodeId = this.dropInfo?.nodeId;\n if (!this.dropInfo || !nodeId || id === nodeId) {\n return;\n }\n currentTarget.removeEventListener('dragend', this.handleDragEnd);\n document.body.removeEventListener('dragover', this.handleDragOver);\n\n this.props.onDragUpdate?.(this.dropInfo);\n this.dragNode = null;\n this.dropInfo = null;\n }\n\n renderItem(link: Link, index: number, depth = 1) {\n if (link.hidden === true || link.visible === false) {\n return null;\n }\n const isActive: boolean = !!link.active;\n const {\n disabled,\n togglerClassName,\n classnames: cx,\n indentSize,\n render,\n itemActions,\n draggable,\n links,\n itemBadge,\n data: defaultData\n } = this.props;\n const hasSub =\n (link.defer && !link.loaded) || (link.children && link.children.length);\n\n return (\n <li\n key={link.__id}\n data-id={link.__id}\n className={cx('Nav-item', link.className, {\n 'is-disabled': disabled || link.disabled || link.loading,\n 'is-active': isActive,\n 'is-unfolded': link.unfolded,\n 'has-sub': hasSub\n })}\n onDragStart={this.handleDragStart(link)}\n >\n <Badge\n classnames={cx}\n badge={itemBadge}\n data={createObject(defaultData, link)}\n >\n <a\n data-id={link.__id}\n data-depth={depth}\n title={link?.label?.toString()}\n onClick={this.handleClick.bind(this, link)}\n style={{\n paddingLeft: depth * (parseInt(indentSize as any, 10) ?? 24)\n }}\n >\n {!disabled && draggable ? (\n <div\n className={cx('Nav-itemDrager')}\n draggable\n onMouseDown={e => {\n this.toggleLink(link, true);\n e.stopPropagation();\n }}\n >\n <Icon icon=\"drag-bar\" className=\"icon\" />\n </div>\n ) : null}\n {link.loading ? (\n <Spinner\n size=\"sm\"\n show\n icon=\"reload\"\n spinnerClassName={cx('Nav-spinner')}\n />\n ) : hasSub ? (\n <span\n onClick={e => {\n this.toggleLink(link);\n e.stopPropagation();\n }}\n className={cx('Nav-itemToggler', togglerClassName)}\n >\n <Icon icon=\"caret\" className=\"icon\" />\n </span>\n ) : null}\n {generateIcon(cx, link.icon, 'Nav-itemIcon')}\n {link.label &&\n (typeof link.label === 'string'\n ? link.label\n : render('inline', link.label as SchemaCollection))}\n </a>\n {\n // 更多操作\n itemActions ? (\n <div className={cx('Nav-item-atcions')}>\n {render('inline', itemActions, {\n data: createObject(defaultData, link)\n })}\n </div>\n ) : null\n }\n {Array.isArray(link.children) && link.children.length ? (\n <ul className={cx('Nav-subItems')}>\n {link.children.map((link, index) =>\n this.renderItem(link, index, depth + 1)\n )}\n </ul>\n ) : null}\n </Badge>\n </li>\n );\n }\n\n renderOverflowNavs(overflowConfig: NavOverflow) {\n const {render, classnames: cx, className, loading, links = []} = this.props;\n const {\n overflowClassName,\n overflowPopoverClassName,\n overflowListClassName,\n overflowLabel,\n overflowIndicator,\n itemWidth = 160,\n overflowSuffix,\n popOverContainer,\n style,\n maxVisibleCount,\n wrapperComponent = 'ul'\n } = overflowConfig;\n\n return (\n <>\n <Spinner show={!!loading} overlay icon=\"reload\" />\n\n <Overflow<Link>\n className={cx('Nav-list--tabs', className)}\n prefixCls={cx('Nav-list')}\n itemWidth={itemWidth}\n style={style}\n component={wrapperComponent as any}\n data={links}\n suffix={\n overflowSuffix\n ? render('nav-overflow-suffix', overflowSuffix)\n : null\n }\n renderRawItem={(item, index) =>\n this.renderItem(item, index) as JSX.Element\n }\n renderRawRest={overFlowedItems => {\n return (\n <PopOverContainer\n popOverContainer={popOverContainer}\n popOverClassName={cx(\n 'Nav-item-overflow-popover',\n overflowPopoverClassName\n )}\n popOverRender={({onClose}) => (\n <div\n className={cx(\n 'Nav-list',\n 'Nav-list--stacked', // 浮层菜单为垂直布局\n 'Nav-list-overflow',\n overflowListClassName\n )}\n >\n {overFlowedItems.map((item, index) =>\n React.cloneElement(\n this.renderItem(item, index) as JSX.Element,\n {\n onClick: onClose\n }\n )\n )}\n </div>\n )}\n >\n {({onClick, ref, isOpened}) => (\n <li\n ref={ref}\n className={cx(\n 'Nav-item',\n 'Nav-item-overflow',\n {\n 'is-overflow-opened': isOpened\n },\n overflowClassName\n )}\n onClick={onClick}\n >\n <a data-id={guid()} data-depth={1}>\n {getIcon(overflowIndicator!) ? (\n <Icon icon={overflowIndicator} className=\"icon\" />\n ) : (\n generateIcon(cx, overflowIndicator, 'Nav-itemIcon')\n )}\n {overflowLabel && isObject\n ? render('nav-overflow-label', overflowLabel)\n : overflowLabel}\n </a>\n </li>\n )}\n </PopOverContainer>\n );\n }}\n maxCount={\n maxVisibleCount && Number.isInteger(maxVisibleCount)\n ? maxVisibleCount\n : 'responsive'\n }\n />\n </>\n );\n }\n\n render(): JSX.Element {\n const {\n className,\n stacked,\n classnames: cx,\n links,\n loading,\n overflow\n } = this.props;\n const {dropIndicator} = this.state;\n\n return (\n <div className={cx('Nav')}>\n {overflow && isObject(overflow) && overflow.enable ? (\n this.renderOverflowNavs({\n overflowIndicator: 'fa fa-ellipsis',\n wrapperComponent: 'ul',\n itemWidth: 160,\n ...overflow\n })\n ) : (\n <>\n <ul\n className={cx(\n 'Nav-list',\n className,\n stacked ? 'Nav-list--stacked' : 'Nav-list--tabs'\n )}\n >\n {Array.isArray(links)\n ? links.map((item, index) => this.renderItem(item, index))\n : null}\n\n <Spinner show={!!loading} overlay icon=\"reload\" />\n </ul>\n {dropIndicator ? (\n <div className={cx('Nav-dropIndicator')} style={dropIndicator} />\n ) : null}\n </>\n )}\n </div>\n );\n }\n}\n\nconst ThemedNavigation = themeable(Navigation);\n\nconst ConditionBuilderWithRemoteOptions = withRemoteConfig({\n adaptor: (config: any, props: any) => {\n const links = Array.isArray(config)\n ? config\n : config.links || config.options || config.items || config.rows;\n\n if (!Array.isArray(links)) {\n throw new Error('payload.data.options is not array.');\n }\n\n return links;\n },\n afterLoad: (response: any, config: any, props: any) => {\n if (response.value && !someTree(config, item => item.active)) {\n const {env} = props;\n\n env.jumpTo(filter(response.value as string, props.data));\n }\n },\n normalizeConfig(\n links: Array<Link>,\n origin: Array<Link> | undefined,\n props: any,\n motivation?: string\n ) {\n if (Array.isArray(links) && motivation !== 'toggle') {\n const {data, env, unfoldedField, foldedField} = props;\n\n links = mapTree(\n links,\n (link: Link) => {\n const item: any = {\n ...link,\n ...getExprProperties(link, data as object),\n active:\n (motivation !== 'location-change' && link.active) ||\n (link.activeOn\n ? evalExpression(link.activeOn as string, data)\n : !!(\n link.hasOwnProperty('to') &&\n env &&\n env.isCurrentUrl(filter(link.to as string, data))\n )),\n __id: link.__id ?? guid()\n };\n\n item.unfolded =\n isUnfolded(item, {unfoldedField, foldedField}) ||\n (link.children && link.children.some(link => !!link.active));\n\n return item;\n },\n 1,\n true\n );\n }\n\n return links;\n },\n\n beforeDeferLoad(item: Link, indexes: Array<number>, links: Array<Link>) {\n return spliceTree(links, indexes, 1, {\n ...item,\n loading: true\n });\n },\n\n afterDeferLoad(\n item: Link,\n indexes: Array<number>,\n ret: Payload,\n links: Array<Link>\n ) {\n const newItem = {\n ...item,\n loading: false,\n loaded: true,\n error: ret.ok ? undefined : ret.msg\n };\n\n const children = Array.isArray(ret.data)\n ? ret.data\n : ret.data.links || ret.data.options || ret.data.items || ret.data.rows;\n\n if (Array.isArray(children)) {\n newItem.children = children.concat();\n newItem.unfolded = true;\n }\n\n return spliceTree(links, indexes, 1, newItem);\n }\n})(\n class extends React.Component<\n RemoteOptionsProps &\n React.ComponentProps<typeof ThemedNavigation> & {\n location?: any;\n env?: RendererEnv;\n data?: any;\n unfoldedField?: string;\n foldedField?: string;\n reload?: any;\n }\n > {\n constructor(props: any) {\n super(props);\n this.toggleLink = this.toggleLink.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.dragUpdate = this.dragUpdate.bind(this);\n }\n\n componentDidMount() {\n if (Array.isArray(this.props.links)) {\n this.props.updateConfig(this.props.links, 'mount');\n }\n }\n\n componentDidUpdate(prevProps: any) {\n if (this.props.location !== prevProps.location) {\n this.props.updateConfig(this.props.config, 'location-change');\n } else if (this.props.links !== prevProps.links) {\n this.props.updateConfig(this.props.links, 'update');\n }\n }\n\n toggleLink(target: Link, forceFold?: boolean) {\n const {config, updateConfig, deferLoad} = this.props;\n\n if (target.defer && !target.loaded) {\n deferLoad(target);\n } else {\n updateConfig(\n mapTree(config, (link: Link) =>\n target === link\n ? {\n ...link,\n unfolded: forceFold ? false : !link.unfolded\n }\n : link\n ),\n 'toggle'\n );\n }\n }\n\n async dragUpdate(dropInfo: IDropInfo) {\n let links = this.props.config;\n const {nodeId, dragLink, position} = dropInfo;\n if (dragLink) {\n // 删除原节点\n const sourceIdx = findTreeIndex(\n links,\n link => link.__id === dragLink.__id\n ) as number[];\n links = spliceTree(links, sourceIdx, 1);\n\n if (position === 'self') {\n // 插入到对应节点的children中\n mapTree(links, link => {\n if (link.__id === nodeId) {\n if (!link.children) {\n link.children = [];\n }\n link.children.push(dragLink);\n }\n return link;\n });\n } else {\n // 找到需要插入的节点\n const idx = findTreeIndex(\n links,\n link => link.__id === nodeId\n ) as number[];\n // 插入节点之后\n if (position === 'bottom') {\n idx.push((idx.pop() as number) + 1);\n }\n links = spliceTree(links, idx, 0, dragLink);\n }\n }\n this.props.updateConfig(links, 'update');\n await this.saveOrder(\n mapTree(links, (link: Link) => {\n // 清除内部加的字段\n for (let key in link) {\n if (/^__.*$/.test(key)) {\n delete link[key];\n }\n }\n return link;\n })\n );\n }\n\n async saveOrder(links: Links) {\n const {saveOrderApi, env, data, reload} = this.props;\n if (saveOrderApi && isEffectiveApi(saveOrderApi)) {\n await env.fetcher(\n saveOrderApi as SchemaApi,\n createObject(data, {data: links}),\n {method: 'post'}\n );\n reload();\n } else {\n env.alert('NAV saveOrderApi is required!');\n }\n }\n\n handleSelect(link: Link) {\n const {onSelect, env, data} = this.props;\n if (onSelect && onSelect(link) === false) {\n return;\n }\n\n if (\n !link.to &&\n ((link.children && link.children.length) ||\n (link.defer && !link.loaded))\n ) {\n this.toggleLink(link);\n return;\n }\n\n env?.jumpTo(filter(link.to as string, data), link as any);\n }\n\n render() {\n const {loading, config, deferLoad, updateConfig, ...rest} = this.props;\n return (\n <ThemedNavigation\n {...rest}\n loading={loading}\n links={config || []}\n disabled={loading}\n onSelect={this.handleSelect}\n onToggle={this.toggleLink}\n onDragUpdate={this.dragUpdate}\n />\n );\n }\n }\n);\n\nexport default ThemedNavigation;\n@Renderer({\n test: /(^|\\/)(?:nav|navigation)$/,\n name: 'nav'\n})\nexport class NavigationRenderer extends React.Component<RendererProps> {\n static contextType = ScopedContext;\n\n remoteRef:\n | {\n loadConfig: (ctx?: any) => Promise<any> | void;\n setConfig: (value: any) => void;\n }\n | undefined = undefined;\n\n @autobind\n remoteConfigRef(ref: any) {\n this.remoteRef = ref;\n }\n\n constructor(props: RendererProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n @autobind\n reload(target?: string, query?: any, values?: object) {\n if (query) {\n return this.receive(query);\n }\n\n const {data, env, source, translate: __} = this.props;\n const finalData = values ? createObject(data, values) : data;\n\n this.remoteRef?.loadConfig(finalData);\n }\n\n @autobind\n receive(values: object) {\n this.reload(undefined, undefined, values);\n }\n\n render() {\n const {...rest} = this.props;\n return (\n <ConditionBuilderWithRemoteOptions\n {...rest}\n reload={this.reload}\n remoteConfigRef={this.remoteConfigRef}\n />\n );\n }\n}\n"
12
12
  ]
13
13
  }
@@ -53,6 +53,12 @@ export interface PageSchema extends BaseSchema {
53
53
  * 边栏是否允许拖动
54
54
  */
55
55
  asideResizor?: boolean;
56
+ /**
57
+ * 边栏内容是否粘住,即不跟随滚动。
58
+ *
59
+ * @default true
60
+ */
61
+ asideSticky?: boolean;
56
62
  /**
57
63
  * 边栏最小宽度
58
64
  */
@@ -139,6 +145,14 @@ export interface PageSchema extends BaseSchema {
139
145
  style?: {
140
146
  [propName: string]: any;
141
147
  };
148
+ /**
149
+ * 下拉刷新配置
150
+ */
151
+ pullRefresh?: {
152
+ disabled?: boolean;
153
+ pullingText?: string;
154
+ loosingText?: string;
155
+ };
142
156
  }
143
157
  export interface PageProps extends RendererProps, Omit<PageSchema, 'type' | 'className'> {
144
158
  data: any;
@@ -153,6 +167,7 @@ export default class Page extends React.Component<PageProps> {
153
167
  startX: number;
154
168
  startWidth: number;
155
169
  codeWrap: HTMLElement;
170
+ asideInner: React.RefObject<HTMLDivElement>;
156
171
  static defaultProps: {
157
172
  asideClassName: string;
158
173
  bodyClassName: string;
@@ -160,6 +175,10 @@ export default class Page extends React.Component<PageProps> {
160
175
  initFetch: boolean;
161
176
  toolbarClassName: string;
162
177
  messages: {};
178
+ asideSticky: boolean;
179
+ pullRefresh: {
180
+ disabled: boolean;
181
+ };
163
182
  };
164
183
  static propsList: Array<keyof PageProps>;
165
184
  constructor(props: PageProps);
@@ -191,6 +210,7 @@ export default class Page extends React.Component<PageProps> {
191
210
  receive(values: object): void;
192
211
  silentReload(target?: string, query?: any): void;
193
212
  initInterval(value: any): any;
213
+ handleRefresh(): Promise<void>;
194
214
  handleChange(value: any, name: string, submit?: boolean, changePristine?: boolean): void;
195
215
  renderHeader(): JSX.Element | undefined;
196
216
  render(): JSX.Element;
@@ -203,5 +223,6 @@ export declare class PageRenderer extends Page {
203
223
  handleAction(e: React.UIEvent<any>, action: Action, ctx: object, throwErrors?: boolean, delegate?: IScopedContext): void;
204
224
  handleDialogConfirm(values: object[], action: Action, ...rest: Array<any>): void;
205
225
  handleDrawerConfirm(values: object[], action: Action, ...rest: Array<any>): void;
226
+ setData(values: object): void;
206
227
  }
207
228
  export {};
@@ -12,10 +12,13 @@ var Alert2_1 = (0, tslib_1.__importDefault)(require("../components/Alert2"));
12
12
  var api_1 = require("../utils/api");
13
13
  var components_1 = require("../components");
14
14
  var style_1 = require("../utils/style");
15
+ var PullRefresh_1 = (0, tslib_1.__importDefault)(require("../components/PullRefresh"));
16
+ var scrollPosition_1 = require("../utils/scrollPosition");
15
17
  var Page = /** @class */ (function (_super) {
16
18
  (0, tslib_1.__extends)(Page, _super);
17
19
  function Page(props) {
18
20
  var _this = _super.call(this, props) || this;
21
+ _this.asideInner = react_1.default.createRef();
19
22
  // autobind 会让继承里面的 super 指向有问题,所以先这样!
20
23
  (0, helper_1.bulkBindFunctions)(_this, [
21
24
  'handleAction',
@@ -91,7 +94,7 @@ var Page = /** @class */ (function (_super) {
91
94
  }
92
95
  };
93
96
  Page.prototype.componentDidMount = function () {
94
- var _a = this.props, initApi = _a.initApi, initFetch = _a.initFetch, initFetchOn = _a.initFetchOn, store = _a.store, messages = _a.messages;
97
+ var _a = this.props, initApi = _a.initApi, initFetch = _a.initFetch, initFetchOn = _a.initFetchOn, store = _a.store, messages = _a.messages, asideSticky = _a.asideSticky;
95
98
  this.mounted = true;
96
99
  if ((0, api_1.isEffectiveApi)(initApi, store.data, initFetch, initFetchOn)) {
97
100
  store
@@ -101,6 +104,10 @@ var Page = /** @class */ (function (_super) {
101
104
  })
102
105
  .then(this.initInterval);
103
106
  }
107
+ if (asideSticky && this.asideInner.current) {
108
+ var dom = this.asideInner.current;
109
+ dom.style.cssText += "position: sticky; top: ".concat((0, scrollPosition_1.scrollPosition)(dom).top, "px;");
110
+ }
104
111
  };
105
112
  Page.prototype.componentDidUpdate = function (prevProps) {
106
113
  var props = this.props;
@@ -315,6 +322,25 @@ var Page = /** @class */ (function (_super) {
315
322
  (this.timer = setTimeout(silentPolling ? this.silentReload : this.reload, Math.max(interval, 1000)));
316
323
  return value;
317
324
  };
325
+ Page.prototype.handleRefresh = function () {
326
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
327
+ var _a, dispatchEvent, data, rendererEvent;
328
+ return (0, tslib_1.__generator)(this, function (_b) {
329
+ switch (_b.label) {
330
+ case 0:
331
+ _a = this.props, dispatchEvent = _a.dispatchEvent, data = _a.data;
332
+ return [4 /*yield*/, dispatchEvent('pullRefresh', data)];
333
+ case 1:
334
+ rendererEvent = _b.sent();
335
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
336
+ return [2 /*return*/];
337
+ }
338
+ this.reload();
339
+ return [2 /*return*/];
340
+ }
341
+ });
342
+ });
343
+ };
318
344
  Page.prototype.handleChange = function (value, name, submit, changePristine) {
319
345
  var _a = this.props, store = _a.store, onChange = _a.onChange;
320
346
  if (typeof name === 'string' && name) {
@@ -356,7 +382,7 @@ var Page = /** @class */ (function (_super) {
356
382
  return header || right;
357
383
  };
358
384
  Page.prototype.render = function () {
359
- var _a = this.props, className = _a.className, store = _a.store, body = _a.body, bodyClassName = _a.bodyClassName, render = _a.render, aside = _a.aside, asideClassName = _a.asideClassName, cx = _a.classnames, header = _a.header, showErrorMsg = _a.showErrorMsg, initApi = _a.initApi, regions = _a.regions, style = _a.style, data = _a.data, asideResizor = _a.asideResizor, __ = _a.translate;
385
+ var _a = this.props, className = _a.className, store = _a.store, body = _a.body, bodyClassName = _a.bodyClassName, render = _a.render, aside = _a.aside, asideClassName = _a.asideClassName, cx = _a.classnames, header = _a.header, showErrorMsg = _a.showErrorMsg, initApi = _a.initApi, regions = _a.regions, style = _a.style, data = _a.data, asideResizor = _a.asideResizor, pullRefresh = _a.pullRefresh, __ = _a.translate;
360
386
  var subProps = {
361
387
  onAction: this.handleAction,
362
388
  onQuery: initApi ? this.handleQuery : undefined,
@@ -367,24 +393,25 @@ var Page = /** @class */ (function (_super) {
367
393
  ? ~regions.indexOf('aside')
368
394
  : aside && (!Array.isArray(aside) || aside.length);
369
395
  var styleVar = (0, style_1.buildStyle)(style, data);
396
+ var pageContent = (react_1.default.createElement("div", { className: cx('Page-content') },
397
+ react_1.default.createElement("div", { className: cx('Page-main') },
398
+ this.renderHeader(),
399
+ react_1.default.createElement("div", { className: cx("Page-body", bodyClassName) },
400
+ react_1.default.createElement(components_1.Spinner, { size: "lg", overlay: true, key: "info", show: store.loading }),
401
+ store.error && showErrorMsg !== false ? (react_1.default.createElement(Alert2_1.default, { level: "danger", showCloseButton: true, onClose: store.clearMessage }, store.msg)) : null,
402
+ (Array.isArray(regions) ? ~regions.indexOf('body') : body)
403
+ ? render('body', body || '', subProps)
404
+ : null))));
370
405
  return (react_1.default.createElement("div", { className: cx("Page", hasAside ? "Page--withSidebar" : '', className), onClick: this.handleClick, style: styleVar },
371
406
  hasAside ? (react_1.default.createElement("div", { className: cx("Page-aside", asideResizor ? 'relative' : 'Page-aside--withWidth', asideClassName) },
372
- render('aside', aside || '', (0, tslib_1.__assign)((0, tslib_1.__assign)({}, subProps), (typeof aside === 'string'
407
+ react_1.default.createElement("div", { className: cx("Page-asideInner"), ref: this.asideInner }, render('aside', aside || '', (0, tslib_1.__assign)((0, tslib_1.__assign)({}, subProps), (typeof aside === 'string'
373
408
  ? {
374
409
  inline: false,
375
410
  className: "Page-asideTplWrapper"
376
411
  }
377
- : null))),
412
+ : null)))),
378
413
  asideResizor ? (react_1.default.createElement("div", { onMouseDown: this.handleResizeMouseDown, className: cx("Page-asideResizor") })) : null)) : null,
379
- react_1.default.createElement("div", { className: cx('Page-content') },
380
- react_1.default.createElement("div", { className: cx('Page-main') },
381
- this.renderHeader(),
382
- react_1.default.createElement("div", { className: cx("Page-body", bodyClassName) },
383
- react_1.default.createElement(components_1.Spinner, { size: "lg", overlay: true, key: "info", show: store.loading }),
384
- store.error && showErrorMsg !== false ? (react_1.default.createElement(Alert2_1.default, { level: "danger", showCloseButton: true, onClose: store.clearMessage }, store.msg)) : null,
385
- (Array.isArray(regions) ? ~regions.indexOf('body') : body)
386
- ? render('body', body || '', subProps)
387
- : null))),
414
+ pullRefresh && !pullRefresh.disabled ? (react_1.default.createElement(PullRefresh_1.default, (0, tslib_1.__assign)({}, pullRefresh, { translate: __, onRefresh: this.handleRefresh }), pageContent)) : (pageContent),
388
415
  render('dialog', (0, tslib_1.__assign)((0, tslib_1.__assign)({}, (store.action &&
389
416
  store.action.dialog)), { type: 'dialog' }), {
390
417
  key: 'dialog',
@@ -414,7 +441,11 @@ var Page = /** @class */ (function (_super) {
414
441
  initFetch: true,
415
442
  // primaryField: 'id',
416
443
  toolbarClassName: '',
417
- messages: {}
444
+ messages: {},
445
+ asideSticky: true,
446
+ pullRefresh: {
447
+ disabled: true
448
+ }
418
449
  };
419
450
  Page.propsList = [
420
451
  'title',
@@ -451,6 +482,12 @@ var Page = /** @class */ (function (_super) {
451
482
  (0, tslib_1.__metadata)("design:paramtypes", []),
452
483
  (0, tslib_1.__metadata)("design:returntype", void 0)
453
484
  ], Page.prototype, "handleResizeMouseUp", null);
485
+ (0, tslib_1.__decorate)([
486
+ helper_1.autobind,
487
+ (0, tslib_1.__metadata)("design:type", Function),
488
+ (0, tslib_1.__metadata)("design:paramtypes", []),
489
+ (0, tslib_1.__metadata)("design:returntype", Promise)
490
+ ], Page.prototype, "handleRefresh", null);
454
491
  return Page;
455
492
  }(react_1.default.Component));
456
493
  exports.default = Page;
@@ -540,6 +577,9 @@ var PageRenderer = /** @class */ (function (_super) {
540
577
  }
541
578
  }, 300);
542
579
  };
580
+ PageRenderer.prototype.setData = function (values) {
581
+ return this.props.store.updateData(values);
582
+ };
543
583
  var _c;
544
584
  PageRenderer.contextType = Scoped_1.ScopedContext;
545
585
  PageRenderer = (0, tslib_1.__decorate)([