@flatbiz/antd 5.0.16 → 5.0.17
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/{drag-C1CCBzbn.js → drag-CSVvyXEN.js} +2 -2
- package/dist/{drag-C1CCBzbn.js.map → drag-CSVvyXEN.js.map} +1 -1
- package/dist/drag-editable-table/index.d.ts +4 -0
- package/dist/drag-editable-table/index.js +3 -3
- package/dist/editable-table/index.d.ts +4 -0
- package/dist/editable-table/index.js +2 -2
- package/dist/{editable-table-BgRLIKDS.js → editable-table-BDjZl2ZY.js} +2 -2
- package/dist/{editable-table-BgRLIKDS.js.map → editable-table-BDjZl2ZY.js.map} +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.js +4 -4
- package/dist/local-loading/index.css +1 -1
- package/dist/local-loading/index.d.ts +4 -2
- package/dist/local-loading/index.js +10 -5
- package/dist/local-loading/index.js.map +1 -1
- package/dist/{tabs-D2IfpmxW.js → tabs-CbMuUsXN.js} +5 -3
- package/dist/tabs-CbMuUsXN.js.map +1 -0
- package/dist/tabs-sticky/index.d.ts +3 -1
- package/dist/tabs-sticky/index.js +1 -1
- package/dist/upload-wrapper/index.d.ts +4 -0
- package/dist/upload-wrapper/index.js +1 -1
- package/dist/{upload-wrapper-BUfwwddm.js → upload-wrapper-DarS_SOE.js} +89 -19
- package/dist/upload-wrapper-DarS_SOE.js.map +1 -0
- package/package.json +1 -1
- package/dist/tabs-D2IfpmxW.js.map +0 -1
- package/dist/upload-wrapper-BUfwwddm.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1883,6 +1883,10 @@ export type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {
|
|
|
1883
1883
|
* ```
|
|
1884
1884
|
*/
|
|
1885
1885
|
autoSubmit?: boolean;
|
|
1886
|
+
/** 图片预览开关, 重写 onPreview 方法后失效 */
|
|
1887
|
+
imagePreviewSwitch?: boolean;
|
|
1888
|
+
/** 图片预览文件类型,默认:['png', 'jpg', 'jpeg', 'gif'] */
|
|
1889
|
+
imagePreviewAccept?: string[];
|
|
1886
1890
|
} & Omit<UploadProps, "onChange" | "fileList">;
|
|
1887
1891
|
/**
|
|
1888
1892
|
* 文件上传
|
|
@@ -4012,8 +4016,10 @@ export interface LocalLoadingProps {
|
|
|
4012
4016
|
showRequiredError?: boolean;
|
|
4013
4017
|
/** 自定义异常渲染处理 */
|
|
4014
4018
|
errorRender?: (error?: TAny) => ReactElement;
|
|
4015
|
-
/** 设置内部滚动,需要设置style.height 才能生效,@5.0.16 */
|
|
4019
|
+
/** 设置内部滚动,需要设置 style.height 才能生效,@5.0.16 */
|
|
4016
4020
|
contentScroll?: boolean;
|
|
4021
|
+
/** 设置高度 */
|
|
4022
|
+
height?: number | string;
|
|
4017
4023
|
}
|
|
4018
4024
|
export type LocalLoadingRefApi = {
|
|
4019
4025
|
onRefresh: (params?: TPlainObject) => void;
|
|
@@ -4029,7 +4035,7 @@ export type LocalLoadingRefApi = {
|
|
|
4029
4035
|
* 5. 子组件通过下面方式主动发起服务调用
|
|
4030
4036
|
* const localLoadingApi = LocalLoading.useLocalLoading();
|
|
4031
4037
|
* localLoadingApi.onRequest();
|
|
4032
|
-
* 6. 如果内部需要滚动条,可设置 contentScroll = true
|
|
4038
|
+
* 6. 如果内部需要滚动条,可设置 contentScroll = true (外部有高度或者设置style.height 才能生效)
|
|
4033
4039
|
* ```
|
|
4034
4040
|
*/
|
|
4035
4041
|
export declare const LocalLoading: import("react").ForwardRefExoticComponent<LocalLoadingProps & import("react").RefAttributes<LocalLoadingRefApi>> & {
|
|
@@ -5304,6 +5310,8 @@ export type TabsStickyProps = {
|
|
|
5304
5310
|
headerRender?: ReactElement;
|
|
5305
5311
|
/** 点击tabItem后,tab跳到顶部吸顶效果;默认值true */
|
|
5306
5312
|
clickTabToTop?: boolean;
|
|
5313
|
+
/** 设置tabItem 内容包裹元素的样式 */
|
|
5314
|
+
tabItemContentWrapperStyle?: (key: string) => CSSProperties;
|
|
5307
5315
|
};
|
|
5308
5316
|
/**
|
|
5309
5317
|
* Tabs吸顶组件
|
package/dist/index.js
CHANGED
|
@@ -166,7 +166,7 @@ export { d as dialogModal } from './dialog-modal-xt2uoEa-.js';
|
|
|
166
166
|
export { D as DragCollapse } from './drag-collapse-wL7wIgVO.js';
|
|
167
167
|
export { D as DragCollapseFormList } from './drag-collapse-DU_JhQTz.js';
|
|
168
168
|
export { D as DragEditableCard } from './editable-card-Dc_9h_Qf.js';
|
|
169
|
-
export { D as DragEditableTable } from './drag-
|
|
169
|
+
export { D as DragEditableTable } from './drag-CSVvyXEN.js';
|
|
170
170
|
export { D as DragEditableTablePro } from './drag-CBosXqSQ.js';
|
|
171
171
|
export { D as DragFormList } from './drag-form-list-BGqbBKJM.js';
|
|
172
172
|
export { D as DragTable } from './drag-table-By85hEGF.js';
|
|
@@ -177,7 +177,7 @@ export { EasyTable } from './easy-table/index.js';
|
|
|
177
177
|
export { E as EditableCard } from './editable-card-D-JIgLVg.js';
|
|
178
178
|
export { E as EditableField } from './editable-field-XVZ1Rqdm.js';
|
|
179
179
|
export { E as EditableFieldProvider } from './editable-field-provider-DqKcZQYP.js';
|
|
180
|
-
export { E as EditableTable } from './editable-table-
|
|
180
|
+
export { E as EditableTable } from './editable-table-BDjZl2ZY.js';
|
|
181
181
|
export { E as EditableTablePro } from './editable-table-pro-D8Vt535W.js';
|
|
182
182
|
export { E as ErrorBoundaryWrapper } from './error-boundary-DtShAEtQ.js';
|
|
183
183
|
export { FbaApp } from './fba-app/index.js';
|
|
@@ -238,7 +238,7 @@ export { S as SwitchWrapper } from './switch-wrapper-CfxaLAKg.js';
|
|
|
238
238
|
export { t as tableCellRender } from './cell-render-D4e6I9eI.js';
|
|
239
239
|
export { T as TableScrollbar } from './table-scrollbar-CBqQ4pYQ.js';
|
|
240
240
|
export { T as TableTitleTooltip } from './title-render-DGYUo6yV.js';
|
|
241
|
-
export { T as TabsSticky } from './tabs-
|
|
241
|
+
export { T as TabsSticky } from './tabs-CbMuUsXN.js';
|
|
242
242
|
export { T as TabsWrapper } from './tabs-wrapper-CAj9ErGH.js';
|
|
243
243
|
export { T as TagGroup } from './tag-group-BInmv_6s.js';
|
|
244
244
|
export { _ as TagListRender } from './tag-list-C9_bM06E.js';
|
|
@@ -256,7 +256,7 @@ export { T as TreeModalSelector } from './selector-dbYimxeI.js';
|
|
|
256
256
|
export { T as TreeSelectorWrapper } from './selector-D4LbM5wD.js';
|
|
257
257
|
export { TreeWrapper } from './tree-wrapper/index.js';
|
|
258
258
|
export { types } from './types/index.js';
|
|
259
|
-
export { U as UploadWrapper } from './upload-wrapper-
|
|
259
|
+
export { U as UploadWrapper } from './upload-wrapper-DarS_SOE.js';
|
|
260
260
|
export { X as XMindPreview } from './x-mind-preview-BxHDc_lA.js';
|
|
261
261
|
import './_rollupPluginBabelHelpers-BYm17lo8.js';
|
|
262
262
|
import '@dimjs/utils/class-names/class-names';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.local-loading-error{align-items:center;display:flex;height:100%;justify-content:center;position:relative}.local-loading-error .ant-result-icon{margin-bottom:10px!important}.local-loading-error .ant-result-icon .anticon{font-size:30px!important}.local-loading-error .ant-result-title{font-size:16px!important}.local-loading-error .ant-result-extra{margin-top:10px!important}.local-loading-error .ant-result-error{padding:24px 16px!important}.local-loading-area{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:9}.fba-local-loading{position:relative}.local-loading-spin,.local-loading-spin-wrapper{align-items:center;background-color:var(--local-loading-spin-bgColor);border-radius:5px;display:flex;height:100%;justify-content:center;position:absolute;width:100%}.fll-content-scroll{height:100%;overflow:hidden}.fll-content-scroll .local-loading-content{
|
|
1
|
+
.local-loading-error{align-items:center;display:flex;height:100%;justify-content:center;position:relative}.local-loading-error .ant-result-icon{margin-bottom:10px!important}.local-loading-error .ant-result-icon .anticon{font-size:30px!important}.local-loading-error .ant-result-title{font-size:16px!important}.local-loading-error .ant-result-extra{margin-top:10px!important}.local-loading-error .ant-result-error{padding:24px 16px!important}.local-loading-area{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:9}.fba-local-loading{position:relative}.local-loading-spin,.local-loading-spin-wrapper{align-items:center;background-color:var(--local-loading-spin-bgColor);border-radius:5px;display:flex;height:100%;justify-content:center;position:absolute;width:100%}.local-loading-content{height:100%}.fll-content-scroll{height:100%;overflow:hidden}.fll-content-scroll .local-loading-content{overflow-y:auto}
|
|
@@ -44,8 +44,10 @@ export interface LocalLoadingProps {
|
|
|
44
44
|
showRequiredError?: boolean;
|
|
45
45
|
/** 自定义异常渲染处理 */
|
|
46
46
|
errorRender?: (error?: TAny) => ReactElement;
|
|
47
|
-
/** 设置内部滚动,需要设置style.height 才能生效,@5.0.16 */
|
|
47
|
+
/** 设置内部滚动,需要设置 style.height 才能生效,@5.0.16 */
|
|
48
48
|
contentScroll?: boolean;
|
|
49
|
+
/** 设置高度 */
|
|
50
|
+
height?: number | string;
|
|
49
51
|
}
|
|
50
52
|
export type LocalLoadingRefApi = {
|
|
51
53
|
onRefresh: (params?: TPlainObject) => void;
|
|
@@ -61,7 +63,7 @@ export type LocalLoadingRefApi = {
|
|
|
61
63
|
* 5. 子组件通过下面方式主动发起服务调用
|
|
62
64
|
* const localLoadingApi = LocalLoading.useLocalLoading();
|
|
63
65
|
* localLoadingApi.onRequest();
|
|
64
|
-
* 6. 如果内部需要滚动条,可设置 contentScroll = true
|
|
66
|
+
* 6. 如果内部需要滚动条,可设置 contentScroll = true (外部有高度或者设置style.height 才能生效)
|
|
65
67
|
* ```
|
|
66
68
|
*/
|
|
67
69
|
export declare const LocalLoading: import("react").ForwardRefExoticComponent<LocalLoadingProps & import("react").RefAttributes<LocalLoadingRefApi>> & {
|
|
@@ -34,7 +34,7 @@ var _createCtx = createCtx(),
|
|
|
34
34
|
* 5. 子组件通过下面方式主动发起服务调用
|
|
35
35
|
* const localLoadingApi = LocalLoading.useLocalLoading();
|
|
36
36
|
* localLoadingApi.onRequest();
|
|
37
|
-
* 6. 如果内部需要滚动条,可设置 contentScroll = true
|
|
37
|
+
* 6. 如果内部需要滚动条,可设置 contentScroll = true (外部有高度或者设置style.height 才能生效)
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
@@ -45,7 +45,9 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
45
45
|
loadingSpinProps = props.loadingSpinProps,
|
|
46
46
|
textConfigs = props.textConfigs,
|
|
47
47
|
showRequiredError = props.showRequiredError,
|
|
48
|
-
contentScroll = props.contentScroll
|
|
48
|
+
contentScroll = props.contentScroll,
|
|
49
|
+
contentStyle = props.contentStyle,
|
|
50
|
+
height = props.height;
|
|
49
51
|
var _useState = useState('init'),
|
|
50
52
|
_useState2 = _slicedToArray(_useState, 2),
|
|
51
53
|
status = _useState2[0],
|
|
@@ -260,13 +262,16 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
260
262
|
var className = classNames('fba-local-loading', {
|
|
261
263
|
'fll-content-scroll': contentScroll
|
|
262
264
|
}, props.className);
|
|
265
|
+
var rootStyle = _objectSpread2({
|
|
266
|
+
height: height
|
|
267
|
+
}, props.style);
|
|
263
268
|
return /*#__PURE__*/jsx(LocalLoadingCtxProvider, {
|
|
264
269
|
value: {
|
|
265
270
|
onRequest: onInitRequest
|
|
266
271
|
},
|
|
267
272
|
children: /*#__PURE__*/jsxs("div", {
|
|
268
273
|
className: className,
|
|
269
|
-
style:
|
|
274
|
+
style: rootStyle,
|
|
270
275
|
children: [loading ? /*#__PURE__*/jsx(Spin, {
|
|
271
276
|
spinning: loading,
|
|
272
277
|
tip: loadingSpinTip,
|
|
@@ -278,7 +283,7 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
278
283
|
children: loadingSpinContent
|
|
279
284
|
}) : null, /*#__PURE__*/jsx("div", {
|
|
280
285
|
className: "local-loading-content",
|
|
281
|
-
style:
|
|
286
|
+
style: contentStyle,
|
|
282
287
|
children: children(respData)
|
|
283
288
|
})]
|
|
284
289
|
})
|
|
@@ -296,7 +301,7 @@ var LocalLoadingInner = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
296
301
|
* 5. 子组件通过下面方式主动发起服务调用
|
|
297
302
|
* const localLoadingApi = LocalLoading.useLocalLoading();
|
|
298
303
|
* localLoadingApi.onRequest();
|
|
299
|
-
* 6. 如果内部需要滚动条,可设置 contentScroll = true
|
|
304
|
+
* 6. 如果内部需要滚动条,可设置 contentScroll = true (外部有高度或者设置style.height 才能生效)
|
|
300
305
|
* ```
|
|
301
306
|
*/
|
|
302
307
|
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 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 /** 设置内部滚动,需要设置style.height 才能生效,@5.0.16 */\n contentScroll?: boolean;\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 * 6. 如果内部需要滚动条,可设置 contentScroll = true (需要设置style.height 才能生效)\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 contentScroll,\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 const className = classNames(\n 'fba-local-loading',\n { 'fll-content-scroll': contentScroll },\n props.className\n );\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={className} style={props.style}>\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 * 6. 如果内部需要滚动条,可设置 contentScroll = true (需要设置style.height 才能生效)\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","contentScroll","_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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"}
|
|
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 /** 设置内部滚动,需要设置 style.height 才能生效,@5.0.16 */\n contentScroll?: boolean;\n /** 设置高度 */\n height?: number | string;\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 * 6. 如果内部需要滚动条,可设置 contentScroll = true (外部有高度或者设置style.height 才能生效)\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 contentScroll,\n contentStyle,\n height,\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 const className = classNames(\n 'fba-local-loading',\n { 'fll-content-scroll': contentScroll },\n props.className\n );\n\n const rootStyle = { height, ...props.style };\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onInitRequest }}>\n <div className={className} style={rootStyle}>\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={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 * 6. 如果内部需要滚动条,可设置 contentScroll = true (外部有高度或者设置style.height 才能生效)\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","contentScroll","contentStyle","height","_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","display","justifyContent","position","backgroundColor","Spin","spinning","wrapperClassName","rootStyle","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":"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"}
|
|
@@ -63,11 +63,13 @@ var TabsSticky = function TabsSticky(props) {
|
|
|
63
63
|
var contentTabItems = useMemo(function () {
|
|
64
64
|
var _tabsProps$items2;
|
|
65
65
|
return (_tabsProps$items2 = tabsProps.items) === null || _tabsProps$items2 === void 0 ? void 0 : _tabsProps$items2.map(function (item) {
|
|
66
|
+
var _props$tabItemContent;
|
|
67
|
+
var wrapperStyle = (_props$tabItemContent = props.tabItemContentWrapperStyle) === null || _props$tabItemContent === void 0 ? void 0 : _props$tabItemContent.call(props, item.key);
|
|
66
68
|
return _objectSpread2(_objectSpread2({}, item), {}, {
|
|
67
69
|
children: /*#__PURE__*/jsx("div", {
|
|
68
|
-
style: {
|
|
70
|
+
style: _objectSpread2({
|
|
69
71
|
minHeight: minHeight
|
|
70
|
-
},
|
|
72
|
+
}, wrapperStyle),
|
|
71
73
|
children: item.children
|
|
72
74
|
})
|
|
73
75
|
});
|
|
@@ -113,4 +115,4 @@ var TabsSticky = function TabsSticky(props) {
|
|
|
113
115
|
};
|
|
114
116
|
|
|
115
117
|
export { TabsSticky as T };
|
|
116
|
-
//# sourceMappingURL=tabs-
|
|
118
|
+
//# sourceMappingURL=tabs-CbMuUsXN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs-CbMuUsXN.js","sources":["@flatbiz/antd/src/tabs-sticky/tabs.tsx"],"sourcesContent":["import {\n type CSSProperties,\n type ReactElement,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useSize } from 'ahooks';\nimport { Affix, type GetProps, Tabs } from 'antd';\nimport './style.less';\n\ntype TabsType = GetProps<typeof Tabs>;\n\nexport type TabsStickyProps = {\n tabsProps: Omit<TabsType, 'tabPosition'>;\n /** tabs头部布局 */\n headerRender?: ReactElement;\n /** 点击tabItem后,tab跳到顶部吸顶效果;默认值true */\n clickTabToTop?: boolean;\n /** 设置tabItem 内容包裹元素的样式 */\n tabItemContentWrapperStyle?: (key: string) => CSSProperties;\n};\n\n/**\n * Tabs吸顶组件\n * ```\n * 1. 组件根节点设置了 height: 100%、overflow: auto;所以外部包裹元素必须要有高度\n * ```\n */\nexport const TabsSticky = (props: TabsStickyProps) => {\n const tabsProps = props.tabsProps;\n\n const [activeKey, setActiveKey] = useState(tabsProps.defaultActiveKey);\n const headerRef = useRef<HTMLDivElement>(null);\n const affixRef = useRef<any>(null);\n const affixedFlagRef = useRef<boolean>();\n\n const headerSize = useSize(headerRef);\n\n const scollNodeRef = useRef<any>(null);\n\n const scollNodeSize = useSize(scollNodeRef);\n const affixRefSize = useSize(affixRef);\n\n useEffect(() => {\n if (tabsProps.activeKey) {\n setActiveKey(tabsProps.activeKey);\n }\n }, [tabsProps.activeKey]);\n\n const onChange = (activeKey) => {\n if (!tabsProps.activeKey) {\n setActiveKey(activeKey);\n }\n tabsProps.onChange?.(activeKey);\n const top = headerSize?.height || 0;\n if (affixedFlagRef.current) {\n scollNodeRef.current?.scrollTo({\n top,\n });\n } else {\n if (props.clickTabToTop !== false) {\n scollNodeRef.current?.scrollTo({\n top,\n });\n }\n }\n };\n\n const minHeight = (scollNodeSize?.height || 0) - (affixRefSize?.height || 0);\n\n const stickyTabItems = useMemo(() => {\n return tabsProps.items?.map((item) => {\n return {\n ...item,\n children: null,\n };\n });\n }, [tabsProps.items]);\n\n const contentTabItems = useMemo(() => {\n return tabsProps.items?.map((item) => {\n const wrapperStyle = props.tabItemContentWrapperStyle?.(item.key);\n return {\n ...item,\n children: (\n <div style={{ minHeight, ...wrapperStyle }}>{item.children}</div>\n ),\n };\n });\n }, [tabsProps.items, minHeight]);\n\n return (\n <div ref={scollNodeRef} style={{ height: '100%', overflowY: 'auto' }}>\n <div ref={headerRef}>{props.headerRender}</div>\n <Affix\n offsetTop={0}\n target={() => scollNodeRef.current as HTMLElement}\n onChange={(affixed) => {\n affixedFlagRef.current = affixed;\n }}\n >\n <div ref={affixRef}>\n <Tabs\n {...tabsProps}\n activeKey={activeKey}\n items={stickyTabItems}\n tabBarStyle={{ ...tabsProps.tabBarStyle, margin: 0 }}\n style={{\n backgroundColor: 'var(--block-bg-color)',\n ...tabsProps.style,\n }}\n onChange={onChange}\n />\n </div>\n </Affix>\n <Tabs\n activeKey={activeKey}\n className=\"tabs-sticky-contents\"\n items={contentTabItems}\n />\n </div>\n );\n};\n"],"names":["TabsSticky","props","tabsProps","_useState","useState","defaultActiveKey","_useState2","_slicedToArray","activeKey","setActiveKey","headerRef","useRef","affixRef","affixedFlagRef","headerSize","useSize","scollNodeRef","scollNodeSize","affixRefSize","useEffect","onChange","_tabsProps$onChange","call","top","height","current","_scollNodeRef$current","scrollTo","clickTabToTop","_scollNodeRef$current2","minHeight","stickyTabItems","useMemo","_tabsProps$items","items","map","item","_objectSpread","children","contentTabItems","_tabsProps$items2","_props$tabItemContent","wrapperStyle","tabItemContentWrapperStyle","key","_jsx","style","_jsxs","ref","overflowY","headerRender","Affix","offsetTop","target","affixed","Tabs","tabBarStyle","margin","backgroundColor","className"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GetProps, Tabs } from 'antd';
|
|
2
|
-
import { ReactElement } from 'react';
|
|
2
|
+
import { CSSProperties, ReactElement } from 'react';
|
|
3
3
|
|
|
4
4
|
export type TabsType = GetProps<typeof Tabs>;
|
|
5
5
|
export type TabsStickyProps = {
|
|
@@ -8,6 +8,8 @@ export type TabsStickyProps = {
|
|
|
8
8
|
headerRender?: ReactElement;
|
|
9
9
|
/** 点击tabItem后,tab跳到顶部吸顶效果;默认值true */
|
|
10
10
|
clickTabToTop?: boolean;
|
|
11
|
+
/** 设置tabItem 内容包裹元素的样式 */
|
|
12
|
+
tabItemContentWrapperStyle?: (key: string) => CSSProperties;
|
|
11
13
|
};
|
|
12
14
|
/**
|
|
13
15
|
* Tabs吸顶组件
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
4
|
|
|
5
|
-
export { T as TabsSticky } from '../tabs-
|
|
5
|
+
export { T as TabsSticky } from '../tabs-CbMuUsXN.js';
|
|
6
6
|
import '../_rollupPluginBabelHelpers-BYm17lo8.js';
|
|
7
7
|
import 'react';
|
|
8
8
|
import 'ahooks';
|
|
@@ -38,6 +38,10 @@ export type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {
|
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
autoSubmit?: boolean;
|
|
41
|
+
/** 图片预览开关, 重写 onPreview 方法后失效 */
|
|
42
|
+
imagePreviewSwitch?: boolean;
|
|
43
|
+
/** 图片预览文件类型,默认:['png', 'jpg', 'jpeg', 'gif'] */
|
|
44
|
+
imagePreviewAccept?: string[];
|
|
41
45
|
} & Omit<UploadProps, "onChange" | "fileList">;
|
|
42
46
|
/**
|
|
43
47
|
* 文件上传
|
|
@@ -3,7 +3,7 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
5
|
|
|
6
|
-
export { U as UploadWrapper } from '../upload-wrapper-
|
|
6
|
+
export { U as UploadWrapper } from '../upload-wrapper-DarS_SOE.js';
|
|
7
7
|
import '@ant-design/icons/es/icons/PlusOutlined.js';
|
|
8
8
|
import '@dimjs/utils/class-names/class-names';
|
|
9
9
|
import '@wove/react/hooks';
|
|
@@ -8,12 +8,25 @@ import { isPlainObject } from '@dimjs/lang/is-plain-object';
|
|
|
8
8
|
import { extend } from '@dimjs/utils/extend/extend';
|
|
9
9
|
import { useState, useMemo, Fragment } from 'react';
|
|
10
10
|
import { flushSync } from 'react-dom';
|
|
11
|
-
import { message, Upload, Button } from 'antd';
|
|
12
|
-
import { isUndefinedOrNull, toArray } from '@flatbiz/utils';
|
|
11
|
+
import { message, Upload, Image, Button } from 'antd';
|
|
12
|
+
import { isUndefinedOrNull, toArray, openNewWindow } from '@flatbiz/utils';
|
|
13
13
|
import { fbaHooks } from './fba-hooks/index.js';
|
|
14
|
-
import {
|
|
14
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var getBase64 = function getBase64(file) {
|
|
17
|
+
return new Promise(function (resolve, reject) {
|
|
18
|
+
var reader = new FileReader();
|
|
19
|
+
reader.readAsDataURL(file);
|
|
20
|
+
reader.onload = function () {
|
|
21
|
+
return resolve(reader.result);
|
|
22
|
+
};
|
|
23
|
+
reader.onerror = function (error) {
|
|
24
|
+
return reject(error);
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
var _excluded = ["onChange", "onUploadError", "value", "triggerText", "limitHidden", "autoSubmit", "imagePreviewSwitch", "imagePreviewAccept"];
|
|
17
30
|
/**
|
|
18
31
|
* 文件上传
|
|
19
32
|
* ```
|
|
@@ -61,11 +74,18 @@ var UploadWrapper = function UploadWrapper(props) {
|
|
|
61
74
|
triggerText = props.triggerText,
|
|
62
75
|
limitHidden = props.limitHidden,
|
|
63
76
|
autoSubmit = props.autoSubmit,
|
|
77
|
+
imagePreviewSwitch = props.imagePreviewSwitch,
|
|
78
|
+
imagePreviewAccept = props.imagePreviewAccept,
|
|
64
79
|
otherProps = _objectWithoutProperties(props, _excluded);
|
|
80
|
+
var imagePreviewAcceptFt = isUndefinedOrNull(imagePreviewAccept) ? ['png', 'jpg', 'jpeg', 'gif'] : imagePreviewAccept;
|
|
65
81
|
var _useState = useState(),
|
|
66
82
|
_useState2 = _slicedToArray(_useState, 2),
|
|
67
|
-
|
|
68
|
-
|
|
83
|
+
previewImage = _useState2[0],
|
|
84
|
+
setPreviewImage = _useState2[1];
|
|
85
|
+
var _useState3 = useState(),
|
|
86
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
87
|
+
uploadList = _useState4[0],
|
|
88
|
+
setUploadList = _useState4[1];
|
|
69
89
|
var fieldNames = extend({
|
|
70
90
|
uid: 'uid',
|
|
71
91
|
name: 'name',
|
|
@@ -217,18 +237,68 @@ var UploadWrapper = function UploadWrapper(props) {
|
|
|
217
237
|
}
|
|
218
238
|
return true;
|
|
219
239
|
};
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
240
|
+
var handlePreview = function handlePreview(file) {
|
|
241
|
+
return new Promise(function ($return, $error) {
|
|
242
|
+
var name, extension, acceptTarget;
|
|
243
|
+
name = file.name || '';
|
|
244
|
+
extension = name.slice(name.lastIndexOf('.') + 1);
|
|
245
|
+
acceptTarget = imagePreviewAcceptFt === null || imagePreviewAcceptFt === void 0 ? void 0 : imagePreviewAcceptFt.find(function (item) {
|
|
246
|
+
return item.toLocaleLowerCase() === extension.toLocaleLowerCase();
|
|
247
|
+
});
|
|
248
|
+
if (acceptTarget) {
|
|
249
|
+
if (!file.url && !file.preview) {
|
|
250
|
+
return Promise.resolve(getBase64(file.originFileObj)).then(function ($await_3) {
|
|
251
|
+
try {
|
|
252
|
+
file.preview = $await_3;
|
|
253
|
+
return $If_2.call(this);
|
|
254
|
+
} catch ($boundEx) {
|
|
255
|
+
return $error($boundEx);
|
|
256
|
+
}
|
|
257
|
+
}.bind(this), $error);
|
|
258
|
+
}
|
|
259
|
+
function $If_2() {
|
|
260
|
+
setPreviewImage(file.url || file.preview);
|
|
261
|
+
return $If_1.call(this);
|
|
262
|
+
}
|
|
263
|
+
return $If_2.call(this);
|
|
264
|
+
} else {
|
|
265
|
+
openNewWindow(file.url);
|
|
266
|
+
return $If_1.call(this);
|
|
267
|
+
}
|
|
268
|
+
function $If_1() {
|
|
269
|
+
return $return();
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
};
|
|
273
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
274
|
+
children: [/*#__PURE__*/jsx(Upload, _objectSpread2(_objectSpread2({
|
|
275
|
+
beforeUpload: beforeUpload,
|
|
276
|
+
onPreview: imagePreviewSwitch ? handlePreview : undefined
|
|
277
|
+
}, otherProps), {}, {
|
|
278
|
+
onChange: onUploadChange,
|
|
279
|
+
fileList: uploadList,
|
|
280
|
+
className: classNames('v-upload-wrapper', otherProps.className),
|
|
281
|
+
children: otherProps.disabled || hiddenEmtry ? null : /*#__PURE__*/jsx(UploadTrigger, {
|
|
282
|
+
triggerText: triggerText,
|
|
283
|
+
listType: otherProps.listType,
|
|
284
|
+
children: props.children
|
|
285
|
+
})
|
|
286
|
+
})), previewImage ? /*#__PURE__*/jsx(Image, {
|
|
287
|
+
wrapperStyle: {
|
|
288
|
+
display: 'none'
|
|
289
|
+
},
|
|
290
|
+
preview: {
|
|
291
|
+
visible: !!previewImage,
|
|
292
|
+
onVisibleChange: function onVisibleChange() {
|
|
293
|
+
return setPreviewImage(undefined);
|
|
294
|
+
},
|
|
295
|
+
afterOpenChange: function afterOpenChange(visible) {
|
|
296
|
+
return !visible && setPreviewImage('');
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
src: previewImage
|
|
300
|
+
}) : null]
|
|
301
|
+
});
|
|
232
302
|
};
|
|
233
303
|
var UploadTrigger = function UploadTrigger(props) {
|
|
234
304
|
if (props.children) return /*#__PURE__*/jsx(Fragment, {
|
|
@@ -259,4 +329,4 @@ var UploadTrigger = function UploadTrigger(props) {
|
|
|
259
329
|
};
|
|
260
330
|
|
|
261
331
|
export { UploadWrapper as U };
|
|
262
|
-
//# sourceMappingURL=upload-wrapper-
|
|
332
|
+
//# sourceMappingURL=upload-wrapper-DarS_SOE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-wrapper-DarS_SOE.js","sources":["@flatbiz/antd/src/upload-wrapper/utils.ts","@flatbiz/antd/src/upload-wrapper/upload-wrapper.tsx"],"sourcesContent":["export const getBase64 = (file): Promise<string> =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result as string);\n reader.onerror = (error) => reject(error);\n });\n","import type { ReactNode } from 'react';\nimport { Fragment, useMemo, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport type { UploadProps } from 'antd';\nimport { Button, Image, message, Upload } from 'antd';\nimport type { UploadChangeParam } from 'antd/lib/upload';\nimport type { UploadFile, UploadListType } from 'antd/lib/upload/interface.js';\nimport { PlusOutlined } from '@ant-design/icons';\nimport { isPlainObject } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport type { TAny, TPlainObject } from '@flatbiz/utils';\nimport { isUndefinedOrNull, openNewWindow, toArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { getBase64 } from './utils.js';\nimport './style.less';\n\nexport type UploadWrapperFileItem = {\n uid: string;\n name: string;\n url?: string;\n};\n\nexport type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {\n value?: T[] | T;\n onChange?: (value?: T[]) => void;\n onUploadError?: (message?: string) => void;\n onUploadChange?: (info: UploadChangeParam<UploadFile>) => void;\n /**\n * 属性取值映射\n */\n fieldNames?: {\n uid: string;\n name?: string;\n url?: string;\n /** 文件大小 */\n size?: string | number;\n };\n /**\n * 接口响应数据适配器,如果配置了fieldNames,适配器返回值会再进过fieldNames转换\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject;\n /** 操作触发显示文本 */\n triggerText?: string;\n /** 超过maxCount 隐藏上传入口 */\n limitHidden?: boolean;\n /**\n * 自动提交,默认:true\n * ```\n * 1. 自定义beforeUpload配置后 autoSubmit 失效\n * ```\n */\n autoSubmit?: boolean;\n /** 图片预览开关, 重写 onPreview 方法后失效 */\n imagePreviewSwitch?: boolean;\n /** 图片预览文件类型,默认:['png', 'jpg', 'jpeg', 'gif'] */\n imagePreviewAccept?: string[];\n} & Omit<UploadProps, 'onChange' | 'fileList'>;\n\n/**\n * 文件上传\n * ```\n * demo: https://fex.qa.tcshuke.com/docs/admin/main/file/upload\n * 1. 可通过配置children替换默认上传触发布局\n * 2. 接口返回结构:\n * formData上传接口返回值\n * {\n * code: '0000',\n * data: {\n * uid: '唯一值,可使用fileKey值'\n * name: '文件名称'\n * url: '预览地址'\n * }\n * }\n * 3. 如果接口返回的不是上面的字段名称,可通过fieldNames配置接口返回字段名称映射\n *\n * 4. 最佳使用方式,与Form结合使用\n * <Form.Item name=\"attachmentList\" label=\"附件\">\n * <UploadWrapper action={uploadUrl} />\n * </Form.Item>\n *\n * 5. 回填数据结构\n * [{\n * uid: '唯一值',\n * name(非必填): 'image.png',\n * url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',\n * }]\n * 1. 其中 uid、name、url 可为其他命名,通过 fieldNames 进行映射即可,\n * 2. 其他需要的字段可在对象中添加 responseData 对象\n * 例如:\n * [{\n * uid: '唯一值',\n * name(非必填): 'image.png',\n * url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',\n * responseData: { 'xx':'xxx' }\n * }]\n * ```\n *\n */\nexport const UploadWrapper = (props: UploadWrapperProps) => {\n const {\n onChange,\n onUploadError,\n value,\n triggerText,\n limitHidden,\n autoSubmit,\n imagePreviewSwitch,\n imagePreviewAccept,\n ...otherProps\n } = props;\n const imagePreviewAcceptFt = isUndefinedOrNull(imagePreviewAccept)\n ? ['png', 'jpg', 'jpeg', 'gif']\n : imagePreviewAccept;\n const [previewImage, setPreviewImage] = useState<string>();\n const [uploadList, setUploadList] = useState<UploadWrapperFileItem[]>();\n const fieldNames = extend(\n {\n uid: 'uid',\n name: 'name',\n url: 'url',\n size: 'size',\n },\n props.fieldNames\n );\n\n const valueList = useMemo(\n () => (isUndefinedOrNull(value) ? undefined : toArray<TPlainObject>(value)),\n [value]\n );\n\n fbaHooks.useEffectCustom(() => {\n const errorList =\n uploadList?.filter((item) => item['status'] === 'error') || [];\n let newList = [] as TAny[];\n valueList?.forEach((item) => {\n // 判断item 为 File类型\n if (item['lastModified']) {\n newList.push(item);\n } else {\n newList.push({\n uid: item[fieldNames.uid],\n name: item[fieldNames.name],\n url: item[fieldNames.url],\n size: item[fieldNames.size],\n responseData: item['responseData'],\n status: 'done',\n isOriginal: true,\n });\n }\n });\n if (errorList.length > 0) {\n const newErrorList = errorList.map((item) => {\n return {\n uid: item.uid,\n name: item.name,\n status: 'error',\n isOriginal: true,\n response: item['response'],\n };\n }) as TAny[];\n newList = newList.concat(newErrorList);\n }\n setUploadList(newList);\n }, [fieldNames.name, fieldNames.uid, fieldNames.url, valueList]);\n\n const handleResponse = (fileList: UploadFile<TAny>[]) => {\n const newFileList: TAny[] = [];\n let hasError = false;\n fileList.forEach((item) => {\n if (item['isOriginal']) {\n if (item['status'] !== 'error') {\n const target: TPlainObject = {\n [fieldNames.uid]: item.uid,\n [fieldNames.name]: item.name,\n [fieldNames.url]: item.url,\n };\n if (!isUndefinedOrNull(item.size)) {\n target[fieldNames.size] = item.size;\n }\n if (item['responseData']) {\n target.responseData = item['responseData'];\n }\n newFileList.push(target);\n }\n } else if (isPlainObject(item.response)) {\n if (item.response.code === '0000') {\n const respData = item.response.data;\n const result = (props.onRequestResultAdapter?.(respData) ||\n respData) as TPlainObject;\n const target: TPlainObject = {\n [fieldNames.uid]: result[fieldNames.uid] || item.uid,\n [fieldNames.name]: result[fieldNames.name] || item.name,\n [fieldNames.url]: result[fieldNames.url],\n };\n if (!isUndefinedOrNull(result[fieldNames.size])) {\n target[fieldNames.size] = result[fieldNames.size];\n }\n newFileList.push({\n ...target,\n responseData: respData,\n });\n } else {\n const errorMsg = item.response.message || '上传失败';\n hasError = true;\n item.status = 'error';\n item.response = item.response.message || '上传失败';\n if (onUploadError) {\n onUploadError?.(errorMsg);\n } else {\n void message.error('上传操作失败...');\n }\n }\n }\n });\n if (hasError) {\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n }\n onChange?.(newFileList);\n };\n\n const onUploadChange = hooks.useCallbackRef((info) => {\n const fileList = info.fileList as TPlainObject[];\n if (info.file.status === 'done') {\n const newFileList = [...info.fileList];\n const donwList = newFileList.filter(\n (item) => item.status === 'done' || item['isOriginal']\n );\n\n const allDone = donwList.length === newFileList.length;\n if (allDone) {\n handleResponse(newFileList);\n }\n flushSync(() => setUploadList(newFileList));\n return;\n } else if (info.file.status === 'removed') {\n const uid = info.file.uid;\n const targetList = valueList !== undefined ? [...valueList] : [];\n const targetIndex = targetList.findIndex((item) => {\n const tempUid = item[fieldNames.uid] || item.uid;\n return tempUid === uid;\n });\n if (targetIndex >= 0) {\n targetList.splice(targetIndex, 1);\n }\n onChange?.(targetList);\n } else if (info.file.status === 'error') {\n if (onUploadError) {\n onUploadError();\n } else {\n void message.error('上传操作失败...');\n }\n }\n // https://github.com/ant-design/ant-design/issues/2423\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n props.onUploadChange?.(info);\n });\n\n const hiddenEmtry = useMemo(() => {\n if (otherProps.maxCount === undefined || !limitHidden) return false;\n if (otherProps.maxCount === 0) return true;\n if (uploadList && uploadList.length >= otherProps.maxCount) return true;\n return false;\n }, [limitHidden, otherProps.maxCount, uploadList]);\n\n const beforeUpload = (_file, fileList) => {\n if (autoSubmit === false) {\n const maxCount = otherProps.maxCount;\n let mergeList = [...(valueList || []), ...fileList];\n let uploadListMerge = [...(uploadList || []), ...fileList];\n if (maxCount !== undefined && maxCount !== null) {\n if (mergeList.length > maxCount) {\n mergeList = mergeList.slice(mergeList.length - maxCount);\n uploadListMerge = uploadListMerge.slice(\n uploadListMerge.length - maxCount\n );\n }\n }\n setUploadList(uploadListMerge);\n props.onChange?.(mergeList);\n return false;\n }\n return true;\n };\n\n const handlePreview = async (file: UploadFile) => {\n const name = (file.name || '') as string;\n const extension = name.slice(name.lastIndexOf('.') + 1);\n const acceptTarget = imagePreviewAcceptFt?.find((item) => {\n return item.toLocaleLowerCase() === extension.toLocaleLowerCase();\n });\n if (acceptTarget) {\n if (!file.url && !file.preview) {\n file.preview = await getBase64(file.originFileObj);\n }\n setPreviewImage(file.url || (file.preview as string));\n } else {\n openNewWindow(file.url as string);\n }\n };\n\n return (\n <Fragment>\n <Upload\n beforeUpload={beforeUpload}\n onPreview={imagePreviewSwitch ? handlePreview : undefined}\n {...otherProps}\n onChange={onUploadChange}\n fileList={uploadList}\n className={classNames('v-upload-wrapper', otherProps.className)}\n >\n {otherProps.disabled || hiddenEmtry ? null : (\n <UploadTrigger\n triggerText={triggerText}\n listType={otherProps.listType}\n >\n {props.children}\n </UploadTrigger>\n )}\n </Upload>\n {previewImage ? (\n <Image\n wrapperStyle={{ display: 'none' }}\n preview={{\n visible: !!previewImage,\n onVisibleChange: () => setPreviewImage(undefined),\n afterOpenChange: (visible) => !visible && setPreviewImage(''),\n }}\n src={previewImage}\n />\n ) : null}\n </Fragment>\n );\n};\n\nconst UploadTrigger = (props: {\n listType?: UploadListType;\n children?: ReactNode | ReactNode[];\n triggerText?: string;\n}) => {\n if (props.children) return <Fragment>{props.children}</Fragment>;\n if (props.listType === 'picture-card') {\n return (\n <div>\n <PlusOutlined />\n <div style={{ marginTop: 8 }}>{props.triggerText || '上传图片'}</div>\n </div>\n );\n }\n if (props.listType === 'picture') {\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择图片上传'}\n </Button>\n );\n }\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择文件上传'}\n </Button>\n );\n};\n"],"names":["getBase64","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","result","onerror","error","UploadWrapper","props","onChange","onUploadError","value","triggerText","limitHidden","autoSubmit","imagePreviewSwitch","imagePreviewAccept","otherProps","_objectWithoutProperties","_excluded","imagePreviewAcceptFt","isUndefinedOrNull","_useState","useState","_useState2","_slicedToArray","previewImage","setPreviewImage","_useState3","_useState4","uploadList","setUploadList","fieldNames","_extend","uid","name","url","size","valueList","useMemo","undefined","toArray","fbaHooks","useEffectCustom","errorList","filter","item","newList","forEach","push","responseData","status","isOriginal","length","newErrorList","map","response","concat","handleResponse","fileList","newFileList","hasError","target","_defineProperty","_isPlainObject","code","_props$onRequestResul","respData","data","onRequestResultAdapter","call","_objectSpread","errorMsg","message","_toConsumableArray","onUploadChange","_hooks","useCallbackRef","info","_props$onUploadChange","donwList","allDone","flushSync","targetList","targetIndex","findIndex","tempUid","splice","hiddenEmtry","maxCount","beforeUpload","_file","_props$onChange","mergeList","uploadListMerge","slice","handlePreview","$return","$error","extension","acceptTarget","lastIndexOf","find","toLocaleLowerCase","preview","originFileObj","then","$await_3","$If_2","$boundEx","bind","$If_1","openNewWindow","_jsxs","Fragment","children","_jsx","Upload","onPreview","className","_classNames","disabled","UploadTrigger","listType","Image","wrapperStyle","display","visible","onVisibleChange","afterOpenChange","src","_PlusOutlined","style","marginTop","Button","type","ghost"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-D2IfpmxW.js","sources":["@flatbiz/antd/src/tabs-sticky/tabs.tsx"],"sourcesContent":["import { type ReactElement, useEffect, useMemo, useRef, useState } from 'react';\nimport { useSize } from 'ahooks';\nimport { Affix, type GetProps, Tabs } from 'antd';\nimport './style.less';\n\ntype TabsType = GetProps<typeof Tabs>;\n\nexport type TabsStickyProps = {\n tabsProps: Omit<TabsType, 'tabPosition'>;\n /** tabs头部布局 */\n headerRender?: ReactElement;\n /** 点击tabItem后,tab跳到顶部吸顶效果;默认值true */\n clickTabToTop?: boolean;\n};\n\n/**\n * Tabs吸顶组件\n * ```\n * 1. 组件根节点设置了 height: 100%、overflow: auto;所以外部包裹元素必须要有高度\n * ```\n */\nexport const TabsSticky = (props: TabsStickyProps) => {\n const tabsProps = props.tabsProps;\n\n const [activeKey, setActiveKey] = useState(tabsProps.defaultActiveKey);\n const headerRef = useRef<HTMLDivElement>(null);\n const affixRef = useRef<any>(null);\n const affixedFlagRef = useRef<boolean>();\n\n const headerSize = useSize(headerRef);\n\n const scollNodeRef = useRef<any>(null);\n\n const scollNodeSize = useSize(scollNodeRef);\n const affixRefSize = useSize(affixRef);\n\n useEffect(() => {\n if (tabsProps.activeKey) {\n setActiveKey(tabsProps.activeKey);\n }\n }, [tabsProps.activeKey]);\n\n const onChange = (activeKey) => {\n if (!tabsProps.activeKey) {\n setActiveKey(activeKey);\n }\n tabsProps.onChange?.(activeKey);\n const top = headerSize?.height || 0;\n if (affixedFlagRef.current) {\n scollNodeRef.current?.scrollTo({\n top,\n });\n } else {\n if (props.clickTabToTop !== false) {\n scollNodeRef.current?.scrollTo({\n top,\n });\n }\n }\n };\n\n const minHeight = (scollNodeSize?.height || 0) - (affixRefSize?.height || 0);\n\n const stickyTabItems = useMemo(() => {\n return tabsProps.items?.map((item) => {\n return {\n ...item,\n children: null,\n };\n });\n }, [tabsProps.items]);\n\n const contentTabItems = useMemo(() => {\n return tabsProps.items?.map((item) => {\n return {\n ...item,\n children: <div style={{ minHeight }}>{item.children}</div>,\n };\n });\n }, [tabsProps.items, minHeight]);\n\n return (\n <div ref={scollNodeRef} style={{ height: '100%', overflowY: 'auto' }}>\n <div ref={headerRef}>{props.headerRender}</div>\n <Affix\n offsetTop={0}\n target={() => scollNodeRef.current as HTMLElement}\n onChange={(affixed) => {\n affixedFlagRef.current = affixed;\n }}\n >\n <div ref={affixRef}>\n <Tabs\n {...tabsProps}\n activeKey={activeKey}\n items={stickyTabItems}\n tabBarStyle={{ ...tabsProps.tabBarStyle, margin: 0 }}\n style={{\n backgroundColor: 'var(--block-bg-color)',\n ...tabsProps.style,\n }}\n onChange={onChange}\n />\n </div>\n </Affix>\n <Tabs\n activeKey={activeKey}\n className=\"tabs-sticky-contents\"\n items={contentTabItems}\n />\n </div>\n );\n};\n"],"names":["TabsSticky","props","tabsProps","_useState","useState","defaultActiveKey","_useState2","_slicedToArray","activeKey","setActiveKey","headerRef","useRef","affixRef","affixedFlagRef","headerSize","useSize","scollNodeRef","scollNodeSize","affixRefSize","useEffect","onChange","_tabsProps$onChange","call","top","height","current","_scollNodeRef$current","scrollTo","clickTabToTop","_scollNodeRef$current2","minHeight","stickyTabItems","useMemo","_tabsProps$items","items","map","item","_objectSpread","children","contentTabItems","_tabsProps$items2","_jsx","style","_jsxs","ref","overflowY","headerRender","Affix","offsetTop","target","affixed","Tabs","tabBarStyle","margin","backgroundColor","className"],"mappings":"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"}
|