@flatbiz/antd 5.0.16 → 5.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/button-operate/index.d.ts +6 -2
  2. package/dist/button-operate/index.js +2 -2
  3. package/dist/{button-operate-C7NGikli.js → button-operate-3J_ml0DO.js} +19 -11
  4. package/dist/button-operate-3J_ml0DO.js.map +1 -0
  5. package/dist/{cell-render-D4e6I9eI.js → cell-render-ZmpHDPNW.js} +2 -2
  6. package/dist/{cell-render-D4e6I9eI.js.map → cell-render-ZmpHDPNW.js.map} +1 -1
  7. package/dist/dialog-modal-xt2uoEa-.js.map +1 -1
  8. package/dist/dialog-preview-image/index.css +0 -0
  9. package/dist/dialog-preview-image/index.d.ts +12 -0
  10. package/dist/dialog-preview-image/index.js +17 -0
  11. package/dist/dialog-preview-image/index.js.map +1 -0
  12. package/dist/{drag-C1CCBzbn.js → drag-CpN8Syvu.js} +2 -2
  13. package/dist/{drag-C1CCBzbn.js.map → drag-CpN8Syvu.js.map} +1 -1
  14. package/dist/drag-editable-table/index.css +1 -1
  15. package/dist/drag-editable-table/index.d.ts +14 -0
  16. package/dist/drag-editable-table/index.js +6 -5
  17. package/dist/editable-table/index.css +1 -1
  18. package/dist/editable-table/index.d.ts +14 -0
  19. package/dist/editable-table/index.js +5 -4
  20. package/dist/{editable-table-BgRLIKDS.js → editable-table-B79C_CpN.js} +3 -3
  21. package/dist/{editable-table-BgRLIKDS.js.map → editable-table-B79C_CpN.js.map} +1 -1
  22. package/dist/index.d.ts +36 -4
  23. package/dist/index.js +9 -7
  24. package/dist/index.js.map +1 -1
  25. package/dist/local-loading/index.css +1 -1
  26. package/dist/local-loading/index.d.ts +4 -2
  27. package/dist/local-loading/index.js +10 -5
  28. package/dist/local-loading/index.js.map +1 -1
  29. package/dist/preview-image-DP4umDzQ.js +80 -0
  30. package/dist/preview-image-DP4umDzQ.js.map +1 -0
  31. package/dist/selector-wrapper-simple/index.js +1 -1
  32. package/dist/{selector-wrapper-simple-CRqPexg2.js → selector-wrapper-simple-BRd4QhdQ.js} +4 -2
  33. package/dist/selector-wrapper-simple-BRd4QhdQ.js.map +1 -0
  34. package/dist/table-cell-render/index.d.ts +1 -1
  35. package/dist/table-cell-render/index.js +2 -2
  36. package/dist/{tabs-D2IfpmxW.js → tabs-CbMuUsXN.js} +5 -3
  37. package/dist/tabs-CbMuUsXN.js.map +1 -0
  38. package/dist/tabs-sticky/index.d.ts +3 -1
  39. package/dist/tabs-sticky/index.js +1 -1
  40. package/dist/tree-modal/index.d.ts +1 -1
  41. package/dist/tree-modal/index.js +1 -1
  42. package/dist/tree-modal-selector/index.d.ts +1 -1
  43. package/dist/tree-modal-selector/index.js +1 -1
  44. package/dist/tree-wrapper/index.d.ts +1 -1
  45. package/dist/tree-wrapper/index.js +1 -1
  46. package/dist/upload-wrapper/index.css +1 -1
  47. package/dist/upload-wrapper/index.d.ts +15 -0
  48. package/dist/upload-wrapper/index.js +21 -1
  49. package/dist/upload-wrapper/index.js.map +1 -1
  50. package/dist/{upload-wrapper-BUfwwddm.js → upload-wrapper-CwKeqggJ.js} +116 -20
  51. package/dist/upload-wrapper-CwKeqggJ.js.map +1 -0
  52. package/package.json +5 -1
  53. package/dist/button-operate-C7NGikli.js.map +0 -1
  54. package/dist/selector-wrapper-simple-CRqPexg2.js.map +0 -1
  55. package/dist/tabs-D2IfpmxW.js.map +0 -1
  56. package/dist/upload-wrapper-BUfwwddm.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -551,7 +551,7 @@ export interface ButtonOperateProps {
551
551
  style?: CSSProperties;
552
552
  /**
553
553
  * 如果数组中元素为ReactElement类型
554
- * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏
554
+ * 1. 一般为antd Button组件,如果组件存在属性hidden=true、v-hidden=true,则会隐藏
555
555
  * 2. 可配置 v-permission 权限值,例如 v-permission="add"
556
556
  * 3. 任何confirm、disabled等状态在外部控制
557
557
  * 3. 不支持fold效果
@@ -576,7 +576,11 @@ export declare const ButtonOperateItemContent: (props: Pick<ButtonOperateItem, "
576
576
  /**
577
577
  * 按钮组合处理组件
578
578
  * ```
579
- * @flatbiz/antd@4.2.49
579
+ * 1. operateList中存在ReactElement类型的元素,可通过配置 v-permission 属性来设置权限,例如 v-permission="add"
580
+ * 2. operateList中存在ReactElement类型的元素,如果有hidden、v-hidden属性,值为true会隐藏
581
+ *
582
+ *
583
+ * flatbiz/antd@4.2.49
580
584
  * 1. 替换 Fold 中 needConfirm交互,有 Popconfirm 改为 dialogConfirm组件实现二次弹框确认功能
581
585
  * 2. 修改原因:升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框组合使用存在问题
582
586
  * ```
@@ -1236,6 +1240,16 @@ export declare const dialogLoading: {
1236
1240
  */
1237
1241
  close: () => void;
1238
1242
  };
1243
+ export type DialogPreviewImageProps = {
1244
+ imageUrl: string;
1245
+ };
1246
+ /** 图片预览 */
1247
+ export declare const dialogPreviewImage: {
1248
+ show: (props: DialogPreviewImageProps) => {
1249
+ close: () => void;
1250
+ };
1251
+ hiden: () => void;
1252
+ };
1239
1253
  export type DragCollapseItemKey = number | string;
1240
1254
  export type DragCollapseItem = {
1241
1255
  key: DragCollapseItemKey;
@@ -1883,6 +1897,20 @@ export type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {
1883
1897
  * ```
1884
1898
  */
1885
1899
  autoSubmit?: boolean;
1900
+ /** 图片预览开关, 重写 onPreview 方法后失效 */
1901
+ imagePreviewSwitch?: boolean;
1902
+ /** 图片预览文件类型,默认:['png', 'jpg', 'jpeg', 'gif'] */
1903
+ imagePreviewAccept?: string[];
1904
+ /**
1905
+ * 配置文件额外操作
1906
+ * ```
1907
+ * 额外操作超过两项后,listType为 picture-card、picture-circle 时会出现显示异常,需要自行修改覆盖样式
1908
+ * ```
1909
+ */
1910
+ extraOperate?: {
1911
+ icon: ReactElement;
1912
+ onClick: (file: UploadFile, fileList: UploadFile[], e: any) => void;
1913
+ }[];
1886
1914
  } & Omit<UploadProps, "onChange" | "fileList">;
1887
1915
  /**
1888
1916
  * 文件上传
@@ -4012,8 +4040,10 @@ export interface LocalLoadingProps {
4012
4040
  showRequiredError?: boolean;
4013
4041
  /** 自定义异常渲染处理 */
4014
4042
  errorRender?: (error?: TAny) => ReactElement;
4015
- /** 设置内部滚动,需要设置style.height 才能生效,@5.0.16 */
4043
+ /** 设置内部滚动,需要设置 style.height 才能生效,@5.0.16 */
4016
4044
  contentScroll?: boolean;
4045
+ /** 设置高度 */
4046
+ height?: number | string;
4017
4047
  }
4018
4048
  export type LocalLoadingRefApi = {
4019
4049
  onRefresh: (params?: TPlainObject) => void;
@@ -4029,7 +4059,7 @@ export type LocalLoadingRefApi = {
4029
4059
  * 5. 子组件通过下面方式主动发起服务调用
4030
4060
  * const localLoadingApi = LocalLoading.useLocalLoading();
4031
4061
  * localLoadingApi.onRequest();
4032
- * 6. 如果内部需要滚动条,可设置 contentScroll = true (需要设置style.height 才能生效)
4062
+ * 6. 如果内部需要滚动条,可设置 contentScroll = true (外部有高度或者设置style.height 才能生效)
4033
4063
  * ```
4034
4064
  */
4035
4065
  export declare const LocalLoading: import("react").ForwardRefExoticComponent<LocalLoadingProps & import("react").RefAttributes<LocalLoadingRefApi>> & {
@@ -5304,6 +5334,8 @@ export type TabsStickyProps = {
5304
5334
  headerRender?: ReactElement;
5305
5335
  /** 点击tabItem后,tab跳到顶部吸顶效果;默认值true */
5306
5336
  clickTabToTop?: boolean;
5337
+ /** 设置tabItem 内容包裹元素的样式 */
5338
+ tabItemContentWrapperStyle?: (key: string) => CSSProperties;
5307
5339
  };
5308
5340
  /**
5309
5341
  * Tabs吸顶组件
package/dist/index.js CHANGED
@@ -32,6 +32,7 @@ import './dialog-drawer-content/index.css';
32
32
  import './dialog-drawer/index.css';
33
33
  import './dialog-loading/index.css';
34
34
  import './dialog-modal/index.css';
35
+ import './dialog-preview-image/index.css';
35
36
  import './drag-collapse-form-list/index.css';
36
37
  import './drag-collapse/index.css';
37
38
  import './drag-editable-card/index.css';
@@ -142,7 +143,7 @@ export { A as AnchorSteps } from './anchor-steps-BQK32Pbd.js';
142
143
  export { B as BlockLayout } from './layout-OPf8eBBY.js';
143
144
  export { B as Bootstrap } from './bootstrap-BPinDEWu.js';
144
145
  export { BoxGrid, useBoxBreakpoint } from './box-grid/index.js';
145
- export { a as ButtonOperate, B as ButtonOperateItemContent } from './button-operate-C7NGikli.js';
146
+ export { a as ButtonOperate, B as ButtonOperateItemContent } from './button-operate-3J_ml0DO.js';
146
147
  export { B as ButtonWrapper } from './button-wrapper-l9FUsrWl.js';
147
148
  export { C as CardLayout } from './card-layout-BNs6jF2K.js';
148
149
  export { C as CardWrapper } from './card-wrapper-w-JbDJNk.js';
@@ -163,10 +164,11 @@ export { d as dialogDrawer } from './dialog-drawer-D7lYByyr.js';
163
164
  export { D as DialogDrawerContent } from './content-CQdbAO0t.js';
164
165
  export { d as dialogLoading } from './dialog-loading-DdKI0dnm.js';
165
166
  export { d as dialogModal } from './dialog-modal-xt2uoEa-.js';
167
+ export { d as dialogPreviewImage } from './preview-image-DP4umDzQ.js';
166
168
  export { D as DragCollapse } from './drag-collapse-wL7wIgVO.js';
167
169
  export { D as DragCollapseFormList } from './drag-collapse-DU_JhQTz.js';
168
170
  export { D as DragEditableCard } from './editable-card-Dc_9h_Qf.js';
169
- export { D as DragEditableTable } from './drag-C1CCBzbn.js';
171
+ export { D as DragEditableTable } from './drag-CpN8Syvu.js';
170
172
  export { D as DragEditableTablePro } from './drag-CBosXqSQ.js';
171
173
  export { D as DragFormList } from './drag-form-list-BGqbBKJM.js';
172
174
  export { D as DragTable } from './drag-table-By85hEGF.js';
@@ -177,7 +179,7 @@ export { EasyTable } from './easy-table/index.js';
177
179
  export { E as EditableCard } from './editable-card-D-JIgLVg.js';
178
180
  export { E as EditableField } from './editable-field-XVZ1Rqdm.js';
179
181
  export { E as EditableFieldProvider } from './editable-field-provider-DqKcZQYP.js';
180
- export { E as EditableTable } from './editable-table-BgRLIKDS.js';
182
+ export { E as EditableTable } from './editable-table-B79C_CpN.js';
181
183
  export { E as EditableTablePro } from './editable-table-pro-D8Vt535W.js';
182
184
  export { E as ErrorBoundaryWrapper } from './error-boundary-DtShAEtQ.js';
183
185
  export { FbaApp } from './fba-app/index.js';
@@ -227,7 +229,7 @@ export { S as SearchForm } from './search-cwSkh4xF.js';
227
229
  export { S as SearchMenu } from './search-menu-mRPEczbZ.js';
228
230
  export { S as SelectorWrapper } from './selector-wrapper-DM2jRdkd.js';
229
231
  export { S as SelectorWrapperSearch } from './selector-wrapper-search-CbRevSdB.js';
230
- export { S as SelectorWrapperSimple } from './selector-wrapper-simple-CRqPexg2.js';
232
+ export { S as SelectorWrapperSimple } from './selector-wrapper-simple-BRd4QhdQ.js';
231
233
  export { S as SimpleLayout } from './simple-layout-mSolkIZ5.js';
232
234
  export { S as SmsCountDown } from './sms-count-down-DI31OzNh.js';
233
235
  export { S as SplitWrapper } from './split-RLM37DOW.js';
@@ -235,10 +237,10 @@ export { styles } from './styles/index.js';
235
237
  export { S as SvgHttpView } from './svg-DXIM5sfc.js';
236
238
  export { S as SwitchConfirmWrapper } from './switch-confirm-wrapper-BW9G4u03.js';
237
239
  export { S as SwitchWrapper } from './switch-wrapper-CfxaLAKg.js';
238
- export { t as tableCellRender } from './cell-render-D4e6I9eI.js';
240
+ export { t as tableCellRender } from './cell-render-ZmpHDPNW.js';
239
241
  export { T as TableScrollbar } from './table-scrollbar-CBqQ4pYQ.js';
240
242
  export { T as TableTitleTooltip } from './title-render-DGYUo6yV.js';
241
- export { T as TabsSticky } from './tabs-D2IfpmxW.js';
243
+ export { T as TabsSticky } from './tabs-CbMuUsXN.js';
242
244
  export { T as TabsWrapper } from './tabs-wrapper-CAj9ErGH.js';
243
245
  export { T as TagGroup } from './tag-group-BInmv_6s.js';
244
246
  export { _ as TagListRender } from './tag-list-C9_bM06E.js';
@@ -256,7 +258,7 @@ export { T as TreeModalSelector } from './selector-dbYimxeI.js';
256
258
  export { T as TreeSelectorWrapper } from './selector-D4LbM5wD.js';
257
259
  export { TreeWrapper } from './tree-wrapper/index.js';
258
260
  export { types } from './types/index.js';
259
- export { U as UploadWrapper } from './upload-wrapper-BUfwwddm.js';
261
+ export { U as UploadWrapper } from './upload-wrapper-CwKeqggJ.js';
260
262
  export { X as XMindPreview } from './x-mind-preview-BxHDc_lA.js';
261
263
  import './_rollupPluginBabelHelpers-BYm17lo8.js';
262
264
  import '@dimjs/utils/class-names/class-names';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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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"}
@@ -0,0 +1,80 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+
3
+ import { isString } from '@dimjs/lang/is-string';
4
+ import { b as _objectSpread2, a as _slicedToArray } from './_rollupPluginBabelHelpers-BYm17lo8.js';
5
+ import { hooks } from '@wove/react/hooks';
6
+ import { useState, Fragment } from 'react';
7
+ import { createRoot } from 'react-dom/client';
8
+ import { Image } from 'antd';
9
+ import { dom } from '@flatbiz/utils';
10
+ import { fbaHooks } from './fba-hooks/index.js';
11
+ import { jsx } from 'react/jsx-runtime';
12
+
13
+ var ModalRender = function ModalRender(props) {
14
+ var _useState = useState(true),
15
+ _useState2 = _slicedToArray(_useState, 2),
16
+ open = _useState2[0],
17
+ setOpen = _useState2[1];
18
+ var elementId = props.elementId;
19
+ var onClose = hooks.useCallbackRef(function () {
20
+ try {
21
+ delete window[elementId];
22
+ } catch (_error) {
23
+ //
24
+ }
25
+ setOpen(false);
26
+ });
27
+ fbaHooks.useEffectCustom(function () {
28
+ window[elementId] = onClose;
29
+ }, [onClose]);
30
+ return /*#__PURE__*/jsx(Fragment, {
31
+ children: /*#__PURE__*/jsx(Image, {
32
+ wrapperStyle: {
33
+ display: 'none'
34
+ },
35
+ preview: {
36
+ visible: !!open,
37
+ onVisibleChange: function onVisibleChange() {
38
+ return setOpen(false);
39
+ },
40
+ afterOpenChange: function afterOpenChange(visible) {
41
+ return !visible && setOpen(false);
42
+ }
43
+ },
44
+ src: props.imageUrl
45
+ })
46
+ });
47
+ };
48
+
49
+ /** 图片预览 */
50
+ var dialogPreviewImage = {
51
+ show: function show(props) {
52
+ var _dom$bodyAppendDivEle = dom.bodyAppendDivElement(),
53
+ divElement = _dom$bodyAppendDivEle.divElement,
54
+ elementId = _dom$bodyAppendDivEle.elementId;
55
+ window['__dialog_preview_elementId'] = elementId;
56
+ var root = createRoot(divElement);
57
+ root.render(/*#__PURE__*/jsx(ModalRender, _objectSpread2(_objectSpread2({}, props), {}, {
58
+ divElement: divElement,
59
+ elementId: elementId
60
+ })));
61
+ return {
62
+ close: function close() {
63
+ var _elementId, _ref;
64
+ (_elementId = (_ref = window)[elementId]) === null || _elementId === void 0 || _elementId.call(_ref);
65
+ }
66
+ };
67
+ },
68
+ hiden: function hiden() {
69
+ try {
70
+ var _window$elementId, _window;
71
+ var elementId = window['__dialog_preview_elementId'];
72
+ if (isString(elementId)) (_window$elementId = (_window = window)[elementId]) === null || _window$elementId === void 0 || _window$elementId.call(_window);
73
+ } catch (_error) {
74
+ //
75
+ }
76
+ }
77
+ };
78
+
79
+ export { dialogPreviewImage as d };
80
+ //# sourceMappingURL=preview-image-DP4umDzQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-image-DP4umDzQ.js","sources":["@flatbiz/antd/src/dialog-preview-image/preview-image.tsx"],"sourcesContent":["import { Fragment, useState } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Image } from 'antd';\nimport { isString } from '@dimjs/lang';\nimport type { BodyAppendDivElementProps } from '@flatbiz/utils';\nimport { dom } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { fbaHooks } from '../fba-hooks/index.js';\n\nexport type DialogPreviewImageProps = {\n imageUrl: string;\n};\n\nconst ModalRender = (\n props: BodyAppendDivElementProps & DialogPreviewImageProps\n) => {\n const [open, setOpen] = useState(true);\n const elementId = props.elementId;\n\n const onClose = hooks.useCallbackRef(() => {\n try {\n delete window[elementId];\n } catch (_error) {\n //\n }\n setOpen(false);\n });\n\n fbaHooks.useEffectCustom(() => {\n (window as any)[elementId] = onClose;\n }, [onClose]);\n\n return (\n <Fragment>\n <Image\n wrapperStyle={{ display: 'none' }}\n preview={{\n visible: !!open,\n onVisibleChange: () => setOpen(false),\n afterOpenChange: (visible) => !visible && setOpen(false),\n }}\n src={props.imageUrl}\n />\n </Fragment>\n );\n};\n\n/** 图片预览 */\nexport const dialogPreviewImage = {\n show: (props: DialogPreviewImageProps) => {\n const { divElement, elementId } = dom.bodyAppendDivElement();\n window['__dialog_preview_elementId'] = elementId;\n const root = createRoot(divElement);\n root.render(\n <ModalRender {...props} divElement={divElement} elementId={elementId} />\n );\n return {\n close: () => {\n (window as any)[elementId]?.();\n },\n };\n },\n hiden: () => {\n try {\n const elementId = window['__dialog_preview_elementId'] as string;\n if (isString(elementId)) window[elementId]?.();\n } catch (_error) {\n //\n }\n },\n};\n"],"names":["ModalRender","props","_useState","useState","_useState2","_slicedToArray","open","setOpen","elementId","onClose","_hooks","useCallbackRef","window","_error","fbaHooks","useEffectCustom","_jsx","Fragment","children","Image","wrapperStyle","display","preview","visible","onVisibleChange","afterOpenChange","src","imageUrl","dialogPreviewImage","show","_dom$bodyAppendDivEle","dom","bodyAppendDivElement","divElement","root","createRoot","render","_objectSpread","close","_elementId","_ref","call","hiden","_window$elementId","_window","_isString"],"mappings":"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"}
@@ -4,7 +4,7 @@ import './../request-status/index.css';
4
4
  import './index.css';
5
5
  /*! @flatjs/forge MIT @flatbiz/antd */
6
6
 
7
- export { S as SelectorWrapperSimple } from '../selector-wrapper-simple-CRqPexg2.js';
7
+ export { S as SelectorWrapperSimple } from '../selector-wrapper-simple-BRd4QhdQ.js';
8
8
  import '@ant-design/icons/es/icons/RedoOutlined.js';
9
9
  import '../_rollupPluginBabelHelpers-BYm17lo8.js';
10
10
  import '@dimjs/lang/is-array';
@@ -118,7 +118,9 @@ var SelectorWrapperSimple = function SelectorWrapperSimple(props) {
118
118
  void startDataSourceRequest();
119
119
  }, []);
120
120
  var loading = requestStatus === 'request-progress';
121
- return /*#__PURE__*/jsx(Select, _objectSpread2(_objectSpread2({}, otherProps), {}, {
121
+ return /*#__PURE__*/jsx(Select, _objectSpread2(_objectSpread2({
122
+ optionFilterProp: "label"
123
+ }, otherProps), {}, {
122
124
  style: _objectSpread2({
123
125
  width: '100%'
124
126
  }, props.style),
@@ -142,4 +144,4 @@ var SelectorWrapperSimple = function SelectorWrapperSimple(props) {
142
144
  };
143
145
 
144
146
  export { SelectorWrapperSimple as S };
145
- //# sourceMappingURL=selector-wrapper-simple-CRqPexg2.js.map
147
+ //# sourceMappingURL=selector-wrapper-simple-BRd4QhdQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-wrapper-simple-BRd4QhdQ.js","sources":["@flatbiz/antd/src/selector-wrapper-simple/selector-wrapper-simple.tsx"],"sourcesContent":["import { useMemo, useState } from 'react';\nimport type { SelectProps } from 'antd';\nimport { Button, Select } from 'antd';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { get } from '@dimjs/utils';\nimport type { LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport type {\n TRequestStatus,\n TRequestStatusProps,\n} from '../request-status/index.js';\nimport { RequestStatus } from '../request-status/index.js';\n\nexport type SelectorWrapperSimpleServiceConfig = {\n params?: TPlainObject;\n onRequest: (params?: TAny) => TAny;\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type SelectorWrapperSimpleProps = Omit<\n SelectProps,\n 'onSearch' | 'notFoundContent' | 'options' | 'fieldNames' | 'loading'\n> & {\n /**\n * 参数Key映射\n * ```\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter后,fieldNames.list配置失效\n * ```\n */\n fieldNames?: {\n label: string;\n value: string;\n disabled?: string;\n list?: string;\n };\n /**\n * 请求服务需求的数据\n */\n serviceConfig: SelectorWrapperSimpleServiceConfig;\n /**\n * 添加全部选项\n * ```\n * 1. 默认值label=\"全部\",value=\"\"\n * 2. 可配置label、value\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /** selectorList发生变更时触发,每次都会调用 */\n onSelectorListChange?: (dataList: TPlainObject[]) => void;\n /**\n * 通过服务获取数据异常回调\n */\n onSelectorRequestError?: (error: Error) => void;\n\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n};\n/**\n * 选择器简单包装组件\n * @param props\n * @returns\n * ```\n * 1. 不支持search效果\n * 2. 不会缓存接口数据\n * 3. 不会对value、onChange做任何处理\n * ```\n */\nexport const SelectorWrapperSimple = (props: SelectorWrapperSimpleProps) => {\n const {\n showAllOption,\n serviceConfig,\n onSelectorListChange,\n onSelectorRequestError,\n requestMessageConfig,\n fieldNames,\n ...otherProps\n } = props;\n const [requestStatus, setRequestStatus] =\n useState<TRequestStatus>('request-init');\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const optionsItemLabelField = fieldNames?.label || 'label';\n const optionsItemValueField = fieldNames?.value || 'value';\n const optionsItemDisabledField = fieldNames?.disabled || 'disabled';\n const serviceParams = serviceConfig.params;\n\n const allOptionConfig = useMemo(() => {\n const isTrue = showAllOption === true;\n if (showAllOption) {\n return {\n label: isTrue ? '全部' : (showAllOption.label as string),\n value: isTrue ? '' : (showAllOption.value as TAny),\n };\n }\n return null;\n }, [showAllOption]);\n\n const serviceRespDataAdapter = (respData) => {\n let result: TPlainObject[] = respData;\n if (serviceConfig.onRequestResultAdapter) {\n result = serviceConfig.onRequestResultAdapter(\n respData as unknown as TPlainObject\n );\n } else if (fieldNames?.list) {\n result = get(respData, fieldNames?.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = async () => {\n try {\n setRequestStatus('request-progress');\n const respData = await serviceConfig.onRequest?.(serviceParams);\n let respAdapterData = serviceRespDataAdapter(respData);\n onSelectorListChange?.(respAdapterData);\n if (optionsItemLabelField && optionsItemValueField) {\n respAdapterData = respAdapterData.map((item) => {\n return {\n ...item,\n label: item[optionsItemLabelField],\n value: item[optionsItemValueField],\n disabled: item[optionsItemDisabledField],\n };\n });\n }\n\n if (allOptionConfig) {\n respAdapterData.unshift(allOptionConfig);\n }\n setDataSource(respAdapterData);\n setRequestStatus('request-success');\n } catch (error: TAny) {\n setRequestStatus('request-error');\n onSelectorRequestError?.(error);\n }\n };\n\n fbaHooks.useEffectCustom(() => {\n void startDataSourceRequest();\n }, []);\n\n const loading = requestStatus === 'request-progress';\n\n return (\n <Select\n optionFilterProp=\"label\"\n {...otherProps}\n style={{ width: '100%', ...props.style }}\n options={dataSource as LabelValueItem[]}\n notFoundContent={\n <RequestStatus\n status={requestStatus}\n loading={loading}\n messageConfig={requestMessageConfig}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n suffixIcon={\n requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={startDataSourceRequest} />\n ) : undefined\n }\n loading={loading}\n />\n );\n};\n"],"names":["SelectorWrapperSimple","props","showAllOption","serviceConfig","onSelectorListChange","onSelectorRequestError","requestMessageConfig","fieldNames","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","requestStatus","setRequestStatus","_useState3","_useState4","dataSource","setDataSource","optionsItemLabelField","label","optionsItemValueField","value","optionsItemDisabledField","disabled","serviceParams","params","allOptionConfig","useMemo","isTrue","serviceRespDataAdapter","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","Promise","$return","$error","_serviceConfig$onRequ","respAdapterData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","onRequest","call","then","$await_2","map","item","_objectSpread","unshift","fbaHooks","useEffectCustom","loading","_jsx","Select","optionFilterProp","style","width","options","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","children","suffixIcon","_RedoOutlined","spin","undefined"],"mappings":"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"}
@@ -113,7 +113,7 @@ export interface ButtonOperateProps {
113
113
  style?: CSSProperties;
114
114
  /**
115
115
  * 如果数组中元素为ReactElement类型
116
- * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏
116
+ * 1. 一般为antd Button组件,如果组件存在属性hidden=true、v-hidden=true,则会隐藏
117
117
  * 2. 可配置 v-permission 权限值,例如 v-permission="add"
118
118
  * 3. 任何confirm、disabled等状态在外部控制
119
119
  * 3. 不支持fold效果
@@ -7,7 +7,7 @@ import './../tag-list-render/index.css';
7
7
  import './index.css';
8
8
  /*! @flatjs/forge MIT @flatbiz/antd */
9
9
 
10
- export { t as tableCellRender } from '../cell-render-D4e6I9eI.js';
10
+ export { t as tableCellRender } from '../cell-render-ZmpHDPNW.js';
11
11
  import '@dimjs/lang/is-string';
12
12
  import '@dimjs/lang/is-object';
13
13
  import '@dimjs/utils/get/get';
@@ -17,7 +17,7 @@ import '@dimjs/lang/is-empty';
17
17
  import 'react';
18
18
  import 'antd';
19
19
  import '@flatbiz/utils';
20
- import '../button-operate-C7NGikli.js';
20
+ import '../button-operate-3J_ml0DO.js';
21
21
  import '@ant-design/icons/es/icons/MoreOutlined.js';
22
22
  import '@dimjs/lang/is-undefined';
23
23
  import '@dimjs/utils/class-names/class-names';
@@ -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';
@@ -113,7 +113,7 @@ export interface ButtonOperateProps {
113
113
  style?: CSSProperties;
114
114
  /**
115
115
  * 如果数组中元素为ReactElement类型
116
- * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏
116
+ * 1. 一般为antd Button组件,如果组件存在属性hidden=true、v-hidden=true,则会隐藏
117
117
  * 2. 可配置 v-permission 权限值,例如 v-permission="add"
118
118
  * 3. 任何confirm、disabled等状态在外部控制
119
119
  * 3. 不支持fold效果