@flatbiz/antd 5.0.7 → 5.0.8

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 (68) hide show
  1. package/dist/ace-editor-groovy/index.js +1 -1
  2. package/dist/ace-editor-java/index.js +1 -1
  3. package/dist/ace-editor-json/index.js +1 -1
  4. package/dist/ace-editor-mysql/index.js +1 -1
  5. package/dist/ace-editor-xml/index.js +1 -1
  6. package/dist/cascader-wrapper/index.js +1 -1
  7. package/dist/{cascader-wrapper-B5QmidAE.js → cascader-wrapper-CP0t5mzj.js} +5 -7
  8. package/dist/cascader-wrapper-CP0t5mzj.js.map +1 -0
  9. package/dist/delete-node/index.d.ts +1 -1
  10. package/dist/delete-node/index.js +1 -1
  11. package/dist/{delete-node-CwCgmlIq.js → delete-node-D46iKrXs.js} +3 -2
  12. package/dist/delete-node-D46iKrXs.js.map +1 -0
  13. package/dist/{drag-vcg-f-hJ.js → drag-DlFkxuiV.js} +2 -2
  14. package/dist/{drag-vcg-f-hJ.js.map → drag-DlFkxuiV.js.map} +1 -1
  15. package/dist/drag-editable-card/index.d.ts +6 -3
  16. package/dist/drag-editable-card/index.js +3 -3
  17. package/dist/drag-editable-table/index.js +3 -3
  18. package/dist/editable-card/index.d.ts +6 -3
  19. package/dist/editable-card/index.js +2 -2
  20. package/dist/{editable-card-Od2SiaIS.js → editable-card-DnAbdTeK.js} +3 -3
  21. package/dist/editable-card-DnAbdTeK.js.map +1 -0
  22. package/dist/{editable-card-DzY1frTO.js → editable-card-ytLGYy34.js} +3 -3
  23. package/dist/{editable-card-DzY1frTO.js.map → editable-card-ytLGYy34.js.map} +1 -1
  24. package/dist/editable-table/index.js +2 -2
  25. package/dist/{editable-table-Buqnm-R4.js → editable-table-BPfDUuvW.js} +2 -2
  26. package/dist/{editable-table-Buqnm-R4.js.map → editable-table-BPfDUuvW.js.map} +1 -1
  27. package/dist/{editor-DGeXV6HI.js → editor-BLm68Fsh.js} +2 -2
  28. package/dist/editor-BLm68Fsh.js.map +1 -0
  29. package/dist/{editor-vd8Ma-L-.js → editor-BeZLWo-d.js} +2 -2
  30. package/dist/editor-BeZLWo-d.js.map +1 -0
  31. package/dist/{editor-GbFADdCF.js → editor-CGXUpHWU.js} +2 -2
  32. package/dist/editor-CGXUpHWU.js.map +1 -0
  33. package/dist/{editor-gjAI4coe.js → editor-CSMLoRvg.js} +2 -2
  34. package/dist/editor-CSMLoRvg.js.map +1 -0
  35. package/dist/{editor-BleaO8q3.js → editor-DqEz5h5B.js} +2 -2
  36. package/dist/editor-DqEz5h5B.js.map +1 -0
  37. package/dist/index.d.ts +33 -22
  38. package/dist/index.js +14 -14
  39. package/dist/local-loading/index.css +1 -1
  40. package/dist/local-loading/index.d.ts +24 -5
  41. package/dist/local-loading/index.js +103 -30
  42. package/dist/local-loading/index.js.map +1 -1
  43. package/dist/{tree-selector-wrapper-Jh2ePDFB.js → selector-Cu5lpe6Y.js} +105 -183
  44. package/dist/selector-Cu5lpe6Y.js.map +1 -0
  45. package/dist/selector-wrapper/index.d.ts +1 -1
  46. package/dist/selector-wrapper/index.js +1 -1
  47. package/dist/{selector-wrapper-Dg3x9l8X.js → selector-wrapper-V3JShYY_.js} +2 -2
  48. package/dist/selector-wrapper-V3JShYY_.js.map +1 -0
  49. package/dist/{split-J-KX-RO7.js → split-RLM37DOW.js} +2 -2
  50. package/dist/split-RLM37DOW.js.map +1 -0
  51. package/dist/split-wrapper/index.js +1 -1
  52. package/dist/styles/index.css +1 -1
  53. package/dist/styles/index.js.map +1 -1
  54. package/dist/tree-selector-wrapper/index.d.ts +1 -12
  55. package/dist/tree-selector-wrapper/index.js +2 -4
  56. package/dist/tree-selector-wrapper/index.js.map +1 -1
  57. package/package.json +3 -3
  58. package/dist/cascader-wrapper-B5QmidAE.js.map +0 -1
  59. package/dist/delete-node-CwCgmlIq.js.map +0 -1
  60. package/dist/editable-card-Od2SiaIS.js.map +0 -1
  61. package/dist/editor-BleaO8q3.js.map +0 -1
  62. package/dist/editor-DGeXV6HI.js.map +0 -1
  63. package/dist/editor-GbFADdCF.js.map +0 -1
  64. package/dist/editor-gjAI4coe.js.map +0 -1
  65. package/dist/editor-vd8Ma-L-.js.map +0 -1
  66. package/dist/selector-wrapper-Dg3x9l8X.js.map +0 -1
  67. package/dist/split-J-KX-RO7.js.map +0 -1
  68. package/dist/tree-selector-wrapper-Jh2ePDFB.js.map +0 -1
@@ -8,14 +8,14 @@ import { createCtx } from '@wove/react/create-ctx';
8
8
  import { a as _slicedToArray, b as _objectSpread2 } from '../_rollupPluginBabelHelpers-BYm17lo8.js';
9
9
  import { classNames } from '@dimjs/utils/class-names/class-names';
10
10
  import { isDeepEqual } from '@dimjs/lang/is-deep-equal';
11
- import { forwardRef, useState, useRef, useMemo, useImperativeHandle } from 'react';
11
+ import { hooks } from '@wove/react/hooks';
12
+ import { forwardRef, useState, useRef, useMemo, useImperativeHandle, Fragment } from 'react';
12
13
  import { Result, Button, Spin } from 'antd';
13
- import { toArray } from '@flatbiz/utils';
14
+ import { getValueOrDefault, toArray, isUndefinedOrNull } from '@flatbiz/utils';
14
15
  import { fbaHooks } from '../fba-hooks/index.js';
15
16
  import { jsx, jsxs } from 'react/jsx-runtime';
16
17
  import '@dimjs/lang/is-array';
17
18
  import '@dimjs/model';
18
- import '@wove/react/hooks';
19
19
  import '../use-responsive-point-Bp3D3lZT.js';
20
20
 
21
21
  var _createCtx = createCtx(),
@@ -31,13 +31,18 @@ var _createCtx = createCtx(),
31
31
  * 2. error显示效果
32
32
  * 3. 获取服务数据
33
33
  * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用
34
+ * 5. 通过 serviceConfig.requiredParamsKeys 设置服务调用必填字段
35
+ * 5. 通过 ref.onRequest 可主动发起服务调用
34
36
  * ```
35
37
  */
36
38
  var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
37
39
  var serviceConfig = props.serviceConfig,
38
40
  isAsync = props.isAsync,
39
41
  children = props.children,
40
- errorRender = props.errorRender;
42
+ errorRender = props.errorRender,
43
+ loadingSpinProps = props.loadingSpinProps,
44
+ textConfigs = props.textConfigs,
45
+ showRequiredError = props.showRequiredError;
41
46
  var _useState = useState('init'),
42
47
  _useState2 = _slicedToArray(_useState, 2),
43
48
  status = _useState2[0],
@@ -47,13 +52,17 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
47
52
  respData = _useState4[0],
48
53
  setRespData = _useState4[1];
49
54
  var loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;
50
- var rootRef = useRef(null);
51
- var _useState5 = useState(true),
55
+ var _useState5 = useState(false),
52
56
  _useState6 = _slicedToArray(_useState5, 2),
53
57
  loading = _useState6[0],
54
58
  setLoading = _useState6[1];
55
59
  var errorRef = useRef();
60
+ var hiddenRequiredErrorRenderRef = useRef(true);
56
61
  var prevParams = fbaHooks.usePrevious(serviceConfig.params);
62
+ var loadingSpinContent = getValueOrDefault(loadingSpinProps === null || loadingSpinProps === void 0 ? void 0 : loadingSpinProps.content, /*#__PURE__*/jsx("span", {}));
63
+ var loadingSpinBgColor = getValueOrDefault(loadingSpinProps === null || loadingSpinProps === void 0 ? void 0 : loadingSpinProps.bgColor, 'rgba(0,0,0,0.01)');
64
+ var loadingSpinTip = getValueOrDefault(loadingSpinProps === null || loadingSpinProps === void 0 ? void 0 : loadingSpinProps.tip, 'Loading');
65
+ var requiredErrorText = textConfigs === null || textConfigs === void 0 ? void 0 : textConfigs.requiredErrorText;
57
66
 
58
67
  // 用于直接发起接口调用,不能用于比较
59
68
  var serviceParams = useMemo(function () {
@@ -67,6 +76,28 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
67
76
  });
68
77
  return newParams;
69
78
  }, [serviceConfig]);
79
+
80
+ // 判断必要参数是否完整
81
+ var validateRequiredParamsComplete = hooks.useCallbackRef(function (params) {
82
+ var keys = serviceConfig === null || serviceConfig === void 0 ? void 0 : serviceConfig.requiredParamsKeys;
83
+ if (keys !== null && keys !== void 0 && keys.length) {
84
+ var target = keys.find(function (item) {
85
+ return isUndefinedOrNull(params === null || params === void 0 ? void 0 : params[item]);
86
+ });
87
+ if (target) {
88
+ return {
89
+ complete: false,
90
+ message: requiredErrorText || "LocalLoading\u6E32\u67D3\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570\uFF1A".concat(keys.join('、'))
91
+ };
92
+ }
93
+ }
94
+ return {
95
+ complete: true
96
+ };
97
+ });
98
+ var completeResult = useMemo(function () {
99
+ return validateRequiredParamsComplete(serviceConfig.params);
100
+ }, [validateRequiredParamsComplete, serviceConfig.params]);
70
101
  var onInitRequest = function onInitRequest(params) {
71
102
  return new Promise(function ($return, $error) {
72
103
  var $Try_1_Finally = function ($Try_1_Exit) {
@@ -79,7 +110,7 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
79
110
  }
80
111
  }.bind(this);
81
112
  }.bind(this);
82
- var _respData;
113
+ var mergeProps, _respData;
83
114
  var $Try_1_Post = function () {
84
115
  try {
85
116
  return $return();
@@ -92,18 +123,21 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
92
123
  console.error(error);
93
124
  setStatus('error');
94
125
  errorRef.current = error.message;
126
+ hiddenRequiredErrorRenderRef.current = false;
95
127
  return $Try_1_Finally($Try_1_Post)();
96
128
  } catch ($boundEx) {
97
129
  return $Try_1_Finally($error)($boundEx);
98
130
  }
99
131
  };
100
132
  try {
133
+ mergeProps = _objectSpread2(_objectSpread2({}, serviceParams), params);
101
134
  setLoading(true);
102
- return Promise.resolve(serviceConfig.onRequest(_objectSpread2(_objectSpread2({}, serviceParams), params))).then(function ($await_2) {
135
+ return Promise.resolve(serviceConfig.onRequest(mergeProps)).then(function ($await_3) {
103
136
  try {
104
- _respData = $await_2;
137
+ _respData = $await_3;
105
138
  setStatus('success');
106
139
  setRespData(_respData);
140
+ hiddenRequiredErrorRenderRef.current = false;
107
141
  return $Try_1_Finally($Try_1_Post)();
108
142
  } catch ($boundEx) {
109
143
  return $Try_1_Catch($boundEx);
@@ -114,11 +148,32 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
114
148
  }
115
149
  });
116
150
  };
117
- fbaHooks.useEffectCustomAsync(onInitRequest, []);
151
+ fbaHooks.useEffectCustomAsync(function () {
152
+ return new Promise(function ($return, $error) {
153
+ if (completeResult.complete) {
154
+ return Promise.resolve(onInitRequest()).then(function ($await_4) {
155
+ try {
156
+ return $If_2.call(this);
157
+ } catch ($boundEx) {
158
+ return $error($boundEx);
159
+ }
160
+ }.bind(this), $error);
161
+ }
162
+ function $If_2() {
163
+ return $return();
164
+ }
165
+ return $If_2.call(this);
166
+ });
167
+ }, []);
118
168
  fbaHooks.useEffectCustom(function () {
119
- if (prevParams) {
120
- if (!isDeepEqual(serviceConfig.params, prevParams)) {
121
- void onInitRequest();
169
+ if (completeResult.complete) {
170
+ if (prevParams) {
171
+ if (!isDeepEqual(serviceConfig.params, prevParams)) {
172
+ if (status === 'error') {
173
+ setStatus('init');
174
+ }
175
+ void onInitRequest();
176
+ }
122
177
  }
123
178
  }
124
179
  }, [prevParams, serviceConfig.params]);
@@ -127,6 +182,25 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
127
182
  onRefresh: onInitRequest
128
183
  };
129
184
  });
185
+ if (!completeResult.complete) {
186
+ if (hiddenRequiredErrorRenderRef.current || !showRequiredError) {
187
+ return /*#__PURE__*/jsx(Fragment, {});
188
+ }
189
+ return /*#__PURE__*/jsx(LocalLoadingCtxProvider, {
190
+ value: {
191
+ onRequest: onInitRequest
192
+ },
193
+ children: /*#__PURE__*/jsxs("div", {
194
+ className: classNames('local-loading-error', props.className),
195
+ children: [/*#__PURE__*/jsx("div", {
196
+ className: "local-loading-area"
197
+ }), /*#__PURE__*/jsx(Result, {
198
+ status: "error",
199
+ subTitle: completeResult.message
200
+ })]
201
+ })
202
+ });
203
+ }
130
204
  if (status === 'error') {
131
205
  if (errorRender) {
132
206
  return errorRender({
@@ -140,8 +214,7 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
140
214
  children: /*#__PURE__*/jsxs("div", {
141
215
  className: classNames('local-loading-error', props.className),
142
216
  children: [/*#__PURE__*/jsx("div", {
143
- className: "local-loading-area",
144
- ref: rootRef
217
+ className: "local-loading-area"
145
218
  }), /*#__PURE__*/jsx(Result, {
146
219
  status: "error",
147
220
  subTitle: errorRef.current || '数据处理异常',
@@ -171,14 +244,13 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
171
244
  },
172
245
  children: /*#__PURE__*/jsx(Spin, {
173
246
  spinning: loading,
247
+ tip: loadingSpinTip,
248
+ wrapperClassName: "local-loading-spin-wrapper",
249
+ className: "local-loading-spin",
174
250
  style: {
175
- display: 'flex',
176
- alignItems: 'center',
177
- justifyContent: 'center',
178
- position: 'absolute',
179
- height: '100%',
180
- width: '100%'
181
- }
251
+ '--local-loading-spin-bgColor': loadingSpinBgColor
252
+ },
253
+ children: loadingSpinContent
182
254
  })
183
255
  });
184
256
  }
@@ -190,15 +262,14 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
190
262
  className: classNames('fba-local-loading', props.className),
191
263
  style: props.style,
192
264
  children: [loading ? /*#__PURE__*/jsx(Spin, {
193
- spinning: true,
265
+ spinning: loading,
266
+ tip: loadingSpinTip,
267
+ wrapperClassName: "local-loading-spin-wrapper",
268
+ className: "local-loading-spin",
194
269
  style: {
195
- display: 'flex',
196
- alignItems: 'center',
197
- justifyContent: 'center',
198
- position: 'absolute',
199
- height: '100%',
200
- width: '100%'
201
- }
270
+ '--local-loading-spin-bgColor': loadingSpinBgColor
271
+ },
272
+ children: loadingSpinContent
202
273
  }) : null, /*#__PURE__*/jsx("div", {
203
274
  className: "local-loading-content",
204
275
  style: props.contentStyle,
@@ -216,6 +287,8 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
216
287
  * 2. error显示效果
217
288
  * 3. 获取服务数据
218
289
  * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用
290
+ * 5. 通过 serviceConfig.requiredParamsKeys 设置服务调用必填字段
291
+ * 5. 通过 ref.onRequest 可主动发起服务调用
219
292
  * ```
220
293
  */
221
294
  var LocalLoading = fbaUtils.attachPropertiesToComponent(LocalLoadingInner, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/context.ts","@flatbiz/antd/src/local-loading/local-loading.tsx","@flatbiz/antd/src/local-loading/index.ts"],"sourcesContent":["import type { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useLocalLoadingCtx, LocalLoadingCtxProvider] = createCtx<{\n onRequest: (params?: TPlainObject) => void;\n}>();\n","import type { CSSProperties, ReactElement } from 'react';\nimport {\n forwardRef,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Button, Result, Spin } from 'antd';\nimport { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { toArray } from '@flatbiz/utils';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { LocalLoadingCtxProvider } from './context.js';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TAny>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number | string;\n className?: string;\n style?: CSSProperties;\n contentStyle?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: (params?: TPlainObject) => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoadingInner = forwardRef<\n LocalLoadingRefApi,\n LocalLoadingProps\n>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight =\n props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const [loading, setLoading] = useState<boolean>(true);\n const errorRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (\n !serviceConfig.params ||\n toArray(serviceConfig.invalidParamKey).length === 0\n ) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n const onInitRequest = async (params?: TPlainObject) => {\n try {\n setLoading(true);\n const respData = await serviceConfig.onRequest({\n ...serviceParams,\n ...params,\n });\n setStatus('success');\n setRespData(respData);\n } catch (error: TAny) {\n console.error(error);\n setStatus('error');\n errorRef.current = error.message;\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInitRequest();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n useImperativeHandle(ref, () => {\n return { onRefresh: onInitRequest };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender({ message: errorRef.current });\n }\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={classNames('local-loading-error', props.className)}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n size=\"small\"\n onClick={() => {\n setStatus('init');\n void onInitRequest();\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n </LocalLoadingCtxProvider>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className={classNames('fba-local-loading-process', props.className)}\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: 'var(--block-bg-color)',\n }}\n >\n <Spin\n spinning={loading}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n height: '100%',\n width: '100%',\n }}\n />\n </div>\n );\n }\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div\n className={classNames('fba-local-loading', props.className)}\n style={props.style}\n >\n {loading ? (\n <Spin\n spinning={true}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n height: '100%',\n width: '100%',\n }}\n />\n ) : null}\n <div className=\"local-loading-content\" style={props.contentStyle}>\n {children(respData)}\n </div>\n </div>\n </LocalLoadingCtxProvider>\n );\n});\n","import type { TPlainObject } from '@flatbiz/utils';\nimport { fbaUtils } from '../fba-utils/fba-utils.js';\nimport { useLocalLoadingCtx } from './context.js';\nimport { LocalLoadingInner } from './local-loading.jsx';\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoading = fbaUtils.attachPropertiesToComponent(\n LocalLoadingInner,\n {\n useLocalLoading: () => {\n const ctx = useLocalLoadingCtx();\n return {\n onRequest: (params?: TPlainObject) => {\n ctx.onRequest(params);\n },\n };\n },\n }\n);\n"],"names":["_createCtx","_createCtx3","_createCtx2","_slicedToArray","useLocalLoadingCtx","LocalLoadingCtxProvider","LocalLoadingInner","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","_useState2","status","setStatus","_useState3","_useState4","respData","setRespData","loadingHeight","undefined","rootRef","useRef","_useState5","_useState6","loading","setLoading","errorRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_objectSpread","forEach","key","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","console","current","message","resolve","onRequest","then","$await_2","useEffectCustomAsync","useEffectCustom","_isDeepEqual","useImperativeHandle","onRefresh","_jsx","value","_jsxs","className","_classNames","Result","subTitle","extra","Button","type","ghost","size","onClick","style","height","display","justifyContent","position","backgroundColor","Spin","spinning","alignItems","width","contentStyle","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/context.ts","@flatbiz/antd/src/local-loading/local-loading.tsx","@flatbiz/antd/src/local-loading/index.ts"],"sourcesContent":["import type { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useLocalLoadingCtx, LocalLoadingCtxProvider] = createCtx<{\n onRequest: (params?: TPlainObject) => void;\n}>();\n","import type { CSSProperties, ReactElement } from 'react';\nimport {\n forwardRef,\n Fragment,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Button, Result, Spin } from 'antd';\nimport { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { getValueOrDefault, isUndefinedOrNull, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { LocalLoadingCtxProvider } from './context.js';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TAny>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n /** 必填字段设置 */\n requiredParamsKeys?: string[];\n};\n\nexport interface LocalLoadingProps {\n className?: string;\n style?: CSSProperties;\n contentStyle?: CSSProperties;\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number | string;\n /** loading spin 属性设置 */\n loadingSpinProps?: {\n /** loading tip,默认值:Loading */\n tip?: string;\n /** loading 内容 */\n content?: ReactElement;\n /** 背景色,默认值:rgba(0,0,0,0.01) */\n bgColor?: string;\n };\n textConfigs?: {\n /** 必填异常文本 */\n requiredErrorText?: string;\n };\n /** 是否显示必填异常 */\n showRequiredError?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: (params?: TPlainObject) => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * 5. 通过 serviceConfig.requiredParamsKeys 设置服务调用必填字段\n * 5. 通过 ref.onRequest 可主动发起服务调用\n * ```\n */\nexport const LocalLoadingInner = forwardRef<\n LocalLoadingRefApi,\n LocalLoadingProps\n>((props, ref) => {\n const {\n serviceConfig,\n isAsync,\n children,\n errorRender,\n loadingSpinProps,\n textConfigs,\n showRequiredError,\n } = props;\n const [status, setStatus] = useState<\n 'success' | 'error' | 'required_error' | 'init'\n >('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight =\n props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const [loading, setLoading] = useState<boolean>(false);\n const errorRef = useRef<string>();\n const hiddenRequiredErrorRenderRef = useRef(true);\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\n\n const loadingSpinContent = getValueOrDefault(\n loadingSpinProps?.content,\n <span />\n );\n const loadingSpinBgColor = getValueOrDefault(\n loadingSpinProps?.bgColor,\n 'rgba(0,0,0,0.01)'\n );\n const loadingSpinTip = getValueOrDefault(loadingSpinProps?.tip, 'Loading');\n\n const requiredErrorText = textConfigs?.requiredErrorText;\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (\n !serviceConfig.params ||\n toArray(serviceConfig.invalidParamKey).length === 0\n ) {\n return serviceConfig.params;\n }\n const newParams = { ...serviceConfig.params };\n serviceConfig.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig]);\n\n // 判断必要参数是否完整\n const validateRequiredParamsComplete = hooks.useCallbackRef(\n (params?: TPlainObject) => {\n const keys = serviceConfig?.requiredParamsKeys;\n if (keys?.length) {\n const target = keys.find((item) => {\n return isUndefinedOrNull(params?.[item]);\n });\n if (target) {\n return {\n complete: false,\n message:\n requiredErrorText ||\n `LocalLoading渲染缺少必填参数:${keys.join('、')}`,\n };\n }\n }\n return { complete: true };\n }\n );\n\n const completeResult = useMemo(() => {\n return validateRequiredParamsComplete(serviceConfig.params);\n }, [validateRequiredParamsComplete, serviceConfig.params]);\n\n const onInitRequest = async (params?: TPlainObject) => {\n try {\n const mergeProps = { ...serviceParams, ...params };\n setLoading(true);\n const respData = await serviceConfig.onRequest(mergeProps);\n setStatus('success');\n setRespData(respData);\n hiddenRequiredErrorRenderRef.current = false;\n } catch (error: TAny) {\n console.error(error);\n setStatus('error');\n errorRef.current = error.message;\n hiddenRequiredErrorRenderRef.current = false;\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(async () => {\n if (completeResult.complete) {\n await onInitRequest();\n }\n }, []);\n\n fbaHooks.useEffectCustom(() => {\n if (completeResult.complete) {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n if (status === 'error') {\n setStatus('init');\n }\n void onInitRequest();\n }\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n useImperativeHandle(ref, () => {\n return { onRefresh: onInitRequest };\n });\n\n if (!completeResult.complete) {\n if (hiddenRequiredErrorRenderRef.current || !showRequiredError) {\n return <Fragment />;\n }\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={classNames('local-loading-error', props.className)}>\n <div className=\"local-loading-area\"></div>\n <Result status=\"error\" subTitle={completeResult.message} />\n </div>\n </LocalLoadingCtxProvider>\n );\n }\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender({ message: errorRef.current });\n }\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={classNames('local-loading-error', props.className)}>\n <div className=\"local-loading-area\"></div>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n size=\"small\"\n onClick={() => {\n setStatus('init');\n void onInitRequest();\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n </LocalLoadingCtxProvider>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className={classNames('fba-local-loading-process', props.className)}\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: 'var(--block-bg-color)',\n }}\n >\n <Spin\n spinning={loading}\n tip={loadingSpinTip}\n wrapperClassName=\"local-loading-spin-wrapper\"\n className=\"local-loading-spin\"\n style={\n {\n '--local-loading-spin-bgColor': loadingSpinBgColor,\n } as CSSProperties\n }\n >\n {loadingSpinContent}\n </Spin>\n </div>\n );\n }\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div\n className={classNames('fba-local-loading', props.className)}\n style={props.style}\n >\n {loading ? (\n <Spin\n spinning={loading}\n tip={loadingSpinTip}\n wrapperClassName=\"local-loading-spin-wrapper\"\n className=\"local-loading-spin\"\n style={\n {\n '--local-loading-spin-bgColor': loadingSpinBgColor,\n } as CSSProperties\n }\n >\n {loadingSpinContent}\n </Spin>\n ) : null}\n <div className=\"local-loading-content\" style={props.contentStyle}>\n {children(respData)}\n </div>\n </div>\n </LocalLoadingCtxProvider>\n );\n});\n","import type { TPlainObject } from '@flatbiz/utils';\nimport { fbaUtils } from '../fba-utils/fba-utils.js';\nimport { useLocalLoadingCtx } from './context.js';\nimport { LocalLoadingInner } from './local-loading.jsx';\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * 5. 通过 serviceConfig.requiredParamsKeys 设置服务调用必填字段\n * 5. 通过 ref.onRequest 可主动发起服务调用\n * ```\n */\nexport const LocalLoading = fbaUtils.attachPropertiesToComponent(\n LocalLoadingInner,\n {\n useLocalLoading: () => {\n const ctx = useLocalLoadingCtx();\n return {\n onRequest: (params?: TPlainObject) => {\n ctx.onRequest(params);\n },\n };\n },\n }\n);\n"],"names":["_createCtx","_createCtx3","_createCtx2","_slicedToArray","useLocalLoadingCtx","LocalLoadingCtxProvider","LocalLoadingInner","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","loadingSpinProps","textConfigs","showRequiredError","_useState","useState","_useState2","status","setStatus","_useState3","_useState4","respData","setRespData","loadingHeight","undefined","_useState5","_useState6","loading","setLoading","errorRef","useRef","hiddenRequiredErrorRenderRef","prevParams","fbaHooks","usePrevious","params","loadingSpinContent","getValueOrDefault","content","_jsx","loadingSpinBgColor","bgColor","loadingSpinTip","tip","requiredErrorText","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_objectSpread","forEach","key","validateRequiredParamsComplete","_hooks","useCallbackRef","keys","requiredParamsKeys","target","find","item","isUndefinedOrNull","complete","message","concat","join","completeResult","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","$boundEx","bind","mergeProps","_respData","$Try_1_Post","$Try_1_Catch","error","console","current","resolve","onRequest","then","$await_3","useEffectCustomAsync","$await_4","$If_2","useEffectCustom","_isDeepEqual","useImperativeHandle","onRefresh","Fragment","value","_jsxs","className","_classNames","Result","subTitle","extra","Button","type","ghost","size","onClick","style","height","display","justifyContent","position","backgroundColor","Spin","spinning","wrapperClassName","contentStyle","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":"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"}