@flatbiz/antd 5.0.7 → 5.0.9
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.
- package/dist/ace-editor-groovy/index.js +1 -1
- package/dist/ace-editor-java/index.js +1 -1
- package/dist/ace-editor-json/index.js +1 -1
- package/dist/ace-editor-mysql/index.js +1 -1
- package/dist/ace-editor-xml/index.js +1 -1
- package/dist/cascader-wrapper/index.js +1 -1
- package/dist/{cascader-wrapper-B5QmidAE.js → cascader-wrapper-CP0t5mzj.js} +5 -7
- package/dist/cascader-wrapper-CP0t5mzj.js.map +1 -0
- package/dist/date-range-picker-wrapper/index.d.ts +0 -1
- package/dist/date-range-picker-wrapper/index.js +1 -1
- package/dist/{date-range-picker-wrapper-D6pXT4H_.js → date-range-picker-wrapper-COuR09V1.js} +1 -2
- package/dist/date-range-picker-wrapper-COuR09V1.js.map +1 -0
- package/dist/date-range-picker-wrapper-form-item/index.js +2 -2
- package/dist/{date-range-picker-wrapper-form-item-CjZ6DZNC.js → date-range-picker-wrapper-form-item-yGdEOym_.js} +2 -2
- package/dist/{date-range-picker-wrapper-form-item-CjZ6DZNC.js.map → date-range-picker-wrapper-form-item-yGdEOym_.js.map} +1 -1
- package/dist/delete-node/index.d.ts +1 -1
- package/dist/delete-node/index.js +1 -1
- package/dist/{delete-node-CwCgmlIq.js → delete-node-D46iKrXs.js} +3 -2
- package/dist/delete-node-D46iKrXs.js.map +1 -0
- package/dist/drag-editable-card/index.d.ts +6 -3
- package/dist/drag-editable-card/index.js +3 -3
- package/dist/drag-editable-table/index.js +4 -4
- package/dist/{drag-vcg-f-hJ.js → drag-wKE3SS7f.js} +2 -2
- package/dist/{drag-vcg-f-hJ.js.map → drag-wKE3SS7f.js.map} +1 -1
- package/dist/editable-card/index.d.ts +6 -3
- package/dist/editable-card/index.js +2 -2
- package/dist/{editable-card-Od2SiaIS.js → editable-card-DnAbdTeK.js} +3 -3
- package/dist/editable-card-DnAbdTeK.js.map +1 -0
- package/dist/{editable-card-DzY1frTO.js → editable-card-ytLGYy34.js} +3 -3
- package/dist/{editable-card-DzY1frTO.js.map → editable-card-ytLGYy34.js.map} +1 -1
- package/dist/editable-table/index.js +3 -3
- package/dist/{editable-table-Buqnm-R4.js → editable-table-BtLZwkz_.js} +3 -3
- package/dist/{editable-table-Buqnm-R4.js.map → editable-table-BtLZwkz_.js.map} +1 -1
- package/dist/{editor-DGeXV6HI.js → editor-BLm68Fsh.js} +2 -2
- package/dist/editor-BLm68Fsh.js.map +1 -0
- package/dist/{editor-vd8Ma-L-.js → editor-BeZLWo-d.js} +2 -2
- package/dist/editor-BeZLWo-d.js.map +1 -0
- package/dist/{editor-GbFADdCF.js → editor-CGXUpHWU.js} +2 -2
- package/dist/editor-CGXUpHWU.js.map +1 -0
- package/dist/{editor-gjAI4coe.js → editor-CSMLoRvg.js} +2 -2
- package/dist/editor-CSMLoRvg.js.map +1 -0
- package/dist/{editor-BleaO8q3.js → editor-DqEz5h5B.js} +2 -2
- package/dist/editor-DqEz5h5B.js.map +1 -0
- package/dist/index.d.ts +53 -28
- package/dist/index.js +19 -17
- package/dist/index.js.map +1 -1
- package/dist/local-loading/index.css +1 -1
- package/dist/local-loading/index.d.ts +29 -9
- package/dist/local-loading/index.js +113 -38
- package/dist/local-loading/index.js.map +1 -1
- package/dist/pdf-preview/index.d.ts +1 -1
- package/dist/pdf-preview/index.js +1 -1
- package/dist/pdf-preview2/index.css +0 -0
- package/dist/pdf-preview2/index.d.ts +16 -0
- package/dist/pdf-preview2/index.js +7 -0
- package/dist/pdf-preview2/index.js.map +1 -0
- package/dist/preview-Blwn4lHG.js +31 -0
- package/dist/preview-Blwn4lHG.js.map +1 -0
- package/dist/{preview-X-v3rzTa.js → preview-ChAgzijh.js} +2 -2
- package/dist/preview-ChAgzijh.js.map +1 -0
- package/dist/{tree-selector-wrapper-Jh2ePDFB.js → selector-Cu5lpe6Y.js} +105 -183
- package/dist/selector-Cu5lpe6Y.js.map +1 -0
- package/dist/selector-wrapper/index.d.ts +1 -1
- package/dist/selector-wrapper/index.js +1 -1
- package/dist/{selector-wrapper-Dg3x9l8X.js → selector-wrapper-V3JShYY_.js} +2 -2
- package/dist/selector-wrapper-V3JShYY_.js.map +1 -0
- package/dist/{split-J-KX-RO7.js → split-RLM37DOW.js} +2 -2
- package/dist/split-RLM37DOW.js.map +1 -0
- package/dist/split-wrapper/index.js +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/index.js.map +1 -1
- package/dist/tree-selector-wrapper/index.d.ts +1 -12
- package/dist/tree-selector-wrapper/index.js +2 -4
- package/dist/tree-selector-wrapper/index.js.map +1 -1
- package/package.json +7 -3
- package/dist/cascader-wrapper-B5QmidAE.js.map +0 -1
- package/dist/date-range-picker-wrapper-D6pXT4H_.js.map +0 -1
- package/dist/delete-node-CwCgmlIq.js.map +0 -1
- package/dist/editable-card-Od2SiaIS.js.map +0 -1
- package/dist/editor-BleaO8q3.js.map +0 -1
- package/dist/editor-DGeXV6HI.js.map +0 -1
- package/dist/editor-GbFADdCF.js.map +0 -1
- package/dist/editor-gjAI4coe.js.map +0 -1
- package/dist/editor-vd8Ma-L-.js.map +0 -1
- package/dist/preview-X-v3rzTa.js.map +0 -1
- package/dist/selector-wrapper-Dg3x9l8X.js.map +0 -1
- package/dist/split-J-KX-RO7.js.map +0 -1
- 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 {
|
|
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(),
|
|
@@ -27,17 +27,23 @@ var _createCtx = createCtx(),
|
|
|
27
27
|
* 局部加载,包含接口数据处理逻辑
|
|
28
28
|
* ```
|
|
29
29
|
* 包括
|
|
30
|
-
* 1. loading
|
|
31
|
-
* 2.
|
|
32
|
-
* 3.
|
|
33
|
-
* 4.
|
|
30
|
+
* 1. loading显示效果、error显示效果、获取服务数据
|
|
31
|
+
* 2. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用
|
|
32
|
+
* 3. 通过 serviceConfig.requiredParamsKeys 设置服务调用必填字段
|
|
33
|
+
* 4. 通过 ref.onRequest 可主动发起服务调用
|
|
34
|
+
* 5. 子组件通过下面方式主动发起服务调用
|
|
35
|
+
* const localLoadingApi = LocalLoading.useLocalLoading();
|
|
36
|
+
* localLoadingApi.onRequest();
|
|
34
37
|
* ```
|
|
35
38
|
*/
|
|
36
39
|
var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
37
40
|
var serviceConfig = props.serviceConfig,
|
|
38
41
|
isAsync = props.isAsync,
|
|
39
42
|
children = props.children,
|
|
40
|
-
errorRender = props.errorRender
|
|
43
|
+
errorRender = props.errorRender,
|
|
44
|
+
loadingSpinProps = props.loadingSpinProps,
|
|
45
|
+
textConfigs = props.textConfigs,
|
|
46
|
+
showRequiredError = props.showRequiredError;
|
|
41
47
|
var _useState = useState('init'),
|
|
42
48
|
_useState2 = _slicedToArray(_useState, 2),
|
|
43
49
|
status = _useState2[0],
|
|
@@ -47,13 +53,17 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
47
53
|
respData = _useState4[0],
|
|
48
54
|
setRespData = _useState4[1];
|
|
49
55
|
var loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;
|
|
50
|
-
var
|
|
51
|
-
var _useState5 = useState(true),
|
|
56
|
+
var _useState5 = useState(false),
|
|
52
57
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
53
58
|
loading = _useState6[0],
|
|
54
59
|
setLoading = _useState6[1];
|
|
55
60
|
var errorRef = useRef();
|
|
61
|
+
var hiddenRequiredErrorRenderRef = useRef(true);
|
|
56
62
|
var prevParams = fbaHooks.usePrevious(serviceConfig.params);
|
|
63
|
+
var loadingSpinContent = getValueOrDefault(loadingSpinProps === null || loadingSpinProps === void 0 ? void 0 : loadingSpinProps.content, /*#__PURE__*/jsx("span", {}));
|
|
64
|
+
var loadingSpinBgColor = getValueOrDefault(loadingSpinProps === null || loadingSpinProps === void 0 ? void 0 : loadingSpinProps.bgColor, 'rgba(0,0,0,0.01)');
|
|
65
|
+
var loadingSpinTip = getValueOrDefault(loadingSpinProps === null || loadingSpinProps === void 0 ? void 0 : loadingSpinProps.tip, 'Loading');
|
|
66
|
+
var requiredErrorText = textConfigs === null || textConfigs === void 0 ? void 0 : textConfigs.requiredErrorText;
|
|
57
67
|
|
|
58
68
|
// 用于直接发起接口调用,不能用于比较
|
|
59
69
|
var serviceParams = useMemo(function () {
|
|
@@ -67,6 +77,28 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
67
77
|
});
|
|
68
78
|
return newParams;
|
|
69
79
|
}, [serviceConfig]);
|
|
80
|
+
|
|
81
|
+
// 判断必要参数是否完整
|
|
82
|
+
var validateRequiredParamsComplete = hooks.useCallbackRef(function (params) {
|
|
83
|
+
var keys = serviceConfig === null || serviceConfig === void 0 ? void 0 : serviceConfig.requiredParamsKeys;
|
|
84
|
+
if (keys !== null && keys !== void 0 && keys.length) {
|
|
85
|
+
var target = keys.find(function (item) {
|
|
86
|
+
return isUndefinedOrNull(params === null || params === void 0 ? void 0 : params[item]);
|
|
87
|
+
});
|
|
88
|
+
if (target) {
|
|
89
|
+
return {
|
|
90
|
+
complete: false,
|
|
91
|
+
message: requiredErrorText || "LocalLoading\u6E32\u67D3\u7F3A\u5C11\u5FC5\u586B\u53C2\u6570\uFF1A".concat(keys.join('、'))
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
complete: true
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
var completeResult = useMemo(function () {
|
|
100
|
+
return validateRequiredParamsComplete(serviceConfig.params);
|
|
101
|
+
}, [validateRequiredParamsComplete, serviceConfig.params]);
|
|
70
102
|
var onInitRequest = function onInitRequest(params) {
|
|
71
103
|
return new Promise(function ($return, $error) {
|
|
72
104
|
var $Try_1_Finally = function ($Try_1_Exit) {
|
|
@@ -79,7 +111,7 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
79
111
|
}
|
|
80
112
|
}.bind(this);
|
|
81
113
|
}.bind(this);
|
|
82
|
-
var _respData;
|
|
114
|
+
var mergeProps, _respData;
|
|
83
115
|
var $Try_1_Post = function () {
|
|
84
116
|
try {
|
|
85
117
|
return $return();
|
|
@@ -92,18 +124,21 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
92
124
|
console.error(error);
|
|
93
125
|
setStatus('error');
|
|
94
126
|
errorRef.current = error.message;
|
|
127
|
+
hiddenRequiredErrorRenderRef.current = false;
|
|
95
128
|
return $Try_1_Finally($Try_1_Post)();
|
|
96
129
|
} catch ($boundEx) {
|
|
97
130
|
return $Try_1_Finally($error)($boundEx);
|
|
98
131
|
}
|
|
99
132
|
};
|
|
100
133
|
try {
|
|
134
|
+
mergeProps = _objectSpread2(_objectSpread2({}, serviceParams), params);
|
|
101
135
|
setLoading(true);
|
|
102
|
-
return Promise.resolve(serviceConfig.onRequest(
|
|
136
|
+
return Promise.resolve(serviceConfig.onRequest(mergeProps)).then(function ($await_3) {
|
|
103
137
|
try {
|
|
104
|
-
_respData = $
|
|
138
|
+
_respData = $await_3;
|
|
105
139
|
setStatus('success');
|
|
106
140
|
setRespData(_respData);
|
|
141
|
+
hiddenRequiredErrorRenderRef.current = false;
|
|
107
142
|
return $Try_1_Finally($Try_1_Post)();
|
|
108
143
|
} catch ($boundEx) {
|
|
109
144
|
return $Try_1_Catch($boundEx);
|
|
@@ -114,11 +149,32 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
114
149
|
}
|
|
115
150
|
});
|
|
116
151
|
};
|
|
117
|
-
fbaHooks.useEffectCustomAsync(
|
|
152
|
+
fbaHooks.useEffectCustomAsync(function () {
|
|
153
|
+
return new Promise(function ($return, $error) {
|
|
154
|
+
if (completeResult.complete) {
|
|
155
|
+
return Promise.resolve(onInitRequest()).then(function ($await_4) {
|
|
156
|
+
try {
|
|
157
|
+
return $If_2.call(this);
|
|
158
|
+
} catch ($boundEx) {
|
|
159
|
+
return $error($boundEx);
|
|
160
|
+
}
|
|
161
|
+
}.bind(this), $error);
|
|
162
|
+
}
|
|
163
|
+
function $If_2() {
|
|
164
|
+
return $return();
|
|
165
|
+
}
|
|
166
|
+
return $If_2.call(this);
|
|
167
|
+
});
|
|
168
|
+
}, []);
|
|
118
169
|
fbaHooks.useEffectCustom(function () {
|
|
119
|
-
if (
|
|
120
|
-
if (
|
|
121
|
-
|
|
170
|
+
if (completeResult.complete) {
|
|
171
|
+
if (prevParams) {
|
|
172
|
+
if (!isDeepEqual(serviceConfig.params, prevParams)) {
|
|
173
|
+
if (status === 'error') {
|
|
174
|
+
setStatus('init');
|
|
175
|
+
}
|
|
176
|
+
void onInitRequest();
|
|
177
|
+
}
|
|
122
178
|
}
|
|
123
179
|
}
|
|
124
180
|
}, [prevParams, serviceConfig.params]);
|
|
@@ -127,6 +183,25 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
127
183
|
onRefresh: onInitRequest
|
|
128
184
|
};
|
|
129
185
|
});
|
|
186
|
+
if (!completeResult.complete) {
|
|
187
|
+
if (hiddenRequiredErrorRenderRef.current || !showRequiredError) {
|
|
188
|
+
return /*#__PURE__*/jsx(Fragment, {});
|
|
189
|
+
}
|
|
190
|
+
return /*#__PURE__*/jsx(LocalLoadingCtxProvider, {
|
|
191
|
+
value: {
|
|
192
|
+
onRequest: onInitRequest
|
|
193
|
+
},
|
|
194
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
195
|
+
className: classNames('local-loading-error', props.className),
|
|
196
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
197
|
+
className: "local-loading-area"
|
|
198
|
+
}), /*#__PURE__*/jsx(Result, {
|
|
199
|
+
status: "error",
|
|
200
|
+
subTitle: completeResult.message
|
|
201
|
+
})]
|
|
202
|
+
})
|
|
203
|
+
});
|
|
204
|
+
}
|
|
130
205
|
if (status === 'error') {
|
|
131
206
|
if (errorRender) {
|
|
132
207
|
return errorRender({
|
|
@@ -140,8 +215,7 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
140
215
|
children: /*#__PURE__*/jsxs("div", {
|
|
141
216
|
className: classNames('local-loading-error', props.className),
|
|
142
217
|
children: [/*#__PURE__*/jsx("div", {
|
|
143
|
-
className: "local-loading-area"
|
|
144
|
-
ref: rootRef
|
|
218
|
+
className: "local-loading-area"
|
|
145
219
|
}), /*#__PURE__*/jsx(Result, {
|
|
146
220
|
status: "error",
|
|
147
221
|
subTitle: errorRef.current || '数据处理异常',
|
|
@@ -171,14 +245,13 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
171
245
|
},
|
|
172
246
|
children: /*#__PURE__*/jsx(Spin, {
|
|
173
247
|
spinning: loading,
|
|
248
|
+
tip: loadingSpinTip,
|
|
249
|
+
wrapperClassName: "local-loading-spin-wrapper",
|
|
250
|
+
className: "local-loading-spin",
|
|
174
251
|
style: {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
position: 'absolute',
|
|
179
|
-
height: '100%',
|
|
180
|
-
width: '100%'
|
|
181
|
-
}
|
|
252
|
+
'--local-loading-spin-bgColor': loadingSpinBgColor
|
|
253
|
+
},
|
|
254
|
+
children: loadingSpinContent
|
|
182
255
|
})
|
|
183
256
|
});
|
|
184
257
|
}
|
|
@@ -190,15 +263,14 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
190
263
|
className: classNames('fba-local-loading', props.className),
|
|
191
264
|
style: props.style,
|
|
192
265
|
children: [loading ? /*#__PURE__*/jsx(Spin, {
|
|
193
|
-
spinning:
|
|
266
|
+
spinning: loading,
|
|
267
|
+
tip: loadingSpinTip,
|
|
268
|
+
wrapperClassName: "local-loading-spin-wrapper",
|
|
269
|
+
className: "local-loading-spin",
|
|
194
270
|
style: {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
position: 'absolute',
|
|
199
|
-
height: '100%',
|
|
200
|
-
width: '100%'
|
|
201
|
-
}
|
|
271
|
+
'--local-loading-spin-bgColor': loadingSpinBgColor
|
|
272
|
+
},
|
|
273
|
+
children: loadingSpinContent
|
|
202
274
|
}) : null, /*#__PURE__*/jsx("div", {
|
|
203
275
|
className: "local-loading-content",
|
|
204
276
|
style: props.contentStyle,
|
|
@@ -212,10 +284,13 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
212
284
|
* 局部加载,包含接口数据处理逻辑
|
|
213
285
|
* ```
|
|
214
286
|
* 包括
|
|
215
|
-
* 1. loading
|
|
216
|
-
* 2.
|
|
217
|
-
* 3.
|
|
218
|
-
* 4.
|
|
287
|
+
* 1. loading显示效果、error显示效果、获取服务数据
|
|
288
|
+
* 2. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用
|
|
289
|
+
* 3. 通过 serviceConfig.requiredParamsKeys 设置服务调用必填字段
|
|
290
|
+
* 4. 通过 ref.onRequest 可主动发起服务调用
|
|
291
|
+
* 5. 子组件通过下面方式主动发起服务调用
|
|
292
|
+
* const localLoadingApi = LocalLoading.useLocalLoading();
|
|
293
|
+
* localLoadingApi.onRequest();
|
|
219
294
|
* ```
|
|
220
295
|
*/
|
|
221
296
|
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显示效果、error显示效果、获取服务数据\n * 2. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * 3. 通过 serviceConfig.requiredParamsKeys 设置服务调用必填字段\n * 4. 通过 ref.onRequest 可主动发起服务调用\n * 5. 子组件通过下面方式主动发起服务调用\n * const localLoadingApi = LocalLoading.useLocalLoading();\n * localLoadingApi.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显示效果、error显示效果、获取服务数据\n * 2. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * 3. 通过 serviceConfig.requiredParamsKeys 设置服务调用必填字段\n * 4. 通过 ref.onRequest 可主动发起服务调用\n * 5. 子组件通过下面方式主动发起服务调用\n * const localLoadingApi = LocalLoading.useLocalLoading();\n * localLoadingApi.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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"}
|
|
@@ -5,7 +5,7 @@ import './../roll-location-in-view/index.css';
|
|
|
5
5
|
import './index.css';
|
|
6
6
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
7
7
|
|
|
8
|
-
export { P as PdfPreview } from '../preview-
|
|
8
|
+
export { P as PdfPreview } from '../preview-ChAgzijh.js';
|
|
9
9
|
import '@dimjs/utils/class-names/class-names';
|
|
10
10
|
import '@wove/react/hooks';
|
|
11
11
|
import '../_rollupPluginBabelHelpers-BYm17lo8.js';
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type PdfPreview2Props = {
|
|
2
|
+
pdfUrl: string;
|
|
3
|
+
/** 网络环境,inner/内网,outer/外网,默认inner */
|
|
4
|
+
networkEnv?: "inner" | "outer";
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* PDF预览方式2
|
|
8
|
+
* ```
|
|
9
|
+
* 1. 使用 https://web.tcshuke.com/webapps/pdf-preview/index.html 作为载体预览PDF
|
|
10
|
+
* 2. 预览PDF载体git项目:https://gitlab.itcjf.com/statics/pdf-preview
|
|
11
|
+
* 3. networkEnv 设置内网、外网,默认内网
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare const PdfPreview2: (props: PdfPreview2Props) => any;
|
|
15
|
+
|
|
16
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
+
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* PDF预览方式2
|
|
7
|
+
* ```
|
|
8
|
+
* 1. 使用 https://web.tcshuke.com/webapps/pdf-preview/index.html 作为载体预览PDF
|
|
9
|
+
* 2. 预览PDF载体git项目:https://gitlab.itcjf.com/statics/pdf-preview
|
|
10
|
+
* 3. networkEnv 设置内网、外网,默认内网
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
var PdfPreview2 = function PdfPreview2(props) {
|
|
14
|
+
var previewSupportMap = {
|
|
15
|
+
inner: 'https://web.tcshuke.com/webapps/pdf-preview/index.html',
|
|
16
|
+
outer: 'https://web.lylend.com/webapps/pdf-preview/index.html'
|
|
17
|
+
};
|
|
18
|
+
var networkEnv = props.networkEnv || 'inner';
|
|
19
|
+
var previewSupport = previewSupportMap[networkEnv] || previewSupportMap.inner;
|
|
20
|
+
return /*#__PURE__*/jsx("iframe", {
|
|
21
|
+
src: "".concat(previewSupport, "?file=").concat(encodeURIComponent(props.pdfUrl)),
|
|
22
|
+
height: '100%',
|
|
23
|
+
width: '100%',
|
|
24
|
+
style: {
|
|
25
|
+
border: 0
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { PdfPreview2 as P };
|
|
31
|
+
//# sourceMappingURL=preview-Blwn4lHG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview-Blwn4lHG.js","sources":["@flatbiz/antd/src/pdf-preview2/preview.tsx"],"sourcesContent":["export type PdfPreview2Props = {\n pdfUrl: string;\n /** 网络环境,inner/内网,outer/外网,默认inner */\n networkEnv?: 'inner' | 'outer';\n};\n/**\n * PDF预览方式2\n * ```\n * 1. 使用 https://web.tcshuke.com/webapps/pdf-preview/index.html 作为载体预览PDF\n * 2. 预览PDF载体git项目:https://gitlab.itcjf.com/statics/pdf-preview\n * 3. networkEnv 设置内网、外网,默认内网\n * ```\n */\nexport const PdfPreview2 = (props: PdfPreview2Props) => {\n const previewSupportMap = {\n inner: 'https://web.tcshuke.com/webapps/pdf-preview/index.html',\n outer: 'https://web.lylend.com/webapps/pdf-preview/index.html',\n };\n\n const networkEnv = props.networkEnv || 'inner';\n\n const previewSupport =\n previewSupportMap[networkEnv] || previewSupportMap.inner;\n\n return (\n <iframe\n src={`${previewSupport}?file=${encodeURIComponent(props.pdfUrl)}`}\n height={'100%'}\n width={'100%'}\n style={{ border: 0 }}\n />\n );\n};\n"],"names":["PdfPreview2","props","previewSupportMap","inner","outer","networkEnv","previewSupport","_jsx","src","concat","encodeURIComponent","pdfUrl","height","width","style","border"],"mappings":";;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAAuB,EAAK;AACtD,EAAA,IAAMC,iBAAiB,GAAG;AACxBC,IAAAA,KAAK,EAAE,wDAAwD;AAC/DC,IAAAA,KAAK,EAAE;GACR;AAED,EAAA,IAAMC,UAAU,GAAGJ,KAAK,CAACI,UAAU,IAAI,OAAO;EAE9C,IAAMC,cAAc,GAClBJ,iBAAiB,CAACG,UAAU,CAAC,IAAIH,iBAAiB,CAACC,KAAK;AAE1D,EAAA,oBACEI,GAAA,CAAA,QAAA,EAAA;AACEC,IAAAA,GAAG,EAAAC,EAAAA,CAAAA,MAAA,CAAKH,cAAc,EAAAG,QAAAA,CAAAA,CAAAA,MAAA,CAASC,kBAAkB,CAACT,KAAK,CAACU,MAAM,CAAC,CAAG;AAClEC,IAAAA,MAAM,EAAE,MAAO;AACfC,IAAAA,KAAK,EAAE,MAAO;AACdC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAE;AAAE;AAAE,GACtB,CAAC;AAEN;;;;"}
|
|
@@ -53,7 +53,7 @@ var Navigation = function Navigation(props) {
|
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
|
-
* pdf
|
|
56
|
+
* pdf预览方式1
|
|
57
57
|
* ```
|
|
58
58
|
* 使用方式:在cdn.ts中引入 '//file.40017.cn/tcsk/react/pdf@3.2.146/pdf.min.js'
|
|
59
59
|
* Git: https://github.com/mozilla/pdfjs-dist/tree/master
|
|
@@ -152,4 +152,4 @@ var PdfPreview = function PdfPreview(props) {
|
|
|
152
152
|
};
|
|
153
153
|
|
|
154
154
|
export { PdfPreview as P };
|
|
155
|
-
//# sourceMappingURL=preview-
|
|
155
|
+
//# sourceMappingURL=preview-ChAgzijh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview-ChAgzijh.js","sources":["@flatbiz/antd/src/pdf-preview/navigation.tsx","@flatbiz/antd/src/pdf-preview/preview.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { generateIntArray } from '@flatbiz/utils';\nimport { Pdf } from '../pdf/index.js';\nimport { RollLocationInView } from '../roll-location-in-view/index.js';\n\ntype NavigationProps = {\n numPages: number;\n activeNumber: number;\n onChangeActiveNumber: (active: number) => void;\n scale?: number;\n navigationWidth?: number;\n pdfPageListHeightScope: number[][];\n pdfContentNodeId: string;\n};\nexport const Navigation = (props: NavigationProps) => {\n const navigationWidth =\n typeof props.navigationWidth === 'undefined' ? 200 : props.navigationWidth;\n return (\n <RollLocationInView\n activeKey={`${props.activeNumber}`}\n behavior=\"auto\"\n style={{ width: navigationWidth }}\n renderList={generateIntArray(1, props.numPages + 1).map((pageNumer) => {\n return {\n activeKey: `${pageNumer}`,\n render: (\n <div\n key={pageNumer}\n className={classNames('v-pdf-preview-navigation-content', {\n 'v-pdf-preview-navigation-active':\n pageNumer === props.activeNumber,\n })}\n >\n <Pdf.Page\n pageNumber={pageNumer}\n gap={0}\n scale={props.scale || 0.2}\n className={classNames('v-pdf-preview-navigation-page')}\n onClick={() => {\n props.onChangeActiveNumber(pageNumer);\n const scroll = document.querySelector(\n `#${props.pdfContentNodeId}`\n ) as HTMLDivElement;\n if (scroll) {\n if (pageNumer === 1) {\n scroll.scrollTo(0, 0);\n } else {\n const top =\n props.pdfPageListHeightScope[pageNumer - 1][0];\n scroll.scrollTo(0, top);\n }\n }\n }}\n ></Pdf.Page>\n\n <div className=\"v-pdf-preview-navigation-pagination\">\n - {pageNumer} -\n </div>\n </div>\n ),\n };\n })}\n />\n );\n};\n","import { useMemo, useRef, useState } from 'react';\nimport { Result } from 'antd';\nimport { classNames } from '@dimjs/utils';\nimport { generateIntArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Pdf } from '../pdf/index.js';\nimport { Navigation } from './navigation.jsx';\nimport './style.less';\n\nexport type PdfPreviewProps = {\n pdfUrl: string;\n /** 缩放比例,默认值:1 */\n scale?: number;\n className?: string;\n /** 导航pdf,缩放比例,默认值:0.2 */\n navigationScale?: number;\n /** 隐藏导航栏 */\n hiddenNavigation?: boolean;\n /** 导航栏宽度,默认值:200 */\n navigationWidth?: number;\n};\n\n/**\n * pdf预览方式1\n * ```\n * 使用方式:在cdn.ts中引入 '//file.40017.cn/tcsk/react/pdf@3.2.146/pdf.min.js'\n * Git: https://github.com/mozilla/pdfjs-dist/tree/master\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/file/pdf\n * Demo: https://fex.qa.tcshuke.com/docs/admin/main/file/pdf-seal\n * ```\n */\nexport const PdfPreview = (props: PdfPreviewProps) => {\n const [numPages, setNumPages] = useState(0);\n const dpfDoucmentRef = useRef<HTMLDivElement>(null);\n const [activePagination, setActivePagination] = useState(1);\n const [pdfPageHeight, setPdfPageHeight] = useState(0);\n\n const pageGap = 10;\n\n const onDocumentLoadSuccess = hooks.useCallbackRef((inst) => {\n setNumPages(inst.numPages);\n });\n\n /** 计算 page 在文档流中的高度范围,包含竖直方向间距 */\n const pdfPageListHeightScope = useMemo(() => {\n if (!numPages) return [];\n const pageHeightScopeList: number[][] = [];\n generateIntArray(0, numPages).forEach((item) => {\n if (item === 0) {\n pageHeightScopeList.push([0, pdfPageHeight]);\n } else {\n const x = pdfPageHeight * item + item * pageGap;\n pageHeightScopeList.push([x, x + pdfPageHeight]);\n }\n });\n return pageHeightScopeList;\n }, [numPages, pdfPageHeight]);\n\n const onDocumentCenterScroll = (event) => {\n const scrollTop = event.target.scrollTop;\n const scrollHeight = dpfDoucmentRef.current?.clientHeight as number;\n for (let index = 0; index < pdfPageListHeightScope.length; index++) {\n const element = pdfPageListHeightScope[index];\n if (element[1] - scrollTop >= scrollHeight / 2) {\n setActivePagination(index + 1);\n break;\n }\n }\n };\n\n const pdfContentNodeId = hooks.useId(undefined, 'pdf-content-node');\n\n return (\n <Pdf.Document\n pdfUrl={props.pdfUrl}\n onLoadSuccess={onDocumentLoadSuccess}\n error={\n <Result\n status=\"500\"\n title=\"PDF加载异常\"\n subTitle={`PDF地址:${props.pdfUrl}`}\n />\n }\n className={classNames('v-pdf-preview-document', props.className)}\n >\n {!props.hiddenNavigation ? (\n <div className=\"v-pdf-preview-navigation\">\n <Navigation\n numPages={numPages}\n activeNumber={activePagination}\n onChangeActiveNumber={setActivePagination}\n scale={props.navigationScale}\n navigationWidth={props.navigationWidth}\n pdfPageListHeightScope={pdfPageListHeightScope}\n pdfContentNodeId={pdfContentNodeId}\n />\n </div>\n ) : null}\n\n <div\n className=\"v-pdf-preview-content\"\n onScroll={onDocumentCenterScroll}\n ref={dpfDoucmentRef}\n id={pdfContentNodeId}\n >\n {numPages > 0\n ? generateIntArray(1, numPages + 1).map((item) => {\n return (\n <Pdf.Page\n key={item}\n pageNumber={item}\n scale={props.scale}\n gap={pageGap}\n onRenderSuccess={(node) => {\n const h = Math.floor(node.height);\n setPdfPageHeight(h);\n }}\n style={{ display: 'flex', justifyContent: 'center' }}\n ></Pdf.Page>\n );\n })\n : null}\n </div>\n </Pdf.Document>\n );\n};\n"],"names":["Navigation","props","navigationWidth","_jsx","RollLocationInView","activeKey","concat","activeNumber","behavior","style","width","renderList","generateIntArray","numPages","map","pageNumer","render","_jsxs","className","_classNames","children","Pdf","Page","pageNumber","gap","scale","onClick","onChangeActiveNumber","scroll","document","querySelector","pdfContentNodeId","scrollTo","top","pdfPageListHeightScope","PdfPreview","_useState","useState","_useState2","_slicedToArray","setNumPages","dpfDoucmentRef","useRef","_useState3","_useState4","activePagination","setActivePagination","_useState5","_useState6","pdfPageHeight","setPdfPageHeight","pageGap","onDocumentLoadSuccess","_hooks","useCallbackRef","inst","useMemo","pageHeightScopeList","forEach","item","push","x","onDocumentCenterScroll","event","_dpfDoucmentRef$curre","scrollTop","target","scrollHeight","current","clientHeight","index","length","element","useId","undefined","Document","pdfUrl","onLoadSuccess","error","Result","status","title","subTitle","hiddenNavigation","navigationScale","onScroll","ref","id","onRenderSuccess","node","h","Math","floor","height","display","justifyContent"],"mappings":"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"}
|