@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/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 (需要设置style.height 才能生效)
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-C1CCBzbn.js';
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-BgRLIKDS.js';
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-D2IfpmxW.js';
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-BUfwwddm.js';
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{height:100%;overflow-y:auto}
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 (需要设置style.height 才能生效)
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 (需要设置style.height 才能生效)
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: props.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: props.contentStyle,
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 (需要设置style.height 才能生效)
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-D2IfpmxW.js.map
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-D2IfpmxW.js';
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-BUfwwddm.js';
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 { jsx, jsxs } from 'react/jsx-runtime';
14
+ import { jsxs, jsx } from 'react/jsx-runtime';
15
15
 
16
- var _excluded = ["onChange", "onUploadError", "value", "triggerText", "limitHidden", "autoSubmit"];
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
- uploadList = _useState2[0],
68
- setUploadList = _useState2[1];
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
- return /*#__PURE__*/jsx(Upload, _objectSpread2(_objectSpread2({
221
- beforeUpload: beforeUpload
222
- }, otherProps), {}, {
223
- onChange: onUploadChange,
224
- fileList: uploadList,
225
- className: classNames('v-upload-wrapper', otherProps.className),
226
- children: otherProps.disabled || hiddenEmtry ? null : /*#__PURE__*/jsx(UploadTrigger, {
227
- triggerText: triggerText,
228
- listType: otherProps.listType,
229
- children: props.children
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-BUfwwddm.js.map
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "5.0.16",
3
+ "version": "5.0.17",
4
4
  "homepage": "https://gitlab.itcjf.com/flatjs-next/node-template-mono",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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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"}