amis 2.0.0-rc.14 → 2.0.0-rc.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (521) hide show
  1. package/esm/Schema.d.ts +442 -0
  2. package/esm/compat.d.ts +1 -0
  3. package/esm/compat.js +459 -0
  4. package/esm/index.d.ts +146 -0
  5. package/esm/index.js +144 -0
  6. package/esm/preset.d.ts +1 -0
  7. package/esm/preset.js +40 -0
  8. package/esm/renderers/Action.d.ts +393 -0
  9. package/esm/renderers/Action.js +443 -0
  10. package/esm/renderers/Alert.d.ts +49 -0
  11. package/esm/renderers/Alert.js +35 -0
  12. package/esm/renderers/AnchorNav.d.ts +69 -0
  13. package/esm/renderers/AnchorNav.js +97 -0
  14. package/esm/renderers/App.d.ts +121 -0
  15. package/esm/renderers/App.js +198 -0
  16. package/esm/renderers/Audio.d.ts +88 -0
  17. package/esm/renderers/Audio.js +382 -0
  18. package/esm/renderers/Avatar.d.ts +75 -0
  19. package/esm/renderers/Avatar.js +54 -0
  20. package/esm/renderers/BarCode.d.ts +35 -0
  21. package/esm/renderers/BarCode.js +38 -0
  22. package/esm/renderers/Breadcrumb.d.ts +89 -0
  23. package/esm/renderers/Breadcrumb.js +58 -0
  24. package/esm/renderers/ButtonGroup.d.ts +64 -0
  25. package/esm/renderers/ButtonGroup.js +22 -0
  26. package/esm/renderers/CRUD.d.ts +302 -0
  27. package/esm/renderers/CRUD.js +1245 -0
  28. package/esm/renderers/CRUD2.d.ts +215 -0
  29. package/esm/renderers/CRUD2.js +742 -0
  30. package/esm/renderers/Calendar.d.ts +45 -0
  31. package/esm/renderers/Calendar.js +22 -0
  32. package/esm/renderers/Card.d.ts +231 -0
  33. package/esm/renderers/Card.js +372 -0
  34. package/esm/renderers/Card2.d.ts +77 -0
  35. package/esm/renderers/Card2.js +83 -0
  36. package/esm/renderers/Cards.d.ts +170 -0
  37. package/esm/renderers/Cards.js +556 -0
  38. package/esm/renderers/Carousel.d.ts +103 -0
  39. package/esm/renderers/Carousel.js +329 -0
  40. package/esm/renderers/Chart.d.ts +116 -0
  41. package/esm/renderers/Chart.js +352 -0
  42. package/esm/renderers/Code.d.ts +84 -0
  43. package/esm/renderers/Code.js +130 -0
  44. package/esm/renderers/Collapse.d.ts +83 -0
  45. package/esm/renderers/Collapse.js +47 -0
  46. package/esm/renderers/CollapseGroup.d.ts +42 -0
  47. package/esm/renderers/CollapseGroup.js +35 -0
  48. package/esm/renderers/Color.d.ts +36 -0
  49. package/esm/renderers/Color.js +42 -0
  50. package/esm/renderers/Container.d.ts +44 -0
  51. package/esm/renderers/Container.js +49 -0
  52. package/esm/renderers/Copyable.d.ts +25 -0
  53. package/esm/renderers/Copyable.js +49 -0
  54. package/esm/renderers/Custom.d.ts +51 -0
  55. package/esm/renderers/Custom.js +163 -0
  56. package/esm/renderers/Date.d.ts +58 -0
  57. package/esm/renderers/Date.js +121 -0
  58. package/esm/renderers/Dialog.d.ts +1357 -0
  59. package/esm/renderers/Dialog.js +633 -0
  60. package/esm/renderers/Divider.d.ts +20 -0
  61. package/esm/renderers/Divider.js +38 -0
  62. package/esm/renderers/Drawer.d.ts +153 -0
  63. package/esm/renderers/Drawer.js +608 -0
  64. package/esm/renderers/DropDownButton.d.ts +114 -0
  65. package/esm/renderers/DropDownButton.js +151 -0
  66. package/esm/renderers/Each.d.ts +38 -0
  67. package/esm/renderers/Each.js +59 -0
  68. package/esm/renderers/Flex.d.ts +77 -0
  69. package/esm/renderers/Flex.js +83 -0
  70. package/esm/renderers/Form/ButtonGroupSelect.d.ts +26 -0
  71. package/esm/renderers/Form/ButtonGroupSelect.js +114 -0
  72. package/esm/renderers/Form/ButtonToolbar.d.ts +28 -0
  73. package/esm/renderers/Form/ButtonToolbar.js +50 -0
  74. package/esm/renderers/Form/ChainedSelect.d.ts +36 -0
  75. package/esm/renderers/Form/ChainedSelect.js +213 -0
  76. package/esm/renderers/Form/ChartRadios.d.ts +34 -0
  77. package/esm/renderers/Form/ChartRadios.js +121 -0
  78. package/esm/renderers/Form/Checkbox.d.ts +47 -0
  79. package/esm/renderers/Form/Checkbox.js +83 -0
  80. package/esm/renderers/Form/Checkboxes.d.ts +65 -0
  81. package/esm/renderers/Form/Checkboxes.js +226 -0
  82. package/esm/renderers/Form/Combo.d.ts +251 -0
  83. package/esm/renderers/Form/Combo.js +822 -0
  84. package/esm/renderers/Form/ConditionBuilder.d.ts +56 -0
  85. package/esm/renderers/Form/ConditionBuilder.js +69 -0
  86. package/esm/renderers/Form/Control.d.ts +18 -0
  87. package/esm/renderers/Form/Control.js +38 -0
  88. package/esm/renderers/Form/DiffEditor.d.ts +3925 -0
  89. package/esm/renderers/Form/DiffEditor.js +199 -0
  90. package/esm/renderers/Form/Editor.d.ts +3856 -0
  91. package/esm/renderers/Form/Editor.js +247 -0
  92. package/esm/renderers/Form/FieldSet.d.ts +70 -0
  93. package/esm/renderers/Form/FieldSet.js +59 -0
  94. package/esm/renderers/Form/Formula.d.ts +53 -0
  95. package/esm/renderers/Form/Formula.js +128 -0
  96. package/esm/renderers/Form/Group.d.ts +57 -0
  97. package/esm/renderers/Form/Group.js +99 -0
  98. package/esm/renderers/Form/Hidden.d.ts +15 -0
  99. package/esm/renderers/Form/Hidden.js +35 -0
  100. package/esm/renderers/Form/IconPicker.d.ts +49 -0
  101. package/esm/renderers/Form/IconPicker.js +305 -0
  102. package/esm/renderers/Form/IconPickerIcons.d.ts +8 -0
  103. package/esm/renderers/Form/IconPickerIcons.js +26 -0
  104. package/esm/renderers/Form/InputArray.d.ts +31 -0
  105. package/esm/renderers/Form/InputArray.js +45 -0
  106. package/esm/renderers/Form/InputCity.d.ts +654 -0
  107. package/esm/renderers/Form/InputCity.js +347 -0
  108. package/esm/renderers/Form/InputColor.d.ts +504 -0
  109. package/esm/renderers/Form/InputColor.js +52 -0
  110. package/esm/renderers/Form/InputDate.d.ts +359 -0
  111. package/esm/renderers/Form/InputDate.js +258 -0
  112. package/esm/renderers/Form/InputDateRange.d.ts +121 -0
  113. package/esm/renderers/Form/InputDateRange.js +166 -0
  114. package/esm/renderers/Form/InputExcel.d.ts +51 -0
  115. package/esm/renderers/Form/InputExcel.js +195 -0
  116. package/esm/renderers/Form/InputFile.d.ts +252 -0
  117. package/esm/renderers/Form/InputFile.js +922 -0
  118. package/esm/renderers/Form/InputFormula.d.ts +91 -0
  119. package/esm/renderers/Form/InputFormula.js +67 -0
  120. package/esm/renderers/Form/InputGroup.d.ts +33 -0
  121. package/esm/renderers/Form/InputGroup.js +111 -0
  122. package/esm/renderers/Form/InputImage.d.ts +315 -0
  123. package/esm/renderers/Form/InputImage.js +896 -0
  124. package/esm/renderers/Form/InputMonthRange.d.ts +22 -0
  125. package/esm/renderers/Form/InputMonthRange.js +46 -0
  126. package/esm/renderers/Form/InputNumber.d.ts +128 -0
  127. package/esm/renderers/Form/InputNumber.js +210 -0
  128. package/esm/renderers/Form/InputQuarterRange.d.ts +22 -0
  129. package/esm/renderers/Form/InputQuarterRange.js +46 -0
  130. package/esm/renderers/Form/InputRange.d.ts +271 -0
  131. package/esm/renderers/Form/InputRange.js +388 -0
  132. package/esm/renderers/Form/InputRating.d.ts +74 -0
  133. package/esm/renderers/Form/InputRating.js +82 -0
  134. package/esm/renderers/Form/InputRepeat.d.ts +35 -0
  135. package/esm/renderers/Form/InputRepeat.js +115 -0
  136. package/esm/renderers/Form/InputRichText.d.ts +56 -0
  137. package/esm/renderers/Form/InputRichText.js +177 -0
  138. package/esm/renderers/Form/InputSubForm.d.ts +123 -0
  139. package/esm/renderers/Form/InputSubForm.js +269 -0
  140. package/esm/renderers/Form/InputTable.d.ts +180 -0
  141. package/esm/renderers/Form/InputTable.js +677 -0
  142. package/esm/renderers/Form/InputTag.d.ts +108 -0
  143. package/esm/renderers/Form/InputTag.js +439 -0
  144. package/esm/renderers/Form/InputText.d.ts +133 -0
  145. package/esm/renderers/Form/InputText.js +632 -0
  146. package/esm/renderers/Form/InputTree.d.ts +83 -0
  147. package/esm/renderers/Form/InputTree.js +104 -0
  148. package/esm/renderers/Form/InputYearRange.d.ts +22 -0
  149. package/esm/renderers/Form/InputYearRange.js +46 -0
  150. package/esm/renderers/Form/JSONSchema.d.ts +24 -0
  151. package/esm/renderers/Form/JSONSchema.js +45 -0
  152. package/esm/renderers/Form/JSONSchemaEditor.d.ts +64 -0
  153. package/esm/renderers/Form/JSONSchemaEditor.js +57 -0
  154. package/esm/renderers/Form/ListSelect.d.ts +45 -0
  155. package/esm/renderers/Form/ListSelect.js +89 -0
  156. package/esm/renderers/Form/LocationPicker.d.ts +35 -0
  157. package/esm/renderers/Form/LocationPicker.js +39 -0
  158. package/esm/renderers/Form/MatrixCheckboxes.d.ts +79 -0
  159. package/esm/renderers/Form/MatrixCheckboxes.js +266 -0
  160. package/esm/renderers/Form/NestedSelect.d.ts +91 -0
  161. package/esm/renderers/Form/NestedSelect.js +703 -0
  162. package/esm/renderers/Form/Picker.d.ts +86 -0
  163. package/esm/renderers/Form/Picker.js +361 -0
  164. package/esm/renderers/Form/Radios.d.ts +39 -0
  165. package/esm/renderers/Form/Radios.js +91 -0
  166. package/esm/renderers/Form/Select.d.ts +140 -0
  167. package/esm/renderers/Form/Select.js +309 -0
  168. package/esm/renderers/Form/Static.d.ts +59 -0
  169. package/esm/renderers/Form/Static.js +109 -0
  170. package/esm/renderers/Form/Switch.d.ts +51 -0
  171. package/esm/renderers/Form/Switch.js +77 -0
  172. package/esm/renderers/Form/TabsTransfer.d.ts +30 -0
  173. package/esm/renderers/Form/TabsTransfer.js +241 -0
  174. package/esm/renderers/Form/TabsTransferPicker.d.ts +26 -0
  175. package/esm/renderers/Form/TabsTransferPicker.js +72 -0
  176. package/esm/renderers/Form/Textarea.d.ts +69 -0
  177. package/esm/renderers/Form/Textarea.js +103 -0
  178. package/esm/renderers/Form/Transfer.d.ts +115 -0
  179. package/esm/renderers/Form/Transfer.js +276 -0
  180. package/esm/renderers/Form/TransferPicker.d.ts +26 -0
  181. package/esm/renderers/Form/TransferPicker.js +66 -0
  182. package/esm/renderers/Form/TreeSelect.d.ts +132 -0
  183. package/esm/renderers/Form/TreeSelect.js +376 -0
  184. package/esm/renderers/Form/UUID.d.ts +22 -0
  185. package/esm/renderers/Form/UUID.js +52 -0
  186. package/esm/renderers/Form/UserSelect.d.ts +55 -0
  187. package/esm/renderers/Form/UserSelect.js +194 -0
  188. package/esm/renderers/Grid.d.ts +82 -0
  189. package/esm/renderers/Grid.js +88 -0
  190. package/esm/renderers/Grid2D.d.ts +91 -0
  191. package/esm/renderers/Grid2D.js +113 -0
  192. package/esm/renderers/GridNav.d.ts +99 -0
  193. package/esm/renderers/GridNav.js +80 -0
  194. package/esm/renderers/HBox.d.ts +95 -0
  195. package/esm/renderers/HBox.js +75 -0
  196. package/esm/renderers/IFrame.d.ts +49 -0
  197. package/esm/renderers/IFrame.js +169 -0
  198. package/esm/renderers/Icon.d.ts +28 -0
  199. package/esm/renderers/Icon.js +60 -0
  200. package/esm/renderers/Image.d.ts +415 -0
  201. package/esm/renderers/Image.js +120 -0
  202. package/esm/renderers/Images.d.ts +80 -0
  203. package/esm/renderers/Images.js +89 -0
  204. package/esm/renderers/Json.d.ts +68 -0
  205. package/esm/renderers/Json.js +98 -0
  206. package/esm/renderers/Link.d.ts +56 -0
  207. package/esm/renderers/Link.js +61 -0
  208. package/esm/renderers/List.d.ts +260 -0
  209. package/esm/renderers/List.js +680 -0
  210. package/esm/renderers/Log.d.ts +91 -0
  211. package/esm/renderers/Log.js +247 -0
  212. package/esm/renderers/Mapping.d.ts +354 -0
  213. package/esm/renderers/Mapping.js +160 -0
  214. package/esm/renderers/Markdown.d.ts +42 -0
  215. package/esm/renderers/Markdown.js +97 -0
  216. package/esm/renderers/Nav.d.ts +258 -0
  217. package/esm/renderers/Nav.js +544 -0
  218. package/esm/renderers/Operation.d.ts +28 -0
  219. package/esm/renderers/Operation.js +43 -0
  220. package/esm/renderers/Page.d.ts +228 -0
  221. package/esm/renderers/Page.js +593 -0
  222. package/esm/renderers/Pagination.d.ts +68 -0
  223. package/esm/renderers/Pagination.js +35 -0
  224. package/esm/renderers/PaginationWrapper.d.ts +67 -0
  225. package/esm/renderers/PaginationWrapper.js +73 -0
  226. package/esm/renderers/Panel.d.ts +86 -0
  227. package/esm/renderers/Panel.js +144 -0
  228. package/esm/renderers/Plain.d.ts +35 -0
  229. package/esm/renderers/Plain.js +42 -0
  230. package/esm/renderers/PopOver.d.ts +69 -0
  231. package/esm/renderers/PopOver.js +166 -0
  232. package/esm/renderers/Portlet.d.ts +125 -0
  233. package/esm/renderers/Portlet.js +152 -0
  234. package/esm/renderers/Progress.d.ts +81 -0
  235. package/esm/renderers/Progress.js +61 -0
  236. package/esm/renderers/Property.d.ts +99 -0
  237. package/esm/renderers/Property.js +95 -0
  238. package/esm/renderers/QRCode.d.ts +63 -0
  239. package/esm/renderers/QRCode.js +75 -0
  240. package/esm/renderers/QuickEdit.d.ts +65 -0
  241. package/esm/renderers/QuickEdit.js +337 -0
  242. package/esm/renderers/Remark.d.ts +105 -0
  243. package/esm/renderers/Remark.js +100 -0
  244. package/esm/renderers/SearchBox.d.ts +69 -0
  245. package/esm/renderers/SearchBox.js +77 -0
  246. package/esm/renderers/Service.d.ts +120 -0
  247. package/esm/renderers/Service.js +437 -0
  248. package/esm/renderers/SparkLine.d.ts +44 -0
  249. package/esm/renderers/SparkLine.js +40 -0
  250. package/esm/renderers/Spinner.d.ts +64 -0
  251. package/esm/renderers/Spinner.js +32 -0
  252. package/esm/renderers/Status.d.ts +55 -0
  253. package/esm/renderers/Status.js +84 -0
  254. package/esm/renderers/Steps.d.ts +66 -0
  255. package/esm/renderers/Steps.js +77 -0
  256. package/esm/renderers/Table/ColumnToggler.d.ts +120 -0
  257. package/esm/renderers/Table/ColumnToggler.js +255 -0
  258. package/esm/renderers/Table/HeadCellFilterDropdown.d.ts +32 -0
  259. package/esm/renderers/Table/HeadCellFilterDropdown.js +211 -0
  260. package/esm/renderers/Table/HeadCellSearchDropdown.d.ts +32 -0
  261. package/esm/renderers/Table/HeadCellSearchDropdown.js +193 -0
  262. package/esm/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  263. package/esm/renderers/Table/ItemActionsWrapper.js +35 -0
  264. package/esm/renderers/Table/TableBody.d.ts +90 -0
  265. package/esm/renderers/Table/TableBody.js +105 -0
  266. package/esm/renderers/Table/TableCell.d.ts +21 -0
  267. package/esm/renderers/Table/TableCell.js +139 -0
  268. package/esm/renderers/Table/TableContent.d.ts +54 -0
  269. package/esm/renderers/Table/TableContent.js +69 -0
  270. package/esm/renderers/Table/TableRow.d.ts +27 -0
  271. package/esm/renderers/Table/TableRow.js +129 -0
  272. package/esm/renderers/Table/exportExcel.d.ts +6 -0
  273. package/esm/renderers/Table/exportExcel.js +301 -0
  274. package/esm/renderers/Table/index.d.ts +371 -0
  275. package/esm/renderers/Table/index.js +1533 -0
  276. package/esm/renderers/Table-v2/ColumnToggler.d.ts +19 -0
  277. package/esm/renderers/Table-v2/ColumnToggler.js +88 -0
  278. package/esm/renderers/Table-v2/HeadCellSearchDropdown.d.ts +29 -0
  279. package/esm/renderers/Table-v2/HeadCellSearchDropdown.js +206 -0
  280. package/esm/renderers/Table-v2/TableCell.d.ts +6 -0
  281. package/esm/renderers/Table-v2/TableCell.js +30 -0
  282. package/esm/renderers/Table-v2/index.d.ts +285 -0
  283. package/esm/renderers/Table-v2/index.js +832 -0
  284. package/esm/renderers/TableView.d.ts +136 -0
  285. package/esm/renderers/TableView.js +95 -0
  286. package/esm/renderers/Tabs.d.ts +204 -0
  287. package/esm/renderers/Tabs.js +501 -0
  288. package/esm/renderers/Tag.d.ts +66 -0
  289. package/esm/renderers/Tag.js +50 -0
  290. package/esm/renderers/Tasks.d.ts +140 -0
  291. package/esm/renderers/Tasks.js +209 -0
  292. package/esm/renderers/Timeline.d.ts +65 -0
  293. package/esm/renderers/Timeline.js +54 -0
  294. package/esm/renderers/TooltipWrapper.d.ts +133 -0
  295. package/esm/renderers/TooltipWrapper.js +70 -0
  296. package/esm/renderers/Tpl.d.ts +51 -0
  297. package/esm/renderers/Tpl.js +88 -0
  298. package/esm/renderers/VBox.d.ts +30 -0
  299. package/esm/renderers/VBox.js +48 -0
  300. package/esm/renderers/Video.d.ts +171 -0
  301. package/esm/renderers/Video.js +457 -0
  302. package/esm/renderers/WebComponent.d.ts +33 -0
  303. package/esm/renderers/WebComponent.js +48 -0
  304. package/esm/renderers/Wizard.d.ts +179 -0
  305. package/esm/renderers/Wizard.js +926 -0
  306. package/esm/renderers/Wrapper.d.ts +36 -0
  307. package/esm/renderers/Wrapper.js +53 -0
  308. package/esm/schemaExtend.d.ts +1 -0
  309. package/esm/schemaExtend.js +72 -0
  310. package/esm/types.d.ts +160 -0
  311. package/lib/Schema.d.ts +1 -1
  312. package/lib/compat.js +1 -1
  313. package/lib/helper.css +0 -1
  314. package/lib/index.js +1 -1
  315. package/lib/preset.js +1 -1
  316. package/lib/renderers/Action.js +1 -1
  317. package/lib/renderers/Alert.js +1 -1
  318. package/lib/renderers/AnchorNav.js +1 -1
  319. package/lib/renderers/App.js +1 -1
  320. package/lib/renderers/Audio.js +1 -1
  321. package/lib/renderers/Avatar.js +1 -1
  322. package/lib/renderers/BarCode.js +1 -1
  323. package/lib/renderers/Breadcrumb.js +1 -1
  324. package/lib/renderers/ButtonGroup.js +1 -1
  325. package/lib/renderers/CRUD.js +3 -3
  326. package/lib/renderers/CRUD2.d.ts +3 -1
  327. package/lib/renderers/CRUD2.js +33 -3
  328. package/lib/renderers/Calendar.js +1 -1
  329. package/lib/renderers/Card.js +1 -1
  330. package/lib/renderers/Card2.js +1 -1
  331. package/lib/renderers/Cards.js +1 -1
  332. package/lib/renderers/Carousel.js +1 -1
  333. package/lib/renderers/Chart.js +1 -1
  334. package/lib/renderers/Code.js +1 -1
  335. package/lib/renderers/Collapse.js +1 -1
  336. package/lib/renderers/CollapseGroup.js +1 -1
  337. package/lib/renderers/Color.js +1 -1
  338. package/lib/renderers/Container.js +1 -1
  339. package/lib/renderers/Copyable.js +1 -1
  340. package/lib/renderers/Custom.js +1 -1
  341. package/lib/renderers/Date.js +1 -1
  342. package/lib/renderers/Dialog.d.ts +40 -40
  343. package/lib/renderers/Dialog.js +1 -1
  344. package/lib/renderers/Divider.js +1 -1
  345. package/lib/renderers/Drawer.js +1 -1
  346. package/lib/renderers/DropDownButton.js +3 -3
  347. package/lib/renderers/Each.js +1 -1
  348. package/lib/renderers/Flex.js +1 -1
  349. package/lib/renderers/Form/ButtonGroupSelect.js +2 -2
  350. package/lib/renderers/Form/ButtonToolbar.js +1 -1
  351. package/lib/renderers/Form/ChainedSelect.js +1 -1
  352. package/lib/renderers/Form/ChartRadios.js +1 -1
  353. package/lib/renderers/Form/Checkbox.js +1 -1
  354. package/lib/renderers/Form/Checkboxes.d.ts +5 -0
  355. package/lib/renderers/Form/Checkboxes.js +8 -3
  356. package/lib/renderers/Form/Combo.js +3 -2
  357. package/lib/renderers/Form/ConditionBuilder.js +1 -1
  358. package/lib/renderers/Form/Control.js +1 -1
  359. package/lib/renderers/Form/DiffEditor.d.ts +656 -138
  360. package/lib/renderers/Form/DiffEditor.js +1 -1
  361. package/lib/renderers/Form/Editor.d.ts +649 -131
  362. package/lib/renderers/Form/Editor.js +1 -1
  363. package/lib/renderers/Form/FieldSet.js +1 -1
  364. package/lib/renderers/Form/Formula.js +1 -1
  365. package/lib/renderers/Form/Group.js +2 -2
  366. package/lib/renderers/Form/Hidden.js +1 -1
  367. package/lib/renderers/Form/IconPicker.js +1 -1
  368. package/lib/renderers/Form/IconPickerIcons.js +1 -1
  369. package/lib/renderers/Form/InputArray.js +1 -1
  370. package/lib/renderers/Form/InputCity.d.ts +40 -40
  371. package/lib/renderers/Form/InputCity.js +1 -1
  372. package/lib/renderers/Form/InputColor.d.ts +40 -40
  373. package/lib/renderers/Form/InputColor.js +1 -1
  374. package/lib/renderers/Form/InputDate.js +1 -1
  375. package/lib/renderers/Form/InputDateRange.js +1 -1
  376. package/lib/renderers/Form/InputExcel.js +1 -1
  377. package/lib/renderers/Form/InputFile.js +5 -1
  378. package/lib/renderers/Form/InputFormula.js +1 -1
  379. package/lib/renderers/Form/InputGroup.js +1 -1
  380. package/lib/renderers/Form/InputImage.js +5 -1
  381. package/lib/renderers/Form/InputMonthRange.js +1 -1
  382. package/lib/renderers/Form/InputNumber.js +1 -1
  383. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  384. package/lib/renderers/Form/InputRange.d.ts +12 -5
  385. package/lib/renderers/Form/InputRange.js +1 -1
  386. package/lib/renderers/Form/InputRating.js +1 -1
  387. package/lib/renderers/Form/InputRepeat.js +1 -1
  388. package/lib/renderers/Form/InputRichText.js +1 -1
  389. package/lib/renderers/Form/InputSubForm.js +1 -1
  390. package/lib/renderers/Form/InputTable.js +1 -1
  391. package/lib/renderers/Form/InputTag.d.ts +34 -0
  392. package/lib/renderers/Form/InputTag.js +78 -40
  393. package/lib/renderers/Form/InputText.js +1 -1
  394. package/lib/renderers/Form/InputTree.js +1 -1
  395. package/lib/renderers/Form/InputYearRange.js +1 -1
  396. package/lib/renderers/Form/JSONSchema.js +1 -1
  397. package/lib/renderers/Form/JSONSchemaEditor.js +1 -1
  398. package/lib/renderers/Form/ListSelect.js +1 -1
  399. package/lib/renderers/Form/LocationPicker.js +1 -1
  400. package/lib/renderers/Form/MatrixCheckboxes.js +1 -1
  401. package/lib/renderers/Form/NestedSelect.js +4 -4
  402. package/lib/renderers/Form/Picker.js +1 -1
  403. package/lib/renderers/Form/Radios.d.ts +6 -1
  404. package/lib/renderers/Form/Radios.js +5 -3
  405. package/lib/renderers/Form/Select.js +1 -1
  406. package/lib/renderers/Form/Static.js +1 -1
  407. package/lib/renderers/Form/Switch.js +1 -1
  408. package/lib/renderers/Form/TabsTransfer.js +1 -1
  409. package/lib/renderers/Form/TabsTransferPicker.js +1 -1
  410. package/lib/renderers/Form/Textarea.js +1 -1
  411. package/lib/renderers/Form/Transfer.js +1 -1
  412. package/lib/renderers/Form/TransferPicker.js +1 -1
  413. package/lib/renderers/Form/TreeSelect.js +4 -4
  414. package/lib/renderers/Form/UUID.js +1 -1
  415. package/lib/renderers/Form/UserSelect.js +1 -1
  416. package/lib/renderers/Grid.js +1 -1
  417. package/lib/renderers/Grid2D.js +1 -1
  418. package/lib/renderers/GridNav.js +1 -1
  419. package/lib/renderers/HBox.js +1 -1
  420. package/lib/renderers/IFrame.js +1 -1
  421. package/lib/renderers/Icon.js +1 -1
  422. package/lib/renderers/Image.js +1 -1
  423. package/lib/renderers/Images.js +1 -1
  424. package/lib/renderers/Json.d.ts +4 -0
  425. package/lib/renderers/Json.js +5 -4
  426. package/lib/renderers/Link.js +1 -1
  427. package/lib/renderers/List.d.ts +1 -0
  428. package/lib/renderers/List.js +30 -25
  429. package/lib/renderers/Log.js +1 -1
  430. package/lib/renderers/Mapping.js +1 -1
  431. package/lib/renderers/Markdown.js +1 -1
  432. package/lib/renderers/Nav.d.ts +10 -10
  433. package/lib/renderers/Nav.js +1 -1
  434. package/lib/renderers/Operation.js +1 -1
  435. package/lib/renderers/Page.js +1 -1
  436. package/lib/renderers/Pagination.js +1 -1
  437. package/lib/renderers/PaginationWrapper.js +1 -1
  438. package/lib/renderers/Panel.js +1 -1
  439. package/lib/renderers/Plain.js +1 -1
  440. package/lib/renderers/PopOver.js +4 -4
  441. package/lib/renderers/Portlet.js +1 -1
  442. package/lib/renderers/Progress.js +1 -1
  443. package/lib/renderers/Property.js +1 -1
  444. package/lib/renderers/QRCode.js +1 -1
  445. package/lib/renderers/QuickEdit.js +4 -3
  446. package/lib/renderers/Remark.d.ts +1 -1
  447. package/lib/renderers/Remark.js +1 -1
  448. package/lib/renderers/SearchBox.js +1 -1
  449. package/lib/renderers/Service.js +1 -1
  450. package/lib/renderers/SparkLine.js +1 -1
  451. package/lib/renderers/Spinner.js +1 -1
  452. package/lib/renderers/Status.js +1 -1
  453. package/lib/renderers/Steps.js +1 -1
  454. package/lib/renderers/Table/ColumnToggler.d.ts +4 -3
  455. package/lib/renderers/Table/ColumnToggler.js +4 -4
  456. package/lib/renderers/Table/HeadCellFilterDropdown.js +3 -3
  457. package/lib/renderers/Table/HeadCellSearchDropdown.js +4 -4
  458. package/lib/renderers/Table/ItemActionsWrapper.js +1 -1
  459. package/lib/renderers/Table/TableBody.js +1 -1
  460. package/lib/renderers/Table/TableCell.js +1 -1
  461. package/lib/renderers/Table/TableContent.js +1 -1
  462. package/lib/renderers/Table/TableRow.js +1 -1
  463. package/lib/renderers/Table/exportExcel.js +5 -5
  464. package/lib/renderers/Table/index.js +1 -1
  465. package/lib/renderers/Table-v2/ColumnToggler.d.ts +18 -2
  466. package/lib/renderers/Table-v2/ColumnToggler.js +72 -2
  467. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +1 -1
  468. package/lib/renderers/Table-v2/TableCell.js +1 -1
  469. package/lib/renderers/Table-v2/index.d.ts +4 -5
  470. package/lib/renderers/Table-v2/index.js +47 -50
  471. package/lib/renderers/TableView.js +1 -1
  472. package/lib/renderers/Tabs.js +1 -1
  473. package/lib/renderers/Tag.js +1 -1
  474. package/lib/renderers/Tasks.js +1 -1
  475. package/lib/renderers/Timeline.js +1 -1
  476. package/lib/renderers/TooltipWrapper.js +1 -1
  477. package/lib/renderers/Tpl.js +1 -1
  478. package/lib/renderers/VBox.js +1 -1
  479. package/lib/renderers/Video.js +1 -1
  480. package/lib/renderers/WebComponent.js +1 -1
  481. package/lib/renderers/Wizard.js +1 -1
  482. package/lib/renderers/Wrapper.js +1 -1
  483. package/lib/schemaExtend.js +1 -1
  484. package/lib/themes/ang-ie11.css +31 -194
  485. package/lib/themes/ang.css +31 -194
  486. package/lib/themes/antd-ie11.css +31 -194
  487. package/lib/themes/antd.css +31 -194
  488. package/lib/themes/cxd-ie11.css +31 -194
  489. package/lib/themes/cxd.css +31 -194
  490. package/lib/themes/dark-ie11.css +31 -194
  491. package/lib/themes/dark.css +31 -194
  492. package/lib/themes/default-ie11.css +31 -194
  493. package/lib/themes/default.css +31 -194
  494. package/package.json +13 -2
  495. package/schema.json +924 -436
  496. package/sdk/ang-ie11.css +8 -3
  497. package/sdk/ang.css +8 -3
  498. package/sdk/antd-ie11.css +8 -3
  499. package/sdk/antd.css +8 -3
  500. package/sdk/barcode.js +50 -50
  501. package/sdk/charts.js +14 -14
  502. package/sdk/codemirror.js +7 -7
  503. package/sdk/color-picker.js +65 -65
  504. package/sdk/cropperjs.js +2 -2
  505. package/sdk/cxd-ie11.css +8 -3
  506. package/sdk/cxd.css +8 -3
  507. package/sdk/dark-ie11.css +8 -3
  508. package/sdk/dark.css +8 -3
  509. package/sdk/exceljs.js +1 -1
  510. package/sdk/helper.css +0 -1
  511. package/sdk/locale/de-DE.js +2 -1
  512. package/sdk/markdown.js +68 -68
  513. package/sdk/papaparse.js +1 -1
  514. package/sdk/rest.js +24 -24
  515. package/sdk/rich-text.js +62 -62
  516. package/sdk/sdk-ie11.css +8 -3
  517. package/sdk/sdk.css +8 -3
  518. package/sdk/sdk.js +1781 -1673
  519. package/sdk/thirds/hls.js/hls.js +1 -1
  520. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  521. package/sdk/tinymce.js +57 -57
@@ -0,0 +1,1245 @@
1
+ /**
2
+ * amis v2.0.0-rc.15
3
+ * Copyright 2018-2022 baidu
4
+ */
5
+
6
+ import { __extends, __awaiter, __generator, __assign, __rest, __decorate, __metadata } from 'tslib';
7
+ import React from 'react';
8
+ import { qsparse, getPropValue, anyChanged, isArrayChildrenModified, isObjectShallowModified, isApiOutdated, isPureVariable, resolveVariableAndFilter, filter, createObject, isVisible, str2function, qsstringify, isEffectiveApi, evalExpression, extendObject, getExprProperties, getVariable, ScopedContext, Renderer, CRUDStore } from 'amis-core';
9
+ import { Select, Button, Icon, Html, Spinner } from 'amis-ui';
10
+ import pick from 'lodash/pick';
11
+ import { findDOMNode } from 'react-dom';
12
+ import omit from 'lodash/omit';
13
+ import find from 'lodash/find';
14
+ import findIndex from 'lodash/findIndex';
15
+
16
+ var CRUD = /** @class */ (function (_super) {
17
+ __extends(CRUD, _super);
18
+ function CRUD(props) {
19
+ var _this = _super.call(this, props) || this;
20
+ _this.controlRef = _this.controlRef.bind(_this);
21
+ _this.handleFilterReset = _this.handleFilterReset.bind(_this);
22
+ _this.handleFilterSubmit = _this.handleFilterSubmit.bind(_this);
23
+ _this.handleFilterInit = _this.handleFilterInit.bind(_this);
24
+ _this.handleAction = _this.handleAction.bind(_this);
25
+ _this.handleBulkAction = _this.handleBulkAction.bind(_this);
26
+ _this.handleChangePage = _this.handleChangePage.bind(_this);
27
+ _this.handleBulkGo = _this.handleBulkGo.bind(_this);
28
+ _this.handleDialogConfirm = _this.handleDialogConfirm.bind(_this);
29
+ _this.handleDialogClose = _this.handleDialogClose.bind(_this);
30
+ _this.handleSave = _this.handleSave.bind(_this);
31
+ _this.handleSaveOrder = _this.handleSaveOrder.bind(_this);
32
+ _this.handleSelect = _this.handleSelect.bind(_this);
33
+ _this.handleChildPopOverOpen = _this.handleChildPopOverOpen.bind(_this);
34
+ _this.handleChildPopOverClose = _this.handleChildPopOverClose.bind(_this);
35
+ _this.search = _this.search.bind(_this);
36
+ _this.silentSearch = _this.silentSearch.bind(_this);
37
+ _this.handleQuery = _this.handleQuery.bind(_this);
38
+ _this.renderHeaderToolbar = _this.renderHeaderToolbar.bind(_this);
39
+ _this.renderFooterToolbar = _this.renderFooterToolbar.bind(_this);
40
+ _this.clearSelection = _this.clearSelection.bind(_this);
41
+ var location = props.location, store = props.store, pageField = props.pageField, perPageField = props.perPageField, syncLocation = props.syncLocation; props.loadDataOnce;
42
+ _this.mounted = true;
43
+ if (syncLocation && location && (location.query || location.search)) {
44
+ store.updateQuery(qsparse(location.search.substring(1)), undefined, pageField, perPageField);
45
+ }
46
+ else if (syncLocation && !location && window.location.search) {
47
+ store.updateQuery(qsparse(window.location.search.substring(1)), undefined, pageField, perPageField);
48
+ }
49
+ _this.props.store.setFilterTogglable(!!_this.props.filterTogglable, _this.props.filterDefaultVisible);
50
+ // 如果有 api,data 里面先写个 空数组,面得继承外层的 items
51
+ // 比如 crud 打开一个弹框,里面也是个 crud,默认一开始其实显示
52
+ // 的是外层 crud 的数据,等接口回来后就会变成新的。
53
+ // 加上这个就是为了解决这种情况
54
+ if (_this.props.api) {
55
+ _this.props.store.updateData({
56
+ items: []
57
+ });
58
+ }
59
+ return _this;
60
+ }
61
+ CRUD.prototype.componentDidMount = function () {
62
+ var _a = this.props, store = _a.store, autoGenerateFilter = _a.autoGenerateFilter; _a.columns;
63
+ if (this.props.perPage) {
64
+ store.changePage(store.page, this.props.perPage);
65
+ }
66
+ // 没有 filter 或者 没有展示 filter 时应该默认初始化一次,
67
+ // 否则就应该等待 filter 里面的表单初始化的时候才初始化
68
+ // 另外autoGenerateFilter时,table 里面会单独处理这块逻辑
69
+ // 所以这里应该忽略 autoGenerateFilter 情况
70
+ if ((!this.props.filter && !autoGenerateFilter) ||
71
+ (store.filterTogggable && !store.filterVisible)) {
72
+ this.handleFilterInit({});
73
+ }
74
+ var val;
75
+ if (this.props.pickerMode && (val = getPropValue(this.props))) {
76
+ store.setSelectedItems(val);
77
+ }
78
+ };
79
+ CRUD.prototype.componentDidUpdate = function (prevProps) {
80
+ var props = this.props;
81
+ var store = prevProps.store;
82
+ if (anyChanged(['toolbar', 'headerToolbar', 'footerToolbar', 'bulkActions'], prevProps, props)) {
83
+ // 来点参数变化。
84
+ this.renderHeaderToolbar = this.renderHeaderToolbar.bind(this);
85
+ this.renderFooterToolbar = this.renderFooterToolbar.bind(this);
86
+ }
87
+ var val;
88
+ if (this.props.pickerMode &&
89
+ isArrayChildrenModified((val = getPropValue(this.props)), getPropValue(prevProps))) {
90
+ store.setSelectedItems(val);
91
+ }
92
+ if (this.props.filterTogglable !== prevProps.filterTogglable) {
93
+ store.setFilterTogglable(!!props.filterTogglable, props.filterDefaultVisible);
94
+ }
95
+ var dataInvalid = false;
96
+ if (prevProps.syncLocation &&
97
+ prevProps.location &&
98
+ prevProps.location.search !== props.location.search) {
99
+ // 同步地址栏,那么直接检测 query 是否变了,变了就重新拉数据
100
+ store.updateQuery(qsparse(props.location.search.substring(1)), undefined, props.pageField, props.perPageField);
101
+ dataInvalid = !!(props.api && isObjectShallowModified(store.query, this.lastQuery, false));
102
+ }
103
+ if (dataInvalid) ;
104
+ else if (prevProps.api &&
105
+ props.api &&
106
+ isApiOutdated(prevProps.api, props.api, store.fetchCtxOf(prevProps.data, {
107
+ pageField: prevProps.pageField,
108
+ perPageField: prevProps.perPageField
109
+ }), store.fetchCtxOf(props.data, {
110
+ pageField: props.pageField,
111
+ perPageField: props.perPageField
112
+ }))) {
113
+ dataInvalid = true;
114
+ }
115
+ else if (!props.api && isPureVariable(props.source)) {
116
+ var next = resolveVariableAndFilter(props.source, props.data, '| raw');
117
+ if (!this.lastData || this.lastData !== next) {
118
+ store.initFromScope(props.data, props.source);
119
+ this.lastData = next;
120
+ }
121
+ }
122
+ if (dataInvalid) {
123
+ this.search();
124
+ }
125
+ };
126
+ CRUD.prototype.componentWillUnmount = function () {
127
+ this.mounted = false;
128
+ clearTimeout(this.timer);
129
+ };
130
+ CRUD.prototype.controlRef = function (control) {
131
+ // 因为 control 有可能被 n 层 hoc 包裹。
132
+ while (control && control.getWrappedInstance) {
133
+ control = control.getWrappedInstance();
134
+ }
135
+ this.control = control;
136
+ };
137
+ CRUD.prototype.handleAction = function (e, action, ctx, throwErrors, delegate) {
138
+ var _this = this;
139
+ if (throwErrors === void 0) { throwErrors = false; }
140
+ var _a = this.props, onAction = _a.onAction, store = _a.store, messages = _a.messages, pickerMode = _a.pickerMode, env = _a.env; _a.pageField; var stopAutoRefreshWhenModalIsOpen = _a.stopAutoRefreshWhenModalIsOpen;
141
+ if (action.actionType === 'dialog') {
142
+ store.setCurrentAction(action);
143
+ var idx = ctx.index;
144
+ var length_1 = store.items.length;
145
+ stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);
146
+ store.openDialog(ctx, {
147
+ hasNext: idx < length_1 - 1,
148
+ nextIndex: idx + 1,
149
+ hasPrev: idx > 0,
150
+ prevIndex: idx - 1,
151
+ index: idx
152
+ });
153
+ }
154
+ else if (action.actionType === 'ajax') {
155
+ store.setCurrentAction(action);
156
+ var data = ctx;
157
+ // 由于 ajax 一段时间后再弹出,肯定被浏览器给阻止掉的,所以提前弹。
158
+ var redirect = action.redirect && filter(action.redirect, data);
159
+ redirect && action.blank && env.jumpTo(redirect, action);
160
+ return store
161
+ .saveRemote(action.api, data, {
162
+ successMessage: (action.messages && action.messages.success) ||
163
+ (messages && messages.saveSuccess),
164
+ errorMessage: (action.messages && action.messages.failed) ||
165
+ (messages && messages.saveFailed)
166
+ })
167
+ .then(function (payload) { return __awaiter(_this, void 0, void 0, function () {
168
+ var data, redirect;
169
+ return __generator(this, function (_a) {
170
+ switch (_a.label) {
171
+ case 0:
172
+ data = createObject(ctx, payload);
173
+ if (!(action.feedback && isVisible(action.feedback, data))) return [3 /*break*/, 2];
174
+ return [4 /*yield*/, this.openFeedback(action.feedback, data)];
175
+ case 1:
176
+ _a.sent();
177
+ stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);
178
+ _a.label = 2;
179
+ case 2:
180
+ redirect = action.redirect && filter(action.redirect, data);
181
+ redirect && !action.blank && env.jumpTo(redirect, action);
182
+ action.reload
183
+ ? this.reloadTarget(action.reload, data)
184
+ : redirect
185
+ ? null
186
+ : this.search(undefined, undefined, true, true);
187
+ action.close && this.closeTarget(action.close);
188
+ return [2 /*return*/];
189
+ }
190
+ });
191
+ }); })
192
+ .catch(function (e) {
193
+ if (throwErrors || action.countDown) {
194
+ throw e;
195
+ }
196
+ });
197
+ }
198
+ else if (action.actionType === 'reload' && !action.target) {
199
+ this.reload();
200
+ }
201
+ else if (pickerMode &&
202
+ (action.actionType === 'confirm' || action.actionType === 'submit')) {
203
+ store.setCurrentAction(action);
204
+ return Promise.resolve({
205
+ items: store.selectedItems.concat()
206
+ });
207
+ }
208
+ else if (action.onClick) {
209
+ store.setCurrentAction(action);
210
+ var onClick = action.onClick;
211
+ if (typeof onClick === 'string') {
212
+ onClick = str2function(onClick, 'event', 'props', 'data');
213
+ }
214
+ onClick && onClick(e, this.props, ctx);
215
+ }
216
+ else {
217
+ onAction(e, action, ctx, throwErrors, delegate || this.context);
218
+ }
219
+ };
220
+ CRUD.prototype.handleBulkAction = function (selectedItems, unSelectedItems, e, action) {
221
+ var _this = this;
222
+ var _a = this.props, store = _a.store, primaryField = _a.primaryField, onAction = _a.onAction, messages = _a.messages, pageField = _a.pageField, stopAutoRefreshWhenModalIsOpen = _a.stopAutoRefreshWhenModalIsOpen, env = _a.env;
223
+ if (!selectedItems.length && action.requireSelected !== false) {
224
+ return;
225
+ }
226
+ var ids = selectedItems
227
+ .map(function (item) {
228
+ return item.hasOwnProperty(primaryField) ? item[primaryField] : null;
229
+ })
230
+ .filter(function (item) { return item; })
231
+ .join(',');
232
+ var ctx = createObject(store.mergedData, __assign(__assign({}, selectedItems[0]), { rows: selectedItems, items: selectedItems, unSelectedItems: unSelectedItems, ids: ids }));
233
+ var fn = function () {
234
+ if (action.actionType === 'dialog') {
235
+ return _this.handleAction(e, __assign(__assign({}, action), { __from: 'bulkAction' }), ctx);
236
+ }
237
+ else if (action.actionType === 'ajax') {
238
+ isEffectiveApi(action.api, ctx) &&
239
+ store
240
+ .saveRemote(action.api, ctx, {
241
+ successMessage: (action.messages && action.messages.success) ||
242
+ (messages && messages.saveSuccess),
243
+ errorMessage: (action.messages && action.messages.failed) ||
244
+ (messages && messages.saveFailed)
245
+ })
246
+ .then(function (payload) { return __awaiter(_this, void 0, void 0, function () {
247
+ var data, redirect;
248
+ var _a;
249
+ return __generator(this, function (_b) {
250
+ switch (_b.label) {
251
+ case 0:
252
+ data = createObject(ctx, payload);
253
+ if (!(action.feedback && isVisible(action.feedback, data))) return [3 /*break*/, 2];
254
+ return [4 /*yield*/, this.openFeedback(action.feedback, data)];
255
+ case 1:
256
+ _b.sent();
257
+ stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);
258
+ _b.label = 2;
259
+ case 2:
260
+ action.reload
261
+ ? this.reloadTarget(action.reload, data)
262
+ : this.search((_a = {}, _a[pageField || 'page'] = 1, _a), undefined, true, true);
263
+ action.close && this.closeTarget(action.close);
264
+ redirect = action.redirect && filter(action.redirect, data);
265
+ redirect && env.jumpTo(redirect, action);
266
+ return [2 /*return*/];
267
+ }
268
+ });
269
+ }); })
270
+ .catch(function () { return null; });
271
+ }
272
+ else if (onAction) {
273
+ onAction(e, action, ctx, false, _this.context);
274
+ }
275
+ };
276
+ if (action.confirmText && env.confirm) {
277
+ env
278
+ .confirm(filter(action.confirmText, ctx))
279
+ .then(function (confirmed) { return confirmed && fn(); });
280
+ }
281
+ else {
282
+ fn();
283
+ }
284
+ };
285
+ CRUD.prototype.handleItemAction = function (action, ctx) {
286
+ this.doAction(action, ctx);
287
+ };
288
+ CRUD.prototype.handleFilterInit = function (values) {
289
+ var _a = this.props, defaultParams = _a.defaultParams; _a.data; var store = _a.store, orderBy = _a.orderBy, orderDir = _a.orderDir;
290
+ var params = __assign({}, defaultParams);
291
+ if (orderBy) {
292
+ params['orderBy'] = orderBy;
293
+ params['orderDir'] = orderDir || 'asc';
294
+ }
295
+ this.handleFilterSubmit(__assign(__assign(__assign({}, params), values), store.query), false, true, this.props.initFetch !== false);
296
+ store.setPristineQuery();
297
+ var _b = this.props, pickerMode = _b.pickerMode, options = _b.options;
298
+ pickerMode &&
299
+ store.updateData({
300
+ items: options || []
301
+ });
302
+ };
303
+ CRUD.prototype.handleFilterReset = function (values) {
304
+ var _a = this.props, store = _a.store, syncLocation = _a.syncLocation, env = _a.env, pageField = _a.pageField, perPageField = _a.perPageField;
305
+ store.updateQuery(store.pristineQuery, syncLocation && env && env.updateLocation
306
+ ? function (location) { return env.updateLocation(location); }
307
+ : undefined, pageField, perPageField, true);
308
+ this.lastQuery = store.query;
309
+ this.search();
310
+ };
311
+ CRUD.prototype.handleFilterSubmit = function (values, jumpToFirstPage, replaceLocation, search) {
312
+ var _a;
313
+ if (jumpToFirstPage === void 0) { jumpToFirstPage = true; }
314
+ if (replaceLocation === void 0) { replaceLocation = false; }
315
+ if (search === void 0) { search = true; }
316
+ var _b = this.props, store = _b.store, syncLocation = _b.syncLocation, env = _b.env, pageField = _b.pageField, perPageField = _b.perPageField, loadDataOnceFetchOnFilter = _b.loadDataOnceFetchOnFilter;
317
+ values = syncLocation
318
+ ? qsparse(qsstringify(values, undefined, true))
319
+ : values;
320
+ store.updateQuery(__assign(__assign({}, values), (_a = {}, _a[pageField || 'page'] = jumpToFirstPage ? 1 : store.page, _a)), syncLocation && env && env.updateLocation
321
+ ? function (location) { return env.updateLocation(location, replaceLocation); }
322
+ : undefined, pageField, perPageField);
323
+ this.lastQuery = store.query;
324
+ search &&
325
+ this.search(undefined, undefined, undefined, loadDataOnceFetchOnFilter);
326
+ };
327
+ CRUD.prototype.handleBulkGo = function (selectedItems, unSelectedItems, e) {
328
+ var _this = this;
329
+ var action = this.props.store.selectedAction;
330
+ var env = this.props.env;
331
+ if (action.confirmText) {
332
+ return env
333
+ .confirm(action.confirmText)
334
+ .then(function (confirmed) {
335
+ return confirmed &&
336
+ _this.handleBulkAction(selectedItems, unSelectedItems, e, action);
337
+ });
338
+ }
339
+ return this.handleBulkAction(selectedItems, unSelectedItems, e, action);
340
+ };
341
+ CRUD.prototype.handleDialogConfirm = function (values, action, ctx, components) {
342
+ var _a;
343
+ var _b, _c, _d;
344
+ var _e = this.props, store = _e.store, pageField = _e.pageField, stopAutoRefreshWhenModalIsOpen = _e.stopAutoRefreshWhenModalIsOpen, interval = _e.interval, silentPolling = _e.silentPolling, env = _e.env;
345
+ store.closeDialog(true);
346
+ var dialogAction = store.action;
347
+ if (stopAutoRefreshWhenModalIsOpen && interval) {
348
+ this.timer = setTimeout(silentPolling ? this.silentSearch : this.search, Math.max(interval, 1000));
349
+ }
350
+ if (action.actionType === 'next' &&
351
+ typeof ctx.nextIndex === 'number' &&
352
+ store.data.items[ctx.nextIndex]) {
353
+ return this.handleAction(undefined, __assign({}, dialogAction), createObject(createObject(store.data, {
354
+ index: ctx.nextIndex
355
+ }), store.data.items[ctx.nextIndex]));
356
+ }
357
+ else if (action.actionType === 'prev' &&
358
+ typeof ctx.prevIndex === 'number' &&
359
+ store.data.items[ctx.prevIndex]) {
360
+ return this.handleAction(undefined, __assign({}, dialogAction), createObject(createObject(store.data, {
361
+ index: ctx.prevIndex
362
+ }), store.data.items[ctx.prevIndex]));
363
+ }
364
+ else if (values.length) {
365
+ var value = values[0];
366
+ ctx = createObject(ctx, value);
367
+ var component = components[0];
368
+ // 提交来自 form
369
+ if (component && component.props.type === 'form') {
370
+ // 数据保存了,说明列表数据已经无效了,重新刷新。
371
+ if (value && value.__saved) {
372
+ var reload_1 = (_b = action.reload) !== null && _b !== void 0 ? _b : dialogAction.reload;
373
+ // 配置了 reload 则跳过自动更新。
374
+ reload_1 ||
375
+ this.search(dialogAction.__from ? (_a = {}, _a[pageField || 'page'] = 1, _a) : undefined, undefined, true, true);
376
+ }
377
+ else if (value &&
378
+ ((value.hasOwnProperty('items') && value.items) ||
379
+ value.hasOwnProperty('ids')) &&
380
+ this.control.bulkUpdate) {
381
+ this.control.bulkUpdate(value, value.items);
382
+ }
383
+ }
384
+ }
385
+ var reload = (_c = action.reload) !== null && _c !== void 0 ? _c : dialogAction.reload;
386
+ if (reload) {
387
+ this.reloadTarget(reload, ctx);
388
+ }
389
+ var redirect = (_d = action.redirect) !== null && _d !== void 0 ? _d : dialogAction.redirect;
390
+ redirect = redirect && filter(redirect, ctx);
391
+ redirect && env.jumpTo(redirect, dialogAction);
392
+ };
393
+ CRUD.prototype.handleDialogClose = function (confirmed) {
394
+ if (confirmed === void 0) { confirmed = false; }
395
+ var _a = this.props, store = _a.store, stopAutoRefreshWhenModalIsOpen = _a.stopAutoRefreshWhenModalIsOpen, silentPolling = _a.silentPolling, interval = _a.interval;
396
+ store.closeDialog(confirmed);
397
+ if (stopAutoRefreshWhenModalIsOpen && interval) {
398
+ this.timer = setTimeout(silentPolling ? this.silentSearch : this.search, Math.max(interval, 1000));
399
+ }
400
+ };
401
+ CRUD.prototype.openFeedback = function (dialog, ctx) {
402
+ var _this = this;
403
+ return new Promise(function (resolve) {
404
+ var store = _this.props.store;
405
+ store.setCurrentAction({
406
+ type: 'button',
407
+ actionType: 'dialog',
408
+ dialog: dialog
409
+ });
410
+ store.openDialog(ctx, undefined, function (confirmed) {
411
+ resolve(confirmed);
412
+ });
413
+ });
414
+ };
415
+ CRUD.prototype.search = function (values, silent, clearSelection, forceReload) {
416
+ var _this = this;
417
+ var _a;
418
+ if (forceReload === void 0) { forceReload = false; }
419
+ var _b = this.props, store = _b.store, api = _b.api, messages = _b.messages, pageField = _b.pageField, perPageField = _b.perPageField, interval = _b.interval, stopAutoRefreshWhen = _b.stopAutoRefreshWhen, stopAutoRefreshWhenModalIsOpen = _b.stopAutoRefreshWhenModalIsOpen, silentPolling = _b.silentPolling, syncLocation = _b.syncLocation, syncResponse2Query = _b.syncResponse2Query, keepItemSelectionOnPageChange = _b.keepItemSelectionOnPageChange, pickerMode = _b.pickerMode, env = _b.env, loadDataOnce = _b.loadDataOnce, loadDataOnceFetchOnFilter = _b.loadDataOnceFetchOnFilter, source = _b.source, columns = _b.columns;
420
+ // reload 需要清空用户选择。
421
+ if (keepItemSelectionOnPageChange && clearSelection && !pickerMode) {
422
+ store.setSelectedItems([]);
423
+ store.setUnSelectedItems([]);
424
+ }
425
+ var loadDataMode = '';
426
+ if (values && typeof values.loadDataMode === 'string') {
427
+ loadDataMode = 'load-more';
428
+ delete values.loadDataMode;
429
+ }
430
+ clearTimeout(this.timer);
431
+ values &&
432
+ store.updateQuery(values, !loadDataMode && syncLocation && env && env.updateLocation
433
+ ? env.updateLocation
434
+ : undefined, pageField, perPageField);
435
+ this.lastQuery = store.query;
436
+ var data = createObject(store.data, store.query);
437
+ isEffectiveApi(api, data)
438
+ ? store
439
+ .fetchInitData(api, data, {
440
+ successMessage: messages && messages.fetchSuccess,
441
+ errorMessage: messages && messages.fetchFailed,
442
+ autoAppend: true,
443
+ forceReload: forceReload,
444
+ loadDataOnce: loadDataOnce,
445
+ loadDataOnceFetchOnFilter: loadDataOnceFetchOnFilter,
446
+ source: source,
447
+ silent: silent,
448
+ pageField: pageField,
449
+ perPageField: perPageField,
450
+ loadDataMode: loadDataMode,
451
+ syncResponse2Query: syncResponse2Query,
452
+ columns: (_a = store.columns) !== null && _a !== void 0 ? _a : columns
453
+ })
454
+ .then(function (value) {
455
+ interval &&
456
+ _this.mounted &&
457
+ (!stopAutoRefreshWhen ||
458
+ !((stopAutoRefreshWhenModalIsOpen && store.hasModalOpened) ||
459
+ evalExpression(stopAutoRefreshWhen, createObject(store.data, store.query)))) &&
460
+ (_this.timer = setTimeout(silentPolling
461
+ ? _this.silentSearch.bind(_this, undefined, undefined, true)
462
+ : _this.search.bind(_this, undefined, undefined, undefined, true), Math.max(interval, 1000)));
463
+ return value;
464
+ })
465
+ : source && store.initFromScope(data, source);
466
+ };
467
+ CRUD.prototype.silentSearch = function (values, clearSelection, forceReload) {
468
+ if (forceReload === void 0) { forceReload = false; }
469
+ return this.search(values, true, clearSelection, forceReload);
470
+ };
471
+ CRUD.prototype.handleChangePage = function (page, perPage) {
472
+ var _a;
473
+ var _b;
474
+ var _c = this.props, store = _c.store, syncLocation = _c.syncLocation, env = _c.env, pageField = _c.pageField, perPageField = _c.perPageField, autoJumpToTopOnPagerChange = _c.autoJumpToTopOnPagerChange, affixOffsetTop = _c.affixOffsetTop;
475
+ var query = (_a = {},
476
+ _a[pageField || 'page'] = page,
477
+ _a);
478
+ if (perPage) {
479
+ query[perPageField || 'perPage'] = perPage;
480
+ }
481
+ store.updateQuery(query, syncLocation && (env === null || env === void 0 ? void 0 : env.updateLocation) ? env.updateLocation : undefined, pageField, perPageField);
482
+ this.search(undefined, undefined, undefined);
483
+ if (autoJumpToTopOnPagerChange && this.control) {
484
+ findDOMNode(this.control).scrollIntoView();
485
+ var scrolledY = window.scrollY;
486
+ var offsetTop = (_b = affixOffsetTop !== null && affixOffsetTop !== void 0 ? affixOffsetTop : env === null || env === void 0 ? void 0 : env.affixOffsetTop) !== null && _b !== void 0 ? _b : 0;
487
+ scrolledY && window.scroll(0, scrolledY - offsetTop);
488
+ }
489
+ };
490
+ CRUD.prototype.handleSave = function (rows, diff, indexes, unModifiedItems, rowsOrigin, resetOnFailed) {
491
+ var _this = this;
492
+ var _a = this.props, store = _a.store, quickSaveApi = _a.quickSaveApi, quickSaveItemApi = _a.quickSaveItemApi, primaryField = _a.primaryField, env = _a.env, messages = _a.messages, reload = _a.reload;
493
+ if (Array.isArray(rows)) {
494
+ if (!isEffectiveApi(quickSaveApi)) {
495
+ env && env.alert('CRUD quickSaveApi is required');
496
+ return;
497
+ }
498
+ var data_1 = createObject(store.data, {
499
+ rows: rows,
500
+ rowsDiff: diff,
501
+ indexes: indexes,
502
+ rowsOrigin: rowsOrigin
503
+ });
504
+ if (rows.length && rows[0].hasOwnProperty(primaryField || 'id')) {
505
+ data_1.ids = rows
506
+ .map(function (item) { return item[primaryField || 'id']; })
507
+ .join(',');
508
+ }
509
+ if (unModifiedItems) {
510
+ data_1.unModifiedItems = unModifiedItems;
511
+ }
512
+ store
513
+ .saveRemote(quickSaveApi, data_1, {
514
+ successMessage: messages && messages.saveFailed,
515
+ errorMessage: messages && messages.saveSuccess
516
+ })
517
+ .then(function () {
518
+ reload && _this.reloadTarget(reload, data_1);
519
+ _this.search(undefined, undefined, true, true);
520
+ })
521
+ .catch(function () { });
522
+ }
523
+ else {
524
+ if (!isEffectiveApi(quickSaveItemApi)) {
525
+ env && env.alert('CRUD quickSaveItemApi is required!');
526
+ return;
527
+ }
528
+ var data_2 = createObject(store.data, {
529
+ item: rows,
530
+ modified: diff,
531
+ origin: rowsOrigin
532
+ });
533
+ var sendData = createObject(data_2, rows);
534
+ store
535
+ .saveRemote(quickSaveItemApi, sendData)
536
+ .then(function () {
537
+ reload && _this.reloadTarget(reload, data_2);
538
+ _this.search(undefined, undefined, true, true);
539
+ })
540
+ .catch(function () {
541
+ resetOnFailed && _this.control.reset();
542
+ });
543
+ }
544
+ };
545
+ CRUD.prototype.handleSaveOrder = function (moved, rows) {
546
+ var _this = this;
547
+ var _a = this.props, store = _a.store, saveOrderApi = _a.saveOrderApi, orderField = _a.orderField, primaryField = _a.primaryField, env = _a.env, reload = _a.reload;
548
+ if (!saveOrderApi) {
549
+ env && env.alert('CRUD saveOrderApi is required!');
550
+ return;
551
+ }
552
+ var model = createObject(store.data);
553
+ var insertAfter;
554
+ var insertBefore;
555
+ var holding = [];
556
+ var hasIdField = primaryField &&
557
+ rows[0] &&
558
+ rows[0].hasOwnProperty(primaryField);
559
+ hasIdField || (model.idMap = {});
560
+ model.insertAfter = {};
561
+ rows.forEach(function (item) {
562
+ if (~moved.indexOf(item)) {
563
+ if (insertAfter) {
564
+ var insertAfterId = hasIdField
565
+ ? insertAfter[primaryField]
566
+ : rows.indexOf(insertAfter);
567
+ model.insertAfter[insertAfterId] =
568
+ model.insertAfter[insertAfterId] || [];
569
+ hasIdField || (model.idMap[insertAfterId] = insertAfter);
570
+ model.insertAfter[insertAfterId].push(hasIdField ? item[primaryField] : item);
571
+ }
572
+ else {
573
+ holding.push(item);
574
+ }
575
+ }
576
+ else {
577
+ insertAfter = item;
578
+ insertBefore = insertBefore || item;
579
+ }
580
+ });
581
+ if (insertBefore && holding.length) {
582
+ var insertBeforeId = hasIdField
583
+ ? insertBefore[primaryField]
584
+ : rows.indexOf(insertBefore);
585
+ hasIdField || (model.idMap[insertBeforeId] = insertBefore);
586
+ model.insertBefore = {};
587
+ model.insertBefore[insertBeforeId] = holding.map(function (item) {
588
+ return hasIdField ? item[primaryField] : item;
589
+ });
590
+ }
591
+ else if (holding.length) {
592
+ var first = holding[0];
593
+ var firstId = hasIdField
594
+ ? first[primaryField]
595
+ : rows.indexOf(first);
596
+ hasIdField || (model.idMap[firstId] = first);
597
+ model.insertAfter[firstId] = holding
598
+ .slice(1)
599
+ .map(function (item) { return (hasIdField ? item[primaryField] : item); });
600
+ }
601
+ if (orderField) {
602
+ var start_1 = (store.page - 1) * store.perPage || 0;
603
+ rows = rows.map(function (item, key) {
604
+ var _a;
605
+ return extendObject(item, (_a = {},
606
+ _a[orderField] = start_1 + key + 1,
607
+ _a));
608
+ });
609
+ }
610
+ model.rows = rows.concat();
611
+ hasIdField &&
612
+ (model.ids = rows
613
+ .map(function (item) { return item[primaryField]; })
614
+ .join(','));
615
+ hasIdField &&
616
+ orderField &&
617
+ (model.order = rows.map(function (item) {
618
+ return pick(item, [primaryField, orderField]);
619
+ }));
620
+ isEffectiveApi(saveOrderApi, model) &&
621
+ store
622
+ .saveRemote(saveOrderApi, model)
623
+ .then(function () {
624
+ reload && _this.reloadTarget(reload, model);
625
+ _this.search(undefined, undefined, true, true);
626
+ })
627
+ .catch(function () { });
628
+ };
629
+ CRUD.prototype.handleSelect = function (items, unSelectedItems) {
630
+ var _a = this.props, store = _a.store, keepItemSelectionOnPageChange = _a.keepItemSelectionOnPageChange, primaryField = _a.primaryField, multiple = _a.multiple, pickerMode = _a.pickerMode, onSelect = _a.onSelect;
631
+ var newItems = items;
632
+ var newUnSelectedItems = unSelectedItems;
633
+ if (keepItemSelectionOnPageChange && store.selectedItems.length) {
634
+ var oldItems_1 = store.selectedItems.concat();
635
+ var oldUnselectedItems_1 = store.unSelectedItems.concat();
636
+ items.forEach(function (item) {
637
+ var idx = findIndex(oldItems_1, function (a) {
638
+ return a === item ||
639
+ (a[primaryField || 'id'] &&
640
+ a[primaryField || 'id'] == item[primaryField || 'id']);
641
+ });
642
+ if (~idx) {
643
+ oldItems_1[idx] = item;
644
+ }
645
+ else {
646
+ oldItems_1.push(item);
647
+ }
648
+ var idx2 = findIndex(oldUnselectedItems_1, function (a) {
649
+ return a === item ||
650
+ (a[primaryField || 'id'] &&
651
+ a[primaryField || 'id'] == item[primaryField || 'id']);
652
+ });
653
+ if (~idx2) {
654
+ oldUnselectedItems_1.splice(idx2, 1);
655
+ }
656
+ });
657
+ unSelectedItems.forEach(function (item) {
658
+ var idx = findIndex(oldUnselectedItems_1, function (a) {
659
+ return a === item ||
660
+ (a[primaryField || 'id'] &&
661
+ a[primaryField || 'id'] == item[primaryField || 'id']);
662
+ });
663
+ var idx2 = findIndex(oldItems_1, function (a) {
664
+ return a === item ||
665
+ (a[primaryField || 'id'] &&
666
+ a[primaryField || 'id'] == item[primaryField || 'id']);
667
+ });
668
+ if (~idx) {
669
+ oldUnselectedItems_1[idx] = item;
670
+ }
671
+ else {
672
+ oldUnselectedItems_1.push(item);
673
+ }
674
+ ~idx2 && oldItems_1.splice(idx2, 1);
675
+ });
676
+ newItems = oldItems_1;
677
+ newUnSelectedItems = oldUnselectedItems_1;
678
+ // const thisBatch = items.concat(unSelectedItems);
679
+ // let notInThisBatch = (item: any) =>
680
+ // !find(
681
+ // thisBatch,
682
+ // a => a[primaryField || 'id'] == item[primaryField || 'id']
683
+ // );
684
+ // newItems = store.selectedItems.filter(notInThisBatch);
685
+ // newUnSelectedItems = store.unSelectedItems.filter(notInThisBatch);
686
+ // newItems.push(...items);
687
+ // newUnSelectedItems.push(...unSelectedItems);
688
+ }
689
+ if (pickerMode && multiple === false && newItems.length > 1) {
690
+ newUnSelectedItems.push.apply(newUnSelectedItems, newItems.splice(0, newItems.length - 1));
691
+ }
692
+ store.setSelectedItems(newItems);
693
+ store.setUnSelectedItems(newUnSelectedItems);
694
+ onSelect && onSelect(newItems);
695
+ };
696
+ CRUD.prototype.handleChildPopOverOpen = function (popOver) {
697
+ if (this.props.interval &&
698
+ popOver &&
699
+ ~['dialog', 'drawer'].indexOf(popOver.mode)) {
700
+ this.props.stopAutoRefreshWhenModalIsOpen && clearTimeout(this.timer);
701
+ this.props.store.setInnerModalOpened(true);
702
+ }
703
+ };
704
+ CRUD.prototype.handleChildPopOverClose = function (popOver) {
705
+ var _a = this.props, stopAutoRefreshWhenModalIsOpen = _a.stopAutoRefreshWhenModalIsOpen, silentPolling = _a.silentPolling, interval = _a.interval;
706
+ if (popOver && ~['dialog', 'drawer'].indexOf(popOver.mode)) {
707
+ this.props.store.setInnerModalOpened(false);
708
+ if (stopAutoRefreshWhenModalIsOpen && interval) {
709
+ this.timer = setTimeout(silentPolling ? this.silentSearch : this.search, Math.max(interval, 1000));
710
+ }
711
+ }
712
+ };
713
+ CRUD.prototype.handleQuery = function (values, forceReload) {
714
+ var _a;
715
+ if (forceReload === void 0) { forceReload = false; }
716
+ var _b = this.props, store = _b.store, syncLocation = _b.syncLocation, env = _b.env, pageField = _b.pageField, perPageField = _b.perPageField;
717
+ store.updateQuery(__assign(__assign({}, values), (_a = {}, _a[pageField || 'page'] = 1, _a)), syncLocation && env && env.updateLocation
718
+ ? env.updateLocation
719
+ : undefined, pageField, perPageField);
720
+ this.search(undefined, undefined, undefined, forceReload);
721
+ };
722
+ CRUD.prototype.reload = function (subpath, query) {
723
+ if (query) {
724
+ return this.receive(query);
725
+ }
726
+ else {
727
+ this.search(undefined, undefined, true, true);
728
+ }
729
+ };
730
+ CRUD.prototype.receive = function (values) {
731
+ this.handleQuery(values, true);
732
+ };
733
+ CRUD.prototype.reloadTarget = function (target, data) {
734
+ // implement this.
735
+ };
736
+ CRUD.prototype.closeTarget = function (target) {
737
+ // implement this.
738
+ };
739
+ CRUD.prototype.doAction = function (action, data, throwErrors) {
740
+ if (throwErrors === void 0) { throwErrors = false; }
741
+ return this.handleAction(undefined, action, data, throwErrors);
742
+ };
743
+ CRUD.prototype.unSelectItem = function (item, index) {
744
+ var store = this.props.store;
745
+ var selected = store.selectedItems.concat();
746
+ var unSelected = store.unSelectedItems.concat();
747
+ var idx = selected.indexOf(item);
748
+ ~idx && unSelected.push.apply(unSelected, selected.splice(idx, 1));
749
+ store.setSelectedItems(selected);
750
+ store.setUnSelectedItems(unSelected);
751
+ };
752
+ CRUD.prototype.clearSelection = function () {
753
+ var store = this.props.store;
754
+ var selected = store.selectedItems.concat();
755
+ var unSelected = store.unSelectedItems.concat();
756
+ store.setSelectedItems([]);
757
+ store.setUnSelectedItems(unSelected.concat(selected));
758
+ };
759
+ CRUD.prototype.hasBulkActionsToolbar = function () {
760
+ var _a = this.props, headerToolbar = _a.headerToolbar, footerToolbar = _a.footerToolbar;
761
+ var isBulkActions = function (item) {
762
+ return ~['bulkActions', 'bulk-actions'].indexOf(item.type || item);
763
+ };
764
+ return ((Array.isArray(headerToolbar) && find(headerToolbar, isBulkActions)) ||
765
+ (Array.isArray(footerToolbar) && find(footerToolbar, isBulkActions)));
766
+ };
767
+ CRUD.prototype.hasBulkActions = function () {
768
+ var _a = this.props, bulkActions = _a.bulkActions; _a.itemActions; var store = _a.store;
769
+ if (!bulkActions || !bulkActions.length) {
770
+ return false;
771
+ }
772
+ var bulkBtns = [];
773
+ var ctx = store.mergedData;
774
+ if (bulkActions && bulkActions.length) {
775
+ bulkBtns = bulkActions
776
+ .map(function (item) { return (__assign(__assign({}, item), getExprProperties(item, ctx))); })
777
+ .filter(function (item) { return !item.hidden && item.visible !== false; });
778
+ }
779
+ return bulkBtns.length;
780
+ };
781
+ CRUD.prototype.renderBulkActions = function (childProps) {
782
+ var _this = this;
783
+ var _a = this.props, bulkActions = _a.bulkActions, itemActions = _a.itemActions, store = _a.store, render = _a.render, cx = _a.classnames;
784
+ if (!bulkActions || !bulkActions.length) {
785
+ return null;
786
+ }
787
+ var selectedItems = store.selectedItems;
788
+ var unSelectedItems = store.unSelectedItems;
789
+ var bulkBtns = [];
790
+ var itemBtns = [];
791
+ var ctx = store.mergedData;
792
+ // const ctx = createObject(store.data, {
793
+ // ...store.query,
794
+ // items: childProps.items,
795
+ // selectedItems: childProps.selectedItems,
796
+ // unSelectedItems: childProps.unSelectedItems
797
+ // });
798
+ if (bulkActions &&
799
+ bulkActions.length &&
800
+ (!itemActions || !itemActions.length || selectedItems.length > 1)) {
801
+ bulkBtns = bulkActions
802
+ .map(function (item) { return (__assign(__assign({}, item), getExprProperties(item, ctx))); })
803
+ .filter(function (item) { return !item.hidden && item.visible !== false; });
804
+ }
805
+ var itemData = createObject(store.data, selectedItems.length ? selectedItems[0] : {});
806
+ if (itemActions && selectedItems.length <= 1) {
807
+ itemBtns = itemActions
808
+ .map(function (item) { return (__assign(__assign({}, item), getExprProperties(item, itemData))); })
809
+ .filter(function (item) { return !item.hidden && item.visible !== false; });
810
+ }
811
+ return bulkBtns.length || itemBtns.length ? (React.createElement("div", { className: cx('Crud-actions') },
812
+ bulkBtns.map(function (btn, index) {
813
+ return render("bulk-action/".concat(index), __assign(__assign({}, omit(btn, ['visibleOn', 'hiddenOn', 'disabledOn'])), { type: btn.type || 'button', ignoreConfirm: true }), {
814
+ key: "bulk-".concat(index),
815
+ data: ctx,
816
+ disabled: btn.disabled ||
817
+ (btn.requireSelected !== false ? !selectedItems.length : false),
818
+ onAction: _this.handleBulkAction.bind(_this, selectedItems.concat(), unSelectedItems.concat())
819
+ });
820
+ }),
821
+ itemBtns.map(function (btn, index) {
822
+ return render("bulk-action/".concat(index), __assign(__assign({}, omit(btn, ['visibleOn', 'hiddenOn', 'disabledOn'])), { type: 'button' }), {
823
+ key: "item-".concat(index),
824
+ data: itemData,
825
+ disabled: btn.disabled || selectedItems.length !== 1,
826
+ onAction: _this.handleItemAction.bind(_this, btn, itemData)
827
+ });
828
+ }))) : null;
829
+ };
830
+ CRUD.prototype.renderPagination = function (toolbar) {
831
+ var _a = this.props, store = _a.store, render = _a.render, cx = _a.classnames, alwaysShowPagination = _a.alwaysShowPagination;
832
+ var page = store.page, lastPage = store.lastPage;
833
+ if (store.mode !== 'simple' &&
834
+ store.lastPage < 2 &&
835
+ !alwaysShowPagination) {
836
+ return null;
837
+ }
838
+ var extraProps = {};
839
+ /** 优先级:showPageInput显性配置 > (lastPage > 9) */
840
+ if (typeof toolbar !== 'string') {
841
+ var showPageInput = toolbar.showPageInput;
842
+ extraProps.showPageInput =
843
+ showPageInput === true || (lastPage > 9 && showPageInput == null);
844
+ extraProps.maxButtons = toolbar.maxButtons;
845
+ extraProps.layout = toolbar.layout;
846
+ }
847
+ else {
848
+ extraProps.showPageInput = lastPage > 9;
849
+ }
850
+ return (React.createElement("div", { className: cx('Crud-pager') }, render('pagination', {
851
+ type: 'pagination'
852
+ }, __assign(__assign({}, extraProps), { activePage: page, lastPage: lastPage, hasNext: store.hasNext, mode: store.mode, perPage: store.perPage, onPageChange: this.handleChangePage }))));
853
+ };
854
+ CRUD.prototype.renderStatistics = function () {
855
+ var _a = this.props, store = _a.store, cx = _a.classnames, __ = _a.translate, alwaysShowPagination = _a.alwaysShowPagination;
856
+ if (store.lastPage <= 1 && !alwaysShowPagination) {
857
+ return null;
858
+ }
859
+ return (React.createElement("div", { className: cx('Crud-statistics') }, __('CRUD.stat', {
860
+ page: store.page,
861
+ lastPage: store.lastPage,
862
+ total: store.total
863
+ })));
864
+ };
865
+ CRUD.prototype.renderSwitchPerPage = function (childProps) {
866
+ var _this = this;
867
+ var _a = this.props, store = _a.store, perPageAvailable = _a.perPageAvailable, cx = _a.classnames, ns = _a.classPrefix, __ = _a.translate;
868
+ var items = childProps.items;
869
+ if (!items.length) {
870
+ return null;
871
+ }
872
+ var perPages = (perPageAvailable || [5, 10, 20, 50, 100]).map(function (item) { return ({
873
+ label: item,
874
+ value: item + ''
875
+ }); });
876
+ return (React.createElement("div", { className: cx('Crud-pageSwitch') },
877
+ React.createElement("span", null, __('CRUD.perPage')),
878
+ React.createElement(Select, { classPrefix: ns, searchable: false, placeholder: __('Select.placeholder'), options: perPages, value: store.perPage + '', onChange: function (value) { return _this.handleChangePage(1, value.value); }, clearable: false })));
879
+ };
880
+ CRUD.prototype.renderLoadMore = function () {
881
+ var _this = this;
882
+ var _a = this.props, store = _a.store, ns = _a.classPrefix, cx = _a.classnames, __ = _a.translate;
883
+ var page = store.page, lastPage = store.lastPage;
884
+ return page < lastPage ? (React.createElement("div", { className: cx('Crud-loadMore') },
885
+ React.createElement(Button, { classPrefix: ns, onClick: function () {
886
+ return _this.search({ page: page + 1, loadDataMode: 'load-more' });
887
+ }, size: "sm" }, __('CRUD.loadMore')))) : ('');
888
+ };
889
+ CRUD.prototype.renderFilterToggler = function () {
890
+ var _a = this.props, store = _a.store, cx = _a.classnames, __ = _a.translate;
891
+ if (!store.filterTogggable) {
892
+ return null;
893
+ }
894
+ return (React.createElement("button", { onClick: function () { return store.setFilterVisible(!store.filterVisible); }, className: cx('Button Button--sm Button--default', {
895
+ 'is-active': store.filterVisible
896
+ }) },
897
+ React.createElement(Icon, { icon: "filter", className: "icon m-r-xs" }),
898
+ __('CRUD.filter')));
899
+ };
900
+ CRUD.prototype.renderExportCSV = function (toolbar) {
901
+ var _a = this.props, store = _a.store, ns = _a.classPrefix; _a.classnames; var __ = _a.translate, loadDataOnce = _a.loadDataOnce, data = _a.data;
902
+ var api = toolbar.api;
903
+ return (React.createElement(Button, { classPrefix: ns, onClick: function () {
904
+ return store.exportAsCSV({
905
+ loadDataOnce: loadDataOnce,
906
+ api: api,
907
+ data: data
908
+ });
909
+ } }, toolbar.label || __('CRUD.exportCSV')));
910
+ };
911
+ CRUD.prototype.renderToolbar = function (toolbar, index, childProps, toolbarRenderer) {
912
+ var _this = this;
913
+ if (index === void 0) { index = 0; }
914
+ if (childProps === void 0) { childProps = {}; }
915
+ if (!toolbar) {
916
+ return null;
917
+ }
918
+ var _a = this.props, render = _a.render, store = _a.store, __ = _a.translate;
919
+ var type = toolbar.type || toolbar;
920
+ if (type === 'bulkActions' || type === 'bulk-actions') {
921
+ return this.renderBulkActions(childProps);
922
+ }
923
+ else if (type === 'pagination') {
924
+ return this.renderPagination(toolbar);
925
+ }
926
+ else if (type === 'statistics') {
927
+ return this.renderStatistics();
928
+ }
929
+ else if (type === 'switch-per-page') {
930
+ return this.renderSwitchPerPage(childProps);
931
+ }
932
+ else if (type === 'load-more') {
933
+ return this.renderLoadMore();
934
+ }
935
+ else if (type === 'filter-toggler') {
936
+ return this.renderFilterToggler();
937
+ }
938
+ else if (type === 'export-csv') {
939
+ return this.renderExportCSV(toolbar);
940
+ }
941
+ else if (type === 'reload') {
942
+ var reloadButton = {
943
+ label: '',
944
+ icon: 'fa fa-sync',
945
+ tooltip: __('reload'),
946
+ tooltipPlacement: 'top',
947
+ type: 'button'
948
+ };
949
+ if (typeof toolbar === 'object') {
950
+ reloadButton = __assign(__assign({}, reloadButton), omit(toolbar, ['type', 'align']));
951
+ }
952
+ return render("toolbar/".concat(index), reloadButton, {
953
+ onAction: function () {
954
+ _this.reload();
955
+ }
956
+ });
957
+ }
958
+ else if (Array.isArray(toolbar)) {
959
+ var children = toolbar
960
+ .filter(function (toolbar) { return isVisible(toolbar, store.filterData); })
961
+ .map(function (toolbar, index) { return ({
962
+ dom: _this.renderToolbar(toolbar, index, childProps, toolbarRenderer),
963
+ toolbar: toolbar
964
+ }); })
965
+ .filter(function (item) { return item.dom; });
966
+ var len = children.length;
967
+ var cx_1 = this.props.classnames;
968
+ if (len) {
969
+ return (React.createElement("div", { className: cx_1('Crud-toolbar'), key: index }, children.map(function (_a, index) {
970
+ var toolbar = _a.toolbar, child = _a.dom;
971
+ var type = toolbar.type || toolbar;
972
+ var align = toolbar.align || (type === 'pagination' ? 'right' : 'left');
973
+ return (React.createElement("div", { key: index, className: cx_1('Crud-toolbar-item', align ? "Crud-toolbar-item--".concat(align) : '', toolbar.className) }, child));
974
+ })));
975
+ }
976
+ return null;
977
+ }
978
+ var result = toolbarRenderer
979
+ ? toolbarRenderer(toolbar, index)
980
+ : undefined;
981
+ if (result !== void 0) {
982
+ return result;
983
+ }
984
+ var $$editable = childProps.$$editable;
985
+ return render("toolbar/".concat(index), toolbar, {
986
+ // 包两层,主要是为了处理以下 case
987
+ // 里面放了个 form,form 提交过来的时候不希望把 items 这些发送过来。
988
+ // 因为会把数据呈现在地址栏上。
989
+ data: createObject(createObject(store.filterData, {
990
+ items: childProps.items,
991
+ selectedItems: childProps.selectedItems,
992
+ unSelectedItems: childProps.unSelectedItems
993
+ }), {}),
994
+ page: store.page,
995
+ lastPage: store.lastPage,
996
+ perPage: store.perPage,
997
+ total: store.total,
998
+ onQuery: this.handleQuery,
999
+ onAction: this.handleAction,
1000
+ onChangePage: this.handleChangePage,
1001
+ onBulkAction: this.handleBulkAction,
1002
+ $$editable: $$editable
1003
+ });
1004
+ };
1005
+ CRUD.prototype.renderHeaderToolbar = function (childProps, toolbarRenderer) {
1006
+ var _a = this.props, toolbar = _a.toolbar, toolbarInline = _a.toolbarInline, headerToolbar = _a.headerToolbar;
1007
+ if (toolbar) {
1008
+ if (Array.isArray(headerToolbar)) {
1009
+ headerToolbar = toolbarInline
1010
+ ? headerToolbar.concat(toolbar)
1011
+ : [headerToolbar, toolbar];
1012
+ }
1013
+ else if (headerToolbar) {
1014
+ headerToolbar = [headerToolbar, toolbar];
1015
+ }
1016
+ else {
1017
+ headerToolbar = toolbar;
1018
+ }
1019
+ }
1020
+ return this.renderToolbar(headerToolbar || [], 0, childProps, toolbarRenderer);
1021
+ };
1022
+ CRUD.prototype.renderFooterToolbar = function (childProps, toolbarRenderer) {
1023
+ var _a = this.props, toolbar = _a.toolbar, toolbarInline = _a.toolbarInline, footerToolbar = _a.footerToolbar;
1024
+ if (toolbar) {
1025
+ if (Array.isArray(footerToolbar)) {
1026
+ footerToolbar = toolbarInline
1027
+ ? footerToolbar.concat(toolbar)
1028
+ : [footerToolbar, toolbar];
1029
+ }
1030
+ else if (footerToolbar) {
1031
+ footerToolbar = [footerToolbar, toolbar];
1032
+ }
1033
+ else {
1034
+ footerToolbar = toolbar;
1035
+ }
1036
+ }
1037
+ return this.renderToolbar(footerToolbar, 0, childProps, toolbarRenderer);
1038
+ };
1039
+ CRUD.prototype.renderSelection = function () {
1040
+ var _this = this;
1041
+ var _a = this.props, store = _a.store, cx = _a.classnames, labelField = _a.labelField, labelTpl = _a.labelTpl, primaryField = _a.primaryField, __ = _a.translate;
1042
+ if (!store.selectedItems.length) {
1043
+ return null;
1044
+ }
1045
+ return (React.createElement("div", { className: cx('Crud-selection') },
1046
+ React.createElement("div", { className: cx('Crud-selectionLabel') }, __('CRUD.selected', { total: store.selectedItems.length })),
1047
+ store.selectedItems.map(function (item, index) { return (React.createElement("div", { key: index, className: cx("Crud-value") },
1048
+ React.createElement("span", { "data-tooltip": __('delete'), "data-position": "bottom", className: cx('Crud-valueIcon'), onClick: _this.unSelectItem.bind(_this, item, index) }, "\u00D7"),
1049
+ React.createElement("span", { className: cx('Crud-valueLabel') }, labelTpl ? (React.createElement(Html, { html: filter(labelTpl, item) })) : (getVariable(item, labelField || 'label') ||
1050
+ getVariable(item, primaryField || 'id'))))); }),
1051
+ React.createElement("a", { onClick: this.clearSelection, className: cx('Crud-selectionClear') }, __('clear'))));
1052
+ };
1053
+ CRUD.prototype.render = function () {
1054
+ var _a;
1055
+ var _b = this.props, className = _b.className, bodyClassName = _b.bodyClassName, filter = _b.filter, render = _b.render, store = _b.store, mode = _b.mode; _b.syncLocation; _b.children; var bulkActions = _b.bulkActions, pickerMode = _b.pickerMode, multiple = _b.multiple, valueField = _b.valueField, primaryField = _b.primaryField; _b.value; var hideQuickSaveBtn = _b.hideQuickSaveBtn, itemActions = _b.itemActions, cx = _b.classnames, keepItemSelectionOnPageChange = _b.keepItemSelectionOnPageChange, maxKeepItemSelectionLength = _b.maxKeepItemSelectionLength; _b.onAction; var popOverContainer = _b.popOverContainer, __ = _b.translate; _b.onQuery; var autoGenerateFilter = _b.autoGenerateFilter; _b.onSelect; var autoFillHeight = _b.autoFillHeight; _b.onEvent; var rest = __rest(_b, ["className", "bodyClassName", "filter", "render", "store", "mode", "syncLocation", "children", "bulkActions", "pickerMode", "multiple", "valueField", "primaryField", "value", "hideQuickSaveBtn", "itemActions", "classnames", "keepItemSelectionOnPageChange", "maxKeepItemSelectionLength", "onAction", "popOverContainer", "translate", "onQuery", "autoGenerateFilter", "onSelect", "autoFillHeight", "onEvent"]);
1056
+ return (React.createElement("div", { className: cx('Crud', className, {
1057
+ 'is-loading': store.loading
1058
+ }) },
1059
+ filter && (!store.filterTogggable || store.filterVisible)
1060
+ ? render('filter', __assign(__assign({ title: __('CRUD.filter'), mode: 'inline', submitText: __('search') }, filter), { type: 'form', api: null }), {
1061
+ key: 'filter',
1062
+ panelClassName: cx('Crud-filter', filter.panelClassName || 'Panel--default'),
1063
+ data: store.filterData,
1064
+ onReset: this.handleFilterReset,
1065
+ onSubmit: this.handleFilterSubmit,
1066
+ onInit: this.handleFilterInit,
1067
+ formStore: undefined
1068
+ })
1069
+ : null,
1070
+ keepItemSelectionOnPageChange && multiple !== false
1071
+ ? this.renderSelection()
1072
+ : null,
1073
+ render('body', __assign(__assign({}, rest), { columns: (_a = store.columns) !== null && _a !== void 0 ? _a : rest.columns, type: mode || 'table' }), {
1074
+ key: 'body',
1075
+ className: cx('Crud-body', bodyClassName),
1076
+ ref: this.controlRef,
1077
+ autoGenerateFilter: !filter && autoGenerateFilter,
1078
+ autoFillHeight: autoFillHeight,
1079
+ selectable: !!((this.hasBulkActionsToolbar() && this.hasBulkActions()) ||
1080
+ pickerMode),
1081
+ itemActions: itemActions,
1082
+ multiple: multiple === void 0
1083
+ ? bulkActions && bulkActions.length > 0
1084
+ ? true
1085
+ : false
1086
+ : multiple,
1087
+ selected: pickerMode || keepItemSelectionOnPageChange
1088
+ ? store.selectedItemsAsArray
1089
+ : undefined,
1090
+ keepItemSelectionOnPageChange: keepItemSelectionOnPageChange,
1091
+ maxKeepItemSelectionLength: maxKeepItemSelectionLength,
1092
+ valueField: valueField || primaryField,
1093
+ primaryField: primaryField,
1094
+ hideQuickSaveBtn: hideQuickSaveBtn,
1095
+ items: store.data.items,
1096
+ query: store.query,
1097
+ orderBy: store.query.orderBy,
1098
+ orderDir: store.query.orderDir,
1099
+ popOverContainer: popOverContainer,
1100
+ onAction: this.handleAction,
1101
+ onSave: this.handleSave,
1102
+ onSaveOrder: this.handleSaveOrder,
1103
+ onQuery: this.handleQuery,
1104
+ onSelect: this.handleSelect,
1105
+ onPopOverOpened: this.handleChildPopOverOpen,
1106
+ onPopOverClosed: this.handleChildPopOverClose,
1107
+ onSearchableFromReset: this.handleFilterReset,
1108
+ onSearchableFromSubmit: this.handleFilterSubmit,
1109
+ onSearchableFromInit: this.handleFilterInit,
1110
+ headerToolbarRender: this.renderHeaderToolbar,
1111
+ footerToolbarRender: this.renderFooterToolbar,
1112
+ data: store.mergedData,
1113
+ loading: store.loading
1114
+ }),
1115
+ React.createElement(Spinner, { overlay: true, size: "lg", key: "info", show: store.loading }),
1116
+ render('dialog', __assign(__assign({}, (store.action &&
1117
+ store.action.dialog)), { type: 'dialog' }), {
1118
+ key: 'dialog',
1119
+ data: store.dialogData,
1120
+ onConfirm: this.handleDialogConfirm,
1121
+ onClose: this.handleDialogClose,
1122
+ show: store.dialogOpen
1123
+ })));
1124
+ };
1125
+ CRUD.propsList = [
1126
+ 'bulkActions',
1127
+ 'itemActions',
1128
+ 'mode',
1129
+ 'orderField',
1130
+ 'syncLocation',
1131
+ 'toolbar',
1132
+ 'toolbarInline',
1133
+ 'messages',
1134
+ 'value',
1135
+ 'options',
1136
+ 'multiple',
1137
+ 'valueField',
1138
+ 'defaultParams',
1139
+ 'bodyClassName',
1140
+ 'perPageAvailable',
1141
+ 'pageField',
1142
+ 'perPageField',
1143
+ 'hideQuickSaveBtn',
1144
+ 'autoJumpToTopOnPagerChange',
1145
+ 'interval',
1146
+ 'silentPolling',
1147
+ 'stopAutoRefreshWhen',
1148
+ 'stopAutoRefreshWhenModalIsOpen',
1149
+ 'api',
1150
+ 'affixHeader',
1151
+ 'columnsTogglable',
1152
+ 'placeholder',
1153
+ 'tableClassName',
1154
+ 'headerClassName',
1155
+ 'footerClassName',
1156
+ // 'toolbarClassName',
1157
+ 'headerToolbar',
1158
+ 'footerToolbar',
1159
+ 'filterTogglable',
1160
+ 'filterDefaultVisible',
1161
+ 'autoGenerateFilter',
1162
+ 'syncResponse2Query',
1163
+ 'keepItemSelectionOnPageChange',
1164
+ 'labelTpl',
1165
+ 'labelField',
1166
+ 'loadDataOnce',
1167
+ 'loadDataOnceFetchOnFilter',
1168
+ 'source',
1169
+ 'header',
1170
+ 'columns',
1171
+ 'size',
1172
+ 'onChange',
1173
+ 'onInit',
1174
+ 'onSaved',
1175
+ 'onQuery',
1176
+ 'formStore',
1177
+ 'autoFillHeight'
1178
+ ];
1179
+ CRUD.defaultProps = {
1180
+ toolbarInline: true,
1181
+ headerToolbar: ['bulkActions'],
1182
+ footerToolbar: ['statistics', 'pagination'],
1183
+ primaryField: 'id',
1184
+ syncLocation: true,
1185
+ pageField: 'page',
1186
+ perPageField: 'perPage',
1187
+ hideQuickSaveBtn: false,
1188
+ autoJumpToTopOnPagerChange: true,
1189
+ silentPolling: false,
1190
+ filterTogglable: false,
1191
+ filterDefaultVisible: true,
1192
+ loadDataOnce: false,
1193
+ loadDataOnceFetchOnFilter: true,
1194
+ autoFillHeight: false
1195
+ };
1196
+ return CRUD;
1197
+ }(React.Component));
1198
+ /** @class */ ((function (_super) {
1199
+ __extends(CRUDRenderer, _super);
1200
+ function CRUDRenderer(props, context) {
1201
+ var _this = _super.call(this, props) || this;
1202
+ var scoped = context;
1203
+ scoped.registerComponent(_this);
1204
+ return _this;
1205
+ }
1206
+ CRUDRenderer.prototype.componentWillUnmount = function () {
1207
+ _super.prototype.componentWillUnmount.call(this);
1208
+ var scoped = this.context;
1209
+ scoped.unRegisterComponent(this);
1210
+ };
1211
+ CRUDRenderer.prototype.reload = function (subpath, query, ctx) {
1212
+ var scoped = this.context;
1213
+ if (subpath) {
1214
+ return scoped.reload(query ? "".concat(subpath, "?").concat(qsstringify(query)) : subpath, ctx);
1215
+ }
1216
+ return _super.prototype.reload.call(this, subpath, query);
1217
+ };
1218
+ CRUDRenderer.prototype.receive = function (values, subPath) {
1219
+ var scoped = this.context;
1220
+ if (subPath) {
1221
+ return scoped.send(subPath, values);
1222
+ }
1223
+ return _super.prototype.receive.call(this, values);
1224
+ };
1225
+ CRUDRenderer.prototype.reloadTarget = function (target, data) {
1226
+ var scoped = this.context;
1227
+ scoped.reload(target, data);
1228
+ };
1229
+ CRUDRenderer.prototype.closeTarget = function (target) {
1230
+ var scoped = this.context;
1231
+ scoped.close(target);
1232
+ };
1233
+ CRUDRenderer.contextType = ScopedContext;
1234
+ CRUDRenderer = __decorate([
1235
+ Renderer({
1236
+ type: 'crud',
1237
+ storeType: CRUDStore.name,
1238
+ isolateScope: true
1239
+ }),
1240
+ __metadata("design:paramtypes", [Object, Object])
1241
+ ], CRUDRenderer);
1242
+ return CRUDRenderer;
1243
+ })(CRUD));
1244
+
1245
+ export { CRUD as default };