amis 1.3.5-beta.7 → 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 (577) hide show
  1. package/README.md +1 -1
  2. package/lib/Schema.d.ts +26 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/Alert.js +3 -1
  5. package/lib/components/Alert.js.map +2 -2
  6. package/lib/components/AnchorNav.d.ts +22 -21
  7. package/lib/components/AnchorNav.js +7 -3
  8. package/lib/components/AnchorNav.js.map +2 -2
  9. package/lib/components/ArrayInput.d.ts +84 -84
  10. package/lib/components/AssociatedSelection.d.ts +930 -0
  11. package/lib/components/AssociatedSelection.js +89 -0
  12. package/lib/components/AssociatedSelection.js.map +13 -0
  13. package/lib/components/Badge.d.ts +16 -3
  14. package/lib/components/Badge.js +54 -5
  15. package/lib/components/Badge.js.map +2 -2
  16. package/lib/components/Button.d.ts +24 -22
  17. package/lib/components/Button.js +13 -7
  18. package/lib/components/Button.js.map +2 -2
  19. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  20. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  21. package/lib/components/ChainedSelection.js.map +13 -0
  22. package/lib/components/Checkbox.d.ts +1 -1
  23. package/lib/components/Checkbox.js +1 -1
  24. package/lib/components/Checkbox.js.map +2 -2
  25. package/lib/components/Collapse.js +1 -1
  26. package/lib/components/Collapse.js.map +2 -2
  27. package/lib/components/ColorPicker.d.ts +84 -84
  28. package/lib/components/DatePicker.d.ts +84 -84
  29. package/lib/components/DatePicker.js +1 -1
  30. package/lib/components/DatePicker.js.map +2 -2
  31. package/lib/components/DateRangePicker.d.ts +84 -84
  32. package/lib/components/DateRangePicker.js +1 -1
  33. package/lib/components/DateRangePicker.js.map +2 -2
  34. package/lib/components/Drawer.js +1 -1
  35. package/lib/components/Drawer.js.map +2 -2
  36. package/lib/components/Editor.d.ts +84 -84
  37. package/lib/components/GroupedSelection.d.ts +907 -0
  38. package/lib/components/GroupedSelection.js +48 -0
  39. package/lib/components/GroupedSelection.js.map +13 -0
  40. package/lib/components/InputBox.js +1 -1
  41. package/lib/components/InputBox.js.map +2 -2
  42. package/lib/components/Link.d.ts +84 -0
  43. package/lib/components/Link.js +43 -0
  44. package/lib/components/Link.js.map +13 -0
  45. package/lib/components/ListGroup.d.ts +21 -21
  46. package/lib/components/Modal.js +1 -1
  47. package/lib/components/Modal.js.map +2 -2
  48. package/lib/components/ModalManager.js +1 -1
  49. package/lib/components/ModalManager.js.map +2 -2
  50. package/lib/components/MonthRangePicker.d.ts +84 -84
  51. package/lib/components/MonthRangePicker.js +1 -1
  52. package/lib/components/MonthRangePicker.js.map +2 -2
  53. package/lib/components/NumberInput.d.ts +20 -20
  54. package/lib/components/PickerColumn.d.ts +514 -0
  55. package/lib/components/PickerColumn.js +279 -0
  56. package/lib/components/PickerColumn.js.map +13 -0
  57. package/lib/components/PickerContainer.d.ts +513 -0
  58. package/lib/components/PickerContainer.js +96 -0
  59. package/lib/components/PickerContainer.js.map +13 -0
  60. package/lib/components/Radios.d.ts +22 -21
  61. package/lib/components/Radios.js +1 -0
  62. package/lib/components/Radios.js.map +2 -2
  63. package/lib/components/Rating.d.ts +21 -21
  64. package/lib/components/ResultBox.d.ts +84 -84
  65. package/lib/components/RichText.d.ts +6 -1
  66. package/lib/components/RichText.js +207 -8
  67. package/lib/components/RichText.js.map +2 -2
  68. package/lib/components/SearchBox.d.ts +84 -84
  69. package/lib/components/SearchBox.js +4 -4
  70. package/lib/components/SearchBox.js.map +2 -2
  71. package/lib/components/Select.d.ts +252 -237
  72. package/lib/components/Select.js +28 -4
  73. package/lib/components/Select.js.map +2 -2
  74. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  75. package/lib/components/Selection.js +134 -0
  76. package/lib/components/Selection.js.map +13 -0
  77. package/lib/components/SparkLine.d.ts +85 -84
  78. package/lib/components/SparkLine.js +2 -2
  79. package/lib/components/SparkLine.js.map +2 -2
  80. package/lib/components/Steps.d.ts +3 -3
  81. package/lib/components/Steps.js.map +1 -1
  82. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  83. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  84. package/lib/components/TableSelection.js.map +13 -0
  85. package/lib/components/Tabs.d.ts +20 -20
  86. package/lib/components/TabsTransfer.d.ts +84 -84
  87. package/lib/components/TabsTransfer.js +9 -9
  88. package/lib/components/TabsTransfer.js.map +2 -2
  89. package/lib/components/TabsTransferPicker.d.ts +489 -0
  90. package/lib/components/TabsTransferPicker.js +60 -0
  91. package/lib/components/TabsTransferPicker.js.map +13 -0
  92. package/lib/components/Toast.js +2 -2
  93. package/lib/components/Toast.js.map +2 -2
  94. package/lib/components/Transfer.d.ts +908 -274
  95. package/lib/components/Transfer.js +31 -24
  96. package/lib/components/Transfer.js.map +2 -2
  97. package/lib/components/TransferDropDown.d.ts +487 -0
  98. package/lib/components/TransferDropDown.js +59 -0
  99. package/lib/components/TransferDropDown.js.map +13 -0
  100. package/lib/components/TransferPicker.d.ts +489 -0
  101. package/lib/components/TransferPicker.js +60 -0
  102. package/lib/components/TransferPicker.js.map +13 -0
  103. package/lib/components/Tree.d.ts +84 -84
  104. package/lib/components/Tree.js +5 -3
  105. package/lib/components/Tree.js.map +2 -2
  106. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  107. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  108. package/lib/components/TreeSelection.js.map +13 -0
  109. package/lib/components/WithRemoteConfig.d.ts +8 -0
  110. package/lib/components/WithRemoteConfig.js +29 -3
  111. package/lib/components/WithRemoteConfig.js.map +2 -2
  112. package/lib/components/calendar/DaysView.js +2 -2
  113. package/lib/components/calendar/DaysView.js.map +2 -2
  114. package/lib/components/condition-builder/Field.js +5 -3
  115. package/lib/components/condition-builder/Field.js.map +2 -2
  116. package/lib/components/condition-builder/Func.js +2 -2
  117. package/lib/components/condition-builder/Func.js.map +2 -2
  118. package/lib/components/condition-builder/InputSwitch.js +2 -2
  119. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  120. package/lib/components/condition-builder/Item.js +3 -3
  121. package/lib/components/condition-builder/Item.js.map +2 -2
  122. package/lib/components/condition-builder/Value.js +2 -1
  123. package/lib/components/condition-builder/Value.js.map +2 -2
  124. package/lib/components/condition-builder/types.d.ts +5 -0
  125. package/lib/components/condition-builder/types.js.map +1 -1
  126. package/lib/components/icons.js +14 -0
  127. package/lib/components/icons.js.map +2 -2
  128. package/lib/components/index.d.ts +8 -8
  129. package/lib/components/index.js +16 -16
  130. package/lib/components/index.js.map +2 -2
  131. package/lib/envOverwrite.js.map +2 -2
  132. package/lib/factory.d.ts +9 -1
  133. package/lib/factory.js +13 -6
  134. package/lib/factory.js.map +2 -2
  135. package/lib/helper.css.map +1 -1
  136. package/lib/hooks/index.d.ts +5 -0
  137. package/lib/hooks/index.js +14 -0
  138. package/lib/hooks/index.js.map +13 -0
  139. package/lib/hooks/use-set-state.d.ts +2 -0
  140. package/lib/hooks/use-set-state.js +15 -0
  141. package/lib/hooks/use-set-state.js.map +13 -0
  142. package/lib/hooks/use-touch.d.ts +16 -0
  143. package/lib/hooks/use-touch.js +73 -0
  144. package/lib/hooks/use-touch.js.map +13 -0
  145. package/lib/hooks/use-update-effect.d.ts +3 -0
  146. package/lib/hooks/use-update-effect.js +17 -0
  147. package/lib/hooks/use-update-effect.js.map +13 -0
  148. package/lib/icons/clock.js +10 -0
  149. package/lib/icons/loading-outline.js +7 -0
  150. package/lib/icons/status-close.js +11 -0
  151. package/lib/icons/status-fail.js +11 -0
  152. package/lib/icons/status-info.js +10 -0
  153. package/lib/icons/status-success.js +11 -0
  154. package/lib/icons/status-warning.js +10 -0
  155. package/lib/index.d.ts +3 -0
  156. package/lib/index.js +4 -1
  157. package/lib/index.js.map +2 -2
  158. package/lib/locale/de-DE.js +5 -0
  159. package/lib/locale/de-DE.js.map +2 -2
  160. package/lib/locale/en-US.js +6 -1
  161. package/lib/locale/en-US.js.map +2 -2
  162. package/lib/locale/zh-CN.js +9 -4
  163. package/lib/locale/zh-CN.js.map +2 -2
  164. package/lib/renderers/Action.d.ts +17 -1
  165. package/lib/renderers/Action.js +21 -8
  166. package/lib/renderers/Action.js.map +2 -2
  167. package/lib/renderers/AnchorNav.d.ts +1 -0
  168. package/lib/renderers/AnchorNav.js +2 -2
  169. package/lib/renderers/AnchorNav.js.map +2 -2
  170. package/lib/renderers/Avatar.js +3 -3
  171. package/lib/renderers/Avatar.js.map +2 -2
  172. package/lib/renderers/Breadcrumb.js +1 -1
  173. package/lib/renderers/Breadcrumb.js.map +2 -2
  174. package/lib/renderers/CRUD.d.ts +9 -0
  175. package/lib/renderers/CRUD.js +48 -23
  176. package/lib/renderers/CRUD.js.map +2 -2
  177. package/lib/renderers/Card.d.ts +4 -0
  178. package/lib/renderers/Card.js +29 -23
  179. package/lib/renderers/Card.js.map +2 -2
  180. package/lib/renderers/Chart.js +1 -1
  181. package/lib/renderers/Chart.js.map +2 -2
  182. package/lib/renderers/Collapse.d.ts +1 -1
  183. package/lib/renderers/Collapse.js +8 -3
  184. package/lib/renderers/Collapse.js.map +2 -2
  185. package/lib/renderers/Dialog.d.ts +0 -252
  186. package/lib/renderers/Dialog.js +1 -4
  187. package/lib/renderers/Dialog.js.map +2 -2
  188. package/lib/renderers/Drawer.js +0 -3
  189. package/lib/renderers/Drawer.js.map +2 -2
  190. package/lib/renderers/DropDownButton.d.ts +13 -1
  191. package/lib/renderers/DropDownButton.js +9 -5
  192. package/lib/renderers/DropDownButton.js.map +2 -2
  193. package/lib/renderers/Form/Checkbox.d.ts +5 -0
  194. package/lib/renderers/Form/Checkbox.js +4 -0
  195. package/lib/renderers/Form/Checkbox.js.map +2 -2
  196. package/lib/renderers/Form/Combo.js +2 -2
  197. package/lib/renderers/Form/Combo.js.map +2 -2
  198. package/lib/renderers/Form/DiffEditor.d.ts +4 -5
  199. package/lib/renderers/Form/Editor.d.ts +3 -4
  200. package/lib/renderers/Form/Editor.js +1 -1
  201. package/lib/renderers/Form/Editor.js.map +2 -2
  202. package/lib/renderers/Form/InputCity.d.ts +84 -84
  203. package/lib/renderers/Form/InputCity.js +7 -6
  204. package/lib/renderers/Form/InputCity.js.map +2 -2
  205. package/lib/renderers/Form/InputColor.d.ts +84 -84
  206. package/lib/renderers/Form/InputExcel.d.ts +5 -0
  207. package/lib/renderers/Form/InputExcel.js +24 -3
  208. package/lib/renderers/Form/InputExcel.js.map +2 -2
  209. package/lib/renderers/Form/InputFile.js +12 -6
  210. package/lib/renderers/Form/InputFile.js.map +2 -2
  211. package/lib/renderers/Form/InputImage.d.ts +8 -0
  212. package/lib/renderers/Form/InputImage.js +18 -8
  213. package/lib/renderers/Form/InputImage.js.map +2 -2
  214. package/lib/renderers/Form/InputTable.d.ts +23 -5
  215. package/lib/renderers/Form/InputTable.js +32 -3
  216. package/lib/renderers/Form/InputTable.js.map +2 -2
  217. package/lib/renderers/Form/Item.d.ts +1 -1
  218. package/lib/renderers/Form/Item.js.map +1 -1
  219. package/lib/renderers/Form/Options.js +19 -6
  220. package/lib/renderers/Form/Options.js.map +2 -2
  221. package/lib/renderers/Form/Picker.js +2 -2
  222. package/lib/renderers/Form/Picker.js.map +2 -2
  223. package/lib/renderers/Form/Select.d.ts +41 -4
  224. package/lib/renderers/Form/Select.js +23 -3
  225. package/lib/renderers/Form/Select.js.map +2 -2
  226. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  227. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  228. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  229. package/lib/renderers/Form/Transfer.js +3 -2
  230. package/lib/renderers/Form/Transfer.js.map +2 -2
  231. package/lib/renderers/Form/TransferPicker.d.ts +48 -0
  232. package/lib/renderers/Form/TransferPicker.js +29 -0
  233. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  234. package/lib/renderers/Form/TreeSelect.js +2 -2
  235. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  236. package/lib/renderers/Form/index.js +1 -1
  237. package/lib/renderers/Form/index.js.map +2 -2
  238. package/lib/renderers/Form/wrapControl.js +15 -3
  239. package/lib/renderers/Form/wrapControl.js.map +2 -2
  240. package/lib/renderers/IFrame.js +3 -5
  241. package/lib/renderers/IFrame.js.map +2 -2
  242. package/lib/renderers/Image.d.ts +1 -0
  243. package/lib/renderers/Image.js +15 -1
  244. package/lib/renderers/Image.js.map +2 -2
  245. package/lib/renderers/Json.d.ts +4 -0
  246. package/lib/renderers/Json.js +7 -12
  247. package/lib/renderers/Json.js.map +2 -2
  248. package/lib/renderers/Link.d.ts +18 -3
  249. package/lib/renderers/Link.js +27 -15
  250. package/lib/renderers/Link.js.map +2 -2
  251. package/lib/renderers/List.js +1 -1
  252. package/lib/renderers/List.js.map +2 -2
  253. package/lib/renderers/Log.d.ts +2 -2
  254. package/lib/renderers/Log.js +7 -1
  255. package/lib/renderers/Log.js.map +2 -2
  256. package/lib/renderers/Mapping.d.ts +9 -2
  257. package/lib/renderers/Mapping.js +18 -6
  258. package/lib/renderers/Mapping.js.map +2 -2
  259. package/lib/renderers/Nav.d.ts +81 -25
  260. package/lib/renderers/Nav.js +292 -31
  261. package/lib/renderers/Nav.js.map +2 -2
  262. package/lib/renderers/Page.js +4 -1
  263. package/lib/renderers/Page.js.map +2 -2
  264. package/lib/renderers/Portlet.d.ts +125 -0
  265. package/lib/renderers/Portlet.js +156 -0
  266. package/lib/renderers/Portlet.js.map +13 -0
  267. package/lib/renderers/Property.js +2 -1
  268. package/lib/renderers/Property.js.map +2 -2
  269. package/lib/renderers/SearchBox.d.ts +6 -1
  270. package/lib/renderers/SearchBox.js +19 -5
  271. package/lib/renderers/SearchBox.js.map +2 -2
  272. package/lib/renderers/Service.d.ts +10 -1
  273. package/lib/renderers/Service.js +85 -3
  274. package/lib/renderers/Service.js.map +2 -2
  275. package/lib/renderers/SparkLine.d.ts +4 -0
  276. package/lib/renderers/SparkLine.js.map +2 -2
  277. package/lib/renderers/Steps.d.ts +4 -4
  278. package/lib/renderers/Steps.js +5 -2
  279. package/lib/renderers/Steps.js.map +2 -2
  280. package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
  281. package/lib/renderers/Table/ColumnToggler.js +216 -0
  282. package/lib/renderers/Table/ColumnToggler.js.map +13 -0
  283. package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  284. package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
  285. package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
  286. package/lib/renderers/Table/TableBody.d.ts +5 -1
  287. package/lib/renderers/Table/TableBody.js.map +1 -1
  288. package/lib/renderers/Table/TableCell.js +3 -1
  289. package/lib/renderers/Table/TableCell.js.map +2 -2
  290. package/lib/renderers/Table/TableContent.d.ts +5 -2
  291. package/lib/renderers/Table/TableContent.js +21 -1
  292. package/lib/renderers/Table/TableContent.js.map +2 -2
  293. package/lib/renderers/Table/index.d.ts +27 -5
  294. package/lib/renderers/Table/index.js +251 -101
  295. package/lib/renderers/Table/index.js.map +2 -2
  296. package/lib/renderers/Tabs.js +9 -1
  297. package/lib/renderers/Tabs.js.map +2 -2
  298. package/lib/renderers/WebComponent.js +1 -1
  299. package/lib/renderers/WebComponent.js.map +2 -2
  300. package/lib/store/app.d.ts +0 -1
  301. package/lib/store/combo.d.ts +2 -18
  302. package/lib/store/crud.d.ts +0 -1
  303. package/lib/store/crud.js +3 -7
  304. package/lib/store/crud.js.map +2 -2
  305. package/lib/store/form.d.ts +1 -2
  306. package/lib/store/form.js +5 -6
  307. package/lib/store/form.js.map +2 -2
  308. package/lib/store/modal.d.ts +1 -1
  309. package/lib/store/modal.js +4 -0
  310. package/lib/store/modal.js.map +2 -2
  311. package/lib/store/root.d.ts +0 -1
  312. package/lib/store/service.d.ts +0 -1
  313. package/lib/store/service.js +5 -17
  314. package/lib/store/service.js.map +2 -2
  315. package/lib/store/table.d.ts +260 -5
  316. package/lib/store/table.js +83 -7
  317. package/lib/store/table.js.map +2 -2
  318. package/lib/themes/ang-ie11.css +1360 -244
  319. package/lib/themes/ang.css +1360 -244
  320. package/lib/themes/ang.css.map +1 -1
  321. package/lib/themes/antd-ie11.css +1360 -244
  322. package/lib/themes/antd.css +1360 -244
  323. package/lib/themes/antd.css.map +1 -1
  324. package/lib/themes/cxd-ie11.css +1960 -517
  325. package/lib/themes/cxd.css +1960 -517
  326. package/lib/themes/cxd.css.map +1 -1
  327. package/lib/themes/dark-ie11.css +1360 -244
  328. package/lib/themes/dark.css +1360 -244
  329. package/lib/themes/dark.css.map +1 -1
  330. package/lib/themes/default.css +1960 -517
  331. package/lib/themes/default.css.map +1 -1
  332. package/lib/types.d.ts +37 -0
  333. package/lib/types.js +0 -5
  334. package/lib/types.js.map +2 -2
  335. package/lib/utils/api.d.ts +3 -2
  336. package/lib/utils/api.js +43 -15
  337. package/lib/utils/api.js.map +2 -2
  338. package/lib/utils/attachmentAdpator.d.ts +7 -0
  339. package/lib/utils/attachmentAdpator.js +82 -0
  340. package/lib/utils/attachmentAdpator.js.map +13 -0
  341. package/lib/utils/dom.d.ts +4 -0
  342. package/lib/utils/dom.js +11 -1
  343. package/lib/utils/dom.js.map +2 -2
  344. package/lib/utils/handleAction.d.ts +7 -0
  345. package/lib/utils/handleAction.js +30 -0
  346. package/lib/utils/handleAction.js.map +13 -0
  347. package/lib/utils/helper.d.ts +3 -1
  348. package/lib/utils/helper.js +14 -5
  349. package/lib/utils/helper.js.map +2 -2
  350. package/lib/utils/icon.js +3 -0
  351. package/lib/utils/icon.js.map +2 -2
  352. package/lib/utils/tpl-builtin.d.ts +1 -1
  353. package/lib/utils/tpl-builtin.js +25 -15
  354. package/lib/utils/tpl-builtin.js.map +2 -2
  355. package/lib/utils/validations.js +62 -5
  356. package/lib/utils/validations.js.map +2 -2
  357. package/package.json +1 -2
  358. package/schema.json +3638 -1030
  359. package/scss/_mixins.scss +27 -0
  360. package/scss/_properties.scss +88 -13
  361. package/scss/_utilities.scss +4 -0
  362. package/scss/base/_normalize.scss +2 -0
  363. package/scss/components/_anchor-nav.scss +88 -29
  364. package/scss/components/_badge.scss +67 -2
  365. package/scss/components/_button.scss +34 -3
  366. package/scss/components/_card.scss +8 -14
  367. package/scss/components/_collapse.scss +41 -8
  368. package/scss/components/_column-toggler.scss +234 -0
  369. package/scss/components/_dropdown.scss +2 -1
  370. package/scss/components/_image-gallery.scss +1 -1
  371. package/scss/components/_images.scss +2 -1
  372. package/scss/components/_link.scss +6 -0
  373. package/scss/components/_mapping.scss +6 -0
  374. package/scss/components/_markdown.scss +266 -0
  375. package/scss/components/_nav.scss +236 -154
  376. package/scss/components/_page.scss +5 -4
  377. package/scss/components/_picker-columns.scss +123 -0
  378. package/scss/components/_popover.scss +17 -0
  379. package/scss/components/_portlet.scss +51 -0
  380. package/scss/components/_progress.scss +2 -0
  381. package/scss/components/_spinner.scss +6 -2
  382. package/scss/components/_status.scss +1 -1
  383. package/scss/components/_steps.scss +1 -1
  384. package/scss/components/_table.scss +51 -1
  385. package/scss/components/form/_checks.scss +0 -351
  386. package/scss/components/form/_color.scss +1 -0
  387. package/scss/components/form/_date-range.scss +2 -0
  388. package/scss/components/form/_date.scss +2 -0
  389. package/scss/components/form/_fieldset.scss +6 -3
  390. package/scss/components/form/_file.scss +5 -4
  391. package/scss/components/form/_group.scss +4 -0
  392. package/scss/components/form/_image.scss +7 -2
  393. package/scss/components/form/_list.scss +1 -0
  394. package/scss/components/form/_location.scss +1 -1
  395. package/scss/components/form/_selection.scss +354 -0
  396. package/scss/components/form/_text.scss +13 -0
  397. package/scss/components/form/_textarea.scss +10 -0
  398. package/scss/components/form/_transfer.scss +77 -18
  399. package/scss/themes/_common.scss +7 -0
  400. package/scss/themes/_cxd-colors.scss +56 -0
  401. package/scss/themes/_cxd-variables.scss +219 -91
  402. package/scss/themes/cxd.scss +370 -0
  403. package/sdk/ang-ie11.css +1752 -431
  404. package/sdk/ang.css +1706 -323
  405. package/sdk/antd-ie11.css +1739 -420
  406. package/sdk/antd.css +1706 -323
  407. package/sdk/charts.js +13 -13
  408. package/sdk/color-picker.js +65 -69
  409. package/sdk/cropperjs.js +2 -2
  410. package/sdk/cxd-ie11.css +3015 -1397
  411. package/sdk/cxd.css +2402 -651
  412. package/sdk/dark-ie11.css +1750 -429
  413. package/sdk/dark.css +1706 -323
  414. package/sdk/exceljs.js +1 -1
  415. package/sdk/helper.css.map +1 -1
  416. package/sdk/ie11-patch.css +1 -0
  417. package/sdk/locale/de-DE.js +5 -0
  418. package/sdk/markdown.js +69 -69
  419. package/sdk/papaparse.js +1 -1
  420. package/sdk/renderers/Form/CityDB.js +1 -1
  421. package/sdk/rest.js +20 -30
  422. package/sdk/rich-text.js +62 -64
  423. package/sdk/sdk-ie11.css +3015 -1397
  424. package/sdk/sdk.css +2402 -651
  425. package/sdk/sdk.js +1278 -1220
  426. package/sdk/thirds/hls.js/hls.js +1 -1
  427. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  428. package/sdk/tinymce.js +57 -57
  429. package/src/Schema.ts +32 -0
  430. package/src/components/Alert.tsx +3 -1
  431. package/src/components/AnchorNav.tsx +15 -4
  432. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  433. package/src/components/Badge.tsx +126 -23
  434. package/src/components/Button.tsx +23 -7
  435. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  436. package/src/components/Checkbox.tsx +5 -2
  437. package/src/components/Collapse.tsx +14 -9
  438. package/src/components/DatePicker.tsx +1 -1
  439. package/src/components/DateRangePicker.tsx +23 -11
  440. package/src/components/Drawer.tsx +3 -2
  441. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  442. package/src/components/InputBox.tsx +1 -1
  443. package/src/components/Link.tsx +85 -0
  444. package/src/components/Modal.tsx +3 -2
  445. package/src/components/ModalManager.ts +1 -1
  446. package/src/components/MonthRangePicker.tsx +10 -2
  447. package/src/components/PickerColumn.tsx +429 -0
  448. package/src/components/PickerContainer.tsx +128 -0
  449. package/src/components/Radios.tsx +3 -8
  450. package/src/components/RichText.tsx +244 -3
  451. package/src/components/SearchBox.tsx +4 -5
  452. package/src/components/Select.tsx +61 -5
  453. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  454. package/src/components/SparkLine.tsx +4 -1
  455. package/src/components/Steps.tsx +3 -3
  456. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  457. package/src/components/TabsTransfer.tsx +13 -7
  458. package/src/components/TabsTransferPicker.tsx +85 -0
  459. package/src/components/Toast.tsx +5 -5
  460. package/src/components/Transfer.tsx +71 -50
  461. package/src/components/TransferDropDown.tsx +117 -0
  462. package/src/components/TransferPicker.tsx +84 -0
  463. package/src/components/Tree.tsx +6 -8
  464. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  465. package/src/components/WithRemoteConfig.tsx +44 -4
  466. package/src/components/calendar/DaysView.tsx +2 -2
  467. package/src/components/condition-builder/Field.tsx +6 -7
  468. package/src/components/condition-builder/Func.tsx +3 -3
  469. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  470. package/src/components/condition-builder/Item.tsx +5 -12
  471. package/src/components/condition-builder/Value.tsx +3 -0
  472. package/src/components/condition-builder/types.ts +6 -0
  473. package/src/components/icons.tsx +15 -0
  474. package/src/components/index.tsx +13 -13
  475. package/src/envOverwrite.ts +0 -1
  476. package/src/factory.tsx +31 -6
  477. package/src/hooks/index.ts +5 -0
  478. package/src/hooks/use-set-state.ts +19 -0
  479. package/src/hooks/use-touch.ts +100 -0
  480. package/src/hooks/use-update-effect.ts +16 -0
  481. package/src/icons/clock.svg +1 -0
  482. package/src/icons/loading-outline.svg +4 -0
  483. package/src/icons/status-close.svg +10 -0
  484. package/src/icons/status-fail.svg +10 -0
  485. package/src/icons/status-info.svg +8 -0
  486. package/src/icons/status-success.svg +10 -0
  487. package/src/icons/status-warning.svg +8 -0
  488. package/src/index.tsx +3 -0
  489. package/src/locale/de-DE.ts +5 -0
  490. package/src/locale/en-US.ts +6 -1
  491. package/src/locale/zh-CN.ts +9 -4
  492. package/src/renderers/Action.tsx +99 -15
  493. package/src/renderers/AnchorNav.tsx +4 -0
  494. package/src/renderers/Avatar.tsx +8 -4
  495. package/src/renderers/Breadcrumb.tsx +5 -1
  496. package/src/renderers/CRUD.tsx +70 -56
  497. package/src/renderers/Card.tsx +63 -34
  498. package/src/renderers/Chart.tsx +6 -2
  499. package/src/renderers/Collapse.tsx +9 -3
  500. package/src/renderers/Dialog.tsx +1 -5
  501. package/src/renderers/Drawer.tsx +0 -4
  502. package/src/renderers/DropDownButton.tsx +34 -12
  503. package/src/renderers/Form/Checkbox.tsx +8 -0
  504. package/src/renderers/Form/Combo.tsx +2 -3
  505. package/src/renderers/Form/Editor.tsx +19 -20
  506. package/src/renderers/Form/InputCity.tsx +4 -8
  507. package/src/renderers/Form/InputExcel.tsx +28 -3
  508. package/src/renderers/Form/InputFile.tsx +30 -20
  509. package/src/renderers/Form/InputImage.tsx +39 -13
  510. package/src/renderers/Form/InputTable.tsx +88 -9
  511. package/src/renderers/Form/Item.tsx +1 -1
  512. package/src/renderers/Form/Options.tsx +32 -7
  513. package/src/renderers/Form/Picker.tsx +3 -2
  514. package/src/renderers/Form/Select.tsx +144 -21
  515. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  516. package/src/renderers/Form/Transfer.tsx +3 -2
  517. package/src/renderers/Form/TransferPicker.tsx +123 -0
  518. package/src/renderers/Form/TreeSelect.tsx +25 -0
  519. package/src/renderers/Form/index.tsx +1 -1
  520. package/src/renderers/Form/wrapControl.tsx +28 -3
  521. package/src/renderers/IFrame.tsx +4 -5
  522. package/src/renderers/Image.tsx +10 -0
  523. package/src/renderers/Json.tsx +19 -10
  524. package/src/renderers/Link.tsx +53 -14
  525. package/src/renderers/List.tsx +1 -1
  526. package/src/renderers/Log.tsx +16 -3
  527. package/src/renderers/Mapping.tsx +27 -11
  528. package/src/renderers/Nav.tsx +392 -60
  529. package/src/renderers/Page.tsx +3 -1
  530. package/src/renderers/Portlet.tsx +423 -0
  531. package/src/renderers/Property.tsx +3 -2
  532. package/src/renderers/SearchBox.tsx +23 -4
  533. package/src/renderers/Service.tsx +101 -3
  534. package/src/renderers/SparkLine.tsx +5 -0
  535. package/src/renderers/Steps.tsx +12 -9
  536. package/src/renderers/Table/ColumnToggler.tsx +544 -0
  537. package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
  538. package/src/renderers/Table/TableBody.tsx +1 -1
  539. package/src/renderers/Table/TableCell.tsx +16 -1
  540. package/src/renderers/Table/TableContent.tsx +41 -3
  541. package/src/renderers/Table/index.tsx +318 -92
  542. package/src/renderers/Tabs.tsx +9 -1
  543. package/src/renderers/WebComponent.tsx +2 -2
  544. package/src/store/crud.ts +3 -8
  545. package/src/store/form.ts +5 -10
  546. package/src/store/modal.ts +4 -0
  547. package/src/store/service.ts +5 -23
  548. package/src/store/table.ts +103 -4
  549. package/src/types.ts +57 -0
  550. package/src/utils/api.ts +63 -23
  551. package/src/utils/attachmentAdpator.ts +90 -0
  552. package/src/utils/dom.tsx +12 -0
  553. package/src/utils/handleAction.ts +41 -0
  554. package/src/utils/helper.ts +12 -3
  555. package/src/utils/icon.tsx +4 -0
  556. package/src/utils/tpl-builtin.ts +48 -17
  557. package/src/utils/validations.ts +80 -12
  558. package/dump.rdb +0 -0
  559. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  560. package/lib/components/AssociatedCheckboxes.js +0 -90
  561. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  562. package/lib/components/ChainedCheckboxes.js.map +0 -13
  563. package/lib/components/Checkboxes.js +0 -101
  564. package/lib/components/Checkboxes.js.map +0 -13
  565. package/lib/components/ListCheckboxes.d.ts +0 -739
  566. package/lib/components/ListCheckboxes.js +0 -48
  567. package/lib/components/ListCheckboxes.js.map +0 -13
  568. package/lib/components/ListRadios.d.ts +0 -763
  569. package/lib/components/ListRadios.js +0 -86
  570. package/lib/components/ListRadios.js.map +0 -13
  571. package/lib/components/TableCheckboxes.js.map +0 -13
  572. package/lib/components/TreeCheckboxes.js.map +0 -13
  573. package/lib/components/TreeRadios.d.ts +0 -838
  574. package/lib/components/TreeRadios.js +0 -116
  575. package/lib/components/TreeRadios.js.map +0 -13
  576. package/src/components/ListRadios.tsx +0 -159
  577. package/src/components/TreeRadios.tsx +0 -202
package/lib/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import type { ActionSchema } from './renderers/Action';
2
3
  import { SchemaApiObject } from './Schema';
3
4
  export interface ApiObject extends SchemaApiObject {
4
5
  config?: {
@@ -118,4 +119,40 @@ export declare type FunctionPropertyNames<T> = {
118
119
  export interface JSONSchema {
119
120
  [propsName: string]: any;
120
121
  }
122
+ /**
123
+ * 事件跟踪的定义
124
+ */
125
+ export interface EventTrack {
126
+ /**
127
+ * 事件类型,目前有以下几种
128
+ *
129
+ * api: 所有 fetcher 前调用
130
+ * url: 打开外部链接,组件有可能是 action 也有可能是 link
131
+ * link: 打开内部链接
132
+ * dialog: action 的弹框
133
+ * drawer: action 的抽出式弹框
134
+ * copy: action 里的复制
135
+ * reload: action 里的 reload
136
+ * email: action 里的 email
137
+ * prev: action 里的 prev
138
+ * next: action 里的 next
139
+ * cancel: action 里的 cancel
140
+ * close: action 里的 close
141
+ * submit: 有可能是 action 里的 submit,也有可能是表单提交
142
+ * confirm: action 里的 confirm
143
+ * add: action 里的 add
144
+ * reset: action 里的 reset
145
+ * reset-and-submit: action 里的 reset-and-submit
146
+ * formItemChange: 表单项内容变化
147
+ * formError: 表单验证失败
148
+ * formSubmit: 表单成功提交,在表单验证成功之后才会触发,这个可能会和 api 重合
149
+ * tabChange: tab 切换
150
+ * netError: api 报错
151
+ */
152
+ eventType: 'api' | 'url' | 'link' | 'dialog' | 'drawer' | 'copy' | 'reload' | 'email' | 'prev' | 'next' | 'cancel' | 'close' | 'submit' | 'confirm' | 'reset' | 'reset-and-submit' | 'formItemChange' | 'tabChange';
153
+ /**
154
+ * 事件数据
155
+ */
156
+ eventData: ActionSchema | Api;
157
+ }
121
158
  export {};
package/lib/types.js CHANGED
@@ -1,8 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // export type Omit<T, K extends keyof T & any> = Pick<T, Exclude<keyof T, K>>;
4
- // export type Override<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
5
- // export type ExtractProps<
6
- // TComponentOrTProps
7
- // > = TComponentOrTProps extends React.ComponentType<infer P> ? P : never;
8
3
  //# sourceMappingURL=./types.js.map
package/lib/types.js.map CHANGED
@@ -6,8 +6,8 @@
6
6
  "/src/types.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;AA0JA,+EAA+E;AAC/E,uEAAuE;AACvE,4BAA4B;AAC5B,uBAAuB;AACvB,2EAA2E",
9
+ "mappings": "",
10
10
  "sourcesContent": [
11
- "import {SchemaApiObject} from './Schema';\n\nexport interface ApiObject extends SchemaApiObject {\n config?: {\n withCredentials?: boolean;\n cancelExecutor?: (cancel: Function) => void;\n };\n body?: PlainObject;\n query?: PlainObject;\n adaptor?: (payload: object, response: fetcherResult, api: ApiObject) => any;\n requestAdaptor?: (api: ApiObject) => ApiObject;\n}\nexport type ApiString = string;\nexport type Api = ApiString | ApiObject;\n\nexport interface fetcherResult {\n data?: {\n data: object;\n status: number;\n msg: string;\n msgTimeout?: number;\n errors?: {\n [propName: string]: string;\n };\n type?: string;\n [propName: string]: any; // 为了兼容其他返回格式\n };\n status: number;\n headers: object;\n}\n\nexport interface fetchOptions {\n method?: 'get' | 'post' | 'put' | 'patch' | 'delete';\n successMessage?: string;\n errorMessage?: string;\n autoAppend?: boolean;\n beforeSend?: (data: any) => any;\n onSuccess?: (json: Payload) => any;\n onFailed?: (json: Payload) => any;\n silent?: boolean;\n [propName: string]: any;\n}\n\nexport interface Payload {\n ok: boolean;\n msg: string;\n msgTimeout?: number;\n data: any;\n status: number;\n errors?: {\n [propName: string]: string;\n };\n}\n\nexport interface Schema {\n type: string;\n detectField?: string;\n visibleOn?: string;\n hiddenOn?: string;\n children?: JSX.Element | ((props: any, schema?: any) => JSX.Element) | null;\n definitions?: Definitions;\n [propName: string]: any;\n}\n\nexport interface Button {\n type: 'submit' | 'button' | 'reset';\n label?: string;\n icon?: string;\n size?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport type SchemaNode = Schema | string | Array<Schema | string>;\nexport interface SchemaArray extends Array<SchemaNode> {}\nexport interface Definitions {\n [propName: string]: SchemaNode;\n}\nexport interface Action extends Button {\n actionType?:\n | 'submit'\n | 'copy'\n | 'reload'\n | 'ajax'\n | 'dialog'\n | 'drawer'\n | 'jump'\n | 'link'\n | 'url'\n | 'email'\n | 'close'\n | 'confirm'\n | 'add'\n | 'remove'\n | 'delete'\n | 'edit'\n | 'cancel'\n | 'next'\n | 'prev'\n | 'reset'\n | 'reset-and-submit'\n | 'clear'\n | 'clear-and-submit';\n api?: Api;\n asyncApi?: Api;\n payload?: any;\n dialog?: SchemaNode;\n to?: string;\n target?: string;\n link?: string;\n url?: string;\n cc?: string;\n bcc?: string;\n subject?: string;\n body?: string;\n mergeData?: boolean;\n reload?: string;\n messages?: {\n success?: string;\n failed?: string;\n };\n feedback?: any;\n required?: Array<string>;\n [propName: string]: any;\n}\n\nexport interface Location {\n pathname: string;\n search: string;\n state: any;\n hash: string;\n key?: string;\n query?: any;\n}\n\nexport interface PlainObject {\n [propsName: string]: any;\n}\n\nexport interface RendererData {\n [propsName: string]: any;\n __prev?: RendererDataAlias;\n __super?: RendererData;\n}\ntype RendererDataAlias = RendererData;\n\nexport type FunctionPropertyNames<T> = {\n [K in keyof T]: T[K] extends Function ? K : never;\n}[keyof T];\n\nexport interface JSONSchema {\n [propsName: string]: any;\n}\n\n// export type Omit<T, K extends keyof T & any> = Pick<T, Exclude<keyof T, K>>;\n// export type Override<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;\n// export type ExtractProps<\n// TComponentOrTProps\n// > = TComponentOrTProps extends React.ComponentType<infer P> ? P : never;\n"
11
+ "import type {ActionSchema} from './renderers/Action';\nimport {SchemaApiObject} from './Schema';\n\nexport interface ApiObject extends SchemaApiObject {\n config?: {\n withCredentials?: boolean;\n cancelExecutor?: (cancel: Function) => void;\n };\n body?: PlainObject;\n query?: PlainObject;\n adaptor?: (payload: object, response: fetcherResult, api: ApiObject) => any;\n requestAdaptor?: (api: ApiObject) => ApiObject;\n}\nexport type ApiString = string;\nexport type Api = ApiString | ApiObject;\n\nexport interface fetcherResult {\n data?: {\n data: object;\n status: number;\n msg: string;\n msgTimeout?: number;\n errors?: {\n [propName: string]: string;\n };\n type?: string;\n [propName: string]: any; // 为了兼容其他返回格式\n };\n status: number;\n headers: object;\n}\n\nexport interface fetchOptions {\n method?: 'get' | 'post' | 'put' | 'patch' | 'delete';\n successMessage?: string;\n errorMessage?: string;\n autoAppend?: boolean;\n beforeSend?: (data: any) => any;\n onSuccess?: (json: Payload) => any;\n onFailed?: (json: Payload) => any;\n silent?: boolean;\n [propName: string]: any;\n}\n\nexport interface Payload {\n ok: boolean;\n msg: string;\n msgTimeout?: number;\n data: any;\n status: number;\n errors?: {\n [propName: string]: string;\n };\n}\n\nexport interface Schema {\n type: string;\n detectField?: string;\n visibleOn?: string;\n hiddenOn?: string;\n children?: JSX.Element | ((props: any, schema?: any) => JSX.Element) | null;\n definitions?: Definitions;\n [propName: string]: any;\n}\n\nexport interface Button {\n type: 'submit' | 'button' | 'reset';\n label?: string;\n icon?: string;\n size?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport type SchemaNode = Schema | string | Array<Schema | string>;\nexport interface SchemaArray extends Array<SchemaNode> {}\nexport interface Definitions {\n [propName: string]: SchemaNode;\n}\nexport interface Action extends Button {\n actionType?:\n | 'submit'\n | 'copy'\n | 'reload'\n | 'ajax'\n | 'dialog'\n | 'drawer'\n | 'jump'\n | 'link'\n | 'url'\n | 'email'\n | 'close'\n | 'confirm'\n | 'add'\n | 'remove'\n | 'delete'\n | 'edit'\n | 'cancel'\n | 'next'\n | 'prev'\n | 'reset'\n | 'reset-and-submit'\n | 'clear'\n | 'clear-and-submit';\n api?: Api;\n asyncApi?: Api;\n payload?: any;\n dialog?: SchemaNode;\n to?: string;\n target?: string;\n link?: string;\n url?: string;\n cc?: string;\n bcc?: string;\n subject?: string;\n body?: string;\n mergeData?: boolean;\n reload?: string;\n messages?: {\n success?: string;\n failed?: string;\n };\n feedback?: any;\n required?: Array<string>;\n [propName: string]: any;\n}\n\nexport interface Location {\n pathname: string;\n search: string;\n state: any;\n hash: string;\n key?: string;\n query?: any;\n}\n\nexport interface PlainObject {\n [propsName: string]: any;\n}\n\nexport interface RendererData {\n [propsName: string]: any;\n __prev?: RendererDataAlias;\n __super?: RendererData;\n}\ntype RendererDataAlias = RendererData;\n\nexport type FunctionPropertyNames<T> = {\n [K in keyof T]: T[K] extends Function ? K : never;\n}[keyof T];\n\nexport interface JSONSchema {\n [propsName: string]: any;\n}\n\n// export type Omit<T, K extends keyof T & any> = Pick<T, Exclude<keyof T, K>>;\n// export type Override<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;\n// export type ExtractProps<\n// TComponentOrTProps\n// > = TComponentOrTProps extends React.ComponentType<infer P> ? P : never;\n\n/**\n * 事件跟踪的定义\n */\nexport interface EventTrack {\n /**\n * 事件类型,目前有以下几种\n *\n * api: 所有 fetcher 前调用\n * url: 打开外部链接,组件有可能是 action 也有可能是 link\n * link: 打开内部链接\n * dialog: action 的弹框\n * drawer: action 的抽出式弹框\n * copy: action 里的复制\n * reload: action 里的 reload\n * email: action 里的 email\n * prev: action 里的 prev\n * next: action 里的 next\n * cancel: action 里的 cancel\n * close: action 里的 close\n * submit: 有可能是 action 里的 submit,也有可能是表单提交\n * confirm: action 里的 confirm\n * add: action 里的 add\n * reset: action 里的 reset\n * reset-and-submit: action 里的 reset-and-submit\n * formItemChange: 表单项内容变化\n * formError: 表单验证失败\n * formSubmit: 表单成功提交,在表单验证成功之后才会触发,这个可能会和 api 重合\n * tabChange: tab 切换\n * netError: api 报错\n */\n eventType:\n | 'api'\n | 'url'\n | 'link'\n | 'dialog'\n | 'drawer'\n | 'copy'\n | 'reload'\n | 'email'\n | 'prev'\n | 'next'\n | 'cancel'\n | 'close'\n | 'submit'\n | 'confirm'\n | 'reset'\n | 'reset-and-submit'\n | 'formItemChange'\n | 'tabChange';\n\n /**\n * 事件数据\n */\n eventData: ActionSchema | Api;\n}\n"
12
12
  ]
13
13
  }
@@ -1,4 +1,4 @@
1
- import { Api, ApiObject, fetcherResult, Payload } from '../types';
1
+ import { Api, ApiObject, EventTrack, fetcherResult, Payload } from '../types';
2
2
  import { fetcherConfig } from '../factory';
3
3
  interface ApiCacheConfig extends ApiObject {
4
4
  cachedPromise: Promise<any>;
@@ -13,7 +13,7 @@ export declare function buildApi(api: Api, data?: object, options?: {
13
13
  export declare function str2function(contents: string, ...args: Array<string>): Function | null;
14
14
  export declare function str2AsyncFunction(contents: string, ...args: Array<string>): Function | null;
15
15
  export declare function responseAdaptor(ret: fetcherResult, api: ApiObject): Payload;
16
- export declare function wrapFetcher(fn: (config: fetcherConfig) => Promise<fetcherResult>): (api: Api, data: object, options?: object) => Promise<Payload | void>;
16
+ export declare function wrapFetcher(fn: (config: fetcherConfig) => Promise<fetcherResult>, tracker?: (eventTrack: EventTrack, data: any) => void): (api: Api, data: object, options?: object) => Promise<Payload | void>;
17
17
  export declare function wrapAdaptor(promise: Promise<fetcherResult>, api: ApiObject): Promise<Payload>;
18
18
  export declare function isApiOutdated(prevApi: Api | undefined, nextApi: Api | undefined, prevData: any, nextData: any): nextApi is Api;
19
19
  export declare function isValidApi(api: string): boolean | "";
@@ -22,4 +22,5 @@ export declare function isSameApi(apiA: ApiObject | ApiCacheConfig, apiB: ApiObj
22
22
  export declare function getApiCache(api: ApiObject): ApiCacheConfig | undefined;
23
23
  export declare function setApiCache(api: ApiObject, promise: Promise<any>): Promise<any>;
24
24
  export declare function clearApiCache(): void;
25
+ export declare function normalizeApiResponseData(data: any): any;
25
26
  export {};
package/lib/utils/api.js CHANGED
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clearApiCache = exports.setApiCache = exports.getApiCache = exports.isSameApi = exports.isEffectiveApi = exports.isValidApi = exports.isApiOutdated = exports.wrapAdaptor = exports.wrapFetcher = exports.responseAdaptor = exports.str2AsyncFunction = exports.str2function = exports.buildApi = exports.normalizeApi = void 0;
3
+ exports.normalizeApiResponseData = exports.clearApiCache = exports.setApiCache = exports.getApiCache = exports.isSameApi = exports.isEffectiveApi = exports.isValidApi = exports.isApiOutdated = exports.wrapAdaptor = exports.wrapFetcher = exports.responseAdaptor = exports.str2AsyncFunction = exports.str2function = exports.buildApi = exports.normalizeApi = void 0;
4
4
  var tslib_1 = require("tslib");
5
+ var omit_1 = (0, tslib_1.__importDefault)(require("lodash/omit"));
5
6
  var tpl_builtin_1 = require("./tpl-builtin");
6
7
  var tpl_1 = require("./tpl");
7
8
  var helper_1 = require("./helper");
9
+ var isPlainObject_1 = (0, tslib_1.__importDefault)(require("lodash/isPlainObject"));
8
10
  var rSchema = /(?:^|raw\:)(get|post|put|delete|patch|options|head):/i;
9
11
  var apiCaches = [];
12
+ var isIE = !!document.documentMode;
10
13
  function normalizeApi(api, defaultMethod) {
11
14
  if (defaultMethod === void 0) { defaultMethod = 'get'; }
12
15
  if (typeof api === 'string') {
@@ -29,6 +32,15 @@ function buildApi(api, data, options) {
29
32
  var autoAppend = options.autoAppend, ignoreData = options.ignoreData, rest = (0, tslib_1.__rest)(options, ["autoAppend", "ignoreData"]);
30
33
  api.config = (0, tslib_1.__assign)({}, rest);
31
34
  api.method = (api.method || options.method || 'get').toLowerCase();
35
+ if (api.headers) {
36
+ api.headers = (0, tpl_builtin_1.dataMapping)(api.headers, data, undefined, false);
37
+ }
38
+ if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {
39
+ api.requestAdaptor = str2function(api.requestAdaptor, 'api');
40
+ }
41
+ if (api.adaptor && typeof api.adaptor === 'string') {
42
+ api.adaptor = str2function(api.adaptor, 'payload', 'response', 'api');
43
+ }
32
44
  if (!data) {
33
45
  return api;
34
46
  }
@@ -45,7 +57,7 @@ function buildApi(api, data, options) {
45
57
  var params = (0, helper_1.qsparse)(api.url.substring(idx + 1, ~hashIdx ? hashIdx : undefined));
46
58
  api.url =
47
59
  (0, tpl_builtin_1.tokenize)(api.url.substring(0, idx + 1), data, '| url_encode') +
48
- (0, helper_1.qsstringify)((api.query = (0, tpl_builtin_1.dataMapping)(params, data))) +
60
+ (0, helper_1.qsstringify)((api.query = (0, tpl_builtin_1.dataMapping)(params, data, undefined, api.convertKeyToPath))) +
49
61
  (~hashIdx ? api.url.substring(hashIdx) : '');
50
62
  }
51
63
  else {
@@ -55,7 +67,7 @@ function buildApi(api, data, options) {
55
67
  return api;
56
68
  }
57
69
  if (api.data) {
58
- api.body = api.data = (0, tpl_builtin_1.dataMapping)(api.data, data);
70
+ api.body = api.data = (0, tpl_builtin_1.dataMapping)(api.data, data, undefined, api.convertKeyToPath);
59
71
  }
60
72
  else if (api.method === 'post' || api.method === 'put') {
61
73
  api.body = api.data = (0, helper_1.cloneObject)(data);
@@ -92,15 +104,6 @@ function buildApi(api, data, options) {
92
104
  delete api.data;
93
105
  }
94
106
  }
95
- if (api.headers) {
96
- api.headers = (0, tpl_builtin_1.dataMapping)(api.headers, data);
97
- }
98
- if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {
99
- api.requestAdaptor = str2function(api.requestAdaptor, 'api');
100
- }
101
- if (api.adaptor && typeof api.adaptor === 'string') {
102
- api.adaptor = str2function(api.adaptor, 'payload', 'response', 'api');
103
- }
104
107
  return api;
105
108
  }
106
109
  exports.buildApi = buildApi;
@@ -143,7 +146,7 @@ function responseAdaptor(ret, api) {
143
146
  var data = ret.data;
144
147
  var hasStatusField = true;
145
148
  if (!data) {
146
- throw new Error('Response is empty!');
149
+ throw new Error('Response is empty');
147
150
  }
148
151
  // 兼容几种常见写法
149
152
  if (data.hasOwnProperty('errorCode')) {
@@ -193,13 +196,14 @@ function responseAdaptor(ret, api) {
193
196
  ? {
194
197
  items: payload.data
195
198
  }
196
- : payload.data) || {}));
199
+ : payload.data) || {}), undefined, api.convertKeyToPath);
197
200
  }
198
201
  return payload;
199
202
  }
200
203
  exports.responseAdaptor = responseAdaptor;
201
- function wrapFetcher(fn) {
204
+ function wrapFetcher(fn, tracker) {
202
205
  return function (api, data, options) {
206
+ var _a;
203
207
  api = buildApi(api, data, options);
204
208
  api.requestAdaptor && (api = api.requestAdaptor(api) || api);
205
209
  if (api.data && ((0, helper_1.hasFile)(api.data) || api.dataType === 'form-data')) {
@@ -222,12 +226,23 @@ function wrapFetcher(fn) {
222
226
  api.headers = api.headers || (api.headers = {});
223
227
  api.headers['Content-Type'] = 'application/json';
224
228
  }
229
+ tracker === null || tracker === void 0 ? void 0 : tracker({ eventType: 'api', eventData: (0, omit_1.default)(api, ['config', 'data', 'body']) }, api.data);
225
230
  if (typeof api.cache === 'number' && api.cache > 0) {
226
231
  var apiCache = getApiCache(api);
227
232
  return wrapAdaptor(apiCache
228
233
  ? apiCache.cachedPromise
229
234
  : setApiCache(api, fn(api)), api);
230
235
  }
236
+ // IE 下 get 请求会被缓存,所以自动加个时间戳
237
+ if (isIE && api && ((_a = api.method) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === 'get') {
238
+ var timeStamp = "_t=" + Date.now();
239
+ if (api.url.indexOf('?') === -1) {
240
+ api.url = api.url + ("?" + timeStamp);
241
+ }
242
+ else {
243
+ api.url = api.url + ("&" + timeStamp);
244
+ }
245
+ }
231
246
  return wrapAdaptor(fn(api), api);
232
247
  };
233
248
  }
@@ -353,5 +368,18 @@ function clearApiCache() {
353
368
  apiCaches.splice(0, apiCaches.length);
354
369
  }
355
370
  exports.clearApiCache = clearApiCache;
371
+ function normalizeApiResponseData(data) {
372
+ var _a;
373
+ if (typeof data === 'undefined') {
374
+ data = {};
375
+ }
376
+ else if (!(0, isPlainObject_1.default)(data)) {
377
+ data = (_a = {},
378
+ _a[Array.isArray(data) ? 'items' : 'result'] = data,
379
+ _a);
380
+ }
381
+ return data;
382
+ }
383
+ exports.normalizeApiResponseData = normalizeApiResponseData;
356
384
  // window.apiCaches = apiCaches;
357
385
  //# sourceMappingURL=./utils/api.js.map
@@ -6,8 +6,8 @@
6
6
  "/src/utils/api.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import {Api, ApiObject, fetcherResult, Payload} from '../types';\nimport {fetcherConfig} from '../factory';\nimport {tokenize, dataMapping} from './tpl-builtin';\nimport {evalExpression} from './tpl';\nimport {\n isObject,\n isObjectShallowModified,\n hasFile,\n object2formData,\n qsstringify,\n cloneObject,\n createObject,\n qsparse\n} from './helper';\n\nconst rSchema = /(?:^|raw\\:)(get|post|put|delete|patch|options|head):/i;\n\ninterface ApiCacheConfig extends ApiObject {\n cachedPromise: Promise<any>;\n requestTime: number;\n}\n\nconst apiCaches: Array<ApiCacheConfig> = [];\n\nexport function normalizeApi(\n api: Api,\n defaultMethod: string = 'get'\n): ApiObject {\n if (typeof api === 'string') {\n let method = rSchema.test(api) ? RegExp.$1 : '';\n method && (api = api.replace(method + ':', ''));\n\n api = {\n method: (method || defaultMethod) as any,\n url: api\n };\n } else {\n api = {\n ...api\n };\n }\n return api;\n}\n\nexport function buildApi(\n api: Api,\n data?: object,\n options: {\n autoAppend?: boolean;\n ignoreData?: boolean;\n [propName: string]: any;\n } = {}\n): ApiObject {\n api = normalizeApi(api, options.method);\n const {autoAppend, ignoreData, ...rest} = options;\n\n api.config = {\n ...rest\n };\n api.method = (api.method || (options as any).method || 'get').toLowerCase();\n\n if (!data) {\n return api;\n } else if (\n data instanceof FormData ||\n data instanceof Blob ||\n data instanceof ArrayBuffer\n ) {\n api.data = data;\n return api;\n }\n\n const raw = (api.url = api.url || '');\n const idx = api.url.indexOf('?');\n\n if (~idx) {\n const hashIdx = api.url.indexOf('#');\n const params = qsparse(\n api.url.substring(idx + 1, ~hashIdx ? hashIdx : undefined)\n );\n api.url =\n tokenize(api.url.substring(0, idx + 1), data, '| url_encode') +\n qsstringify((api.query = dataMapping(params, data))) +\n (~hashIdx ? api.url.substring(hashIdx) : '');\n } else {\n api.url = tokenize(api.url, data, '| url_encode');\n }\n\n if (ignoreData) {\n return api;\n }\n\n if (api.data) {\n api.body = api.data = dataMapping(api.data, data);\n } else if (api.method === 'post' || api.method === 'put') {\n api.body = api.data = cloneObject(data);\n }\n\n // get 类请求,把 data 附带到 url 上。\n if (api.method === 'get') {\n if (!~raw.indexOf('$') && !api.data && autoAppend) {\n api.query = api.data = data;\n } else if (\n api.attachDataToQuery === false &&\n api.data &&\n !~raw.indexOf('$') &&\n autoAppend\n ) {\n const idx = api.url.indexOf('?');\n if (~idx) {\n let params = (api.query = {\n ...qsparse(api.url.substring(idx + 1)),\n ...data\n });\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else {\n api.query = data;\n api.url += '?' + qsstringify(data);\n }\n }\n\n if (api.data && api.attachDataToQuery !== false) {\n const idx = api.url.indexOf('?');\n if (~idx) {\n let params = (api.query = {\n ...qsparse(api.url.substring(idx + 1)),\n ...api.data\n });\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else {\n api.query = api.data;\n api.url += '?' + qsstringify(api.data);\n }\n delete api.data;\n }\n }\n\n if (api.headers) {\n api.headers = dataMapping(api.headers, data);\n }\n\n if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {\n api.requestAdaptor = str2function(api.requestAdaptor, 'api') as any;\n }\n\n if (api.adaptor && typeof api.adaptor === 'string') {\n api.adaptor = str2function(\n api.adaptor,\n 'payload',\n 'response',\n 'api'\n ) as any;\n }\n\n return api;\n}\n\nexport function str2function(\n contents: string,\n ...args: Array<string>\n): Function | null {\n try {\n let fn = new Function(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;\n\nexport function str2AsyncFunction(\n contents: string,\n ...args: Array<string>\n): Function | null {\n try {\n let fn = new AsyncFunction(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nexport function responseAdaptor(ret: fetcherResult, api: ApiObject) {\n const data = ret.data;\n let hasStatusField = true;\n\n if (!data) {\n throw new Error('Response is empty!');\n }\n\n // 兼容几种常见写法\n if (data.hasOwnProperty('errorCode')) {\n // 阿里 Java 规范\n data.status = data.errorCode;\n data.msg = data.errorMessage;\n } else if (data.hasOwnProperty('errno')) {\n data.status = data.errno;\n data.msg = data.errmsg || data.errstr || data.msg;\n } else if (data.hasOwnProperty('no')) {\n data.status = data.no;\n data.msg = data.error || data.msg;\n } else if (data.hasOwnProperty('error')) {\n // Google JSON guide\n // https://google.github.io/styleguide/jsoncstyleguide.xml#error\n if (typeof data.error === 'object' && data.error.hasOwnProperty('code')) {\n data.status = data.error.code;\n data.msg = data.error.message;\n } else {\n data.status = data.error;\n data.msg = data.errmsg || data.msg;\n }\n }\n\n if (!data.hasOwnProperty('status')) {\n hasStatusField = false;\n }\n\n const payload: Payload = {\n ok: hasStatusField === false || data.status == 0,\n status: hasStatusField === false ? 0 : data.status,\n msg: data.msg || data.message,\n msgTimeout: data.msgTimeout,\n data: !data.data && !hasStatusField ? data : data.data // 兼容直接返回数据的情况\n };\n\n // 兼容返回 schema 的情况,用于 app 模式\n if (data && data.type) {\n payload.data = data;\n }\n\n if (payload.status == 422) {\n payload.errors = data.errors;\n }\n\n if (payload.ok && api.responseData) {\n payload.data = dataMapping(\n api.responseData,\n\n createObject(\n {api},\n (Array.isArray(payload.data)\n ? {\n items: payload.data\n }\n : payload.data) || {}\n )\n );\n }\n\n return payload;\n}\n\nexport function wrapFetcher(\n fn: (config: fetcherConfig) => Promise<fetcherResult>\n): (api: Api, data: object, options?: object) => Promise<Payload | void> {\n return function (api, data, options) {\n api = buildApi(api, data, options) as ApiObject;\n\n api.requestAdaptor && (api = api.requestAdaptor(api) || api);\n\n if (api.data && (hasFile(api.data) || api.dataType === 'form-data')) {\n api.data =\n api.data instanceof FormData\n ? api.data\n : object2formData(api.data, api.qsOptions);\n } else if (\n api.data &&\n typeof api.data !== 'string' &&\n api.dataType === 'form'\n ) {\n api.data = qsstringify(api.data, api.qsOptions) as any;\n api.headers = api.headers || (api.headers = {});\n api.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n } else if (\n api.data &&\n typeof api.data !== 'string' &&\n api.dataType === 'json'\n ) {\n api.data = JSON.stringify(api.data) as any;\n api.headers = api.headers || (api.headers = {});\n api.headers['Content-Type'] = 'application/json';\n }\n\n if (typeof api.cache === 'number' && api.cache > 0) {\n const apiCache = getApiCache(api);\n return wrapAdaptor(\n apiCache\n ? (apiCache as ApiCacheConfig).cachedPromise\n : setApiCache(api, fn(api)),\n api\n );\n }\n return wrapAdaptor(fn(api), api);\n };\n}\n\nexport function wrapAdaptor(promise: Promise<fetcherResult>, api: ApiObject) {\n const adaptor = api.adaptor;\n return adaptor\n ? promise\n .then(async response => {\n let result = adaptor((response as any).data, response, api);\n\n if (result?.then) {\n result = await result;\n }\n\n return {\n ...response,\n data: result\n };\n })\n .then(ret => responseAdaptor(ret, api))\n : promise.then(ret => responseAdaptor(ret, api));\n}\n\nexport function isApiOutdated(\n prevApi: Api | undefined,\n nextApi: Api | undefined,\n prevData: any,\n nextData: any\n): nextApi is Api {\n if (!nextApi) {\n return false;\n } else if (!prevApi) {\n return true;\n }\n\n nextApi = normalizeApi(nextApi);\n\n if (nextApi.autoRefresh === false) {\n return false;\n }\n\n const trackExpression = nextApi.trackExpression ?? nextApi.url;\n\n if (typeof trackExpression !== 'string' || !~trackExpression.indexOf('$')) {\n return false;\n }\n prevApi = normalizeApi(prevApi);\n\n let isModified = false;\n\n if (nextApi.trackExpression || prevApi.trackExpression) {\n isModified =\n tokenize(prevApi.trackExpression || '', prevData) !==\n tokenize(nextApi.trackExpression || '', nextData);\n } else {\n prevApi = buildApi(prevApi as Api, prevData as object, {ignoreData: true});\n nextApi = buildApi(nextApi as Api, nextData as object, {ignoreData: true});\n isModified = prevApi.url !== nextApi.url;\n }\n\n return !!(\n isModified &&\n isValidApi(nextApi.url) &&\n (!nextApi.sendOn || evalExpression(nextApi.sendOn, nextData))\n );\n}\n\nexport function isValidApi(api: string) {\n return (\n api &&\n /^(?:(https?|wss?|taf):\\/\\/[^\\/]+)?(\\/?[^\\s\\/\\?]*){1,}(\\?.*)?$/.test(api)\n );\n}\n\nexport function isEffectiveApi(\n api?: Api,\n data?: any,\n initFetch?: boolean,\n initFetchOn?: string\n): api is Api {\n if (!api) {\n return false;\n }\n if (initFetch === false) {\n return false;\n }\n if (initFetchOn && data && !evalExpression(initFetchOn, data)) {\n return false;\n }\n if (typeof api === 'string' && api.length) {\n return true;\n } else if (isObject(api) && (api as ApiObject).url) {\n if (\n (api as ApiObject).sendOn &&\n data &&\n !evalExpression((api as ApiObject).sendOn as string, data)\n ) {\n return false;\n }\n return true;\n }\n return false;\n}\n\nexport function isSameApi(\n apiA: ApiObject | ApiCacheConfig,\n apiB: ApiObject | ApiCacheConfig\n): boolean {\n return (\n apiA.method === apiB.method &&\n apiA.url === apiB.url &&\n !isObjectShallowModified(apiA.data, apiB.data, false)\n );\n}\n\nexport function getApiCache(api: ApiObject): ApiCacheConfig | undefined {\n // 清理过期cache\n const now = Date.now();\n let result: ApiCacheConfig | undefined;\n\n for (let idx = 0, len = apiCaches.length; idx < len; idx++) {\n const apiCache = apiCaches[idx];\n\n if (now - apiCache.requestTime > (apiCache.cache as number)) {\n apiCaches.splice(idx, 1);\n len--;\n idx--;\n continue;\n }\n\n if (isSameApi(api, apiCache)) {\n result = apiCache;\n break;\n }\n }\n\n return result;\n}\n\nexport function setApiCache(\n api: ApiObject,\n promise: Promise<any>\n): Promise<any> {\n apiCaches.push({\n ...api,\n cachedPromise: promise,\n requestTime: Date.now()\n });\n return promise;\n}\n\nexport function clearApiCache() {\n apiCaches.splice(0, apiCaches.length);\n}\n\n// window.apiCaches = apiCaches;\n"
11
+ "import omit from 'lodash/omit';\nimport {Api, ApiObject, EventTrack, fetcherResult, Payload} from '../types';\nimport {fetcherConfig} from '../factory';\nimport {tokenize, dataMapping} from './tpl-builtin';\nimport {evalExpression} from './tpl';\nimport {\n isObject,\n isObjectShallowModified,\n hasFile,\n object2formData,\n qsstringify,\n cloneObject,\n createObject,\n qsparse\n} from './helper';\nimport isPlainObject from 'lodash/isPlainObject';\n\nconst rSchema = /(?:^|raw\\:)(get|post|put|delete|patch|options|head):/i;\n\ninterface ApiCacheConfig extends ApiObject {\n cachedPromise: Promise<any>;\n requestTime: number;\n}\n\nconst apiCaches: Array<ApiCacheConfig> = [];\n\nconst isIE = !!(document as any).documentMode;\n\nexport function normalizeApi(\n api: Api,\n defaultMethod: string = 'get'\n): ApiObject {\n if (typeof api === 'string') {\n let method = rSchema.test(api) ? RegExp.$1 : '';\n method && (api = api.replace(method + ':', ''));\n\n api = {\n method: (method || defaultMethod) as any,\n url: api\n };\n } else {\n api = {\n ...api\n };\n }\n return api;\n}\n\nexport function buildApi(\n api: Api,\n data?: object,\n options: {\n autoAppend?: boolean;\n ignoreData?: boolean;\n [propName: string]: any;\n } = {}\n): ApiObject {\n api = normalizeApi(api, options.method);\n const {autoAppend, ignoreData, ...rest} = options;\n\n api.config = {\n ...rest\n };\n api.method = (api.method || (options as any).method || 'get').toLowerCase();\n\n if (api.headers) {\n api.headers = dataMapping(api.headers, data, undefined, false);\n }\n\n if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {\n api.requestAdaptor = str2function(api.requestAdaptor, 'api') as any;\n }\n\n if (api.adaptor && typeof api.adaptor === 'string') {\n api.adaptor = str2function(\n api.adaptor,\n 'payload',\n 'response',\n 'api'\n ) as any;\n }\n\n if (!data) {\n return api;\n } else if (\n data instanceof FormData ||\n data instanceof Blob ||\n data instanceof ArrayBuffer\n ) {\n api.data = data;\n return api;\n }\n\n const raw = (api.url = api.url || '');\n const idx = api.url.indexOf('?');\n\n if (~idx) {\n const hashIdx = api.url.indexOf('#');\n const params = qsparse(\n api.url.substring(idx + 1, ~hashIdx ? hashIdx : undefined)\n );\n api.url =\n tokenize(api.url.substring(0, idx + 1), data, '| url_encode') +\n qsstringify(\n (api.query = dataMapping(params, data, undefined, api.convertKeyToPath))\n ) +\n (~hashIdx ? api.url.substring(hashIdx) : '');\n } else {\n api.url = tokenize(api.url, data, '| url_encode');\n }\n\n if (ignoreData) {\n return api;\n }\n\n if (api.data) {\n api.body = api.data = dataMapping(\n api.data,\n data,\n undefined,\n api.convertKeyToPath\n );\n } else if (api.method === 'post' || api.method === 'put') {\n api.body = api.data = cloneObject(data);\n }\n\n // get 类请求,把 data 附带到 url 上。\n if (api.method === 'get') {\n if (!~raw.indexOf('$') && !api.data && autoAppend) {\n api.query = api.data = data;\n } else if (\n api.attachDataToQuery === false &&\n api.data &&\n !~raw.indexOf('$') &&\n autoAppend\n ) {\n const idx = api.url.indexOf('?');\n if (~idx) {\n let params = (api.query = {\n ...qsparse(api.url.substring(idx + 1)),\n ...data\n });\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else {\n api.query = data;\n api.url += '?' + qsstringify(data);\n }\n }\n\n if (api.data && api.attachDataToQuery !== false) {\n const idx = api.url.indexOf('?');\n if (~idx) {\n let params = (api.query = {\n ...qsparse(api.url.substring(idx + 1)),\n ...api.data\n });\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else {\n api.query = api.data;\n api.url += '?' + qsstringify(api.data);\n }\n delete api.data;\n }\n }\n\n return api;\n}\n\nexport function str2function(\n contents: string,\n ...args: Array<string>\n): Function | null {\n try {\n let fn = new Function(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor;\n\nexport function str2AsyncFunction(\n contents: string,\n ...args: Array<string>\n): Function | null {\n try {\n let fn = new AsyncFunction(...args, contents);\n return fn;\n } catch (e) {\n console.warn(e);\n return null;\n }\n}\n\nexport function responseAdaptor(ret: fetcherResult, api: ApiObject) {\n const data = ret.data;\n let hasStatusField = true;\n\n if (!data) {\n throw new Error('Response is empty');\n }\n\n // 兼容几种常见写法\n if (data.hasOwnProperty('errorCode')) {\n // 阿里 Java 规范\n data.status = data.errorCode;\n data.msg = data.errorMessage;\n } else if (data.hasOwnProperty('errno')) {\n data.status = data.errno;\n data.msg = data.errmsg || data.errstr || data.msg;\n } else if (data.hasOwnProperty('no')) {\n data.status = data.no;\n data.msg = data.error || data.msg;\n } else if (data.hasOwnProperty('error')) {\n // Google JSON guide\n // https://google.github.io/styleguide/jsoncstyleguide.xml#error\n if (typeof data.error === 'object' && data.error.hasOwnProperty('code')) {\n data.status = data.error.code;\n data.msg = data.error.message;\n } else {\n data.status = data.error;\n data.msg = data.errmsg || data.msg;\n }\n }\n\n if (!data.hasOwnProperty('status')) {\n hasStatusField = false;\n }\n\n const payload: Payload = {\n ok: hasStatusField === false || data.status == 0,\n status: hasStatusField === false ? 0 : data.status,\n msg: data.msg || data.message,\n msgTimeout: data.msgTimeout,\n data: !data.data && !hasStatusField ? data : data.data // 兼容直接返回数据的情况\n };\n\n // 兼容返回 schema 的情况,用于 app 模式\n if (data && data.type) {\n payload.data = data;\n }\n\n if (payload.status == 422) {\n payload.errors = data.errors;\n }\n\n if (payload.ok && api.responseData) {\n payload.data = dataMapping(\n api.responseData,\n\n createObject(\n {api},\n (Array.isArray(payload.data)\n ? {\n items: payload.data\n }\n : payload.data) || {}\n ),\n undefined,\n api.convertKeyToPath\n );\n }\n\n return payload;\n}\n\nexport function wrapFetcher(\n fn: (config: fetcherConfig) => Promise<fetcherResult>,\n tracker?: (eventTrack: EventTrack, data: any) => void\n): (api: Api, data: object, options?: object) => Promise<Payload | void> {\n return function (api, data, options) {\n api = buildApi(api, data, options) as ApiObject;\n\n api.requestAdaptor && (api = api.requestAdaptor(api) || api);\n\n if (api.data && (hasFile(api.data) || api.dataType === 'form-data')) {\n api.data =\n api.data instanceof FormData\n ? api.data\n : object2formData(api.data, api.qsOptions);\n } else if (\n api.data &&\n typeof api.data !== 'string' &&\n api.dataType === 'form'\n ) {\n api.data = qsstringify(api.data, api.qsOptions) as any;\n api.headers = api.headers || (api.headers = {});\n api.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n } else if (\n api.data &&\n typeof api.data !== 'string' &&\n api.dataType === 'json'\n ) {\n api.data = JSON.stringify(api.data) as any;\n api.headers = api.headers || (api.headers = {});\n api.headers['Content-Type'] = 'application/json';\n }\n\n tracker?.(\n {eventType: 'api', eventData: omit(api, ['config', 'data', 'body'])},\n api.data\n );\n\n if (typeof api.cache === 'number' && api.cache > 0) {\n const apiCache = getApiCache(api);\n return wrapAdaptor(\n apiCache\n ? (apiCache as ApiCacheConfig).cachedPromise\n : setApiCache(api, fn(api)),\n api\n );\n }\n // IE 下 get 请求会被缓存,所以自动加个时间戳\n if (isIE && api && api.method?.toLocaleLowerCase() === 'get') {\n const timeStamp = `_t=${Date.now()}`;\n if (api.url.indexOf('?') === -1) {\n api.url = api.url + `?${timeStamp}`;\n } else {\n api.url = api.url + `&${timeStamp}`;\n }\n }\n return wrapAdaptor(fn(api), api);\n };\n}\n\nexport function wrapAdaptor(promise: Promise<fetcherResult>, api: ApiObject) {\n const adaptor = api.adaptor;\n return adaptor\n ? promise\n .then(async response => {\n let result = adaptor((response as any).data, response, api);\n\n if (result?.then) {\n result = await result;\n }\n\n return {\n ...response,\n data: result\n };\n })\n .then(ret => responseAdaptor(ret, api))\n : promise.then(ret => responseAdaptor(ret, api));\n}\n\nexport function isApiOutdated(\n prevApi: Api | undefined,\n nextApi: Api | undefined,\n prevData: any,\n nextData: any\n): nextApi is Api {\n if (!nextApi) {\n return false;\n } else if (!prevApi) {\n return true;\n }\n\n nextApi = normalizeApi(nextApi);\n\n if (nextApi.autoRefresh === false) {\n return false;\n }\n\n const trackExpression = nextApi.trackExpression ?? nextApi.url;\n\n if (typeof trackExpression !== 'string' || !~trackExpression.indexOf('$')) {\n return false;\n }\n prevApi = normalizeApi(prevApi);\n\n let isModified = false;\n\n if (nextApi.trackExpression || prevApi.trackExpression) {\n isModified =\n tokenize(prevApi.trackExpression || '', prevData) !==\n tokenize(nextApi.trackExpression || '', nextData);\n } else {\n prevApi = buildApi(prevApi as Api, prevData as object, {ignoreData: true});\n nextApi = buildApi(nextApi as Api, nextData as object, {ignoreData: true});\n isModified = prevApi.url !== nextApi.url;\n }\n\n return !!(\n isModified &&\n isValidApi(nextApi.url) &&\n (!nextApi.sendOn || evalExpression(nextApi.sendOn, nextData))\n );\n}\n\nexport function isValidApi(api: string) {\n return (\n api &&\n /^(?:(https?|wss?|taf):\\/\\/[^\\/]+)?(\\/?[^\\s\\/\\?]*){1,}(\\?.*)?$/.test(api)\n );\n}\n\nexport function isEffectiveApi(\n api?: Api,\n data?: any,\n initFetch?: boolean,\n initFetchOn?: string\n): api is Api {\n if (!api) {\n return false;\n }\n if (initFetch === false) {\n return false;\n }\n if (initFetchOn && data && !evalExpression(initFetchOn, data)) {\n return false;\n }\n if (typeof api === 'string' && api.length) {\n return true;\n } else if (isObject(api) && (api as ApiObject).url) {\n if (\n (api as ApiObject).sendOn &&\n data &&\n !evalExpression((api as ApiObject).sendOn as string, data)\n ) {\n return false;\n }\n return true;\n }\n return false;\n}\n\nexport function isSameApi(\n apiA: ApiObject | ApiCacheConfig,\n apiB: ApiObject | ApiCacheConfig\n): boolean {\n return (\n apiA.method === apiB.method &&\n apiA.url === apiB.url &&\n !isObjectShallowModified(apiA.data, apiB.data, false)\n );\n}\n\nexport function getApiCache(api: ApiObject): ApiCacheConfig | undefined {\n // 清理过期cache\n const now = Date.now();\n let result: ApiCacheConfig | undefined;\n\n for (let idx = 0, len = apiCaches.length; idx < len; idx++) {\n const apiCache = apiCaches[idx];\n\n if (now - apiCache.requestTime > (apiCache.cache as number)) {\n apiCaches.splice(idx, 1);\n len--;\n idx--;\n continue;\n }\n\n if (isSameApi(api, apiCache)) {\n result = apiCache;\n break;\n }\n }\n\n return result;\n}\n\nexport function setApiCache(\n api: ApiObject,\n promise: Promise<any>\n): Promise<any> {\n apiCaches.push({\n ...api,\n cachedPromise: promise,\n requestTime: Date.now()\n });\n return promise;\n}\n\nexport function clearApiCache() {\n apiCaches.splice(0, apiCaches.length);\n}\n\nexport function normalizeApiResponseData(data: any) {\n if (typeof data === 'undefined') {\n data = {};\n } else if (!isPlainObject(data)) {\n data = {\n [Array.isArray(data) ? 'items' : 'result']: data\n };\n }\n\n return data;\n}\n\n// window.apiCaches = apiCaches;\n"
12
12
  ]
13
13
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 处理接口返回附件的情况,好几个地方用
3
+ * @param response
4
+ * @param __
5
+ * @returns
6
+ */
7
+ export default function attachmentAdpator(response: any, __: Function): any;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * 处理接口返回附件的情况,好几个地方用
4
+ * @param response
5
+ * @param __
6
+ * @returns
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ var tslib_1 = require("tslib");
10
+ function attachmentAdpator(response, __) {
11
+ if (response && response.headers && response.headers['content-disposition']) {
12
+ var disposition = response.headers['content-disposition'];
13
+ var filename = '';
14
+ if (disposition && disposition.indexOf('attachment') !== -1) {
15
+ // disposition 有可能是 attachment; filename="??.xlsx"; filename*=UTF-8''%E4%B8%AD%E6%96%87.xlsx
16
+ // 这种情况下最后一个才是正确的文件名
17
+ var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)$/;
18
+ var matches = disposition.match(filenameRegex);
19
+ if (matches && matches.length) {
20
+ filename = matches[1].replace("UTF-8''", '').replace(/['"]/g, '');
21
+ }
22
+ // 很可能是中文被 url-encode 了
23
+ if (filename && filename.replace(/[^%]/g, '').length > 2) {
24
+ filename = decodeURIComponent(filename);
25
+ }
26
+ var type = response.headers['content-type'];
27
+ var blob = response.data.toString() === '[object Blob]'
28
+ ? response.data
29
+ : new Blob([response.data], { type: type });
30
+ if (typeof window.navigator.msSaveBlob !== 'undefined') {
31
+ // IE workaround for "HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed."
32
+ window.navigator.msSaveBlob(blob, filename);
33
+ }
34
+ else {
35
+ var URL_1 = window.URL || window.webkitURL;
36
+ var downloadUrl_1 = URL_1.createObjectURL(blob);
37
+ if (filename) {
38
+ // use HTML5 a[download] attribute to specify filename
39
+ var a = document.createElement('a');
40
+ // safari doesn't support this yet
41
+ if (typeof a.download === 'undefined') {
42
+ window.location = downloadUrl_1;
43
+ }
44
+ else {
45
+ a.href = downloadUrl_1;
46
+ a.download = filename;
47
+ document.body.appendChild(a);
48
+ a.click();
49
+ }
50
+ }
51
+ else {
52
+ window.location = downloadUrl_1;
53
+ }
54
+ setTimeout(function () {
55
+ URL_1.revokeObjectURL(downloadUrl_1);
56
+ }, 100); // cleanup
57
+ }
58
+ return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, response), { data: {
59
+ status: 0,
60
+ msg: __('Embed.downloading')
61
+ } });
62
+ }
63
+ }
64
+ else if (response.data.toString() === '[object Blob]') {
65
+ return new Promise(function (resolve, reject) {
66
+ var reader = new FileReader();
67
+ reader.addEventListener('loadend', function (e) {
68
+ var text = reader.result;
69
+ try {
70
+ resolve((0, tslib_1.__assign)((0, tslib_1.__assign)({}, response), { data: (0, tslib_1.__assign)({}, JSON.parse(text)) }));
71
+ }
72
+ catch (e) {
73
+ reject(e);
74
+ }
75
+ });
76
+ reader.readAsText(response.data);
77
+ });
78
+ }
79
+ return response;
80
+ }
81
+ exports.default = attachmentAdpator;
82
+ //# sourceMappingURL=./utils/attachmentAdpator.js.map
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "file": "attachmentAdpator.js",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "/src/utils/attachmentAdpator.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "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",
10
+ "sourcesContent": [
11
+ "/**\n * 处理接口返回附件的情况,好几个地方用\n * @param response\n * @param __\n * @returns\n */\n\nexport default function attachmentAdpator(response: any, __: Function) {\n if (response && response.headers && response.headers['content-disposition']) {\n const disposition = response.headers['content-disposition'];\n let filename = '';\n\n if (disposition && disposition.indexOf('attachment') !== -1) {\n // disposition 有可能是 attachment; filename=\"??.xlsx\"; filename*=UTF-8''%E4%B8%AD%E6%96%87.xlsx\n // 这种情况下最后一个才是正确的文件名\n let filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)$/;\n\n let matches = disposition.match(filenameRegex);\n if (matches && matches.length) {\n filename = matches[1].replace(`UTF-8''`, '').replace(/['\"]/g, '');\n }\n\n // 很可能是中文被 url-encode 了\n if (filename && filename.replace(/[^%]/g, '').length > 2) {\n filename = decodeURIComponent(filename);\n }\n\n let type = response.headers['content-type'];\n let blob =\n response.data.toString() === '[object Blob]'\n ? response.data\n : new Blob([response.data], {type: type});\n if (typeof (window.navigator as any).msSaveBlob !== 'undefined') {\n // IE workaround for \"HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed.\"\n (window.navigator as any).msSaveBlob(blob, filename);\n } else {\n let URL = window.URL || (window as any).webkitURL;\n let downloadUrl = URL.createObjectURL(blob);\n if (filename) {\n // use HTML5 a[download] attribute to specify filename\n let a = document.createElement('a');\n // safari doesn't support this yet\n if (typeof a.download === 'undefined') {\n (window as any).location = downloadUrl;\n } else {\n a.href = downloadUrl;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n }\n } else {\n (window as any).location = downloadUrl;\n }\n setTimeout(function () {\n URL.revokeObjectURL(downloadUrl);\n }, 100); // cleanup\n }\n\n return {\n ...response,\n data: {\n status: 0,\n msg: __('Embed.downloading')\n }\n };\n }\n } else if (response.data.toString() === '[object Blob]') {\n return new Promise((resolve, reject) => {\n let reader = new FileReader();\n reader.addEventListener('loadend', e => {\n const text = reader.result as string;\n\n try {\n resolve({\n ...response,\n data: {\n ...JSON.parse(text)\n }\n });\n } catch (e) {\n reject(e);\n }\n });\n\n reader.readAsText(response.data);\n });\n }\n\n return response;\n}\n"
12
+ ]
13
+ }
@@ -26,3 +26,7 @@ export declare function calculatePosition(placement: any, overlayNode: any, targ
26
26
  arrowOffsetTop: number;
27
27
  activePlacement: string;
28
28
  };
29
+ /**
30
+ * 专门用来获取样式的像素值,默认返回 0
31
+ */
32
+ export declare function getStyleNumber(element: HTMLElement, styleName: string): number;
package/lib/utils/dom.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculatePosition = exports.ownerDocument = exports.getContainer = exports.props2BsPropsHoc = exports.props2BsProps = void 0;
3
+ exports.getStyleNumber = exports.calculatePosition = exports.ownerDocument = exports.getContainer = exports.props2BsPropsHoc = exports.props2BsProps = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
6
  var react_dom_1 = (0, tslib_1.__importDefault)(require("react-dom"));
@@ -214,4 +214,14 @@ function calculatePosition(placement, overlayNode, target, container, padding) {
214
214
  };
215
215
  }
216
216
  exports.calculatePosition = calculatePosition;
217
+ /**
218
+ * 专门用来获取样式的像素值,默认返回 0
219
+ */
220
+ function getStyleNumber(element, styleName) {
221
+ if (!element) {
222
+ return 0;
223
+ }
224
+ return (parseInt(getComputedStyle(element).getPropertyValue(styleName), 10) || 0);
225
+ }
226
+ exports.getStyleNumber = getStyleNumber;
217
227
  //# sourceMappingURL=./utils/dom.js.map
@@ -6,8 +6,8 @@
6
6
  "/src/utils/dom.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 ReactDOM from 'react-dom';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport getOffset from './offset';\nimport getPosition from './position';\n\nconst bsMapping: {\n [propName: string]: string;\n} = {\n level: 'bsStyle',\n classPrefix: 'bsClass',\n size: 'bsSize'\n};\n\n/**\n * 主要目的是希望在是用 bootstrap 组件的时候不需要带 bs 前缀。\n *\n * @param {Object} rawProps 原始属性对象。\n * @return {Object}\n */\nexport const props2BsProps = (rawProps: {[propName: string]: any}) => {\n let props: {[propName: string]: any} = {};\n\n Object.keys(rawProps).forEach(\n key => (props[bsMapping[key] || key] = rawProps[key])\n );\n\n return props;\n};\n\n/**\n * props2BsProps 的 hoc 版本\n *\n * @param {*} ComposedComponent 组合组件\n * @return {Component}\n */\nexport const props2BsPropsHoc: (\n ComposedComponent: React.ComponentType<any>\n) => React.ComponentType<any> = ComposedComponent => {\n class BsComponent extends React.Component<any> {\n render() {\n return <ComposedComponent {...props2BsProps(this.props)} />;\n }\n }\n\n hoistNonReactStatic(BsComponent, ComposedComponent);\n return BsComponent;\n};\n\nexport function getContainer(container: any, defaultContainer: any) {\n container = typeof container === 'function' ? container() : container;\n return ReactDOM.findDOMNode(container) || defaultContainer;\n}\n\nexport function ownerDocument(componentOrElement: any) {\n return (\n (ReactDOM.findDOMNode(componentOrElement) as Element)?.ownerDocument ||\n document\n );\n}\n\nfunction getContainerDimensions(containerNode: any) {\n let width, height, scroll;\n\n if (containerNode.tagName === 'BODY') {\n width = window.innerWidth;\n height = window.innerHeight;\n\n scroll =\n ownerDocument(containerNode).documentElement.scrollTop ||\n containerNode?.scrollTop;\n } else {\n ({width, height} = getOffset(containerNode) as any);\n scroll = containerNode.scrollTop;\n }\n\n return {width, height, scroll};\n}\n\nfunction getTopDelta(\n top: any,\n overlayHeight: any,\n container: any,\n padding: any\n) {\n const containerDimensions = getContainerDimensions(container);\n const containerScroll = containerDimensions.scroll;\n const containerHeight = containerDimensions.height;\n\n const topEdgeOffset = top - padding - containerScroll;\n const bottomEdgeOffset = top + padding - containerScroll + overlayHeight;\n\n if (topEdgeOffset < 0) {\n return -topEdgeOffset;\n } else if (bottomEdgeOffset > containerHeight) {\n return containerHeight - bottomEdgeOffset;\n } else {\n return 0;\n }\n}\n\nfunction getLeftDelta(\n left: any,\n overlayWidth: any,\n container: any,\n padding: any\n) {\n const containerDimensions = getContainerDimensions(container);\n const containerWidth = containerDimensions.width;\n\n const leftEdgeOffset = left - padding;\n const rightEdgeOffset = left + padding + overlayWidth;\n\n if (leftEdgeOffset < 0) {\n return -leftEdgeOffset;\n } else if (rightEdgeOffset > containerWidth) {\n return containerWidth - rightEdgeOffset;\n }\n\n return 0;\n}\n\nexport function calculatePosition(\n placement: any,\n overlayNode: any,\n target: HTMLElement,\n container: any,\n padding: any = 0\n) {\n const childOffset: any =\n container.tagName === 'BODY'\n ? getOffset(target)\n : getPosition(target, container);\n const {height: overlayHeight, width: overlayWidth} = getOffset(\n overlayNode\n ) as any;\n\n const clip = container.getBoundingClientRect();\n const clip2 = overlayNode.getBoundingClientRect();\n const scaleX = overlayNode.offsetWidth\n ? clip2.width / overlayNode.offsetWidth\n : 1;\n const scaleY = overlayNode.offsetHeight\n ? clip2.height / overlayNode.offsetHeight\n : 1;\n\n // auto 尝试四个方向对齐。\n placement =\n placement === 'auto'\n ? 'left-bottom-left-top right-bottom-right-top left-top-left-bottom right-top-right-bottom left-bottom-left-top'\n : placement;\n\n let positionLeft = 0,\n positionTop = 0,\n arrowOffsetLeft: any = '',\n arrowOffsetTop: any = '',\n activePlacement: string = placement;\n\n if (~placement.indexOf('-')) {\n const tests = placement.split(/\\s+/);\n\n while (tests.length) {\n const current = (activePlacement = tests.shift());\n let [atX, atY, myX, myY] = current.split('-');\n myX = myX || atX;\n myY = myY || atY;\n\n positionLeft =\n atX === 'left'\n ? childOffset.left\n : atX === 'right'\n ? childOffset.left + childOffset.width\n : childOffset.left + childOffset.width / 2;\n positionTop =\n atY === 'top'\n ? childOffset.top\n : atY === 'bottom'\n ? childOffset.top + childOffset.height\n : childOffset.top + childOffset.height / 2;\n\n positionLeft -=\n myX === 'left' ? 0 : myX === 'right' ? overlayWidth : overlayWidth / 2;\n positionTop -=\n myY === 'top'\n ? 0\n : myY === 'bottom'\n ? overlayHeight\n : overlayHeight / 2;\n\n // 如果还有其他可选项,则做位置判断,是否在可视区域,不完全在则继续看其他定位情况。\n if (tests.length) {\n const transformed = {\n x: clip.x + positionLeft / scaleX,\n y: clip.y + positionTop / scaleY,\n width: overlayWidth,\n height: overlayHeight\n };\n\n if (\n transformed.x > 0 &&\n transformed.x + transformed.width < window.innerWidth &&\n transformed.y > 0 &&\n transformed.y + transformed.height < window.innerHeight\n ) {\n break;\n }\n }\n }\n\n // todo arrow 位置支持\n } else if (placement === 'left' || placement === 'right') {\n // atX = placement;\n // atY = myY = 'center';\n // myX = placement === 'left' ? 'right' : 'left';\n if (placement === 'left') {\n positionLeft = childOffset.left - overlayWidth;\n } else {\n positionLeft = childOffset.left + childOffset.width;\n }\n\n positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;\n const topDelta = getTopDelta(\n positionTop,\n overlayHeight,\n container,\n padding\n );\n\n positionTop += topDelta;\n arrowOffsetTop = 50 * (1 - (2 * topDelta) / overlayHeight) + '%';\n } else if (placement === 'top' || placement === 'bottom') {\n // atY = placement;\n // atX = myX = 'center';\n // myY = placement === 'top' ? 'bottom': 'top';\n if (placement === 'top') {\n positionTop = childOffset.top - overlayHeight;\n } else {\n positionTop = childOffset.top + childOffset.height;\n }\n\n positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2;\n const leftDelta = getLeftDelta(\n positionLeft,\n overlayWidth,\n container,\n padding\n );\n\n positionLeft += leftDelta;\n arrowOffsetLeft = 50 * (1 - (2 * leftDelta) / overlayHeight) + '%';\n } else if (placement === 'center') {\n // atX = atY = myX = myY = 'center';\n positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2;\n positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;\n arrowOffsetLeft = arrowOffsetTop = void 0;\n } else {\n throw new Error(\n `calcOverlayPosition(): No such placement of \"${placement}\" found.`\n );\n }\n\n return {\n positionLeft: positionLeft / scaleX,\n positionTop: positionTop / scaleY,\n arrowOffsetLeft: arrowOffsetLeft / scaleX,\n arrowOffsetTop: arrowOffsetTop / scaleY,\n activePlacement\n };\n}\n"
11
+ "import React from 'react';\nimport ReactDOM from 'react-dom';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\nimport getOffset from './offset';\nimport getPosition from './position';\n\nconst bsMapping: {\n [propName: string]: string;\n} = {\n level: 'bsStyle',\n classPrefix: 'bsClass',\n size: 'bsSize'\n};\n\n/**\n * 主要目的是希望在是用 bootstrap 组件的时候不需要带 bs 前缀。\n *\n * @param {Object} rawProps 原始属性对象。\n * @return {Object}\n */\nexport const props2BsProps = (rawProps: {[propName: string]: any}) => {\n let props: {[propName: string]: any} = {};\n\n Object.keys(rawProps).forEach(\n key => (props[bsMapping[key] || key] = rawProps[key])\n );\n\n return props;\n};\n\n/**\n * props2BsProps 的 hoc 版本\n *\n * @param {*} ComposedComponent 组合组件\n * @return {Component}\n */\nexport const props2BsPropsHoc: (\n ComposedComponent: React.ComponentType<any>\n) => React.ComponentType<any> = ComposedComponent => {\n class BsComponent extends React.Component<any> {\n render() {\n return <ComposedComponent {...props2BsProps(this.props)} />;\n }\n }\n\n hoistNonReactStatic(BsComponent, ComposedComponent);\n return BsComponent;\n};\n\nexport function getContainer(container: any, defaultContainer: any) {\n container = typeof container === 'function' ? container() : container;\n return ReactDOM.findDOMNode(container) || defaultContainer;\n}\n\nexport function ownerDocument(componentOrElement: any) {\n return (\n (ReactDOM.findDOMNode(componentOrElement) as Element)?.ownerDocument ||\n document\n );\n}\n\nfunction getContainerDimensions(containerNode: any) {\n let width, height, scroll;\n\n if (containerNode.tagName === 'BODY') {\n width = window.innerWidth;\n height = window.innerHeight;\n\n scroll =\n ownerDocument(containerNode).documentElement.scrollTop ||\n containerNode?.scrollTop;\n } else {\n ({width, height} = getOffset(containerNode) as any);\n scroll = containerNode.scrollTop;\n }\n\n return {width, height, scroll};\n}\n\nfunction getTopDelta(\n top: any,\n overlayHeight: any,\n container: any,\n padding: any\n) {\n const containerDimensions = getContainerDimensions(container);\n const containerScroll = containerDimensions.scroll;\n const containerHeight = containerDimensions.height;\n\n const topEdgeOffset = top - padding - containerScroll;\n const bottomEdgeOffset = top + padding - containerScroll + overlayHeight;\n\n if (topEdgeOffset < 0) {\n return -topEdgeOffset;\n } else if (bottomEdgeOffset > containerHeight) {\n return containerHeight - bottomEdgeOffset;\n } else {\n return 0;\n }\n}\n\nfunction getLeftDelta(\n left: any,\n overlayWidth: any,\n container: any,\n padding: any\n) {\n const containerDimensions = getContainerDimensions(container);\n const containerWidth = containerDimensions.width;\n\n const leftEdgeOffset = left - padding;\n const rightEdgeOffset = left + padding + overlayWidth;\n\n if (leftEdgeOffset < 0) {\n return -leftEdgeOffset;\n } else if (rightEdgeOffset > containerWidth) {\n return containerWidth - rightEdgeOffset;\n }\n\n return 0;\n}\n\nexport function calculatePosition(\n placement: any,\n overlayNode: any,\n target: HTMLElement,\n container: any,\n padding: any = 0\n) {\n const childOffset: any =\n container.tagName === 'BODY'\n ? getOffset(target)\n : getPosition(target, container);\n const {height: overlayHeight, width: overlayWidth} = getOffset(\n overlayNode\n ) as any;\n\n const clip = container.getBoundingClientRect();\n const clip2 = overlayNode.getBoundingClientRect();\n const scaleX = overlayNode.offsetWidth\n ? clip2.width / overlayNode.offsetWidth\n : 1;\n const scaleY = overlayNode.offsetHeight\n ? clip2.height / overlayNode.offsetHeight\n : 1;\n\n // auto 尝试四个方向对齐。\n placement =\n placement === 'auto'\n ? 'left-bottom-left-top right-bottom-right-top left-top-left-bottom right-top-right-bottom left-bottom-left-top'\n : placement;\n\n let positionLeft = 0,\n positionTop = 0,\n arrowOffsetLeft: any = '',\n arrowOffsetTop: any = '',\n activePlacement: string = placement;\n\n if (~placement.indexOf('-')) {\n const tests = placement.split(/\\s+/);\n\n while (tests.length) {\n const current = (activePlacement = tests.shift());\n let [atX, atY, myX, myY] = current.split('-');\n myX = myX || atX;\n myY = myY || atY;\n\n positionLeft =\n atX === 'left'\n ? childOffset.left\n : atX === 'right'\n ? childOffset.left + childOffset.width\n : childOffset.left + childOffset.width / 2;\n positionTop =\n atY === 'top'\n ? childOffset.top\n : atY === 'bottom'\n ? childOffset.top + childOffset.height\n : childOffset.top + childOffset.height / 2;\n\n positionLeft -=\n myX === 'left' ? 0 : myX === 'right' ? overlayWidth : overlayWidth / 2;\n positionTop -=\n myY === 'top'\n ? 0\n : myY === 'bottom'\n ? overlayHeight\n : overlayHeight / 2;\n\n // 如果还有其他可选项,则做位置判断,是否在可视区域,不完全在则继续看其他定位情况。\n if (tests.length) {\n const transformed = {\n x: clip.x + positionLeft / scaleX,\n y: clip.y + positionTop / scaleY,\n width: overlayWidth,\n height: overlayHeight\n };\n\n if (\n transformed.x > 0 &&\n transformed.x + transformed.width < window.innerWidth &&\n transformed.y > 0 &&\n transformed.y + transformed.height < window.innerHeight\n ) {\n break;\n }\n }\n }\n\n // todo arrow 位置支持\n } else if (placement === 'left' || placement === 'right') {\n // atX = placement;\n // atY = myY = 'center';\n // myX = placement === 'left' ? 'right' : 'left';\n if (placement === 'left') {\n positionLeft = childOffset.left - overlayWidth;\n } else {\n positionLeft = childOffset.left + childOffset.width;\n }\n\n positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;\n const topDelta = getTopDelta(\n positionTop,\n overlayHeight,\n container,\n padding\n );\n\n positionTop += topDelta;\n arrowOffsetTop = 50 * (1 - (2 * topDelta) / overlayHeight) + '%';\n } else if (placement === 'top' || placement === 'bottom') {\n // atY = placement;\n // atX = myX = 'center';\n // myY = placement === 'top' ? 'bottom': 'top';\n if (placement === 'top') {\n positionTop = childOffset.top - overlayHeight;\n } else {\n positionTop = childOffset.top + childOffset.height;\n }\n\n positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2;\n const leftDelta = getLeftDelta(\n positionLeft,\n overlayWidth,\n container,\n padding\n );\n\n positionLeft += leftDelta;\n arrowOffsetLeft = 50 * (1 - (2 * leftDelta) / overlayHeight) + '%';\n } else if (placement === 'center') {\n // atX = atY = myX = myY = 'center';\n positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2;\n positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;\n arrowOffsetLeft = arrowOffsetTop = void 0;\n } else {\n throw new Error(\n `calcOverlayPosition(): No such placement of \"${placement}\" found.`\n );\n }\n\n return {\n positionLeft: positionLeft / scaleX,\n positionTop: positionTop / scaleY,\n arrowOffsetLeft: arrowOffsetLeft / scaleX,\n arrowOffsetTop: arrowOffsetTop / scaleY,\n activePlacement\n };\n}\n\n/**\n * 专门用来获取样式的像素值,默认返回 0\n */\nexport function getStyleNumber(element: HTMLElement, styleName: string) {\n if (!element) {\n return 0;\n }\n return (\n parseInt(getComputedStyle(element).getPropertyValue(styleName), 10) || 0\n );\n}\n"
12
12
  ]
13
13
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 后续好多地方可能都要支持 action,所以提取公共功能
3
+ */
4
+ /// <reference types="react" />
5
+ import { RendererProps } from '../factory';
6
+ import { ActionSchema } from '../renderers/Action';
7
+ export default function handleAction(e: React.MouseEvent<any>, action: ActionSchema, props: RendererProps, data?: any): void;