amis 1.4.2-beta.1 → 1.4.2-beta.11

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 (381) hide show
  1. package/lib/Schema.d.ts +9 -2
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/AnchorNav.d.ts +22 -21
  4. package/lib/components/AnchorNav.js +7 -3
  5. package/lib/components/AnchorNav.js.map +2 -2
  6. package/lib/components/ArrayInput.d.ts +84 -84
  7. package/lib/components/AssociatedSelection.d.ts +930 -0
  8. package/lib/components/AssociatedSelection.js +89 -0
  9. package/lib/components/AssociatedSelection.js.map +13 -0
  10. package/lib/components/Badge.js +2 -2
  11. package/lib/components/Badge.js.map +2 -2
  12. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  13. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  14. package/lib/components/ChainedSelection.js.map +13 -0
  15. package/lib/components/ColorPicker.d.ts +84 -84
  16. package/lib/components/DatePicker.d.ts +84 -84
  17. package/lib/components/DateRangePicker.d.ts +84 -84
  18. package/lib/components/Editor.d.ts +84 -84
  19. package/lib/components/GroupedSelection.d.ts +907 -0
  20. package/lib/components/GroupedSelection.js +48 -0
  21. package/lib/components/GroupedSelection.js.map +13 -0
  22. package/lib/components/Link.d.ts +29 -36
  23. package/lib/components/Link.js +14 -15
  24. package/lib/components/Link.js.map +2 -2
  25. package/lib/components/ListGroup.d.ts +21 -21
  26. package/lib/components/ModalManager.js +1 -1
  27. package/lib/components/ModalManager.js.map +2 -2
  28. package/lib/components/MonthRangePicker.d.ts +84 -84
  29. package/lib/components/NumberInput.d.ts +20 -20
  30. package/lib/components/PickerColumn.d.ts +514 -0
  31. package/lib/components/PickerColumn.js +279 -0
  32. package/lib/components/PickerColumn.js.map +13 -0
  33. package/lib/components/PickerContainer.d.ts +513 -0
  34. package/lib/components/PickerContainer.js +96 -0
  35. package/lib/components/PickerContainer.js.map +13 -0
  36. package/lib/components/Radios.d.ts +22 -21
  37. package/lib/components/Radios.js +1 -0
  38. package/lib/components/Radios.js.map +2 -2
  39. package/lib/components/Rating.d.ts +21 -21
  40. package/lib/components/ResultBox.d.ts +84 -84
  41. package/lib/components/SearchBox.d.ts +84 -84
  42. package/lib/components/SearchBox.js +4 -4
  43. package/lib/components/SearchBox.js.map +2 -2
  44. package/lib/components/Select.d.ts +245 -237
  45. package/lib/components/Select.js +25 -4
  46. package/lib/components/Select.js.map +2 -2
  47. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  48. package/lib/components/Selection.js +134 -0
  49. package/lib/components/Selection.js.map +13 -0
  50. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  51. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  52. package/lib/components/TableSelection.js.map +13 -0
  53. package/lib/components/Tabs.d.ts +20 -20
  54. package/lib/components/TabsTransfer.d.ts +84 -84
  55. package/lib/components/TabsTransfer.js +9 -9
  56. package/lib/components/TabsTransfer.js.map +2 -2
  57. package/lib/components/TabsTransferPicker.d.ts +489 -0
  58. package/lib/components/TabsTransferPicker.js +60 -0
  59. package/lib/components/TabsTransferPicker.js.map +13 -0
  60. package/lib/components/Transfer.d.ts +908 -274
  61. package/lib/components/Transfer.js +31 -24
  62. package/lib/components/Transfer.js.map +2 -2
  63. package/lib/components/TransferDropDown.d.ts +487 -0
  64. package/lib/components/TransferDropDown.js +59 -0
  65. package/lib/components/TransferDropDown.js.map +13 -0
  66. package/lib/components/TransferPicker.d.ts +489 -0
  67. package/lib/components/TransferPicker.js +60 -0
  68. package/lib/components/TransferPicker.js.map +13 -0
  69. package/lib/components/Tree.d.ts +84 -84
  70. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  71. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  72. package/lib/components/TreeSelection.js.map +13 -0
  73. package/lib/components/WithRemoteConfig.js +1 -1
  74. package/lib/components/WithRemoteConfig.js.map +2 -2
  75. package/lib/components/condition-builder/Field.js +5 -2
  76. package/lib/components/condition-builder/Field.js.map +2 -2
  77. package/lib/components/condition-builder/Func.js +2 -2
  78. package/lib/components/condition-builder/Func.js.map +2 -2
  79. package/lib/components/condition-builder/InputSwitch.js +2 -2
  80. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  81. package/lib/components/condition-builder/Item.js +3 -3
  82. package/lib/components/condition-builder/Item.js.map +2 -2
  83. package/lib/components/index.d.ts +8 -8
  84. package/lib/components/index.js +16 -16
  85. package/lib/components/index.js.map +2 -2
  86. package/lib/envOverwrite.js.map +2 -2
  87. package/lib/factory.d.ts +4 -0
  88. package/lib/factory.js +4 -2
  89. package/lib/factory.js.map +2 -2
  90. package/lib/helper.css.map +1 -1
  91. package/lib/hooks/index.d.ts +5 -0
  92. package/lib/hooks/index.js +14 -0
  93. package/lib/hooks/index.js.map +13 -0
  94. package/lib/hooks/use-set-state.d.ts +2 -0
  95. package/lib/hooks/use-set-state.js +15 -0
  96. package/lib/hooks/use-set-state.js.map +13 -0
  97. package/lib/hooks/use-touch.d.ts +16 -0
  98. package/lib/hooks/use-touch.js +73 -0
  99. package/lib/hooks/use-touch.js.map +13 -0
  100. package/lib/hooks/use-update-effect.d.ts +3 -0
  101. package/lib/hooks/use-update-effect.js +17 -0
  102. package/lib/hooks/use-update-effect.js.map +13 -0
  103. package/lib/index.d.ts +3 -0
  104. package/lib/index.js +4 -1
  105. package/lib/index.js.map +2 -2
  106. package/lib/locale/de-DE.js +2 -0
  107. package/lib/locale/de-DE.js.map +2 -2
  108. package/lib/locale/en-US.js +2 -0
  109. package/lib/locale/en-US.js.map +2 -2
  110. package/lib/locale/zh-CN.js +4 -2
  111. package/lib/locale/zh-CN.js.map +2 -2
  112. package/lib/renderers/Action.d.ts +4 -3
  113. package/lib/renderers/Action.js +17 -4
  114. package/lib/renderers/Action.js.map +2 -2
  115. package/lib/renderers/AnchorNav.d.ts +1 -0
  116. package/lib/renderers/AnchorNav.js +2 -2
  117. package/lib/renderers/AnchorNav.js.map +2 -2
  118. package/lib/renderers/Avatar.js +3 -3
  119. package/lib/renderers/Avatar.js.map +2 -2
  120. package/lib/renderers/Breadcrumb.js +1 -1
  121. package/lib/renderers/Breadcrumb.js.map +2 -2
  122. package/lib/renderers/CRUD.d.ts +9 -0
  123. package/lib/renderers/CRUD.js +24 -4
  124. package/lib/renderers/CRUD.js.map +2 -2
  125. package/lib/renderers/Card.d.ts +4 -0
  126. package/lib/renderers/Card.js +29 -23
  127. package/lib/renderers/Card.js.map +2 -2
  128. package/lib/renderers/Chart.js +1 -1
  129. package/lib/renderers/Chart.js.map +2 -2
  130. package/lib/renderers/Collapse.js +3 -2
  131. package/lib/renderers/Collapse.js.map +2 -2
  132. package/lib/renderers/DropDownButton.js +1 -1
  133. package/lib/renderers/DropDownButton.js.map +2 -2
  134. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  135. package/lib/renderers/Form/Editor.d.ts +3 -2
  136. package/lib/renderers/Form/InputCity.d.ts +84 -84
  137. package/lib/renderers/Form/InputCity.js +7 -6
  138. package/lib/renderers/Form/InputCity.js.map +2 -2
  139. package/lib/renderers/Form/InputColor.d.ts +84 -84
  140. package/lib/renderers/Form/InputFile.js +10 -4
  141. package/lib/renderers/Form/InputFile.js.map +2 -2
  142. package/lib/renderers/Form/InputImage.js +11 -4
  143. package/lib/renderers/Form/InputImage.js.map +2 -2
  144. package/lib/renderers/Form/Item.d.ts +1 -1
  145. package/lib/renderers/Form/Item.js.map +1 -1
  146. package/lib/renderers/Form/Options.js +13 -3
  147. package/lib/renderers/Form/Options.js.map +2 -2
  148. package/lib/renderers/Form/Select.d.ts +41 -4
  149. package/lib/renderers/Form/Select.js +23 -3
  150. package/lib/renderers/Form/Select.js.map +2 -2
  151. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  152. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  153. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  154. package/lib/renderers/Form/Transfer.js +3 -2
  155. package/lib/renderers/Form/Transfer.js.map +2 -2
  156. package/lib/renderers/Form/TransferPicker.d.ts +48 -0
  157. package/lib/renderers/Form/TransferPicker.js +29 -0
  158. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  159. package/lib/renderers/Form/TreeSelect.js +2 -2
  160. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  161. package/lib/renderers/Form/index.js +1 -1
  162. package/lib/renderers/Form/index.js.map +2 -2
  163. package/lib/renderers/Form/wrapControl.js +13 -1
  164. package/lib/renderers/Form/wrapControl.js.map +2 -2
  165. package/lib/renderers/IFrame.js +1 -3
  166. package/lib/renderers/IFrame.js.map +2 -2
  167. package/lib/renderers/Json.d.ts +4 -0
  168. package/lib/renderers/Json.js +4 -13
  169. package/lib/renderers/Json.js.map +2 -2
  170. package/lib/renderers/Link.d.ts +4 -2
  171. package/lib/renderers/Link.js +15 -6
  172. package/lib/renderers/Link.js.map +2 -2
  173. package/lib/renderers/List.js +1 -1
  174. package/lib/renderers/List.js.map +2 -2
  175. package/lib/renderers/Mapping.d.ts +9 -2
  176. package/lib/renderers/Mapping.js +18 -6
  177. package/lib/renderers/Mapping.js.map +2 -2
  178. package/lib/renderers/Nav.d.ts +21 -21
  179. package/lib/renderers/Nav.js +39 -21
  180. package/lib/renderers/Nav.js.map +2 -2
  181. package/lib/renderers/Portlet.d.ts +125 -0
  182. package/lib/renderers/Portlet.js +156 -0
  183. package/lib/renderers/Portlet.js.map +13 -0
  184. package/lib/renderers/Property.js +2 -1
  185. package/lib/renderers/Property.js.map +2 -2
  186. package/lib/renderers/SearchBox.d.ts +6 -1
  187. package/lib/renderers/SearchBox.js +19 -5
  188. package/lib/renderers/SearchBox.js.map +2 -2
  189. package/lib/renderers/Table/TableContent.d.ts +4 -1
  190. package/lib/renderers/Table/TableContent.js +21 -1
  191. package/lib/renderers/Table/TableContent.js.map +2 -2
  192. package/lib/renderers/Table/index.d.ts +5 -1
  193. package/lib/renderers/Table/index.js +64 -29
  194. package/lib/renderers/Table/index.js.map +2 -2
  195. package/lib/renderers/Tabs.js +9 -1
  196. package/lib/renderers/Tabs.js.map +2 -2
  197. package/lib/renderers/WebComponent.js +1 -1
  198. package/lib/renderers/WebComponent.js.map +2 -2
  199. package/lib/store/combo.d.ts +2 -16
  200. package/lib/store/crud.js +3 -7
  201. package/lib/store/crud.js.map +2 -2
  202. package/lib/store/form.d.ts +1 -1
  203. package/lib/store/form.js +5 -6
  204. package/lib/store/form.js.map +2 -2
  205. package/lib/store/service.js +5 -4
  206. package/lib/store/service.js.map +2 -2
  207. package/lib/store/table.d.ts +2 -2
  208. package/lib/themes/ang-ie11.css +422 -149
  209. package/lib/themes/ang.css +422 -149
  210. package/lib/themes/ang.css.map +1 -1
  211. package/lib/themes/antd-ie11.css +422 -149
  212. package/lib/themes/antd.css +422 -149
  213. package/lib/themes/antd.css.map +1 -1
  214. package/lib/themes/cxd-ie11.css +456 -182
  215. package/lib/themes/cxd.css +456 -182
  216. package/lib/themes/cxd.css.map +1 -1
  217. package/lib/themes/dark-ie11.css +422 -149
  218. package/lib/themes/dark.css +422 -149
  219. package/lib/themes/dark.css.map +1 -1
  220. package/lib/themes/default.css +456 -182
  221. package/lib/themes/default.css.map +1 -1
  222. package/lib/types.d.ts +37 -0
  223. package/lib/types.js +0 -5
  224. package/lib/types.js.map +2 -2
  225. package/lib/utils/api.d.ts +3 -2
  226. package/lib/utils/api.js +28 -12
  227. package/lib/utils/api.js.map +2 -2
  228. package/lib/utils/dom.d.ts +4 -0
  229. package/lib/utils/dom.js +11 -1
  230. package/lib/utils/dom.js.map +2 -2
  231. package/lib/utils/helper.d.ts +2 -0
  232. package/lib/utils/helper.js +11 -2
  233. package/lib/utils/helper.js.map +2 -2
  234. package/lib/utils/icon.js +3 -0
  235. package/lib/utils/icon.js.map +2 -2
  236. package/package.json +1 -1
  237. package/schema.json +3038 -790
  238. package/scss/_mixins.scss +1 -3
  239. package/scss/_properties.scss +25 -1
  240. package/scss/base/_normalize.scss +2 -0
  241. package/scss/components/_anchor-nav.scss +88 -29
  242. package/scss/components/_card.scss +8 -14
  243. package/scss/components/_collapse.scss +16 -1
  244. package/scss/components/_mapping.scss +6 -0
  245. package/scss/components/_nav.scss +1 -1
  246. package/scss/components/_picker-columns.scss +123 -0
  247. package/scss/components/_popover.scss +17 -0
  248. package/scss/components/_portlet.scss +51 -0
  249. package/scss/components/_status.scss +1 -1
  250. package/scss/components/_table.scss +26 -0
  251. package/scss/components/form/_checks.scss +0 -351
  252. package/scss/components/form/_fieldset.scss +5 -1
  253. package/scss/components/form/_selection.scss +354 -0
  254. package/scss/components/form/_transfer.scss +75 -18
  255. package/scss/themes/_common.scss +4 -0
  256. package/scss/themes/_cxd-variables.scss +4 -1
  257. package/scss/themes/cxd.scss +16 -12
  258. package/sdk/ang-ie11.css +457 -152
  259. package/sdk/ang.css +480 -154
  260. package/sdk/antd-ie11.css +456 -151
  261. package/sdk/antd.css +480 -154
  262. package/sdk/charts.js +13 -13
  263. package/sdk/color-picker.js +65 -69
  264. package/sdk/cropperjs.js +2 -2
  265. package/sdk/cxd-ie11.css +496 -194
  266. package/sdk/cxd.css +517 -190
  267. package/sdk/dark-ie11.css +457 -152
  268. package/sdk/dark.css +480 -154
  269. package/sdk/exceljs.js +1 -1
  270. package/sdk/helper.css.map +1 -1
  271. package/sdk/locale/de-DE.js +2 -0
  272. package/sdk/markdown.js +69 -69
  273. package/sdk/papaparse.js +1 -1
  274. package/sdk/renderers/Form/CityDB.js +1 -1
  275. package/sdk/rest.js +20 -28
  276. package/sdk/rich-text.js +62 -62
  277. package/sdk/sdk-ie11.css +496 -194
  278. package/sdk/sdk.css +517 -190
  279. package/sdk/sdk.js +1268 -1236
  280. package/sdk/thirds/hls.js/hls.js +1 -1
  281. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  282. package/sdk/tinymce.js +57 -57
  283. package/src/Schema.ts +14 -0
  284. package/src/components/AnchorNav.tsx +15 -4
  285. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  286. package/src/components/Badge.tsx +3 -3
  287. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  288. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  289. package/src/components/Link.tsx +28 -37
  290. package/src/components/ModalManager.ts +1 -1
  291. package/src/components/PickerColumn.tsx +429 -0
  292. package/src/components/PickerContainer.tsx +128 -0
  293. package/src/components/Radios.tsx +3 -8
  294. package/src/components/SearchBox.tsx +4 -5
  295. package/src/components/Select.tsx +57 -5
  296. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  297. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  298. package/src/components/TabsTransfer.tsx +13 -7
  299. package/src/components/TabsTransferPicker.tsx +85 -0
  300. package/src/components/Transfer.tsx +71 -50
  301. package/src/components/TransferDropDown.tsx +117 -0
  302. package/src/components/TransferPicker.tsx +84 -0
  303. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  304. package/src/components/WithRemoteConfig.tsx +7 -2
  305. package/src/components/condition-builder/Field.tsx +5 -5
  306. package/src/components/condition-builder/Func.tsx +3 -3
  307. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  308. package/src/components/condition-builder/Item.tsx +5 -12
  309. package/src/components/index.tsx +13 -13
  310. package/src/envOverwrite.ts +0 -1
  311. package/src/factory.tsx +18 -3
  312. package/src/hooks/index.ts +5 -0
  313. package/src/hooks/use-set-state.ts +19 -0
  314. package/src/hooks/use-touch.ts +100 -0
  315. package/src/hooks/use-update-effect.ts +16 -0
  316. package/src/index.tsx +3 -0
  317. package/src/locale/de-DE.ts +2 -0
  318. package/src/locale/en-US.ts +2 -0
  319. package/src/locale/zh-CN.ts +4 -2
  320. package/src/renderers/Action.tsx +28 -2
  321. package/src/renderers/AnchorNav.tsx +4 -0
  322. package/src/renderers/Avatar.tsx +8 -4
  323. package/src/renderers/Breadcrumb.tsx +5 -1
  324. package/src/renderers/CRUD.tsx +33 -3
  325. package/src/renderers/Card.tsx +63 -34
  326. package/src/renderers/Chart.tsx +6 -2
  327. package/src/renderers/Collapse.tsx +4 -2
  328. package/src/renderers/DropDownButton.tsx +1 -1
  329. package/src/renderers/Form/InputCity.tsx +4 -8
  330. package/src/renderers/Form/InputFile.tsx +29 -20
  331. package/src/renderers/Form/InputImage.tsx +11 -3
  332. package/src/renderers/Form/Item.tsx +1 -1
  333. package/src/renderers/Form/Options.tsx +16 -2
  334. package/src/renderers/Form/Select.tsx +144 -21
  335. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  336. package/src/renderers/Form/Transfer.tsx +3 -2
  337. package/src/renderers/Form/TransferPicker.tsx +123 -0
  338. package/src/renderers/Form/TreeSelect.tsx +25 -0
  339. package/src/renderers/Form/index.tsx +1 -1
  340. package/src/renderers/Form/wrapControl.tsx +26 -1
  341. package/src/renderers/IFrame.tsx +2 -4
  342. package/src/renderers/Json.tsx +9 -9
  343. package/src/renderers/Link.tsx +27 -13
  344. package/src/renderers/List.tsx +1 -1
  345. package/src/renderers/Mapping.tsx +27 -11
  346. package/src/renderers/Nav.tsx +108 -60
  347. package/src/renderers/Portlet.tsx +423 -0
  348. package/src/renderers/Property.tsx +3 -2
  349. package/src/renderers/SearchBox.tsx +23 -4
  350. package/src/renderers/Table/TableContent.tsx +40 -2
  351. package/src/renderers/Table/index.tsx +87 -41
  352. package/src/renderers/Tabs.tsx +9 -1
  353. package/src/renderers/WebComponent.tsx +2 -2
  354. package/src/store/crud.ts +3 -8
  355. package/src/store/form.ts +5 -10
  356. package/src/store/service.ts +5 -4
  357. package/src/types.ts +57 -0
  358. package/src/utils/api.ts +40 -20
  359. package/src/utils/dom.tsx +12 -0
  360. package/src/utils/helper.ts +8 -0
  361. package/src/utils/icon.tsx +4 -0
  362. package/dump.rdb +0 -0
  363. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  364. package/lib/components/AssociatedCheckboxes.js +0 -90
  365. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  366. package/lib/components/ChainedCheckboxes.js.map +0 -13
  367. package/lib/components/Checkboxes.js +0 -101
  368. package/lib/components/Checkboxes.js.map +0 -13
  369. package/lib/components/ListCheckboxes.d.ts +0 -739
  370. package/lib/components/ListCheckboxes.js +0 -48
  371. package/lib/components/ListCheckboxes.js.map +0 -13
  372. package/lib/components/ListRadios.d.ts +0 -763
  373. package/lib/components/ListRadios.js +0 -86
  374. package/lib/components/ListRadios.js.map +0 -13
  375. package/lib/components/TableCheckboxes.js.map +0 -13
  376. package/lib/components/TreeCheckboxes.js.map +0 -13
  377. package/lib/components/TreeRadios.d.ts +0 -838
  378. package/lib/components/TreeRadios.js +0 -116
  379. package/lib/components/TreeRadios.js.map +0 -13
  380. package/src/components/ListRadios.tsx +0 -159
  381. package/src/components/TreeRadios.tsx +0 -202
@@ -0,0 +1,125 @@
1
+ import React from 'react';
2
+ import { RendererProps } from '../factory';
3
+ import { SchemaTpl, SchemaClassName, BaseSchema, SchemaCollection, SchemaIcon } from '../Schema';
4
+ import { ActionSchema } from './Action';
5
+ /**
6
+ * 栏目容器渲染器。
7
+ * 文档:https://baidu.gitee.io/amis/docs/components/portlet
8
+ */
9
+ export interface PortletTabSchema extends Omit<BaseSchema, 'type'> {
10
+ /**
11
+ * Tab 标题
12
+ */
13
+ title?: string;
14
+ /**
15
+ * 内容
16
+ * @deprecated 用 body 属性
17
+ */
18
+ tab?: SchemaCollection;
19
+ /**
20
+ * 可以在右侧配置点其他功能按钮,随着tab切换而切换
21
+ */
22
+ toolbar?: Array<ActionSchema>;
23
+ /**
24
+ * 内容
25
+ */
26
+ body?: SchemaCollection;
27
+ /**
28
+ * 按钮图标
29
+ */
30
+ icon?: SchemaIcon;
31
+ iconPosition?: 'left' | 'right';
32
+ /**
33
+ * 设置以后内容每次都会重新渲染
34
+ */
35
+ reload?: boolean;
36
+ /**
37
+ * 点开时才加载卡片内容
38
+ */
39
+ mountOnEnter?: boolean;
40
+ /**
41
+ * 卡片隐藏就销毁卡片节点。
42
+ */
43
+ unmountOnExit?: boolean;
44
+ }
45
+ export interface PortletSchema extends Omit<BaseSchema, 'type'> {
46
+ /**
47
+ * 指定为 portlet 类型
48
+ */
49
+ type: 'portlet';
50
+ tabs: Array<PortletTabSchema>;
51
+ /**
52
+ * 关联已有数据,选项卡直接根据目标数据重复。
53
+ */
54
+ source?: string;
55
+ /**
56
+ * 类名
57
+ */
58
+ tabsClassName?: SchemaClassName;
59
+ /**
60
+ * 展示形式
61
+ */
62
+ tabsMode?: '' | 'line' | 'card' | 'radio' | 'vertical' | 'tiled';
63
+ /**
64
+ * 内容类名
65
+ */
66
+ contentClassName?: SchemaClassName;
67
+ /**
68
+ * 链接外层类名
69
+ */
70
+ linksClassName?: SchemaClassName;
71
+ /**
72
+ * 卡片是否只有在点开的时候加载?
73
+ */
74
+ mountOnEnter?: boolean;
75
+ /**
76
+ * 卡片隐藏的时候是否销毁卡片内容
77
+ */
78
+ unmountOnExit?: boolean;
79
+ /**
80
+ * 可以在右侧配置点其他功能按钮。不会随着tab切换
81
+ */
82
+ toolbar?: Array<ActionSchema>;
83
+ /**
84
+ * 是否支持溢出滚动
85
+ */
86
+ scrollable?: boolean;
87
+ /**
88
+ * header和内容是否展示分割线
89
+ */
90
+ divider?: boolean;
91
+ /**
92
+ * 标题右侧的描述
93
+ */
94
+ description?: SchemaTpl;
95
+ /**
96
+ * 隐藏头部
97
+ */
98
+ hideHeader?: boolean;
99
+ /**
100
+ * 自定义样式
101
+ */
102
+ style?: string | {
103
+ [propName: string]: any;
104
+ };
105
+ }
106
+ export interface PortletProps extends RendererProps, Omit<PortletSchema, 'className' | 'contentClassName'> {
107
+ activeKey?: number;
108
+ tabRender?: (tab: PortletTabSchema, props: PortletProps, index: number) => JSX.Element;
109
+ }
110
+ export interface PortletState {
111
+ activeKey?: number;
112
+ }
113
+ export declare class Portlet extends React.Component<PortletProps, PortletState> {
114
+ static defaultProps: Partial<PortletProps>;
115
+ renderTab?: (tab: PortletTabSchema, props: PortletProps, index: number) => JSX.Element;
116
+ constructor(props: PortletProps);
117
+ handleSelect(key: number): void;
118
+ renderToolbarItem(toolbar: Array<ActionSchema>): JSX.Element[];
119
+ renderToolbar(): JSX.Element | null;
120
+ renderDesc(): JSX.Element | null;
121
+ renderTabs(): JSX.Element | null;
122
+ render(): JSX.Element;
123
+ }
124
+ export declare class PortletRenderer extends Portlet {
125
+ }
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PortletRenderer = exports.Portlet = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
+ var mapValues_1 = (0, tslib_1.__importDefault)(require("lodash/mapValues"));
7
+ var Tabs_1 = require("../components/Tabs");
8
+ var factory_1 = require("../factory");
9
+ var tpl_builtin_1 = require("../utils/tpl-builtin");
10
+ var api_1 = require("../utils/api");
11
+ var helper_1 = require("../utils/helper");
12
+ var tpl_1 = require("../utils/tpl");
13
+ var Portlet = /** @class */ (function (_super) {
14
+ (0, tslib_1.__extends)(Portlet, _super);
15
+ function Portlet(props) {
16
+ var _this = _super.call(this, props) || this;
17
+ var activeKey = props.activeKey || 0;
18
+ _this.state = {
19
+ activeKey: activeKey
20
+ };
21
+ return _this;
22
+ }
23
+ Portlet.prototype.handleSelect = function (key) {
24
+ var _a = this.props, onSelect = _a.onSelect, tabs = _a.tabs;
25
+ if (typeof key === 'number' && key < tabs.length) {
26
+ this.setState({
27
+ activeKey: key
28
+ });
29
+ }
30
+ if (typeof onSelect === 'string') {
31
+ var selectFunc = (0, api_1.str2AsyncFunction)(onSelect, 'key', 'props');
32
+ selectFunc && selectFunc(key, this.props);
33
+ }
34
+ else if (typeof onSelect === 'function') {
35
+ onSelect(key, this.props);
36
+ }
37
+ };
38
+ Portlet.prototype.renderToolbarItem = function (toolbar) {
39
+ var render = this.props.render;
40
+ var actions = [];
41
+ if (Array.isArray(toolbar)) {
42
+ toolbar.forEach(function (action, index) {
43
+ return actions.push(render("toolbar/" + index, (0, tslib_1.__assign)({ type: 'button', level: 'link', size: 'sm' }, action), {
44
+ key: index
45
+ }));
46
+ });
47
+ }
48
+ return actions;
49
+ };
50
+ Portlet.prototype.renderToolbar = function () {
51
+ var _a = this.props, toolbar = _a.toolbar, cx = _a.classnames, ns = _a.classPrefix, tabs = _a.tabs;
52
+ var activeKey = this.state.activeKey;
53
+ var tabToolbar = null;
54
+ var tabToolbarTpl = null;
55
+ // tabs里的toolbar
56
+ var toolbarTpl = toolbar ? (react_1.default.createElement("div", { className: cx(ns + "toolbar") }, this.renderToolbarItem(toolbar))) : null;
57
+ // tab里的toolbar
58
+ if (typeof activeKey !== 'undefined') {
59
+ tabToolbar = tabs[activeKey].toolbar;
60
+ tabToolbarTpl = tabToolbar ? (react_1.default.createElement("div", { className: cx(ns + "tab-toolbar") }, this.renderToolbarItem(tabToolbar))) : null;
61
+ }
62
+ return toolbarTpl || tabToolbarTpl ? (react_1.default.createElement("div", { className: cx(ns + "Portlet-toolbar") },
63
+ toolbarTpl,
64
+ tabToolbarTpl)) : null;
65
+ };
66
+ Portlet.prototype.renderDesc = function () {
67
+ var _a = this.props, descTpl = _a.description, render = _a.render, cx = _a.classnames, ns = _a.classPrefix, data = _a.data;
68
+ var desc = (0, tpl_1.filter)(descTpl, data);
69
+ return desc ? (react_1.default.createElement("span", { className: cx(ns + "Portlet-header-desc") }, desc)) : null;
70
+ };
71
+ Portlet.prototype.renderTabs = function () {
72
+ var _a;
73
+ var _this = this;
74
+ var _b = this.props, cx = _b.classnames, ns = _b.classPrefix, tabsClassName = _b.tabsClassName, contentClassName = _b.contentClassName, linksClassName = _b.linksClassName, tabRender = _b.tabRender, render = _b.render, data = _b.data, dMode = _b.mode, tabsMode = _b.tabsMode, unmountOnExit = _b.unmountOnExit, source = _b.source, mountOnEnter = _b.mountOnEnter, scrollable = _b.scrollable, divider = _b.divider;
75
+ var mode = tabsMode || dMode;
76
+ var arr = (0, tpl_builtin_1.resolveVariable)(source, data);
77
+ var tabs = this.props.tabs;
78
+ if (!tabs) {
79
+ return null;
80
+ }
81
+ tabs = Array.isArray(tabs) ? tabs : [tabs];
82
+ var children = [];
83
+ var tabClassname = cx(ns + "Portlet-tab", tabsClassName, (_a = {},
84
+ _a['unactive-select'] = tabs.length <= 1,
85
+ _a['no-divider'] = !divider,
86
+ _a));
87
+ if (Array.isArray(arr)) {
88
+ arr.forEach(function (value, index) {
89
+ var ctx = (0, helper_1.createObject)(data, (0, helper_1.isObject)(value) ? (0, tslib_1.__assign)({ index: index }, value) : { item: value, index: index });
90
+ children.push.apply(children, tabs.map(function (tab, tabIndex) {
91
+ var _a;
92
+ return (0, helper_1.isVisible)(tab, ctx) ? (react_1.default.createElement(Tabs_1.Tab, (0, tslib_1.__assign)({}, tab, { title: (0, tpl_1.filter)(tab.title, ctx), disabled: (0, helper_1.isDisabled)(tab, ctx), key: "" + (index * 1000 + tabIndex), eventKey: index * 1000 + tabIndex, mountOnEnter: mountOnEnter, unmountOnExit: typeof tab.reload === 'boolean'
93
+ ? tab.reload
94
+ : typeof tab.unmountOnExit === 'boolean'
95
+ ? tab.unmountOnExit
96
+ : unmountOnExit }), render("item/" + index + "/" + tabIndex, ((_a = tab) === null || _a === void 0 ? void 0 : _a.type) ? tab : tab.tab || tab.body, {
97
+ data: ctx
98
+ }))) : null;
99
+ }));
100
+ });
101
+ }
102
+ else {
103
+ children = tabs.map(function (tab, index) {
104
+ var _a;
105
+ return (0, helper_1.isVisible)(tab, data) ? (react_1.default.createElement(Tabs_1.Tab, (0, tslib_1.__assign)({}, tab, { title: (0, tpl_1.filter)(tab.title, data), disabled: (0, helper_1.isDisabled)(tab, data), key: index, eventKey: index, mountOnEnter: mountOnEnter, unmountOnExit: typeof tab.reload === 'boolean'
106
+ ? tab.reload
107
+ : typeof tab.unmountOnExit === 'boolean'
108
+ ? tab.unmountOnExit
109
+ : unmountOnExit }), _this.renderTab
110
+ ? _this.renderTab(tab, _this.props, index)
111
+ : tabRender
112
+ ? tabRender(tab, _this.props, index)
113
+ : render("tab/" + index, ((_a = tab) === null || _a === void 0 ? void 0 : _a.type) ? tab : tab.tab || tab.body))) : null;
114
+ });
115
+ }
116
+ return (react_1.default.createElement(Tabs_1.Tabs, { classPrefix: ns, classnames: cx, mode: mode, className: tabClassname, contentClassName: contentClassName, linksClassName: linksClassName, activeKey: this.state.activeKey, onSelect: this.handleSelect, toolbar: this.renderToolbar(), additionBtns: this.renderDesc(), scrollable: scrollable }, children));
117
+ };
118
+ Portlet.prototype.render = function () {
119
+ var _a;
120
+ var _b = this.props, className = _b.className, data = _b.data, cx = _b.classnames, ns = _b.classPrefix, style = _b.style, hideHeader = _b.hideHeader;
121
+ var portletClassname = cx(ns + "Portlet", className, (_a = {},
122
+ _a['no-header'] = hideHeader,
123
+ _a));
124
+ var styleVar = typeof style === 'string'
125
+ ? (0, tpl_builtin_1.resolveVariable)(style, data) || {}
126
+ : (0, mapValues_1.default)(style, function (s) { return (0, tpl_builtin_1.resolveVariable)(s, data) || s; });
127
+ return (react_1.default.createElement("div", { className: portletClassname, style: styleVar }, this.renderTabs()));
128
+ };
129
+ Portlet.defaultProps = {
130
+ className: '',
131
+ mode: 'line',
132
+ divider: true
133
+ };
134
+ (0, tslib_1.__decorate)([
135
+ helper_1.autobind,
136
+ (0, tslib_1.__metadata)("design:type", Function),
137
+ (0, tslib_1.__metadata)("design:paramtypes", [Number]),
138
+ (0, tslib_1.__metadata)("design:returntype", void 0)
139
+ ], Portlet.prototype, "handleSelect", null);
140
+ return Portlet;
141
+ }(react_1.default.Component));
142
+ exports.Portlet = Portlet;
143
+ var PortletRenderer = /** @class */ (function (_super) {
144
+ (0, tslib_1.__extends)(PortletRenderer, _super);
145
+ function PortletRenderer() {
146
+ return _super !== null && _super.apply(this, arguments) || this;
147
+ }
148
+ PortletRenderer = (0, tslib_1.__decorate)([
149
+ (0, factory_1.Renderer)({
150
+ type: 'portlet'
151
+ })
152
+ ], PortletRenderer);
153
+ return PortletRenderer;
154
+ }(Portlet));
155
+ exports.PortletRenderer = PortletRenderer;
156
+ //# sourceMappingURL=./renderers/Portlet.js.map
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "file": "Portlet.js",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "/src/renderers/Portlet.tsx"
7
+ ],
8
+ "names": [],
9
+ "mappings": "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",
10
+ "sourcesContent": [
11
+ "import React from 'react';\nimport mapValues from 'lodash/mapValues';\n\nimport {Tabs as CTabs, Tab} from '../components/Tabs';\nimport {Renderer, RendererProps} from '../factory';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport {str2AsyncFunction} from '../utils/api';\nimport {\n isVisible,\n autobind,\n isDisabled,\n isObject,\n createObject\n} from '../utils/helper';\n\nimport {filter} from '../utils/tpl';\nimport {\n SchemaTpl,\n SchemaClassName,\n BaseSchema,\n SchemaCollection,\n SchemaIcon\n} from '../Schema';\n\nimport {ActionSchema} from './Action';\n\n/**\n * 栏目容器渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/portlet\n */\nexport interface PortletTabSchema extends Omit<BaseSchema, 'type'> {\n /**\n * Tab 标题\n */\n title?: string;\n\n /**\n * 内容\n * @deprecated 用 body 属性\n */\n tab?: SchemaCollection;\n\n /**\n * 可以在右侧配置点其他功能按钮,随着tab切换而切换\n */\n toolbar?: Array<ActionSchema>;\n\n /**\n * 内容\n */\n body?: SchemaCollection;\n\n /**\n * 按钮图标\n */\n icon?: SchemaIcon;\n\n iconPosition?: 'left' | 'right';\n\n /**\n * 设置以后内容每次都会重新渲染\n */\n reload?: boolean;\n\n /**\n * 点开时才加载卡片内容\n */\n mountOnEnter?: boolean;\n\n /**\n * 卡片隐藏就销毁卡片节点。\n */\n unmountOnExit?: boolean;\n}\n\nexport interface PortletSchema extends Omit<BaseSchema, 'type'> {\n /**\n * 指定为 portlet 类型\n */\n type: 'portlet';\n\n tabs: Array<PortletTabSchema>;\n\n /**\n * 关联已有数据,选项卡直接根据目标数据重复。\n */\n source?: string;\n\n /**\n * 类名\n */\n tabsClassName?: SchemaClassName;\n\n /**\n * 展示形式\n */\n tabsMode?: '' | 'line' | 'card' | 'radio' | 'vertical' | 'tiled';\n\n /**\n * 内容类名\n */\n contentClassName?: SchemaClassName;\n\n /**\n * 链接外层类名\n */\n linksClassName?: SchemaClassName;\n\n /**\n * 卡片是否只有在点开的时候加载?\n */\n mountOnEnter?: boolean;\n\n /**\n * 卡片隐藏的时候是否销毁卡片内容\n */\n unmountOnExit?: boolean;\n\n /**\n * 可以在右侧配置点其他功能按钮。不会随着tab切换\n */\n toolbar?: Array<ActionSchema>;\n\n /**\n * 是否支持溢出滚动\n */\n scrollable?: boolean;\n\n /**\n * header和内容是否展示分割线\n */\n divider?: boolean;\n\n /**\n * 标题右侧的描述\n */\n description?: SchemaTpl;\n\n /**\n * 隐藏头部\n */\n hideHeader?: boolean;\n\n /**\n * 自定义样式\n */\n style?:\n | string\n | {\n [propName: string]: any;\n };\n}\n\nexport interface PortletProps\n extends RendererProps,\n Omit<PortletSchema, 'className' | 'contentClassName'> {\n activeKey?: number;\n tabRender?: (\n tab: PortletTabSchema,\n props: PortletProps,\n index: number\n ) => JSX.Element;\n}\n\nexport interface PortletState {\n activeKey?: number;\n}\n\nexport class Portlet extends React.Component<PortletProps, PortletState> {\n static defaultProps: Partial<PortletProps> = {\n className: '',\n mode: 'line',\n divider: true\n };\n renderTab?: (\n tab: PortletTabSchema,\n props: PortletProps,\n index: number\n ) => JSX.Element;\n constructor(props: PortletProps) {\n super(props);\n\n const activeKey = props.activeKey || 0;\n\n this.state = {\n activeKey\n };\n }\n\n @autobind\n handleSelect(key: number) {\n const {onSelect, tabs} = this.props;\n if (typeof key === 'number' && key < tabs.length) {\n this.setState({\n activeKey: key\n });\n }\n\n if (typeof onSelect === 'string') {\n const selectFunc = str2AsyncFunction(onSelect, 'key', 'props');\n selectFunc && selectFunc(key, this.props);\n } else if (typeof onSelect === 'function') {\n onSelect(key, this.props);\n }\n }\n\n renderToolbarItem(toolbar: Array<ActionSchema>) {\n const {render} = this.props;\n let actions: Array<JSX.Element> = [];\n if (Array.isArray(toolbar)) {\n toolbar.forEach((action, index) =>\n actions.push(\n render(\n `toolbar/${index}`,\n {\n type: 'button',\n level: 'link',\n size: 'sm',\n ...(action as any)\n },\n {\n key: index\n }\n )\n )\n );\n }\n return actions;\n }\n\n renderToolbar() {\n const {toolbar, classnames: cx, classPrefix: ns, tabs} = this.props;\n const activeKey = this.state.activeKey;\n let tabToolbar = null;\n let tabToolbarTpl = null;\n // tabs里的toolbar\n const toolbarTpl = toolbar ? (\n <div className={cx(`${ns}toolbar`)}>\n {this.renderToolbarItem(toolbar)}\n </div>\n ) : null;\n\n // tab里的toolbar\n if (typeof activeKey !== 'undefined') {\n tabToolbar = tabs[activeKey]!.toolbar;\n tabToolbarTpl = tabToolbar ? (\n <div className={cx(`${ns}tab-toolbar`)}>\n {this.renderToolbarItem(tabToolbar)}\n </div>\n ) : null;\n }\n\n return toolbarTpl || tabToolbarTpl ? (\n <div className={cx(`${ns}Portlet-toolbar`)}>\n {toolbarTpl}\n {tabToolbarTpl}\n </div>\n ) : null;\n }\n\n renderDesc() {\n const {\n description: descTpl,\n render,\n classnames: cx,\n classPrefix: ns,\n data\n } = this.props;\n const desc = filter(descTpl, data);\n return desc ? (\n <span className={cx(`${ns}Portlet-header-desc`)}>{desc}</span>\n ) : null;\n }\n\n renderTabs() {\n const {\n classnames: cx,\n classPrefix: ns,\n tabsClassName,\n contentClassName,\n linksClassName,\n tabRender,\n render,\n data,\n mode: dMode,\n tabsMode,\n unmountOnExit,\n source,\n mountOnEnter,\n scrollable,\n divider\n } = this.props;\n const mode = tabsMode || dMode;\n const arr = resolveVariable(source, data);\n\n let tabs = this.props.tabs;\n if (!tabs) {\n return null;\n }\n\n tabs = Array.isArray(tabs) ? tabs : [tabs];\n let children: Array<JSX.Element | null> = [];\n\n const tabClassname = cx(`${ns}Portlet-tab`, tabsClassName, {\n ['unactive-select']: tabs.length <= 1,\n ['no-divider']: !divider\n });\n if (Array.isArray(arr)) {\n arr.forEach((value, index) => {\n const ctx = createObject(\n data,\n isObject(value) ? {index, ...value} : {item: value, index}\n );\n\n children.push(\n ...tabs.map((tab, tabIndex) =>\n isVisible(tab, ctx) ? (\n <Tab\n {...(tab as any)}\n title={filter(tab.title, ctx)}\n disabled={isDisabled(tab, ctx)}\n key={`${index * 1000 + tabIndex}`}\n eventKey={index * 1000 + tabIndex}\n mountOnEnter={mountOnEnter}\n unmountOnExit={\n typeof tab.reload === 'boolean'\n ? tab.reload\n : typeof tab.unmountOnExit === 'boolean'\n ? tab.unmountOnExit\n : unmountOnExit\n }\n >\n {render(\n `item/${index}/${tabIndex}`,\n (tab as any)?.type ? (tab as any) : tab.tab || tab.body,\n {\n data: ctx\n }\n )}\n </Tab>\n ) : null\n )\n );\n });\n } else {\n children = tabs.map((tab, index) =>\n isVisible(tab, data) ? (\n <Tab\n {...(tab as any)}\n title={filter(tab.title, data)}\n disabled={isDisabled(tab, data)}\n key={index}\n eventKey={index}\n mountOnEnter={mountOnEnter}\n unmountOnExit={\n typeof tab.reload === 'boolean'\n ? tab.reload\n : typeof tab.unmountOnExit === 'boolean'\n ? tab.unmountOnExit\n : unmountOnExit\n }\n >\n {this.renderTab\n ? this.renderTab(tab, this.props, index)\n : tabRender\n ? tabRender(tab, this.props, index)\n : render(\n `tab/${index}`,\n (tab as any)?.type ? (tab as any) : tab.tab || tab.body\n )}\n </Tab>\n ) : null\n );\n }\n\n return (\n <CTabs\n classPrefix={ns}\n classnames={cx}\n mode={mode}\n className={tabClassname}\n contentClassName={contentClassName}\n linksClassName={linksClassName}\n activeKey={this.state.activeKey}\n onSelect={this.handleSelect}\n toolbar={this.renderToolbar()}\n additionBtns={this.renderDesc()}\n scrollable={scrollable}\n >\n {children}\n </CTabs>\n );\n }\n\n render() {\n const {\n className,\n data,\n classnames: cx,\n classPrefix: ns,\n style,\n hideHeader\n } = this.props;\n const portletClassname = cx(`${ns}Portlet`, className, {\n ['no-header']: hideHeader\n });\n const styleVar =\n typeof style === 'string'\n ? resolveVariable(style, data) || {}\n : mapValues(style, s => resolveVariable(s, data) || s);\n\n return (\n <div className={portletClassname} style={styleVar}>\n {this.renderTabs()}\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'portlet'\n})\nexport class PortletRenderer extends Portlet {}\n"
12
+ ]
13
+ }
@@ -21,7 +21,8 @@ var Property = /** @class */ (function (_super) {
21
21
  var _a = this.props, _b = _a.column, column = _b === void 0 ? 3 : _b, items = _a.items, source = _a.source, data = _a.data;
22
22
  var propertyItems = (items
23
23
  ? items
24
- : (0, tpl_builtin_1.resolveVariable)(source, data)) || [];
24
+ : (0, tpl_builtin_1.resolveVariableAndFilter)(source, data)) ||
25
+ [];
25
26
  var rows = [];
26
27
  var row = [];
27
28
  var columnLeft = column;
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Property.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "/**\n * @file 表格的方式显示只读信息,比如产品详情\n */\n\nimport React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema, SchemaExpression, SchemaObject, SchemaTpl} from '../Schema';\nimport PopOver from './PopOver';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport {visibilityFilter} from '../utils/helper';\n\nexport type PropertyItemProps = {\n /**\n * 属性名\n */\n label?: SchemaTpl;\n\n /**\n * 属性值\n */\n content?: SchemaTpl;\n\n /**\n * 配置是否显示,如果不显示,后续的节点会补上来\n */\n visibleOn?: SchemaExpression;\n\n /**\n * 配置是否显示,如果不显示,后续的节点会补上来\n */\n hiddenOn?: SchemaExpression;\n\n /**\n * 跨几列\n */\n span?: number;\n};\n\nexport type PropertyItem = PropertyItemProps & SchemaObject;\n\n/**\n * Property 属性列表\n * 文档:https://baidu.gitee.io/amis/docs/components/property\n */\nexport interface PropertySchema extends BaseSchema {\n /**\n * 指定为 property 展示类型\n */\n type: 'property';\n\n /**\n * 标题\n */\n title?: string;\n\n /**\n * 一共几列\n */\n column?: number;\n\n /**\n * 显示模式\n */\n mode?: 'table' | 'simple';\n\n /**\n * 每个 property 的设置\n */\n items: Array<PropertyItem>;\n\n /**\n * 自定义样式\n */\n style?: {\n [propName: string]: any;\n };\n\n /**\n * 标题样式\n */\n titleStyle?: {\n [propName: string]: any;\n };\n\n /**\n * 自定义样式\n */\n labelStyle?: {\n [propName: string]: any;\n };\n\n separator?: string;\n\n /**\n * 自定义样式\n */\n contentStyle?: {\n [propName: string]: any;\n };\n}\n\nexport interface PropertyProps\n extends RendererProps,\n Omit<PropertySchema, 'type' | 'className'> {}\n\ninterface PropertyContent {\n label: any;\n content: any;\n span: number;\n}\n\nexport default class Property extends React.Component<PropertyProps, object> {\n constructor(props: PropertyProps) {\n super(props);\n }\n\n /**\n * 算好每行的分布情况,方便后续渲染\n */\n prepareRows() {\n const {column = 3, items, source, data} = this.props;\n\n const propertyItems =\n (items\n ? items\n : (resolveVariable(source, data) as Array<PropertyItem>)) || [];\n\n const rows: PropertyContent[][] = [];\n\n let row: PropertyContent[] = [];\n let columnLeft = column;\n let index = 0;\n const filteredItems = visibilityFilter(propertyItems, data);\n\n for (const item of filteredItems) {\n index = index + 1;\n const span = Math.min(item.span || 1, column);\n columnLeft = columnLeft - span;\n const rowItem = {\n label: item.label,\n content: item.content,\n span: span\n };\n // 如果还能放得下就放这一行\n if (columnLeft >= 0) {\n row.push(rowItem);\n } else {\n rows.push(row);\n columnLeft = column - span;\n row = [rowItem];\n }\n\n // 最后一行将最后的数据 push\n if (index === filteredItems.length) {\n rows.push(row);\n }\n }\n\n return rows;\n }\n\n renderRow(rows: PropertyContent[][]) {\n const {\n render,\n contentStyle,\n labelStyle,\n separator = ': ',\n mode = 'table'\n } = this.props;\n return rows.map((row, key) => {\n return (\n <tr key={key}>\n {row.map((property, index) => {\n return mode === 'table' ? (\n <React.Fragment key={`item-${index}`}>\n <th style={labelStyle}>{render('label', property.label)}</th>\n <td\n colSpan={property.span + property.span - 1} // 需要再补上 th 所占的列数\n style={contentStyle}\n >\n {render('content', property.content)}\n </td>\n </React.Fragment>\n ) : (\n <td\n colSpan={property.span}\n style={contentStyle}\n key={`item-${index}`}\n >\n <span style={labelStyle}>\n {render('label', property.label)}\n </span>\n {separator}\n {render('content', property.content)}\n </td>\n );\n })}\n </tr>\n );\n });\n }\n\n render() {\n const {\n style,\n title,\n column = 3,\n classnames: cx,\n className,\n titleStyle,\n mode = 'table'\n } = this.props;\n\n const rows = this.prepareRows();\n\n return (\n <div\n className={cx('Property', `Property--${mode}`, className)}\n style={style}\n >\n <table>\n {title ? (\n <thead>\n <tr>\n <th\n colSpan={mode === 'table' ? column + column : column}\n style={titleStyle}\n >\n {title}\n </th>\n </tr>\n </thead>\n ) : null}\n <tbody>{this.renderRow(rows)}</tbody>\n </table>\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'property'\n})\nexport class PropertyRenderer extends Property {}\n"
11
+ "/**\n * @file 表格的方式显示只读信息,比如产品详情\n */\n\nimport React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema, SchemaExpression, SchemaObject, SchemaTpl} from '../Schema';\nimport PopOver from './PopOver';\nimport {resolveVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';\nimport {visibilityFilter} from '../utils/helper';\n\nexport type PropertyItemProps = {\n /**\n * 属性名\n */\n label?: SchemaTpl;\n\n /**\n * 属性值\n */\n content?: SchemaTpl;\n\n /**\n * 配置是否显示,如果不显示,后续的节点会补上来\n */\n visibleOn?: SchemaExpression;\n\n /**\n * 配置是否显示,如果不显示,后续的节点会补上来\n */\n hiddenOn?: SchemaExpression;\n\n /**\n * 跨几列\n */\n span?: number;\n};\n\nexport type PropertyItem = PropertyItemProps & SchemaObject;\n\n/**\n * Property 属性列表\n * 文档:https://baidu.gitee.io/amis/docs/components/property\n */\nexport interface PropertySchema extends BaseSchema {\n /**\n * 指定为 property 展示类型\n */\n type: 'property';\n\n /**\n * 标题\n */\n title?: string;\n\n /**\n * 一共几列\n */\n column?: number;\n\n /**\n * 显示模式\n */\n mode?: 'table' | 'simple';\n\n /**\n * 每个 property 的设置\n */\n items: Array<PropertyItem>;\n\n /**\n * 自定义样式\n */\n style?: {\n [propName: string]: any;\n };\n\n /**\n * 标题样式\n */\n titleStyle?: {\n [propName: string]: any;\n };\n\n /**\n * 自定义样式\n */\n labelStyle?: {\n [propName: string]: any;\n };\n\n separator?: string;\n\n /**\n * 自定义样式\n */\n contentStyle?: {\n [propName: string]: any;\n };\n}\n\nexport interface PropertyProps\n extends RendererProps,\n Omit<PropertySchema, 'type' | 'className'> {}\n\ninterface PropertyContent {\n label: any;\n content: any;\n span: number;\n}\n\nexport default class Property extends React.Component<PropertyProps, object> {\n constructor(props: PropertyProps) {\n super(props);\n }\n\n /**\n * 算好每行的分布情况,方便后续渲染\n */\n prepareRows() {\n const {column = 3, items, source, data} = this.props;\n\n const propertyItems =\n (items\n ? items\n : (resolveVariableAndFilter(source, data) as Array<PropertyItem>)) ||\n [];\n\n const rows: PropertyContent[][] = [];\n\n let row: PropertyContent[] = [];\n let columnLeft = column;\n let index = 0;\n const filteredItems = visibilityFilter(propertyItems, data);\n\n for (const item of filteredItems) {\n index = index + 1;\n const span = Math.min(item.span || 1, column);\n columnLeft = columnLeft - span;\n const rowItem = {\n label: item.label,\n content: item.content,\n span: span\n };\n // 如果还能放得下就放这一行\n if (columnLeft >= 0) {\n row.push(rowItem);\n } else {\n rows.push(row);\n columnLeft = column - span;\n row = [rowItem];\n }\n\n // 最后一行将最后的数据 push\n if (index === filteredItems.length) {\n rows.push(row);\n }\n }\n\n return rows;\n }\n\n renderRow(rows: PropertyContent[][]) {\n const {\n render,\n contentStyle,\n labelStyle,\n separator = ': ',\n mode = 'table'\n } = this.props;\n return rows.map((row, key) => {\n return (\n <tr key={key}>\n {row.map((property, index) => {\n return mode === 'table' ? (\n <React.Fragment key={`item-${index}`}>\n <th style={labelStyle}>{render('label', property.label)}</th>\n <td\n colSpan={property.span + property.span - 1} // 需要再补上 th 所占的列数\n style={contentStyle}\n >\n {render('content', property.content)}\n </td>\n </React.Fragment>\n ) : (\n <td\n colSpan={property.span}\n style={contentStyle}\n key={`item-${index}`}\n >\n <span style={labelStyle}>\n {render('label', property.label)}\n </span>\n {separator}\n {render('content', property.content)}\n </td>\n );\n })}\n </tr>\n );\n });\n }\n\n render() {\n const {\n style,\n title,\n column = 3,\n classnames: cx,\n className,\n titleStyle,\n mode = 'table'\n } = this.props;\n\n const rows = this.prepareRows();\n\n return (\n <div\n className={cx('Property', `Property--${mode}`, className)}\n style={style}\n >\n <table>\n {title ? (\n <thead>\n <tr>\n <th\n colSpan={mode === 'table' ? column + column : column}\n style={titleStyle}\n >\n {title}\n </th>\n </tr>\n </thead>\n ) : null}\n <tbody>{this.renderRow(rows)}</tbody>\n </table>\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'property'\n})\nexport class PropertyRenderer extends Property {}\n"
12
12
  ]
13
13
  }
@@ -40,13 +40,18 @@ interface SearchBoxProps extends RendererProps, Omit<SearchBoxSchema, 'type' | '
40
40
  [propName: string]: string;
41
41
  }) => void;
42
42
  }
43
- export declare class SearchBoxRenderer extends React.Component<SearchBoxProps> {
43
+ export interface SearchBoxState {
44
+ value: string;
45
+ }
46
+ export declare class SearchBoxRenderer extends React.Component<SearchBoxProps, SearchBoxState> {
44
47
  static defaultProps: {
45
48
  name: string;
46
49
  mini: boolean;
47
50
  searchImediately: boolean;
48
51
  };
49
52
  static propsList: Array<string>;
53
+ constructor(props: SearchBoxProps);
54
+ handleChange(value: string): void;
50
55
  handleCancel(): void;
51
56
  handleSearch(text: string): void;
52
57
  render(): JSX.Element;
@@ -8,9 +8,16 @@ var SearchBox_1 = (0, tslib_1.__importDefault)(require("../components/SearchBox"
8
8
  var helper_1 = require("../utils/helper");
9
9
  var SearchBoxRenderer = /** @class */ (function (_super) {
10
10
  (0, tslib_1.__extends)(SearchBoxRenderer, _super);
11
- function SearchBoxRenderer() {
12
- return _super !== null && _super.apply(this, arguments) || this;
11
+ function SearchBoxRenderer(props) {
12
+ var _this = _super.call(this, props) || this;
13
+ _this.state = {
14
+ value: (0, helper_1.getPropValue)(props) || ''
15
+ };
16
+ return _this;
13
17
  }
18
+ SearchBoxRenderer.prototype.handleChange = function (value) {
19
+ this.setState({ value: value });
20
+ };
14
21
  SearchBoxRenderer.prototype.handleCancel = function () {
15
22
  var name = this.props.name;
16
23
  var onQuery = this.props.onQuery;
@@ -29,8 +36,8 @@ var SearchBoxRenderer = /** @class */ (function (_super) {
29
36
  };
30
37
  SearchBoxRenderer.prototype.render = function () {
31
38
  var _a = this.props, data = _a.data, name = _a.name, onQuery = _a.onQuery, mini = _a.mini, searchImediately = _a.searchImediately, placeholder = _a.placeholder, onChange = _a.onChange, className = _a.className;
32
- var value = (0, helper_1.getPropValue)(this.props);
33
- return (react_1.default.createElement(SearchBox_1.default, { className: className, name: name, disabled: !onQuery, defaultActive: !!value, defaultValue: onChange ? undefined : value, value: onChange ? value : undefined, mini: mini, searchImediately: searchImediately, onSearch: this.handleSearch, onCancel: this.handleCancel, placeholder: placeholder, onChange: onChange }));
39
+ var value = this.state.value;
40
+ return (react_1.default.createElement(SearchBox_1.default, { className: className, name: name, disabled: !onQuery, defaultActive: !!value, defaultValue: onChange ? undefined : value, value: value, mini: mini, searchImediately: searchImediately, onSearch: this.handleSearch, onCancel: this.handleCancel, placeholder: placeholder, onChange: this.handleChange }));
34
41
  };
35
42
  SearchBoxRenderer.defaultProps = {
36
43
  name: 'keywords',
@@ -38,6 +45,12 @@ var SearchBoxRenderer = /** @class */ (function (_super) {
38
45
  searchImediately: false
39
46
  };
40
47
  SearchBoxRenderer.propsList = ['mini', 'searchImediately'];
48
+ (0, tslib_1.__decorate)([
49
+ helper_1.autobind,
50
+ (0, tslib_1.__metadata)("design:type", Function),
51
+ (0, tslib_1.__metadata)("design:paramtypes", [String]),
52
+ (0, tslib_1.__metadata)("design:returntype", void 0)
53
+ ], SearchBoxRenderer.prototype, "handleChange", null);
41
54
  (0, tslib_1.__decorate)([
42
55
  helper_1.autobind,
43
56
  (0, tslib_1.__metadata)("design:type", Function),
@@ -53,7 +66,8 @@ var SearchBoxRenderer = /** @class */ (function (_super) {
53
66
  SearchBoxRenderer = (0, tslib_1.__decorate)([
54
67
  (0, factory_1.Renderer)({
55
68
  type: 'search-box'
56
- })
69
+ }),
70
+ (0, tslib_1.__metadata)("design:paramtypes", [Object])
57
71
  ], SearchBoxRenderer);
58
72
  return SearchBoxRenderer;
59
73
  }(react_1.default.Component));
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/SearchBox.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;;AACA,sCAAmD;AACnD,6DAA0B;AAE1B,mFAAgD;AAChD,0CAKyB;AAmDzB;IAAuC,kDAA+B;IAAtE;;IA4DA,CAAC;IAlDC,wCAAY,GAAZ;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,IAAM,KAAK,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,IAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;SACjB;IACH,CAAC;IAGD,wCAAY,GAAZ,UAAa,IAAY;QACjB,IAAA,KAA2B,IAAI,CAAC,KAAK,EAApC,IAAI,UAAA,EAAW,OAAO,aAAc,CAAC;QAC5C,IAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,kCAAM,GAAN;QACQ,IAAA,KASF,IAAI,CAAC,KAAK,EARZ,IAAI,UAAA,EACJ,IAAI,UAAA,EACK,OAAO,aAAA,EAChB,IAAI,UAAA,EACJ,gBAAgB,sBAAA,EAChB,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,SAAS,eACG,CAAC;QAEf,IAAM,KAAK,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO,CACL,8BAAC,mBAAS,IACR,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,OAAO,EAClB,aAAa,EAAE,CAAC,CAAC,KAAK,EACtB,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAC1C,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACnC,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;IACJ,CAAC;IA1DM,8BAAY,GAAG;QACpB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,KAAK;QACX,gBAAgB,EAAE,KAAK;KACxB,CAAC;IAEK,2BAAS,GAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAE,CAAA;IAG/D;QADC,iBAAQ;;;;yDAUR;IAGD;QADC,iBAAQ;;;;yDAMR;IA3BU,iBAAiB;QAH7B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,YAAY;SACnB,CAAC;OACW,iBAAiB,CA4D7B;IAAD,wBAAC;CAAA,AA5DD,CAAuC,eAAK,CAAC,SAAS,GA4DrD;AA5DY,8CAAiB",
9
+ "mappings": ";;;;AACA,sCAAmD;AACnD,6DAA0B;AAE1B,mFAAgD;AAChD,0CAKyB;AAuDzB;IAAuC,kDAGtC;IASC,2BAAY,KAAqB;QAAjC,YACE,kBAAM,KAAK,CAAC,SAIb;QAHC,KAAI,CAAC,KAAK,GAAG;YACX,KAAK,EAAE,IAAA,qBAAY,EAAC,KAAK,CAAC,IAAI,EAAE;SACjC,CAAC;;IACJ,CAAC;IAGD,wCAAY,GAAZ,UAAa,KAAa;QACxB,IAAI,CAAC,QAAQ,CAAC,EAAC,KAAK,OAAA,EAAC,CAAC,CAAC;IACzB,CAAC;IAGD,wCAAY,GAAZ;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,IAAM,KAAK,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,IAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;SACjB;IACH,CAAC;IAGD,wCAAY,GAAZ,UAAa,IAAY;QACjB,IAAA,KAA2B,IAAI,CAAC,KAAK,EAApC,IAAI,UAAA,EAAW,OAAO,aAAc,CAAC;QAC5C,IAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,kCAAM,GAAN;QACQ,IAAA,KASF,IAAI,CAAC,KAAK,EARZ,IAAI,UAAA,EACJ,IAAI,UAAA,EACK,OAAO,aAAA,EAChB,IAAI,UAAA,EACJ,gBAAgB,sBAAA,EAChB,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,SAAS,eACG,CAAC;QAEf,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAE/B,OAAO,CACL,8BAAC,mBAAS,IACR,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,OAAO,EAClB,aAAa,EAAE,CAAC,CAAC,KAAK,EACtB,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAC1C,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,IAAI,CAAC,YAAY,GAC3B,CACH,CAAC;IACJ,CAAC;IAtEM,8BAAY,GAAG;QACpB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,KAAK;QACX,gBAAgB,EAAE,KAAK;KACxB,CAAC;IAEK,2BAAS,GAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAE,CAAA;IAU/D;QADC,iBAAQ;;;;yDAGR;IAGD;QADC,iBAAQ;;;;yDAUR;IAGD;QADC,iBAAQ;;;;yDAMR;IA1CU,iBAAiB;QAH7B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,YAAY;SACnB,CAAC;;OACW,iBAAiB,CA2E7B;IAAD,wBAAC;CAAA,AA3ED,CAAuC,eAAK,CAAC,SAAS,GA2ErD;AA3EY,8CAAiB",
10
10
  "sourcesContent": [
11
- "import Spinner from '../components/Spinner';\nimport {Renderer, RendererProps} from '../factory';\nimport React from 'react';\nimport {BaseSchema, SchemaClassName} from '../Schema';\nimport SearchBox from '../components/SearchBox';\nimport {\n autobind,\n getPropValue,\n getVariable,\n setVariable\n} from '../utils/helper';\n\n/**\n * 搜索框渲染器\n */\nexport interface SearchBoxSchema extends BaseSchema {\n /**\n * 指定为搜索框。\n *\n * 文档:https://baidu.gitee.io/amis/docs/components/search-box\n */\n type: 'search-box';\n\n /**\n * 外层 css 类名\n */\n className?: SchemaClassName;\n\n /**\n * 关键字名字。\n *\n * @default keywords\n */\n name?: string;\n\n /**\n * 占位符\n */\n placeholder?: string;\n\n /**\n * 是否为 Mini 样式。\n */\n mini?: boolean;\n\n /**\n * 是否立马搜索。\n */\n searchImediately?: boolean;\n}\n\ninterface SearchBoxProps\n extends RendererProps,\n Omit<SearchBoxSchema, 'type' | 'className'> {\n name: string;\n onQuery?: (query: {[propName: string]: string}) => void;\n}\n\n@Renderer({\n type: 'search-box'\n})\nexport class SearchBoxRenderer extends React.Component<SearchBoxProps> {\n static defaultProps = {\n name: 'keywords',\n mini: false,\n searchImediately: false\n };\n\n static propsList: Array<string> = ['mini', 'searchImediately'];\n\n @autobind\n handleCancel() {\n const name = this.props.name;\n const onQuery = this.props.onQuery;\n const value = getPropValue(this.props);\n if (value !== '') {\n const data: any = {};\n setVariable(data, name, '');\n onQuery?.(data);\n }\n }\n\n @autobind\n handleSearch(text: string) {\n const {name, onQuery: onQuery} = this.props;\n const data: any = {};\n setVariable(data, name, text);\n onQuery?.(data);\n }\n\n render() {\n const {\n data,\n name,\n onQuery: onQuery,\n mini,\n searchImediately,\n placeholder,\n onChange,\n className\n } = this.props;\n\n const value = getPropValue(this.props);\n\n return (\n <SearchBox\n className={className}\n name={name}\n disabled={!onQuery}\n defaultActive={!!value}\n defaultValue={onChange ? undefined : value}\n value={onChange ? value : undefined}\n mini={mini}\n searchImediately={searchImediately}\n onSearch={this.handleSearch}\n onCancel={this.handleCancel}\n placeholder={placeholder}\n onChange={onChange}\n />\n );\n }\n}\n"
11
+ "import Spinner from '../components/Spinner';\nimport {Renderer, RendererProps} from '../factory';\nimport React from 'react';\nimport {BaseSchema, SchemaClassName} from '../Schema';\nimport SearchBox from '../components/SearchBox';\nimport {\n autobind,\n getPropValue,\n getVariable,\n setVariable\n} from '../utils/helper';\n\n/**\n * 搜索框渲染器\n */\nexport interface SearchBoxSchema extends BaseSchema {\n /**\n * 指定为搜索框。\n *\n * 文档:https://baidu.gitee.io/amis/docs/components/search-box\n */\n type: 'search-box';\n\n /**\n * 外层 css 类名\n */\n className?: SchemaClassName;\n\n /**\n * 关键字名字。\n *\n * @default keywords\n */\n name?: string;\n\n /**\n * 占位符\n */\n placeholder?: string;\n\n /**\n * 是否为 Mini 样式。\n */\n mini?: boolean;\n\n /**\n * 是否立马搜索。\n */\n searchImediately?: boolean;\n}\n\ninterface SearchBoxProps\n extends RendererProps,\n Omit<SearchBoxSchema, 'type' | 'className'> {\n name: string;\n onQuery?: (query: {[propName: string]: string}) => void;\n}\n\nexport interface SearchBoxState {\n value: string;\n}\n\n@Renderer({\n type: 'search-box'\n})\nexport class SearchBoxRenderer extends React.Component<\n SearchBoxProps,\n SearchBoxState\n> {\n static defaultProps = {\n name: 'keywords',\n mini: false,\n searchImediately: false\n };\n\n static propsList: Array<string> = ['mini', 'searchImediately'];\n\n constructor(props: SearchBoxProps) {\n super(props);\n this.state = {\n value: getPropValue(props) || ''\n };\n }\n\n @autobind\n handleChange(value: string) {\n this.setState({value});\n }\n\n @autobind\n handleCancel() {\n const name = this.props.name;\n const onQuery = this.props.onQuery;\n const value = getPropValue(this.props);\n if (value !== '') {\n const data: any = {};\n setVariable(data, name, '');\n onQuery?.(data);\n }\n }\n\n @autobind\n handleSearch(text: string) {\n const {name, onQuery: onQuery} = this.props;\n const data: any = {};\n setVariable(data, name, text);\n onQuery?.(data);\n }\n\n render() {\n const {\n data,\n name,\n onQuery: onQuery,\n mini,\n searchImediately,\n placeholder,\n onChange,\n className\n } = this.props;\n\n const value = this.state.value;\n\n return (\n <SearchBox\n className={className}\n name={name}\n disabled={!onQuery}\n defaultActive={!!value}\n defaultValue={onChange ? undefined : value}\n value={value}\n mini={mini}\n searchImediately={searchImediately}\n onSearch={this.handleSearch}\n onCancel={this.handleCancel}\n placeholder={placeholder}\n onChange={this.handleChange}\n />\n );\n }\n}\n"
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ClassNamesFn } from '../../theme';
3
- import { IColumn, IRow } from '../../store/table';
3
+ import { IColumn, IRow, ITableStore } from '../../store/table';
4
4
  import { SchemaNode, Action } from '../../types';
5
5
  import { LocaleProps } from '../../locale';
6
6
  import { ActionSchema } from '../Action';
@@ -37,7 +37,10 @@ export interface TableContentProps extends LocaleProps {
37
37
  prefixRow?: Array<any>;
38
38
  affixRow?: Array<any>;
39
39
  itemAction?: ActionSchema;
40
+ itemActions?: Array<Action>;
41
+ store: ITableStore;
40
42
  }
41
43
  export declare class TableContent extends React.Component<TableContentProps> {
44
+ renderItemActions(): JSX.Element | null;
42
45
  render(): JSX.Element;
43
46
  }
@@ -5,16 +5,36 @@ var tslib_1 = require("tslib");
5
5
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
6
  var TableBody_1 = require("./TableBody");
7
7
  var mobx_react_1 = require("mobx-react");
8
+ var ItemActionsWrapper_1 = (0, tslib_1.__importDefault)(require("./ItemActionsWrapper"));
8
9
  var TableContent = /** @class */ (function (_super) {
9
10
  (0, tslib_1.__extends)(TableContent, _super);
10
11
  function TableContent() {
11
12
  return _super !== null && _super.apply(this, arguments) || this;
12
13
  }
14
+ TableContent.prototype.renderItemActions = function () {
15
+ var _a = this.props, itemActions = _a.itemActions, render = _a.render, store = _a.store, cx = _a.classnames;
16
+ var finalActions = Array.isArray(itemActions)
17
+ ? itemActions.filter(function (action) { return !action.hiddenOnHover; })
18
+ : [];
19
+ if (!finalActions.length) {
20
+ return null;
21
+ }
22
+ return (react_1.default.createElement(ItemActionsWrapper_1.default, { store: store, classnames: cx },
23
+ react_1.default.createElement("div", { className: cx('Table-itemActions') }, finalActions.map(function (action, index) {
24
+ return render("itemAction/" + index, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, action), { isMenuItem: true }), {
25
+ key: index,
26
+ item: store.hoverRow,
27
+ data: store.hoverRow.locals,
28
+ rowIndex: store.hoverRow.index
29
+ });
30
+ }))));
31
+ };
13
32
  TableContent.prototype.render = function () {
14
- var _a = this.props, placeholder = _a.placeholder, cx = _a.classnames, render = _a.render, className = _a.className, columns = _a.columns, columnsGroup = _a.columnsGroup, onMouseMove = _a.onMouseMove, onScroll = _a.onScroll, tableRef = _a.tableRef, rows = _a.rows, renderHeadCell = _a.renderHeadCell, renderCell = _a.renderCell, onCheck = _a.onCheck, rowClassName = _a.rowClassName, onQuickChange = _a.onQuickChange, footable = _a.footable, footableColumns = _a.footableColumns, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, onAction = _a.onAction, rowClassNameExpr = _a.rowClassNameExpr, data = _a.data, prefixRow = _a.prefixRow, locale = _a.locale, translate = _a.translate, itemAction = _a.itemAction, affixRow = _a.affixRow;
33
+ var _a = this.props, placeholder = _a.placeholder, cx = _a.classnames, render = _a.render, className = _a.className, columns = _a.columns, columnsGroup = _a.columnsGroup, onMouseMove = _a.onMouseMove, onScroll = _a.onScroll, tableRef = _a.tableRef, rows = _a.rows, renderHeadCell = _a.renderHeadCell, renderCell = _a.renderCell, onCheck = _a.onCheck, rowClassName = _a.rowClassName, onQuickChange = _a.onQuickChange, footable = _a.footable, footableColumns = _a.footableColumns, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, onAction = _a.onAction, rowClassNameExpr = _a.rowClassNameExpr, data = _a.data, prefixRow = _a.prefixRow, locale = _a.locale, translate = _a.translate, itemAction = _a.itemAction, affixRow = _a.affixRow, store = _a.store;
15
34
  var tableClassName = cx('Table-table', this.props.tableClassName);
16
35
  var hideHeader = columns.every(function (column) { return !column.label; });
17
36
  return (react_1.default.createElement("div", { onMouseMove: onMouseMove, className: cx('Table-content', className), onScroll: onScroll },
37
+ store.hoverRow ? this.renderItemActions() : null,
18
38
  react_1.default.createElement("table", { ref: tableRef, className: tableClassName },
19
39
  react_1.default.createElement("thead", null,
20
40
  columnsGroup.length ? (react_1.default.createElement("tr", null, columnsGroup.map(function (item, index) { return (react_1.default.createElement("th", { key: index, "data-index": item.index, colSpan: item.colSpan, rowSpan: item.rowSpan }, item.label ? render('tpl', item.label) : null)); }))) : null,
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Table/TableContent.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 {ClassNamesFn} from '../../theme';\nimport {IColumn, IRow} from '../../store/table';\nimport {SchemaNode, Action} from '../../types';\nimport {TableBody} from './TableBody';\nimport {LocaleProps} from '../../locale';\nimport {observer} from 'mobx-react';\nimport {ActionSchema} from '../Action';\n\nexport interface TableContentProps extends LocaleProps {\n className?: string;\n tableClassName?: string;\n classnames: ClassNamesFn;\n columns: Array<IColumn>;\n columnsGroup: Array<{\n label: string;\n index: number;\n colSpan: number;\n rowSpan: number;\n has: Array<any>;\n }>;\n rows: Array<IRow>;\n placeholder?: string;\n render: (region: string, node: SchemaNode, props?: any) => JSX.Element;\n onMouseMove: (event: React.MouseEvent) => void;\n onScroll: (event: React.UIEvent) => void;\n tableRef: (table?: HTMLTableElement | null) => void;\n renderHeadCell: (column: IColumn, props?: any) => JSX.Element;\n renderCell: (\n region: string,\n column: IColumn,\n item: IRow,\n props: any\n ) => React.ReactNode;\n onCheck: (item: IRow, value: boolean, shift?: boolean) => void;\n onQuickChange?: (\n item: IRow,\n values: object,\n saveImmediately?: boolean | any,\n savePristine?: boolean\n ) => void;\n footable?: boolean;\n footableColumns: Array<IColumn>;\n checkOnItemClick?: boolean;\n buildItemProps?: (item: IRow, index: number) => any;\n onAction?: (e: React.UIEvent<any>, action: Action, ctx: object) => void;\n rowClassNameExpr?: string;\n rowClassName?: string;\n data?: any;\n prefixRow?: Array<any>;\n affixRow?: Array<any>;\n itemAction?: ActionSchema;\n}\n\n@observer\nexport class TableContent extends React.Component<TableContentProps> {\n render() {\n const {\n placeholder,\n classnames: cx,\n render,\n className,\n columns,\n columnsGroup,\n onMouseMove,\n onScroll,\n tableRef,\n rows,\n renderHeadCell,\n renderCell,\n onCheck,\n rowClassName,\n onQuickChange,\n footable,\n footableColumns,\n checkOnItemClick,\n buildItemProps,\n onAction,\n rowClassNameExpr,\n data,\n prefixRow,\n locale,\n translate,\n itemAction,\n affixRow\n } = this.props;\n\n const tableClassName = cx('Table-table', this.props.tableClassName);\n const hideHeader = columns.every(column => !column.label);\n\n return (\n <div\n onMouseMove={onMouseMove}\n className={cx('Table-content', className)}\n onScroll={onScroll}\n >\n <table ref={tableRef} className={tableClassName}>\n <thead>\n {columnsGroup.length ? (\n <tr>\n {columnsGroup.map((item, index) => (\n <th\n key={index}\n data-index={item.index}\n colSpan={item.colSpan}\n rowSpan={item.rowSpan}\n >\n {item.label ? render('tpl', item.label) : null}\n </th>\n ))}\n </tr>\n ) : null}\n <tr className={hideHeader ? 'fake-hide' : ''}>\n {columns.map(column =>\n columnsGroup.find(group => ~group.has.indexOf(column))\n ?.rowSpan === 2\n ? null\n : renderHeadCell(column, {\n 'data-index': column.index,\n 'key': column.index\n })\n )}\n </tr>\n </thead>\n {!rows.length ? (\n <tbody>\n <tr className={cx('Table-placeholder')}>\n <td colSpan={columns.length}>\n {render(\n 'placeholder',\n translate(placeholder || 'placeholder.noData')\n )}\n </td>\n </tr>\n </tbody>\n ) : (\n <TableBody\n itemAction={itemAction}\n classnames={cx}\n render={render}\n renderCell={renderCell}\n onCheck={onCheck}\n onQuickChange={onQuickChange}\n footable={footable}\n footableColumns={footableColumns}\n checkOnItemClick={checkOnItemClick}\n buildItemProps={buildItemProps}\n onAction={onAction}\n rowClassNameExpr={rowClassNameExpr}\n rowClassName={rowClassName}\n rows={rows}\n columns={columns}\n locale={locale}\n translate={translate}\n prefixRow={prefixRow}\n affixRow={affixRow}\n data={data}\n ></TableBody>\n )}\n </table>\n </div>\n );\n }\n}\n"
11
+ "import React from 'react';\nimport {ClassNamesFn} from '../../theme';\nimport {IColumn, IRow, ITableStore} from '../../store/table';\nimport {SchemaNode, Action} from '../../types';\nimport {TableBody} from './TableBody';\nimport {LocaleProps} from '../../locale';\nimport {observer} from 'mobx-react';\nimport {ActionSchema} from '../Action';\nimport ItemActionsWrapper from './ItemActionsWrapper';\n\nexport interface TableContentProps extends LocaleProps {\n className?: string;\n tableClassName?: string;\n classnames: ClassNamesFn;\n columns: Array<IColumn>;\n columnsGroup: Array<{\n label: string;\n index: number;\n colSpan: number;\n rowSpan: number;\n has: Array<any>;\n }>;\n rows: Array<IRow>;\n placeholder?: string;\n render: (region: string, node: SchemaNode, props?: any) => JSX.Element;\n onMouseMove: (event: React.MouseEvent) => void;\n onScroll: (event: React.UIEvent) => void;\n tableRef: (table?: HTMLTableElement | null) => void;\n renderHeadCell: (column: IColumn, props?: any) => JSX.Element;\n renderCell: (\n region: string,\n column: IColumn,\n item: IRow,\n props: any\n ) => React.ReactNode;\n onCheck: (item: IRow, value: boolean, shift?: boolean) => void;\n onQuickChange?: (\n item: IRow,\n values: object,\n saveImmediately?: boolean | any,\n savePristine?: boolean\n ) => void;\n footable?: boolean;\n footableColumns: Array<IColumn>;\n checkOnItemClick?: boolean;\n buildItemProps?: (item: IRow, index: number) => any;\n onAction?: (e: React.UIEvent<any>, action: Action, ctx: object) => void;\n rowClassNameExpr?: string;\n rowClassName?: string;\n data?: any;\n prefixRow?: Array<any>;\n affixRow?: Array<any>;\n itemAction?: ActionSchema;\n itemActions?: Array<Action>;\n store: ITableStore;\n}\n\n@observer\nexport class TableContent extends React.Component<TableContentProps> {\n renderItemActions() {\n const {itemActions, render, store, classnames: cx} = this.props;\n const finalActions = Array.isArray(itemActions)\n ? itemActions.filter(action => !action.hiddenOnHover)\n : [];\n\n if (!finalActions.length) {\n return null;\n }\n\n return (\n <ItemActionsWrapper store={store} classnames={cx}>\n <div className={cx('Table-itemActions')}>\n {finalActions.map((action, index) =>\n render(\n `itemAction/${index}`,\n {\n ...(action as any),\n isMenuItem: true\n },\n {\n key: index,\n item: store.hoverRow,\n data: store.hoverRow!.locals,\n rowIndex: store.hoverRow!.index\n }\n )\n )}\n </div>\n </ItemActionsWrapper>\n );\n }\n\n render() {\n const {\n placeholder,\n classnames: cx,\n render,\n className,\n columns,\n columnsGroup,\n onMouseMove,\n onScroll,\n tableRef,\n rows,\n renderHeadCell,\n renderCell,\n onCheck,\n rowClassName,\n onQuickChange,\n footable,\n footableColumns,\n checkOnItemClick,\n buildItemProps,\n onAction,\n rowClassNameExpr,\n data,\n prefixRow,\n locale,\n translate,\n itemAction,\n affixRow,\n store\n } = this.props;\n\n const tableClassName = cx('Table-table', this.props.tableClassName);\n const hideHeader = columns.every(column => !column.label);\n\n return (\n <div\n onMouseMove={onMouseMove}\n className={cx('Table-content', className)}\n onScroll={onScroll}\n >\n {store.hoverRow ? this.renderItemActions() : null}\n <table ref={tableRef} className={tableClassName}>\n <thead>\n {columnsGroup.length ? (\n <tr>\n {columnsGroup.map((item, index) => (\n <th\n key={index}\n data-index={item.index}\n colSpan={item.colSpan}\n rowSpan={item.rowSpan}\n >\n {item.label ? render('tpl', item.label) : null}\n </th>\n ))}\n </tr>\n ) : null}\n <tr className={hideHeader ? 'fake-hide' : ''}>\n {columns.map(column =>\n columnsGroup.find(group => ~group.has.indexOf(column))\n ?.rowSpan === 2\n ? null\n : renderHeadCell(column, {\n 'data-index': column.index,\n 'key': column.index\n })\n )}\n </tr>\n </thead>\n {!rows.length ? (\n <tbody>\n <tr className={cx('Table-placeholder')}>\n <td colSpan={columns.length}>\n {render(\n 'placeholder',\n translate(placeholder || 'placeholder.noData')\n )}\n </td>\n </tr>\n </tbody>\n ) : (\n <TableBody\n itemAction={itemAction}\n classnames={cx}\n render={render}\n renderCell={renderCell}\n onCheck={onCheck}\n onQuickChange={onQuickChange}\n footable={footable}\n footableColumns={footableColumns}\n checkOnItemClick={checkOnItemClick}\n buildItemProps={buildItemProps}\n onAction={onAction}\n rowClassNameExpr={rowClassNameExpr}\n rowClassName={rowClassName}\n rows={rows}\n columns={columns}\n locale={locale}\n translate={translate}\n prefixRow={prefixRow}\n affixRow={affixRow}\n data={data}\n ></TableBody>\n )}\n </table>\n </div>\n );\n }\n}\n"
12
12
  ]
13
13
  }
@@ -291,6 +291,11 @@ export default class Table extends React.Component<TableProps, object> {
291
291
  constructor(props: TableProps);
292
292
  static syncRows(store: ITableStore, props: TableProps, prevProps?: TableProps): boolean;
293
293
  componentDidMount(): void;
294
+ /**
295
+ * 自动设置表格高度占满界面剩余区域
296
+ * 用 css 实现有点麻烦,要改很多结构,所以先用 dom hack 了,避免对之前的功能有影响
297
+ */
298
+ updateAutoFillHeight(): void;
294
299
  componentDidUpdate(prevProps: TableProps): void;
295
300
  componentWillUnmount(): void;
296
301
  subFormRef(form: any, x: number, y: number): void;
@@ -348,7 +353,6 @@ export default class Table extends React.Component<TableProps, object> {
348
353
  renderActions(region: string): JSX.Element | null;
349
354
  renderHeader(editable?: boolean): JSX.Element | JSX.Element[] | null;
350
355
  renderFooter(): JSX.Element | JSX.Element[] | null;
351
- renderItemActions(): JSX.Element | null;
352
356
  renderTableContent(): JSX.Element;
353
357
  render(): JSX.Element;
354
358
  }