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
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,10 +1,12 @@
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 = [];
10
12
  var isIE = !!document.documentMode;
@@ -30,6 +32,15 @@ function buildApi(api, data, options) {
30
32
  var autoAppend = options.autoAppend, ignoreData = options.ignoreData, rest = (0, tslib_1.__rest)(options, ["autoAppend", "ignoreData"]);
31
33
  api.config = (0, tslib_1.__assign)({}, rest);
32
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
+ }
33
44
  if (!data) {
34
45
  return api;
35
46
  }
@@ -93,15 +104,6 @@ function buildApi(api, data, options) {
93
104
  delete api.data;
94
105
  }
95
106
  }
96
- if (api.headers) {
97
- api.headers = (0, tpl_builtin_1.dataMapping)(api.headers, data, undefined, false);
98
- }
99
- if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {
100
- api.requestAdaptor = str2function(api.requestAdaptor, 'api');
101
- }
102
- if (api.adaptor && typeof api.adaptor === 'string') {
103
- api.adaptor = str2function(api.adaptor, 'payload', 'response', 'api');
104
- }
105
107
  return api;
106
108
  }
107
109
  exports.buildApi = buildApi;
@@ -144,7 +146,7 @@ function responseAdaptor(ret, api) {
144
146
  var data = ret.data;
145
147
  var hasStatusField = true;
146
148
  if (!data) {
147
- throw new Error('Response is empty!');
149
+ throw new Error('Response is empty');
148
150
  }
149
151
  // 兼容几种常见写法
150
152
  if (data.hasOwnProperty('errorCode')) {
@@ -199,7 +201,7 @@ function responseAdaptor(ret, api) {
199
201
  return payload;
200
202
  }
201
203
  exports.responseAdaptor = responseAdaptor;
202
- function wrapFetcher(fn) {
204
+ function wrapFetcher(fn, tracker) {
203
205
  return function (api, data, options) {
204
206
  var _a;
205
207
  api = buildApi(api, data, options);
@@ -224,6 +226,7 @@ function wrapFetcher(fn) {
224
226
  api.headers = api.headers || (api.headers = {});
225
227
  api.headers['Content-Type'] = 'application/json';
226
228
  }
229
+ tracker === null || tracker === void 0 ? void 0 : tracker({ eventType: 'api', eventData: (0, omit_1.default)(api, ['config', 'data', 'body']) }, api.data);
227
230
  if (typeof api.cache === 'number' && api.cache > 0) {
228
231
  var apiCache = getApiCache(api);
229
232
  return wrapAdaptor(apiCache
@@ -365,5 +368,18 @@ function clearApiCache() {
365
368
  apiCaches.splice(0, apiCaches.length);
366
369
  }
367
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;
368
384
  // window.apiCaches = apiCaches;
369
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\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 (!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 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 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): (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 // 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\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
  }
@@ -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
  }
@@ -3,6 +3,8 @@ import { Schema, PlainObject, FunctionPropertyNames } from '../types';
3
3
  import qs from 'qs';
4
4
  import { IIRendererStore } from '../store';
5
5
  import { autobindMethod } from './autobind';
6
+ export declare function isMobile(): any;
7
+ export declare function range(num: number, min: number, max: number): number;
6
8
  export declare function createObject(superProps?: {
7
9
  [propName: string]: any;
8
10
  }, props?: {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTreeParent = exports.getTreeAncestors = exports.getTreeDepth = exports.spliceTree = exports.flattenTree = exports.someTree = exports.everyTree = exports.filterTree = exports.getTree = exports.findTreeIndex = exports.findTree = exports.eachTree = exports.mapTree = exports.uuidv4 = exports.uuid = exports.isEmpty = exports.omitControls = exports.until = exports.isBreakpoint = exports.isObject = exports.__uri = exports.padArr = exports.difference = exports.getScrollParent = exports.promisify = exports.makeHorizontalDeeper = exports.hasAbility = exports.isDisabled = exports.visibilityFilter = exports.isUnfolded = exports.isVisible = exports.hasVisibleExpression = exports.makeColumnClassBuild = exports.immutableExtends = exports.isArrayChildrenModified = exports.isObjectShallowModified = exports.rmUndefined = exports.anyChanged = exports.noop = exports.hasOwnProperty = exports.deleteVariable = exports.setVariable = exports.getVariable = exports.findIndex = exports.guid = exports.syncDataFromSuper = exports.extendObject = exports.injectPropsToObject = exports.cloneObject = exports.createObject = void 0;
4
- exports.isClickOnInput = exports.normalizeNodePath = exports.removeHTMLTag = exports.detectPropValueChanged = exports.getPropValue = exports.getScrollbarWidth = exports.findObjectsWithKey = exports.keyToPath = exports.SkipOperation = exports.loadScript = exports.mapObject = exports.chainEvents = exports.chainFunctions = exports.object2formData = exports.qsparse = exports.qsstringify = exports.hasFile = exports.sortArray = exports.bulkBindFunctions = exports.autobind = exports.pickEventsProps = exports.string2regExp = exports.getLevelFromClassName = exports.getWidthRate = exports.camel = exports.lcFirst = exports.ucFirst = void 0;
3
+ exports.getTreeDepth = exports.spliceTree = exports.flattenTree = exports.someTree = exports.everyTree = exports.filterTree = exports.getTree = exports.findTreeIndex = exports.findTree = exports.eachTree = exports.mapTree = exports.uuidv4 = exports.uuid = exports.isEmpty = exports.omitControls = exports.until = exports.isBreakpoint = exports.isObject = exports.__uri = exports.padArr = exports.difference = exports.getScrollParent = exports.promisify = exports.makeHorizontalDeeper = exports.hasAbility = exports.isDisabled = exports.visibilityFilter = exports.isUnfolded = exports.isVisible = exports.hasVisibleExpression = exports.makeColumnClassBuild = exports.immutableExtends = exports.isArrayChildrenModified = exports.isObjectShallowModified = exports.rmUndefined = exports.anyChanged = exports.noop = exports.hasOwnProperty = exports.deleteVariable = exports.setVariable = exports.getVariable = exports.findIndex = exports.guid = exports.syncDataFromSuper = exports.extendObject = exports.injectPropsToObject = exports.cloneObject = exports.createObject = exports.range = exports.isMobile = void 0;
4
+ exports.isClickOnInput = exports.normalizeNodePath = exports.removeHTMLTag = exports.detectPropValueChanged = exports.getPropValue = exports.getScrollbarWidth = exports.findObjectsWithKey = exports.keyToPath = exports.SkipOperation = exports.loadScript = exports.mapObject = exports.chainEvents = exports.chainFunctions = exports.object2formData = exports.qsparse = exports.qsstringify = exports.hasFile = exports.sortArray = exports.bulkBindFunctions = exports.autobind = exports.pickEventsProps = exports.string2regExp = exports.getLevelFromClassName = exports.getWidthRate = exports.camel = exports.lcFirst = exports.ucFirst = exports.getTreeParent = exports.getTreeAncestors = void 0;
5
5
  var tslib_1 = require("tslib");
6
6
  var isPlainObject_1 = (0, tslib_1.__importDefault)(require("lodash/isPlainObject"));
7
7
  var isEqual_1 = (0, tslib_1.__importDefault)(require("lodash/isEqual"));
@@ -13,6 +13,15 @@ var qs_1 = (0, tslib_1.__importDefault)(require("qs"));
13
13
  var autobind_1 = require("./autobind");
14
14
  var tpl_builtin_1 = require("./tpl-builtin");
15
15
  var mobx_1 = require("mobx");
16
+ function isMobile() {
17
+ var _a, _b;
18
+ return (_b = (_a = window).matchMedia) === null || _b === void 0 ? void 0 : _b.call(_a, '(max-width: 768px)').matches;
19
+ }
20
+ exports.isMobile = isMobile;
21
+ function range(num, min, max) {
22
+ return Math.min(Math.max(num, min), max);
23
+ }
24
+ exports.range = range;
16
25
  // 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。
17
26
  function createObject(superProps, props, properties) {
18
27
  if (superProps && Object.isFrozen(superProps)) {