@pisell/materials 1.0.472 → 1.0.473

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 (277) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +7 -7
  6. package/build/lowcode/preview.js +142 -142
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +18 -18
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +15 -15
  11. package/es/components/dataSourceComponents/dataSourceForm/index.less +1 -1
  12. package/es/components/dataSourceComponents/dataSourceForm/serve.d.ts +1 -0
  13. package/es/components/dataSourceComponents/dataSourceForm/serve.js +4 -3
  14. package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +2 -2
  15. package/es/components/dataSourceComponents/dataSourceForm/utils.js +41 -17
  16. package/es/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +3 -0
  17. package/es/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.js +4 -0
  18. package/es/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +3 -0
  19. package/es/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.js +4 -0
  20. package/es/components/dataSourceComponents/dataSourceShow/dataSourceTypography/index.d.ts +10 -0
  21. package/es/components/dataSourceComponents/dataSourceShow/dataSourceTypography/index.js +15 -0
  22. package/es/components/dataSourceComponents/dataSourceShow/utils.d.ts +6 -0
  23. package/es/components/dataSourceComponents/dataSourceShow/utils.js +82 -0
  24. package/es/components/dataSourceComponents/dataSourceTable/BaseTable.js +33 -139
  25. package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +25 -0
  26. package/es/components/dataSourceComponents/dataSourceTable/filter/index.js +162 -0
  27. package/es/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +8 -0
  28. package/es/components/dataSourceComponents/dataSourceTable/filter/utils.js +135 -0
  29. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -2
  30. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.js +1 -1
  31. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDesignMode.js +35 -39
  32. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.d.ts +20 -4
  33. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.js +65 -11
  34. package/es/components/dataSourceComponents/dataSourceTable/hooks/useFormat.d.ts +17 -1
  35. package/es/components/dataSourceComponents/dataSourceTable/hooks/useFormat.js +105 -6
  36. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +77 -0
  37. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +245 -0
  38. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +20 -7
  39. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.js +41 -12
  40. package/es/components/dataSourceComponents/dataSourceTable/index.d.ts +1 -0
  41. package/es/components/dataSourceComponents/dataSourceTable/index.js +1 -0
  42. package/es/components/dataSourceComponents/dataSourceTable/index.less +5 -0
  43. package/es/components/dataSourceComponents/dataSourceTable/type.d.ts +57 -9
  44. package/es/components/dataSourceComponents/dataSourceWrapper/BaseWrapper.d.ts +7 -0
  45. package/es/components/dataSourceComponents/dataSourceWrapper/BaseWrapper.js +23 -0
  46. package/es/components/dataSourceComponents/dataSourceWrapper/index.d.ts +2 -4
  47. package/es/components/dataSourceComponents/dataSourceWrapper/index.js +17 -2
  48. package/es/components/dataSourceComponents/fields/Checkbox/ReadPretty.js +7 -1
  49. package/es/components/dataSourceComponents/fields/Checkbox/index.js +3 -1
  50. package/es/components/dataSourceComponents/fields/DatePicker/index.js +5 -1
  51. package/es/components/dataSourceComponents/fields/DateRangePicker/ReadPretty.d.ts +4 -0
  52. package/es/components/dataSourceComponents/fields/DateRangePicker/ReadPretty.js +7 -0
  53. package/es/components/dataSourceComponents/fields/DateRangePicker/WithMode.d.ts +4 -0
  54. package/es/components/dataSourceComponents/fields/DateRangePicker/WithMode.js +5 -0
  55. package/es/components/dataSourceComponents/fields/DateRangePicker/index.d.ts +4 -0
  56. package/es/components/dataSourceComponents/fields/DateRangePicker/index.js +5 -0
  57. package/es/components/dataSourceComponents/fields/DateRangePicker/index.less +14 -0
  58. package/es/components/dataSourceComponents/fields/DateRangePicker/type.d.ts +4 -0
  59. package/es/components/dataSourceComponents/fields/DateRangePicker/type.js +1 -0
  60. package/es/components/dataSourceComponents/fields/Input/index.d.ts +6 -1
  61. package/es/components/dataSourceComponents/fields/Input/index.js +4 -0
  62. package/es/components/dataSourceComponents/fields/Input.Email/ReadPretty.d.ts +4 -0
  63. package/es/components/dataSourceComponents/fields/Input.Email/ReadPretty.js +5 -0
  64. package/es/components/dataSourceComponents/fields/Input.Email/WithMode.d.ts +4 -0
  65. package/es/components/dataSourceComponents/fields/Input.Email/WithMode.js +17 -0
  66. package/es/components/dataSourceComponents/fields/Input.Email/index.d.ts +3 -0
  67. package/es/components/dataSourceComponents/fields/Input.Email/index.js +4 -0
  68. package/es/components/dataSourceComponents/fields/Input.Email/type.d.ts +5 -0
  69. package/es/components/dataSourceComponents/fields/Input.Email/type.js +1 -0
  70. package/es/components/dataSourceComponents/fields/Input.Json/ReadPretty.js +2 -2
  71. package/es/components/dataSourceComponents/fields/Input.Json/WithMode.d.ts +2 -2
  72. package/es/components/dataSourceComponents/fields/Input.Json/WithMode.js +41 -1
  73. package/es/components/dataSourceComponents/fields/Input.Json/index.d.ts +1 -1
  74. package/es/components/dataSourceComponents/fields/Input.Phone/ReadPretty.d.ts +4 -0
  75. package/es/components/dataSourceComponents/fields/Input.Phone/ReadPretty.js +5 -0
  76. package/es/components/dataSourceComponents/fields/Input.Phone/WithMode.d.ts +4 -0
  77. package/es/components/dataSourceComponents/fields/Input.Phone/WithMode.js +12 -0
  78. package/es/components/dataSourceComponents/fields/Input.Phone/index.d.ts +3 -0
  79. package/es/components/dataSourceComponents/fields/Input.Phone/index.js +4 -0
  80. package/es/components/dataSourceComponents/fields/Input.Phone/type.d.ts +5 -0
  81. package/es/components/dataSourceComponents/fields/Input.Phone/type.js +1 -0
  82. package/es/components/dataSourceComponents/fields/InputNumber/index.js +5 -1
  83. package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
  84. package/es/components/dataSourceComponents/fields/index.d.ts +46 -5
  85. package/es/components/dataSourceComponents/fields/index.js +7 -2
  86. package/es/components/dataSourceComponents/fields/type.d.ts +18 -0
  87. package/es/components/dataSourceComponents/fields/type.js +1 -0
  88. package/es/components/dataSourceComponents/fields/utils.d.ts +3 -0
  89. package/es/components/dataSourceComponents/fields/utils.js +111 -0
  90. package/es/components/dataSourceComponents/hooks/useActions.js +22 -7
  91. package/es/components/dataSourceComponents/hooks/useComponentId.d.ts +2 -0
  92. package/es/components/dataSourceComponents/hooks/useComponentId.js +9 -0
  93. package/es/components/dataSourceComponents/provider/dataSource/DataSourceContext.d.ts +19 -2
  94. package/es/components/dataSourceComponents/provider/dataSource/DataSourceProvider.d.ts +1 -1
  95. package/es/components/dataSourceComponents/provider/dataSource/DataSourceProvider.js +37 -27
  96. package/es/components/dataSourceComponents/provider/variables/VariablesContext.d.ts +3 -2
  97. package/es/components/dataSourceComponents/provider/variables/VariablesProvider.js +19 -13
  98. package/es/components/dataSourceComponents/provider/variables/utils.d.ts +2 -0
  99. package/es/components/dataSourceComponents/provider/variables/utils.js +9 -0
  100. package/es/components/filter/components/Dropdown/index.d.ts +1 -0
  101. package/es/components/filter/components/Dropdown/index.js +6 -2
  102. package/es/components/filter/components/FilterButton/index.js +5 -3
  103. package/es/components/filter/components/FilterButton/types.d.ts +2 -0
  104. package/es/components/table/Actions/index.js +16 -7
  105. package/es/components/table/Gallery/index.d.ts +3 -3
  106. package/es/components/table/Gallery/index.js +25 -7
  107. package/es/components/table/Gallery/index.less +1 -0
  108. package/es/components/table/Header/index.d.ts +10 -3
  109. package/es/components/table/Header/index.js +37 -11
  110. package/es/components/table/Header/index.less +10 -2
  111. package/es/components/table/Table/utils.js +4 -0
  112. package/es/components/table/Tabs/index.d.ts +14 -0
  113. package/es/components/table/Tabs/index.js +37 -0
  114. package/es/components/table/hooks/useTriggerValuesChange.js +3 -0
  115. package/es/components/table/index.js +16 -3
  116. package/es/components/table/types.d.ts +14 -2
  117. package/es/components/typography/index.d.ts +2 -2
  118. package/es/components/typography/index.js +4 -3
  119. package/es/index.d.ts +4 -0
  120. package/es/index.js +5 -1
  121. package/es/locales/en-US.d.ts +7 -0
  122. package/es/locales/en-US.js +16 -1
  123. package/es/locales/zh-CN.d.ts +7 -0
  124. package/es/locales/zh-CN.js +16 -1
  125. package/es/locales/zh-TW.d.ts +7 -0
  126. package/es/locales/zh-TW.js +16 -1
  127. package/lib/components/dataSourceComponents/dataSourceForm/index.less +1 -1
  128. package/lib/components/dataSourceComponents/dataSourceForm/serve.d.ts +1 -0
  129. package/lib/components/dataSourceComponents/dataSourceForm/serve.js +3 -2
  130. package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +2 -2
  131. package/lib/components/dataSourceComponents/dataSourceForm/utils.js +58 -11
  132. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.d.ts +3 -0
  133. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceImage/index.js +38 -0
  134. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.d.ts +3 -0
  135. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceQRCode/index.js +38 -0
  136. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceTypography/index.d.ts +10 -0
  137. package/lib/components/dataSourceComponents/dataSourceShow/dataSourceTypography/index.js +44 -0
  138. package/lib/components/dataSourceComponents/dataSourceShow/utils.d.ts +6 -0
  139. package/lib/components/dataSourceComponents/dataSourceShow/utils.js +95 -0
  140. package/lib/components/dataSourceComponents/dataSourceTable/BaseTable.js +29 -90
  141. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +25 -0
  142. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.js +176 -0
  143. package/lib/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +8 -0
  144. package/lib/components/dataSourceComponents/dataSourceTable/filter/utils.js +176 -0
  145. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.d.ts +2 -2
  146. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDataSourceKey.js +1 -1
  147. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDesignMode.js +24 -37
  148. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.d.ts +20 -4
  149. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.js +53 -7
  150. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useFormat.d.ts +17 -1
  151. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useFormat.js +73 -3
  152. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +77 -0
  153. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.js +236 -0
  154. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +20 -7
  155. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.js +38 -11
  156. package/lib/components/dataSourceComponents/dataSourceTable/index.d.ts +1 -0
  157. package/lib/components/dataSourceComponents/dataSourceTable/index.js +1 -0
  158. package/lib/components/dataSourceComponents/dataSourceTable/index.less +5 -0
  159. package/lib/components/dataSourceComponents/dataSourceTable/type.d.ts +57 -9
  160. package/lib/components/dataSourceComponents/dataSourceWrapper/BaseWrapper.d.ts +7 -0
  161. package/lib/components/dataSourceComponents/dataSourceWrapper/BaseWrapper.js +51 -0
  162. package/lib/components/dataSourceComponents/dataSourceWrapper/index.d.ts +2 -4
  163. package/lib/components/dataSourceComponents/dataSourceWrapper/index.js +14 -2
  164. package/lib/components/dataSourceComponents/fields/Checkbox/ReadPretty.js +3 -1
  165. package/lib/components/dataSourceComponents/fields/Checkbox/index.js +3 -1
  166. package/lib/components/dataSourceComponents/fields/DatePicker/index.js +5 -1
  167. package/lib/components/dataSourceComponents/fields/DateRangePicker/ReadPretty.d.ts +4 -0
  168. package/lib/components/dataSourceComponents/fields/DateRangePicker/ReadPretty.js +41 -0
  169. package/lib/components/dataSourceComponents/fields/DateRangePicker/WithMode.d.ts +4 -0
  170. package/lib/components/dataSourceComponents/fields/DateRangePicker/WithMode.js +42 -0
  171. package/lib/components/dataSourceComponents/fields/DateRangePicker/index.d.ts +4 -0
  172. package/lib/components/dataSourceComponents/fields/DateRangePicker/index.js +39 -0
  173. package/lib/components/dataSourceComponents/fields/DateRangePicker/index.less +14 -0
  174. package/lib/components/dataSourceComponents/fields/DateRangePicker/type.d.ts +4 -0
  175. package/lib/components/dataSourceComponents/fields/DateRangePicker/type.js +17 -0
  176. package/lib/components/dataSourceComponents/fields/Input/index.d.ts +6 -1
  177. package/lib/components/dataSourceComponents/fields/Input/index.js +4 -0
  178. package/lib/components/dataSourceComponents/fields/Input.Email/ReadPretty.d.ts +4 -0
  179. package/lib/components/dataSourceComponents/fields/Input.Email/ReadPretty.js +39 -0
  180. package/lib/components/dataSourceComponents/fields/Input.Email/WithMode.d.ts +4 -0
  181. package/lib/components/dataSourceComponents/fields/Input.Email/WithMode.js +57 -0
  182. package/lib/components/dataSourceComponents/fields/Input.Email/index.d.ts +3 -0
  183. package/lib/components/dataSourceComponents/fields/Input.Email/index.js +38 -0
  184. package/lib/components/dataSourceComponents/fields/Input.Email/type.d.ts +5 -0
  185. package/lib/components/dataSourceComponents/fields/Input.Email/type.js +17 -0
  186. package/lib/components/dataSourceComponents/fields/Input.Json/ReadPretty.js +2 -2
  187. package/lib/components/dataSourceComponents/fields/Input.Json/WithMode.d.ts +2 -2
  188. package/lib/components/dataSourceComponents/fields/Input.Json/WithMode.js +30 -2
  189. package/lib/components/dataSourceComponents/fields/Input.Json/index.d.ts +1 -1
  190. package/lib/components/dataSourceComponents/fields/Input.Phone/ReadPretty.d.ts +4 -0
  191. package/lib/components/dataSourceComponents/fields/Input.Phone/ReadPretty.js +39 -0
  192. package/lib/components/dataSourceComponents/fields/Input.Phone/WithMode.d.ts +4 -0
  193. package/lib/components/dataSourceComponents/fields/Input.Phone/WithMode.js +43 -0
  194. package/lib/components/dataSourceComponents/fields/Input.Phone/index.d.ts +3 -0
  195. package/lib/components/dataSourceComponents/fields/Input.Phone/index.js +38 -0
  196. package/lib/components/dataSourceComponents/fields/Input.Phone/type.d.ts +5 -0
  197. package/lib/components/dataSourceComponents/fields/Input.Phone/type.js +17 -0
  198. package/lib/components/dataSourceComponents/fields/InputNumber/index.js +5 -1
  199. package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
  200. package/lib/components/dataSourceComponents/fields/index.d.ts +46 -5
  201. package/lib/components/dataSourceComponents/fields/index.js +6 -1
  202. package/lib/components/dataSourceComponents/fields/type.d.ts +18 -0
  203. package/lib/components/dataSourceComponents/fields/type.js +17 -0
  204. package/lib/components/dataSourceComponents/fields/utils.d.ts +3 -0
  205. package/lib/components/dataSourceComponents/fields/utils.js +134 -0
  206. package/lib/components/dataSourceComponents/hooks/useActions.js +14 -5
  207. package/lib/components/dataSourceComponents/hooks/useComponentId.d.ts +2 -0
  208. package/lib/components/dataSourceComponents/hooks/useComponentId.js +32 -0
  209. package/lib/components/dataSourceComponents/provider/dataSource/DataSourceContext.d.ts +19 -2
  210. package/lib/components/dataSourceComponents/provider/dataSource/DataSourceProvider.d.ts +1 -1
  211. package/lib/components/dataSourceComponents/provider/dataSource/DataSourceProvider.js +29 -16
  212. package/lib/components/dataSourceComponents/provider/variables/VariablesContext.d.ts +3 -2
  213. package/lib/components/dataSourceComponents/provider/variables/VariablesProvider.js +17 -8
  214. package/lib/components/dataSourceComponents/provider/variables/utils.d.ts +2 -0
  215. package/lib/components/dataSourceComponents/provider/variables/utils.js +15 -2
  216. package/lib/components/filter/components/Dropdown/index.d.ts +1 -0
  217. package/lib/components/filter/components/Dropdown/index.js +6 -2
  218. package/lib/components/filter/components/FilterButton/index.js +5 -3
  219. package/lib/components/filter/components/FilterButton/types.d.ts +2 -0
  220. package/lib/components/table/Actions/index.js +18 -9
  221. package/lib/components/table/Gallery/index.d.ts +3 -3
  222. package/lib/components/table/Gallery/index.js +17 -0
  223. package/lib/components/table/Gallery/index.less +1 -0
  224. package/lib/components/table/Header/index.d.ts +10 -3
  225. package/lib/components/table/Header/index.js +29 -4
  226. package/lib/components/table/Header/index.less +10 -2
  227. package/lib/components/table/Table/utils.js +4 -0
  228. package/lib/components/table/Tabs/index.d.ts +14 -0
  229. package/lib/components/table/Tabs/index.js +70 -0
  230. package/lib/components/table/hooks/useTriggerValuesChange.js +3 -0
  231. package/lib/components/table/index.js +17 -2
  232. package/lib/components/table/types.d.ts +14 -2
  233. package/lib/components/typography/index.d.ts +2 -2
  234. package/lib/components/typography/index.js +4 -3
  235. package/lib/index.d.ts +4 -0
  236. package/lib/index.js +12 -0
  237. package/lib/locales/en-US.d.ts +7 -0
  238. package/lib/locales/en-US.js +8 -1
  239. package/lib/locales/zh-CN.d.ts +7 -0
  240. package/lib/locales/zh-CN.js +8 -1
  241. package/lib/locales/zh-TW.d.ts +7 -0
  242. package/lib/locales/zh-TW.js +8 -1
  243. package/lowcode/_utils/defaultSchema.ts +452 -83
  244. package/lowcode/_utils/type.ts +5 -0
  245. package/lowcode/_utils/utils.ts +1 -0
  246. package/lowcode/button/meta.ts +1 -2
  247. package/lowcode/data-source-form/constants.ts +5 -0
  248. package/lowcode/data-source-form/meta.ts +259 -273
  249. package/lowcode/data-source-form/snippets.ts +9 -0
  250. package/lowcode/data-source-form/utils.ts +80 -15
  251. package/lowcode/data-source-image/meta.ts +74 -0
  252. package/lowcode/data-source-image/snippets.ts +14 -0
  253. package/lowcode/data-source-qrcode/meta.ts +158 -0
  254. package/lowcode/data-source-qrcode/snippets.ts +20 -0
  255. package/lowcode/data-source-table/meta.ts +4577 -2285
  256. package/lowcode/data-source-table/snippets.ts +10 -4
  257. package/lowcode/data-source-table/utils.tsx +254 -0
  258. package/lowcode/data-source-typography/meta.ts +54 -0
  259. package/lowcode/data-source-typography.text/meta.ts +212 -0
  260. package/lowcode/data-source-typography.text/snippets.ts +12 -0
  261. package/lowcode/data-source-wrapper/meta.ts +243 -0
  262. package/lowcode/data-source-wrapper/snippets.ts +11 -0
  263. package/lowcode/data-source-wrapper/utils.ts +45 -0
  264. package/lowcode/form-item-color-picker/snippets.ts +1 -0
  265. package/lowcode/form-item-input/meta.ts +2 -1
  266. package/lowcode/form-item-input/snippets.ts +2 -1
  267. package/lowcode/form-item-input.email/meta.ts +284 -0
  268. package/lowcode/form-item-input.email/snippets.ts +35 -0
  269. package/lowcode/form-item-input.phone/meta.ts +295 -0
  270. package/lowcode/form-item-input.phone/snippets.ts +16 -0
  271. package/lowcode/form-item-input.text-area/meta.ts +243 -32
  272. package/lowcode/form-item-input.text-area/snippets.ts +2 -1
  273. package/lowcode/form-item-input.url/meta.ts +44 -20
  274. package/lowcode/form-item-input.url/snippets.ts +5 -5
  275. package/lowcode/table/snippets.ts +6 -0
  276. package/lowcode/test/meta.ts +1 -2
  277. package/package.json +2 -2
@@ -0,0 +1,162 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
10
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
15
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
16
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
+ import React, { useMemo, useEffect, useState } from 'react';
18
+ import { Form } from 'antd';
19
+ import { useMemoizedFn, useDebounceFn } from 'ahooks';
20
+ import { SearchOutlined } from '@ant-design/icons';
21
+ import Input from "../../fields/Input";
22
+ import useDataSource from "../../hooks/useDataSource";
23
+ import FilterButton from "../../../filter/components/FilterButton";
24
+ import { genFilterItems, genGetField, field2Cpt, getStoredFilterOrder, saveFilterOrder } from "./utils";
25
+ var defaultArr = [];
26
+ var Filter = function Filter(props) {
27
+ var componentId = props.componentId,
28
+ _props$items = props.items,
29
+ items = _props$items === void 0 ? defaultArr : _props$items,
30
+ _props$mode = props.mode,
31
+ mode = _props$mode === void 0 ? 'simple' : _props$mode,
32
+ _props$quickFilterMax = props.quickFilterMaxLength,
33
+ quickFilterMaxLength = _props$quickFilterMax === void 0 ? 3 : _props$quickFilterMax,
34
+ _props$sortButtonShow = props.sortButtonShow,
35
+ sortButtonShow = _props$sortButtonShow === void 0 ? false : _props$sortButtonShow,
36
+ handleValuesChange = props.handleValuesChange,
37
+ search = props.search,
38
+ filterBy = props.filterBy;
39
+ var _Form$useForm = Form.useForm(),
40
+ _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
41
+ form = _Form$useForm2[0];
42
+ var _useDataSource = useDataSource(),
43
+ dataSource = _useDataSource.dataSource;
44
+ var _useState = useState(function () {
45
+ var storedOrder = getStoredFilterOrder(componentId);
46
+ return storedOrder || {
47
+ quickFilter: [],
48
+ otherFilter: []
49
+ };
50
+ }),
51
+ _useState2 = _slicedToArray(_useState, 2),
52
+ list = _useState2[0],
53
+ setList = _useState2[1];
54
+ var filterList = useMemo(function () {
55
+ return items.filter(function (item) {
56
+ return !(item !== null && item !== void 0 && item.isHidden);
57
+ });
58
+ }, [items]);
59
+ var filterDom = useMemo(function () {
60
+ return genFilterItems(list.quickFilter, dataSource);
61
+ }, [list.quickFilter]);
62
+ useEffect(function () {
63
+ var storedOrder = getStoredFilterOrder(componentId);
64
+ if (!storedOrder) {
65
+ var newList = {
66
+ quickFilter: filterList.slice(0, quickFilterMaxLength),
67
+ otherFilter: filterList.slice(quickFilterMaxLength)
68
+ };
69
+ setList(newList);
70
+ saveFilterOrder(componentId, newList);
71
+ return;
72
+ }
73
+ var orderedItems = {
74
+ quickFilter: [],
75
+ otherFilter: []
76
+ };
77
+ var itemMap = new Map(filterList.map(function (item) {
78
+ return [item.name, item];
79
+ }));
80
+ storedOrder.quickFilter.forEach(function (stored) {
81
+ var item = itemMap.get(stored.name);
82
+ if (item) {
83
+ orderedItems.quickFilter.push(item);
84
+ itemMap.delete(stored.name);
85
+ }
86
+ });
87
+ storedOrder.otherFilter.forEach(function (stored) {
88
+ var item = itemMap.get(stored.name);
89
+ if (item) {
90
+ orderedItems.otherFilter.push(item);
91
+ itemMap.delete(stored.name);
92
+ }
93
+ });
94
+ var remainingItems = Array.from(itemMap.values());
95
+ remainingItems.forEach(function (item) {
96
+ if (orderedItems.quickFilter.length < quickFilterMaxLength) {
97
+ orderedItems.quickFilter.push(item);
98
+ } else {
99
+ orderedItems.otherFilter.push(item);
100
+ }
101
+ });
102
+ if (quickFilterMaxLength && orderedItems.quickFilter.length > quickFilterMaxLength) {
103
+ var _orderedItems$otherFi;
104
+ var overflow = orderedItems.quickFilter.splice(quickFilterMaxLength);
105
+ (_orderedItems$otherFi = orderedItems.otherFilter).unshift.apply(_orderedItems$otherFi, _toConsumableArray(overflow));
106
+ }
107
+ setList(orderedItems);
108
+ saveFilterOrder(componentId, orderedItems);
109
+ }, [filterList, quickFilterMaxLength, componentId]);
110
+ var onChange = function onChange(newVal) {
111
+ setList(newVal);
112
+ saveFilterOrder(componentId, newVal);
113
+ };
114
+ var renderItem = useMemoizedFn(function (item, otherProps) {
115
+ var getField = genGetField(dataSource);
116
+ var field = getField(item.name);
117
+ var cptDom = field2Cpt(field, item, _objectSpread({
118
+ labelCol: {
119
+ span: 24
120
+ },
121
+ style: function style(_style) {
122
+ return _objectSpread(_objectSpread({}, _style || {}), {}, {
123
+ width: '100%'
124
+ });
125
+ }
126
+ }, otherProps));
127
+ return cptDom;
128
+ });
129
+ var onValuesChange = useDebounceFn(function (changedFields, allFields) {
130
+ handleValuesChange(changedFields, allFields);
131
+ }, {
132
+ wait: 300
133
+ }).run;
134
+ var searchDom = useMemo(function () {
135
+ return search !== null && search !== void 0 && search.show ? /*#__PURE__*/React.createElement(Input, {
136
+ name: search.key || '_keywords',
137
+ placeholder: search.placeholder,
138
+ renderMode: "edit",
139
+ prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),
140
+ style: {
141
+ width: 200
142
+ }
143
+ }) : null;
144
+ }, [search]);
145
+ return /*#__PURE__*/React.createElement(Form, {
146
+ labelCol: {
147
+ span: 0
148
+ },
149
+ form: form,
150
+ size: "large",
151
+ layout: "inline",
152
+ className: "filter-form-wrapper",
153
+ onValuesChange: onValuesChange
154
+ }, searchDom, filterDom, /*#__PURE__*/React.createElement(FilterButton, {
155
+ value: list,
156
+ quickFilterMaxLength: quickFilterMaxLength,
157
+ formFiltersPrefix: '',
158
+ onChange: onChange,
159
+ renderItem: renderItem
160
+ }));
161
+ };
162
+ export default Filter;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { FilterItemProps } from '../../../filter/types';
3
+ import { DataSourceType, Field } from '../../provider/dataSource/DataSourceContext';
4
+ export declare const genGetField: (dataSource?: DataSourceType) => (key: string) => Field;
5
+ export declare const field2Cpt: (field: Field, item: any, otherProps?: any) => React.JSX.Element | null;
6
+ export declare const genFilterItems: (list: FilterItemProps[], dataSource?: DataSourceType) => (React.JSX.Element | null)[];
7
+ export declare const getStoredFilterOrder: (componentId: string) => any;
8
+ export declare const saveFilterOrder: (componentId: string, order: any) => void;
@@ -0,0 +1,135 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ import React from 'react';
9
+ import { isFunction } from '@pisell/utils';
10
+ import { formFieldMap } from "../../fields";
11
+ export var genGetField = function genGetField(dataSource) {
12
+ var _ref = dataSource || {},
13
+ _ref$fields = _ref.fields,
14
+ fields = _ref$fields === void 0 ? [] : _ref$fields;
15
+ var fieldMap = fields.reduce(function (acc, field) {
16
+ acc[field.name] = field;
17
+ return acc;
18
+ }, {});
19
+ return function (key) {
20
+ return fieldMap[key];
21
+ };
22
+ };
23
+ var fieldType2FilterMap = {
24
+ Checkbox: 'Select',
25
+ ColorPicker: 'Input',
26
+ DatePicker: 'DateRangePicker',
27
+ Input: 'Input',
28
+ Radio: 'Select',
29
+ Select: 'Select',
30
+ Percent: 'Percent',
31
+ InputNumber: 'Input',
32
+ 'Input.JSON': 'Input',
33
+ 'Input.URL': 'Input',
34
+ 'Input.Password': 'Input',
35
+ 'Radio.Group': 'Select',
36
+ 'Checkbox.Group': 'Select'
37
+ };
38
+ var getCptProps = function getCptProps(field, cptType, item) {
39
+ var _field$uiSchema, _field$uiSchema2, _field$uiSchema3, _field$uiSchema3$enum, _field$uiSchema6, _field$uiSchema8;
40
+ var props = (field === null || field === void 0 ? void 0 : (_field$uiSchema = field.uiSchema) === null || _field$uiSchema === void 0 ? void 0 : _field$uiSchema['x-component-props']) || {};
41
+ props.style = _objectSpread(_objectSpread({}, (props === null || props === void 0 ? void 0 : props.style) || {}), {}, {
42
+ width: '200px'
43
+ });
44
+ props.placeholder = item.label;
45
+ props.allowClear = true;
46
+ if (cptType === 'Select') {
47
+ props.mode = 'multiple';
48
+ }
49
+ if (['Select', 'Radio.Group', 'Checkbox.Group'].includes(field === null || field === void 0 ? void 0 : (_field$uiSchema2 = field.uiSchema) === null || _field$uiSchema2 === void 0 ? void 0 : _field$uiSchema2['x-component']) && ((field === null || field === void 0 ? void 0 : (_field$uiSchema3 = field.uiSchema) === null || _field$uiSchema3 === void 0 ? void 0 : (_field$uiSchema3$enum = _field$uiSchema3.enum) === null || _field$uiSchema3$enum === void 0 ? void 0 : _field$uiSchema3$enum.length) || 0) > 0) {
50
+ var _field$uiSchema4, _field$uiSchema5;
51
+ if (['Radio.Group', 'Checkbox.Group'].includes(field === null || field === void 0 ? void 0 : (_field$uiSchema4 = field.uiSchema) === null || _field$uiSchema4 === void 0 ? void 0 : _field$uiSchema4['x-component'])) {
52
+ props.direction = 'horizontal';
53
+ }
54
+ props.options = field === null || field === void 0 ? void 0 : (_field$uiSchema5 = field.uiSchema) === null || _field$uiSchema5 === void 0 ? void 0 : _field$uiSchema5.enum;
55
+ }
56
+ if ((field === null || field === void 0 ? void 0 : (_field$uiSchema6 = field.uiSchema) === null || _field$uiSchema6 === void 0 ? void 0 : _field$uiSchema6['x-component']) === 'ColorPicker') {
57
+ var _field$uiSchema7;
58
+ props.defaultValue = field === null || field === void 0 ? void 0 : (_field$uiSchema7 = field.uiSchema) === null || _field$uiSchema7 === void 0 ? void 0 : _field$uiSchema7.default;
59
+ }
60
+ if (cptType === 'DateRangePicker') {
61
+ props.style = _objectSpread(_objectSpread({}, (props === null || props === void 0 ? void 0 : props.style) || {}), {}, {
62
+ width: '240px'
63
+ });
64
+ }
65
+
66
+ // 勾选组件
67
+ if ((field === null || field === void 0 ? void 0 : (_field$uiSchema8 = field.uiSchema) === null || _field$uiSchema8 === void 0 ? void 0 : _field$uiSchema8['x-component']) === 'Checkbox' && cptType === 'Select') {
68
+ props.mode = undefined;
69
+ props.allowClear = true;
70
+ props.options = [{
71
+ label: '是',
72
+ value: true
73
+ }, {
74
+ label: '否',
75
+ value: false
76
+ }];
77
+ }
78
+ return props;
79
+ };
80
+ export var field2Cpt = function field2Cpt(field, item, otherProps) {
81
+ var isCustom = item.isCustom,
82
+ configType = item.type;
83
+ var _ref2 = field || {},
84
+ uiSchema = _ref2.uiSchema;
85
+ var _ref3 = uiSchema || {},
86
+ xComponent = _ref3['x-component'];
87
+ var cptType = fieldType2FilterMap[xComponent];
88
+ if (isCustom) {
89
+ cptType = configType;
90
+ }
91
+ var Cpt = formFieldMap[cptType];
92
+ if (!Cpt) {
93
+ return null;
94
+ }
95
+ var props = getCptProps(field, cptType, item);
96
+ var style = isFunction(otherProps === null || otherProps === void 0 ? void 0 : otherProps.style) ? otherProps === null || otherProps === void 0 ? void 0 : otherProps.style(props.style) : otherProps !== null && otherProps !== void 0 && otherProps.style ? _objectSpread(_objectSpread({}, props.style), otherProps === null || otherProps === void 0 ? void 0 : otherProps.style) : props.style;
97
+ return /*#__PURE__*/React.createElement(Cpt, _extends({}, props, {
98
+ label: item.label,
99
+ name: item.name || item.value
100
+ }, otherProps, {
101
+ style: style
102
+ }));
103
+ };
104
+ export var genFilterItems = function genFilterItems(list, dataSource) {
105
+ return list.map(function (item) {
106
+ if (!item) {
107
+ return null;
108
+ }
109
+ var name = item.name;
110
+ var getField = genGetField(dataSource);
111
+ var field = getField(name);
112
+ var cptDom = field2Cpt(field, item);
113
+ return cptDom;
114
+ });
115
+ };
116
+ var FILTER_STORAGE_KEY = 'filter-setting-';
117
+ var getStorageKey = function getStorageKey(componentId) {
118
+ return "".concat(FILTER_STORAGE_KEY).concat(componentId);
119
+ };
120
+ export var getStoredFilterOrder = function getStoredFilterOrder(componentId) {
121
+ try {
122
+ var stored = localStorage.getItem(getStorageKey(componentId));
123
+ return stored ? JSON.parse(stored) : null;
124
+ } catch (e) {
125
+ console.error('Failed to parse stored filter order:', e);
126
+ return null;
127
+ }
128
+ };
129
+ export var saveFilterOrder = function saveFilterOrder(componentId, order) {
130
+ try {
131
+ localStorage.setItem(getStorageKey(componentId), JSON.stringify(order));
132
+ } catch (e) {
133
+ console.error('Failed to save filter order:', e);
134
+ }
135
+ };
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  declare const useDataSourceKey: () => {
3
- dataSourceKey: string;
4
- dataSourceKeyRef: import("react").MutableRefObject<string>;
3
+ dataSourceKey: string | undefined;
4
+ dataSourceKeyRef: import("react").MutableRefObject<string | undefined>;
5
5
  };
6
6
  export default useDataSourceKey;
@@ -5,7 +5,7 @@ var useDataSourceKey = function useDataSourceKey() {
5
5
  var _useDataSource = useDataSource(),
6
6
  dataSource = _useDataSource.dataSource;
7
7
  var dataSourceKey = useMemo(function () {
8
- return isString(dataSource) ? dataSource : dataSource === null || dataSource === void 0 ? void 0 : dataSource.key;
8
+ return isString(dataSource) ? dataSource : (dataSource === null || dataSource === void 0 ? void 0 : dataSource.key) || (dataSource === null || dataSource === void 0 ? void 0 : dataSource.tableName);
9
9
  }, [dataSource]);
10
10
  var dataSourceKeyRef = useRef(dataSourceKey);
11
11
  dataSourceKeyRef.current = dataSourceKey;
@@ -1,5 +1,4 @@
1
- import { useEffect } from 'react';
2
-
1
+ import { useEffect, useRef } from 'react';
3
2
  // 设计模式下状态管理
4
3
  var useDesignMode = function useDesignMode(props, _ref) {
5
4
  var registerValueVariable = _ref.registerValueVariable,
@@ -8,46 +7,43 @@ var useDesignMode = function useDesignMode(props, _ref) {
8
7
  data = _ref.data;
9
8
  var __designMode = props.__designMode,
10
9
  componentId = props.componentId,
11
- showDetailButton = props.showDetailButton,
12
- showEditButton = props.showEditButton,
13
- showAddButton = props.showAddButton;
14
- useEffect(function () {
15
- if (__designMode === 'design') {
16
- if (showDetailButton) {
17
- var _data$data;
18
- openDrawer('detail');
19
- registerValueVariable === null || registerValueVariable === void 0 ? void 0 : registerValueVariable(componentId, {
20
- currentRecord: (data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data[0]) || null
21
- });
22
- } else {
23
- closeDrawer();
24
- }
25
- }
26
- }, [showDetailButton, __designMode]);
27
- useEffect(function () {
28
- if (__designMode === 'design') {
29
- if (showEditButton) {
30
- var _data$data2;
31
- openDrawer('edit');
32
- registerValueVariable === null || registerValueVariable === void 0 ? void 0 : registerValueVariable(componentId, {
33
- currentRecord: (data === null || data === void 0 ? void 0 : (_data$data2 = data.data) === null || _data$data2 === void 0 ? void 0 : _data$data2[0]) || null
34
- });
35
- } else {
36
- closeDrawer();
37
- }
38
- }
39
- }, [showEditButton, __designMode]);
10
+ operation = props.operation;
11
+ var _ref2 = operation || {},
12
+ items = _ref2.items;
13
+
14
+ // 存储上一次的items
15
+ var prevItemsRef = useRef([]);
40
16
  useEffect(function () {
41
- if (__designMode === 'design') {
42
- if (showAddButton) {
43
- openDrawer('add');
44
- registerValueVariable === null || registerValueVariable === void 0 ? void 0 : registerValueVariable(componentId, {
45
- currentRecord: null
17
+ var _prevItemsRef$current;
18
+ if (__designMode === 'design' && items !== null && items !== void 0 && items.length && (_prevItemsRef$current = prevItemsRef.current) !== null && _prevItemsRef$current !== void 0 && _prevItemsRef$current.length) {
19
+ // 找出变更的那一条记录
20
+ var changedItem = items.find(function (item) {
21
+ var prevItem = prevItemsRef.current.find(function (prev) {
22
+ return prev.key === item.key;
46
23
  });
47
- } else {
48
- closeDrawer();
24
+ if (!prevItem) return false;
25
+
26
+ // 对比actionType是否变更
27
+ if (item.actionType !== prevItem.actionType) {
28
+ return true;
29
+ }
30
+ return false;
31
+ });
32
+ if (changedItem) {
33
+ // 如果是view/edit/custom类型,则打开对应弹窗
34
+ if (['view', 'edit', 'custom'].includes(changedItem.actionType)) {
35
+ registerValueVariable === null || registerValueVariable === void 0 ? void 0 : registerValueVariable(componentId, {
36
+ currentRecord: (data === null || data === void 0 ? void 0 : data[0]) || null
37
+ });
38
+ openDrawer(changedItem);
39
+ } else {
40
+ closeDrawer();
41
+ }
49
42
  }
50
43
  }
51
- }, [showAddButton, __designMode]);
44
+
45
+ // 更新prevItemsRef
46
+ prevItemsRef.current = items;
47
+ }, [items, __designMode]);
52
48
  };
53
49
  export default useDesignMode;
@@ -1,10 +1,26 @@
1
1
  /// <reference types="react" />
2
- declare const useDrawerState: () => {
2
+ import { Drawer } from 'antd';
3
+ import { OperationItem } from '../type';
4
+ declare const useDrawerState: (operationContent?: {
5
+ [key: string]: import("react").ReactNode;
6
+ } | undefined) => {
3
7
  drawerVisible: boolean;
4
8
  setDrawerVisible: import("react").Dispatch<import("react").SetStateAction<boolean>>;
5
- drawerType: "add" | "edit" | "detail";
6
- setDrawerType: import("react").Dispatch<import("react").SetStateAction<"add" | "edit" | "detail">>;
7
- openDrawer: (type: 'detail' | 'edit' | 'add') => void;
9
+ openDrawer: (item: OperationItem) => void;
8
10
  closeDrawer: () => void;
11
+ drawerContent: import("react").ReactNode;
12
+ Container: typeof Drawer | (import("react").FC<import("antd").ModalProps> & import("antd/es/modal/confirm").ModalStaticFunctions & {
13
+ useModal: typeof import("antd/es/modal/useModal").default;
14
+ destroyAll: () => void;
15
+ config: typeof import("antd/es/modal/confirm").modalGlobalConfig;
16
+ _InternalPanelDoNotUseOrYouWillBeFired: import("react").FC<import("antd/es/modal/PurePanel").PurePanelProps>;
17
+ });
18
+ containerProps: {
19
+ width?: undefined;
20
+ title?: undefined;
21
+ } | {
22
+ width: number;
23
+ title: string;
24
+ };
9
25
  };
10
26
  export default useDrawerState;
@@ -4,32 +4,86 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
4
4
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
5
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
- import { useState } from 'react';
8
- var useDrawerState = function useDrawerState() {
7
+ import { Drawer, Modal } from 'antd';
8
+ import { useState, useMemo, useRef, useEffect } from 'react';
9
+ var sizeMap = {
10
+ small: 400,
11
+ middle: 600,
12
+ large: 800
13
+ };
14
+ var useDrawerState = function useDrawerState(operationContent) {
9
15
  // 抽屉是否显示
10
16
  var _useState = useState(false),
11
17
  _useState2 = _slicedToArray(_useState, 2),
12
18
  drawerVisible = _useState2[0],
13
19
  setDrawerVisible = _useState2[1];
14
- // 抽屉类型
15
- var _useState3 = useState('detail'),
20
+ var _useState3 = useState(null),
16
21
  _useState4 = _slicedToArray(_useState3, 2),
17
- drawerType = _useState4[0],
18
- setDrawerType = _useState4[1];
19
- var openDrawer = function openDrawer(type) {
22
+ item = _useState4[0],
23
+ setItem = _useState4[1];
24
+ var timerRef = useRef();
25
+
26
+ // 组件卸载时清除定时器
27
+ useEffect(function () {
28
+ return function () {
29
+ if (timerRef.current) {
30
+ clearTimeout(timerRef.current);
31
+ }
32
+ };
33
+ }, []);
34
+ var openDrawer = function openDrawer(item) {
35
+ // 如果存在未完成的定时器,先清除
36
+ if (timerRef.current) {
37
+ clearTimeout(timerRef.current);
38
+ }
20
39
  setDrawerVisible(true);
21
- setDrawerType(type);
40
+ setItem(item);
22
41
  };
23
42
  var closeDrawer = function closeDrawer() {
43
+ // 如果存在未完成的定时器,先清除
44
+ if (timerRef.current) {
45
+ clearTimeout(timerRef.current);
46
+ }
24
47
  setDrawerVisible(false);
48
+ // 等待动画完成后再清除item
49
+ timerRef.current = setTimeout(function () {
50
+ setItem(null);
51
+ timerRef.current = undefined;
52
+ }, 300);
25
53
  };
54
+
55
+ // 抽屉内容
56
+ var drawerContent = useMemo(function () {
57
+ if (item !== null && item !== void 0 && item.key && operationContent) {
58
+ return operationContent[item.key];
59
+ }
60
+ return null;
61
+ }, [item, operationContent]);
62
+
63
+ // 容器属性
64
+ var containerProps = useMemo(function () {
65
+ if (!item) {
66
+ return {};
67
+ }
68
+ return {
69
+ width: sizeMap[item === null || item === void 0 ? void 0 : item.openContentSize],
70
+ title: item === null || item === void 0 ? void 0 : item.openTitle
71
+ };
72
+ }, [item]);
73
+ var Container = useMemo(function () {
74
+ if ((item === null || item === void 0 ? void 0 : item.openMode) === 'drawer') {
75
+ return Drawer;
76
+ }
77
+ return Modal;
78
+ }, [item === null || item === void 0 ? void 0 : item.openMode]);
26
79
  return {
27
80
  drawerVisible: drawerVisible,
28
81
  setDrawerVisible: setDrawerVisible,
29
- drawerType: drawerType,
30
- setDrawerType: setDrawerType,
31
82
  openDrawer: openDrawer,
32
- closeDrawer: closeDrawer
83
+ closeDrawer: closeDrawer,
84
+ drawerContent: drawerContent,
85
+ Container: Container,
86
+ containerProps: containerProps
33
87
  };
34
88
  };
35
89
  export default useDrawerState;
@@ -1,3 +1,4 @@
1
+ import { Field } from '../../provider/dataSource/DataSourceContext';
1
2
  export declare type ListResult = {
2
3
  data: any[];
3
4
  count: number;
@@ -6,6 +7,7 @@ export declare type ListResult = {
6
7
  };
7
8
  export declare type UseFormatParams = {
8
9
  dataSourceKey: string;
10
+ fields: Field[];
9
11
  };
10
12
  export declare type FormatListResultParams = {
11
13
  list: any[];
@@ -20,7 +22,21 @@ export declare type FormatListResultParams = {
20
22
  pageSize: number;
21
23
  };
22
24
  };
23
- declare const useFormat: ({ dataSourceKey }: UseFormatParams) => {
25
+ export declare type FilterValue = {
26
+ [key: string]: any;
27
+ };
28
+ export declare type FilterOperator = '$includes' | '$dateAfter' | '$dateBefore' | '$eq' | '$in' | '$isTruly' | '$and';
29
+ export declare type SimpleFilterValue = {
30
+ [key in Exclude<FilterOperator, '$and'>]?: any;
31
+ };
32
+ export declare type AndFilterValue = {
33
+ $and: FilterCondition[];
34
+ };
35
+ export declare type FilterConditionValue = SimpleFilterValue | AndFilterValue;
36
+ export declare type FilterCondition = {
37
+ [key: string]: FilterConditionValue;
38
+ } | AndFilterValue;
39
+ declare const useFormat: ({ dataSourceKey, fields }: UseFormatParams) => {
24
40
  formatListResult: (res: FormatListResultParams) => ListResult;
25
41
  formatListParams: (params: any) => any;
26
42
  };